diff --git a/.gitignore b/.gitignore index 3edf70befdbd892297eea0203fca95688bf2d89b..8dbe798f4eb67e9104f9f584eb06b9fb6a7f300a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,6 @@ *.sav *.o *~ -.frama-c config.status lia.cache @@ -13,9 +12,6 @@ eva.log stats.txt flamegraph.txt -# ignore timestamped versions -*_20*-*.eva -*_20*-*.parse *.error benchs-value.csv diff --git a/2048/2048.eva/alarms.csv b/2048/.frama-c/2048.eva/alarms.csv similarity index 100% rename from 2048/2048.eva/alarms.csv rename to 2048/.frama-c/2048.eva/alarms.csv diff --git a/2048/2048.eva/metrics.log b/2048/.frama-c/2048.eva/metrics.log similarity index 100% rename from 2048/2048.eva/metrics.log rename to 2048/.frama-c/2048.eva/metrics.log diff --git a/2048/2048.eva/nonterm.log b/2048/.frama-c/2048.eva/nonterm.log similarity index 100% rename from 2048/2048.eva/nonterm.log rename to 2048/.frama-c/2048.eva/nonterm.log diff --git a/2048/2048.eva/warnings.log b/2048/.frama-c/2048.eva/warnings.log similarity index 100% rename from 2048/2048.eva/warnings.log rename to 2048/.frama-c/2048.eva/warnings.log diff --git a/2048/2048.parse/framac.ast b/2048/.frama-c/2048.parse/framac.ast similarity index 100% rename from 2048/2048.parse/framac.ast rename to 2048/.frama-c/2048.parse/framac.ast diff --git a/2048/2048.parse/metrics.log b/2048/.frama-c/2048.parse/metrics.log similarity index 100% rename from 2048/2048.parse/metrics.log rename to 2048/.frama-c/2048.parse/metrics.log diff --git a/2048/2048.parse/warnings.log b/2048/.frama-c/2048.parse/warnings.log similarity index 100% rename from 2048/2048.parse/warnings.log rename to 2048/.frama-c/2048.parse/warnings.log diff --git a/2048/.frama-c/GNUmakefile b/2048/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..6aa9429089c75a8391627ec1e3860ebb336618d6 --- /dev/null +++ b/2048/.frama-c/GNUmakefile @@ -0,0 +1,44 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_32 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + -CC + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -kernel-warn-key annot:missing-spec=abort \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + +## Eva-specific flags +EVAFLAGS += \ + -eva-warn-key builtins:missing-spec=abort \ + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +## Analysis targets (suffixed with .eva) +TARGETS = 2048.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +2048.parse: \ + ../2048.c \ + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/2048/.frama-c/path.mk b/2048/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/2048/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/2048/GNUmakefile b/2048/GNUmakefile deleted file mode 100644 index 338348b776cfa2ebf0fab332c4535f40afebf7dc..0000000000000000000000000000000000000000 --- a/2048/GNUmakefile +++ /dev/null @@ -1,66 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED -# The flags below are only suggestions to use with Eva, and can be removed - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += -CC - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += \ - -kernel-warn-key annot:missing-spec=abort \ - -kernel-warn-key typing:implicit-function-declaration=abort \ - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -eva-warn-key builtins:missing-spec=abort \ - -# (MANDATORY) Name of the main target -MAIN_TARGET := 2048 - -# Add other targets if needed -TARGETS = $(MAIN_TARGET).eva - -# Default target -all: $(TARGETS) -help: - @echo "targets: $(TARGETS)" -display-targets: - @echo "$(TARGETS)" - -# (MANDATORY) List of source files used by MAIN_TARGET. -# If there is a JSON compilation database, -# 'frama-c-script list-files' can help obtain it -$(MAIN_TARGET).parse: 2048.c - - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -gui: $(MAIN_TARGET).eva.gui - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common diff --git a/2048/frama-c-path.mk b/2048/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/2048/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/Makefile b/Makefile index ce34169f27fb7bc07c65601097de0563d65cd3c2..1eb9c825e0856aa9cc58c5a0f885356c33ee386c 100644 --- a/Makefile +++ b/Makefile @@ -85,30 +85,33 @@ QUICK_TARGETS=$(filter-out polarssl gzip124 libmodbus monocypher chrony,$(TARGET all: $(TARGETS) +summary: + frama-c/share/analysis-scripts/summary.py + $(TARGETS): - +$(MAKE) -C $@ + +$(MAKE) -C $@/.frama-c quick: $(QUICK_TARGETS) %.clean: - $(MAKE) -C $* clean + $(MAKE) -C $*/.frama-c clean clean: $(addsuffix .clean,$(TARGETS)) %.parse: - $(MAKE) -C $* parse + $(MAKE) -C $*/.frama-c parse parse: $(addsuffix .parse,$(TARGETS)) %.stats: - $(MAKE) -C $* stats + $(MAKE) -C $*/.frama-c stats stats: $(addsuffix .stats,$(TARGETS)) display-targets: @echo $(foreach target,$(TARGETS),\ $(addprefix $(target)/,\ - $(shell $(MAKE) --quiet -C $(target) display-targets))) + $(shell $(MAKE) --quiet -C $(target)/.frama-c display-targets))) .PHONY: $(TARGETS) frama-c/build/bin/frama-c clean-all help stats-all diff --git a/basic-cwe-examples/.frama-c/GNUmakefile b/basic-cwe-examples/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..1ca5e5f13f388089e1c2c8488346dd2629f9eb9c --- /dev/null +++ b/basic-cwe-examples/.frama-c/GNUmakefile @@ -0,0 +1,58 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_32 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -kernel-warn-key annot:missing-spec=abort \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + +# (Optional) Eva-specific flags +EVAFLAGS += \ + -eva-warn-key builtins:missing-spec=abort \ + +## Analysis targets (suffixed with .eva) +IMPRECISE_TARGETS = cwe20.eva cwe119.eva cwe190.eva cwe416.eva cwe787.eva + +PRECISE_TARGETS = $(subst .eva,-precise.eva,$(IMPRECISE_TARGETS)) + +TARGETS = $(IMPRECISE_TARGETS) $(PRECISE_TARGETS) + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +cwe20.parse: ../cwe20.c +cwe119.parse: ../cwe119.c +cwe190.parse: ../cwe190.c +cwe416.parse: ../cwe416.c +cwe787.parse: ../cwe787.c + +cwe20-precise.parse: ../cwe20.c +cwe119-precise.parse: ../cwe119.c +cwe190-precise.parse: ../cwe190.c +cwe416-precise.parse: ../cwe416.c +cwe787-precise.parse: ../cwe787.c + +cwe20-precise.eva: EVAFLAGS += +cwe119-precise.eva: EVAFLAGS += -eva-precision 1 +cwe190-precise.eva: EVAFLAGS += -warn-unsigned-overflow -eva-no-alloc-returns-null +cwe416-precise.eva: EVAFLAGS += -eva-precision 1 +cwe787-precise.eva: EVAFLAGS += -eva-precision 2 -eva-no-alloc-returns-null + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/basic-cwe-examples/cwe119-precise.eva/alarms.csv b/basic-cwe-examples/.frama-c/cwe119-precise.eva/alarms.csv similarity index 100% rename from basic-cwe-examples/cwe119-precise.eva/alarms.csv rename to basic-cwe-examples/.frama-c/cwe119-precise.eva/alarms.csv diff --git a/basic-cwe-examples/cwe119-precise.eva/metrics.log b/basic-cwe-examples/.frama-c/cwe119-precise.eva/metrics.log similarity index 100% rename from basic-cwe-examples/cwe119-precise.eva/metrics.log rename to basic-cwe-examples/.frama-c/cwe119-precise.eva/metrics.log diff --git a/basic-cwe-examples/cwe119-precise.eva/nonterm.log b/basic-cwe-examples/.frama-c/cwe119-precise.eva/nonterm.log similarity index 100% rename from basic-cwe-examples/cwe119-precise.eva/nonterm.log rename to basic-cwe-examples/.frama-c/cwe119-precise.eva/nonterm.log diff --git a/basic-cwe-examples/cwe119-precise.eva/warnings.log b/basic-cwe-examples/.frama-c/cwe119-precise.eva/warnings.log similarity index 100% rename from basic-cwe-examples/cwe119-precise.eva/warnings.log rename to basic-cwe-examples/.frama-c/cwe119-precise.eva/warnings.log diff --git a/basic-cwe-examples/cwe119-precise.parse/framac.ast b/basic-cwe-examples/.frama-c/cwe119-precise.parse/framac.ast similarity index 100% rename from basic-cwe-examples/cwe119-precise.parse/framac.ast rename to basic-cwe-examples/.frama-c/cwe119-precise.parse/framac.ast diff --git a/basic-cwe-examples/cwe119-precise.parse/metrics.log b/basic-cwe-examples/.frama-c/cwe119-precise.parse/metrics.log similarity index 100% rename from basic-cwe-examples/cwe119-precise.parse/metrics.log rename to basic-cwe-examples/.frama-c/cwe119-precise.parse/metrics.log diff --git a/basic-cwe-examples/cwe119-precise.parse/warnings.log b/basic-cwe-examples/.frama-c/cwe119-precise.parse/warnings.log similarity index 100% rename from basic-cwe-examples/cwe119-precise.parse/warnings.log rename to basic-cwe-examples/.frama-c/cwe119-precise.parse/warnings.log diff --git a/basic-cwe-examples/cwe119.eva/alarms.csv b/basic-cwe-examples/.frama-c/cwe119.eva/alarms.csv similarity index 100% rename from basic-cwe-examples/cwe119.eva/alarms.csv rename to basic-cwe-examples/.frama-c/cwe119.eva/alarms.csv diff --git a/basic-cwe-examples/cwe119.eva/metrics.log b/basic-cwe-examples/.frama-c/cwe119.eva/metrics.log similarity index 100% rename from basic-cwe-examples/cwe119.eva/metrics.log rename to basic-cwe-examples/.frama-c/cwe119.eva/metrics.log diff --git a/basic-cwe-examples/cwe119.eva/nonterm.log b/basic-cwe-examples/.frama-c/cwe119.eva/nonterm.log similarity index 100% rename from basic-cwe-examples/cwe119.eva/nonterm.log rename to basic-cwe-examples/.frama-c/cwe119.eva/nonterm.log diff --git a/basic-cwe-examples/cwe119.eva/warnings.log b/basic-cwe-examples/.frama-c/cwe119.eva/warnings.log similarity index 100% rename from basic-cwe-examples/cwe119.eva/warnings.log rename to basic-cwe-examples/.frama-c/cwe119.eva/warnings.log diff --git a/basic-cwe-examples/cwe119.parse/framac.ast b/basic-cwe-examples/.frama-c/cwe119.parse/framac.ast similarity index 100% rename from basic-cwe-examples/cwe119.parse/framac.ast rename to basic-cwe-examples/.frama-c/cwe119.parse/framac.ast diff --git a/basic-cwe-examples/cwe119.parse/metrics.log b/basic-cwe-examples/.frama-c/cwe119.parse/metrics.log similarity index 100% rename from basic-cwe-examples/cwe119.parse/metrics.log rename to basic-cwe-examples/.frama-c/cwe119.parse/metrics.log diff --git a/basic-cwe-examples/cwe119.parse/warnings.log b/basic-cwe-examples/.frama-c/cwe119.parse/warnings.log similarity index 100% rename from basic-cwe-examples/cwe119.parse/warnings.log rename to basic-cwe-examples/.frama-c/cwe119.parse/warnings.log diff --git a/basic-cwe-examples/cwe190-precise.eva/alarms.csv b/basic-cwe-examples/.frama-c/cwe190-precise.eva/alarms.csv similarity index 100% rename from basic-cwe-examples/cwe190-precise.eva/alarms.csv rename to basic-cwe-examples/.frama-c/cwe190-precise.eva/alarms.csv diff --git a/basic-cwe-examples/cwe190-precise.eva/metrics.log b/basic-cwe-examples/.frama-c/cwe190-precise.eva/metrics.log similarity index 100% rename from basic-cwe-examples/cwe190-precise.eva/metrics.log rename to basic-cwe-examples/.frama-c/cwe190-precise.eva/metrics.log diff --git a/basic-cwe-examples/cwe190-precise.eva/nonterm.log b/basic-cwe-examples/.frama-c/cwe190-precise.eva/nonterm.log similarity index 100% rename from basic-cwe-examples/cwe190-precise.eva/nonterm.log rename to basic-cwe-examples/.frama-c/cwe190-precise.eva/nonterm.log diff --git a/basic-cwe-examples/cwe190-precise.eva/warnings.log b/basic-cwe-examples/.frama-c/cwe190-precise.eva/warnings.log similarity index 100% rename from basic-cwe-examples/cwe190-precise.eva/warnings.log rename to basic-cwe-examples/.frama-c/cwe190-precise.eva/warnings.log diff --git a/basic-cwe-examples/cwe190-precise.parse/framac.ast b/basic-cwe-examples/.frama-c/cwe190-precise.parse/framac.ast similarity index 100% rename from basic-cwe-examples/cwe190-precise.parse/framac.ast rename to basic-cwe-examples/.frama-c/cwe190-precise.parse/framac.ast diff --git a/basic-cwe-examples/cwe190-precise.parse/metrics.log b/basic-cwe-examples/.frama-c/cwe190-precise.parse/metrics.log similarity index 100% rename from basic-cwe-examples/cwe190-precise.parse/metrics.log rename to basic-cwe-examples/.frama-c/cwe190-precise.parse/metrics.log diff --git a/basic-cwe-examples/cwe190-precise.parse/warnings.log b/basic-cwe-examples/.frama-c/cwe190-precise.parse/warnings.log similarity index 100% rename from basic-cwe-examples/cwe190-precise.parse/warnings.log rename to basic-cwe-examples/.frama-c/cwe190-precise.parse/warnings.log diff --git a/basic-cwe-examples/cwe190.eva/alarms.csv b/basic-cwe-examples/.frama-c/cwe190.eva/alarms.csv similarity index 100% rename from basic-cwe-examples/cwe190.eva/alarms.csv rename to basic-cwe-examples/.frama-c/cwe190.eva/alarms.csv diff --git a/basic-cwe-examples/cwe190.eva/metrics.log b/basic-cwe-examples/.frama-c/cwe190.eva/metrics.log similarity index 100% rename from basic-cwe-examples/cwe190.eva/metrics.log rename to basic-cwe-examples/.frama-c/cwe190.eva/metrics.log diff --git a/basic-cwe-examples/cwe190.eva/nonterm.log b/basic-cwe-examples/.frama-c/cwe190.eva/nonterm.log similarity index 100% rename from basic-cwe-examples/cwe190.eva/nonterm.log rename to basic-cwe-examples/.frama-c/cwe190.eva/nonterm.log diff --git a/basic-cwe-examples/cwe190.eva/warnings.log b/basic-cwe-examples/.frama-c/cwe190.eva/warnings.log similarity index 100% rename from basic-cwe-examples/cwe190.eva/warnings.log rename to basic-cwe-examples/.frama-c/cwe190.eva/warnings.log diff --git a/basic-cwe-examples/cwe190.parse/framac.ast b/basic-cwe-examples/.frama-c/cwe190.parse/framac.ast similarity index 100% rename from basic-cwe-examples/cwe190.parse/framac.ast rename to basic-cwe-examples/.frama-c/cwe190.parse/framac.ast diff --git a/basic-cwe-examples/cwe190.parse/metrics.log b/basic-cwe-examples/.frama-c/cwe190.parse/metrics.log similarity index 100% rename from basic-cwe-examples/cwe190.parse/metrics.log rename to basic-cwe-examples/.frama-c/cwe190.parse/metrics.log diff --git a/basic-cwe-examples/cwe190.parse/warnings.log b/basic-cwe-examples/.frama-c/cwe190.parse/warnings.log similarity index 100% rename from basic-cwe-examples/cwe190.parse/warnings.log rename to basic-cwe-examples/.frama-c/cwe190.parse/warnings.log diff --git a/basic-cwe-examples/cwe20-precise.eva/alarms.csv b/basic-cwe-examples/.frama-c/cwe20-precise.eva/alarms.csv similarity index 100% rename from basic-cwe-examples/cwe20-precise.eva/alarms.csv rename to basic-cwe-examples/.frama-c/cwe20-precise.eva/alarms.csv diff --git a/basic-cwe-examples/cwe20-precise.eva/metrics.log b/basic-cwe-examples/.frama-c/cwe20-precise.eva/metrics.log similarity index 100% rename from basic-cwe-examples/cwe20-precise.eva/metrics.log rename to basic-cwe-examples/.frama-c/cwe20-precise.eva/metrics.log diff --git a/basic-cwe-examples/cwe20-precise.eva/nonterm.log b/basic-cwe-examples/.frama-c/cwe20-precise.eva/nonterm.log similarity index 100% rename from basic-cwe-examples/cwe20-precise.eva/nonterm.log rename to basic-cwe-examples/.frama-c/cwe20-precise.eva/nonterm.log diff --git a/basic-cwe-examples/cwe20-precise.eva/warnings.log b/basic-cwe-examples/.frama-c/cwe20-precise.eva/warnings.log similarity index 100% rename from basic-cwe-examples/cwe20-precise.eva/warnings.log rename to basic-cwe-examples/.frama-c/cwe20-precise.eva/warnings.log diff --git a/basic-cwe-examples/cwe20-precise.parse/framac.ast b/basic-cwe-examples/.frama-c/cwe20-precise.parse/framac.ast similarity index 100% rename from basic-cwe-examples/cwe20-precise.parse/framac.ast rename to basic-cwe-examples/.frama-c/cwe20-precise.parse/framac.ast diff --git a/basic-cwe-examples/cwe20-precise.parse/metrics.log b/basic-cwe-examples/.frama-c/cwe20-precise.parse/metrics.log similarity index 100% rename from basic-cwe-examples/cwe20-precise.parse/metrics.log rename to basic-cwe-examples/.frama-c/cwe20-precise.parse/metrics.log diff --git a/basic-cwe-examples/cwe20-precise.parse/warnings.log b/basic-cwe-examples/.frama-c/cwe20-precise.parse/warnings.log similarity index 100% rename from basic-cwe-examples/cwe20-precise.parse/warnings.log rename to basic-cwe-examples/.frama-c/cwe20-precise.parse/warnings.log diff --git a/basic-cwe-examples/cwe20.eva/alarms.csv b/basic-cwe-examples/.frama-c/cwe20.eva/alarms.csv similarity index 100% rename from basic-cwe-examples/cwe20.eva/alarms.csv rename to basic-cwe-examples/.frama-c/cwe20.eva/alarms.csv diff --git a/basic-cwe-examples/cwe20.eva/metrics.log b/basic-cwe-examples/.frama-c/cwe20.eva/metrics.log similarity index 100% rename from basic-cwe-examples/cwe20.eva/metrics.log rename to basic-cwe-examples/.frama-c/cwe20.eva/metrics.log diff --git a/basic-cwe-examples/cwe20.eva/nonterm.log b/basic-cwe-examples/.frama-c/cwe20.eva/nonterm.log similarity index 100% rename from basic-cwe-examples/cwe20.eva/nonterm.log rename to basic-cwe-examples/.frama-c/cwe20.eva/nonterm.log diff --git a/basic-cwe-examples/cwe20.eva/warnings.log b/basic-cwe-examples/.frama-c/cwe20.eva/warnings.log similarity index 100% rename from basic-cwe-examples/cwe20.eva/warnings.log rename to basic-cwe-examples/.frama-c/cwe20.eva/warnings.log diff --git a/basic-cwe-examples/cwe20.parse/framac.ast b/basic-cwe-examples/.frama-c/cwe20.parse/framac.ast similarity index 100% rename from basic-cwe-examples/cwe20.parse/framac.ast rename to basic-cwe-examples/.frama-c/cwe20.parse/framac.ast diff --git a/basic-cwe-examples/cwe20.parse/metrics.log b/basic-cwe-examples/.frama-c/cwe20.parse/metrics.log similarity index 100% rename from basic-cwe-examples/cwe20.parse/metrics.log rename to basic-cwe-examples/.frama-c/cwe20.parse/metrics.log diff --git a/basic-cwe-examples/cwe20.parse/warnings.log b/basic-cwe-examples/.frama-c/cwe20.parse/warnings.log similarity index 100% rename from basic-cwe-examples/cwe20.parse/warnings.log rename to basic-cwe-examples/.frama-c/cwe20.parse/warnings.log diff --git a/basic-cwe-examples/cwe416-precise.eva/alarms.csv b/basic-cwe-examples/.frama-c/cwe416-precise.eva/alarms.csv similarity index 100% rename from basic-cwe-examples/cwe416-precise.eva/alarms.csv rename to basic-cwe-examples/.frama-c/cwe416-precise.eva/alarms.csv diff --git a/basic-cwe-examples/cwe416-precise.eva/metrics.log b/basic-cwe-examples/.frama-c/cwe416-precise.eva/metrics.log similarity index 100% rename from basic-cwe-examples/cwe416-precise.eva/metrics.log rename to basic-cwe-examples/.frama-c/cwe416-precise.eva/metrics.log diff --git a/basic-cwe-examples/cwe416-precise.eva/nonterm.log b/basic-cwe-examples/.frama-c/cwe416-precise.eva/nonterm.log similarity index 100% rename from basic-cwe-examples/cwe416-precise.eva/nonterm.log rename to basic-cwe-examples/.frama-c/cwe416-precise.eva/nonterm.log diff --git a/basic-cwe-examples/cwe416-precise.eva/warnings.log b/basic-cwe-examples/.frama-c/cwe416-precise.eva/warnings.log similarity index 100% rename from basic-cwe-examples/cwe416-precise.eva/warnings.log rename to basic-cwe-examples/.frama-c/cwe416-precise.eva/warnings.log diff --git a/basic-cwe-examples/cwe416-precise.parse/framac.ast b/basic-cwe-examples/.frama-c/cwe416-precise.parse/framac.ast similarity index 100% rename from basic-cwe-examples/cwe416-precise.parse/framac.ast rename to basic-cwe-examples/.frama-c/cwe416-precise.parse/framac.ast diff --git a/basic-cwe-examples/cwe416-precise.parse/metrics.log b/basic-cwe-examples/.frama-c/cwe416-precise.parse/metrics.log similarity index 100% rename from basic-cwe-examples/cwe416-precise.parse/metrics.log rename to basic-cwe-examples/.frama-c/cwe416-precise.parse/metrics.log diff --git a/basic-cwe-examples/cwe416-precise.parse/warnings.log b/basic-cwe-examples/.frama-c/cwe416-precise.parse/warnings.log similarity index 100% rename from basic-cwe-examples/cwe416-precise.parse/warnings.log rename to basic-cwe-examples/.frama-c/cwe416-precise.parse/warnings.log diff --git a/basic-cwe-examples/cwe416.eva/alarms.csv b/basic-cwe-examples/.frama-c/cwe416.eva/alarms.csv similarity index 100% rename from basic-cwe-examples/cwe416.eva/alarms.csv rename to basic-cwe-examples/.frama-c/cwe416.eva/alarms.csv diff --git a/basic-cwe-examples/cwe416.eva/metrics.log b/basic-cwe-examples/.frama-c/cwe416.eva/metrics.log similarity index 100% rename from basic-cwe-examples/cwe416.eva/metrics.log rename to basic-cwe-examples/.frama-c/cwe416.eva/metrics.log diff --git a/basic-cwe-examples/cwe416.eva/nonterm.log b/basic-cwe-examples/.frama-c/cwe416.eva/nonterm.log similarity index 100% rename from basic-cwe-examples/cwe416.eva/nonterm.log rename to basic-cwe-examples/.frama-c/cwe416.eva/nonterm.log diff --git a/basic-cwe-examples/cwe416.eva/warnings.log b/basic-cwe-examples/.frama-c/cwe416.eva/warnings.log similarity index 100% rename from basic-cwe-examples/cwe416.eva/warnings.log rename to basic-cwe-examples/.frama-c/cwe416.eva/warnings.log diff --git a/basic-cwe-examples/cwe416.parse/framac.ast b/basic-cwe-examples/.frama-c/cwe416.parse/framac.ast similarity index 100% rename from basic-cwe-examples/cwe416.parse/framac.ast rename to basic-cwe-examples/.frama-c/cwe416.parse/framac.ast diff --git a/basic-cwe-examples/cwe416.parse/metrics.log b/basic-cwe-examples/.frama-c/cwe416.parse/metrics.log similarity index 100% rename from basic-cwe-examples/cwe416.parse/metrics.log rename to basic-cwe-examples/.frama-c/cwe416.parse/metrics.log diff --git a/basic-cwe-examples/cwe416.parse/warnings.log b/basic-cwe-examples/.frama-c/cwe416.parse/warnings.log similarity index 100% rename from basic-cwe-examples/cwe416.parse/warnings.log rename to basic-cwe-examples/.frama-c/cwe416.parse/warnings.log diff --git a/basic-cwe-examples/cwe787-precise.eva/alarms.csv b/basic-cwe-examples/.frama-c/cwe787-precise.eva/alarms.csv similarity index 100% rename from basic-cwe-examples/cwe787-precise.eva/alarms.csv rename to basic-cwe-examples/.frama-c/cwe787-precise.eva/alarms.csv diff --git a/basic-cwe-examples/cwe787-precise.eva/metrics.log b/basic-cwe-examples/.frama-c/cwe787-precise.eva/metrics.log similarity index 100% rename from basic-cwe-examples/cwe787-precise.eva/metrics.log rename to basic-cwe-examples/.frama-c/cwe787-precise.eva/metrics.log diff --git a/basic-cwe-examples/cwe787-precise.eva/nonterm.log b/basic-cwe-examples/.frama-c/cwe787-precise.eva/nonterm.log similarity index 100% rename from basic-cwe-examples/cwe787-precise.eva/nonterm.log rename to basic-cwe-examples/.frama-c/cwe787-precise.eva/nonterm.log diff --git a/basic-cwe-examples/cwe787-precise.eva/warnings.log b/basic-cwe-examples/.frama-c/cwe787-precise.eva/warnings.log similarity index 100% rename from basic-cwe-examples/cwe787-precise.eva/warnings.log rename to basic-cwe-examples/.frama-c/cwe787-precise.eva/warnings.log diff --git a/basic-cwe-examples/cwe787-precise.parse/framac.ast b/basic-cwe-examples/.frama-c/cwe787-precise.parse/framac.ast similarity index 100% rename from basic-cwe-examples/cwe787-precise.parse/framac.ast rename to basic-cwe-examples/.frama-c/cwe787-precise.parse/framac.ast diff --git a/basic-cwe-examples/cwe787-precise.parse/metrics.log b/basic-cwe-examples/.frama-c/cwe787-precise.parse/metrics.log similarity index 100% rename from basic-cwe-examples/cwe787-precise.parse/metrics.log rename to basic-cwe-examples/.frama-c/cwe787-precise.parse/metrics.log diff --git a/basic-cwe-examples/cwe787-precise.parse/warnings.log b/basic-cwe-examples/.frama-c/cwe787-precise.parse/warnings.log similarity index 100% rename from basic-cwe-examples/cwe787-precise.parse/warnings.log rename to basic-cwe-examples/.frama-c/cwe787-precise.parse/warnings.log diff --git a/basic-cwe-examples/cwe787.eva/alarms.csv b/basic-cwe-examples/.frama-c/cwe787.eva/alarms.csv similarity index 100% rename from basic-cwe-examples/cwe787.eva/alarms.csv rename to basic-cwe-examples/.frama-c/cwe787.eva/alarms.csv diff --git a/basic-cwe-examples/cwe787.eva/metrics.log b/basic-cwe-examples/.frama-c/cwe787.eva/metrics.log similarity index 100% rename from basic-cwe-examples/cwe787.eva/metrics.log rename to basic-cwe-examples/.frama-c/cwe787.eva/metrics.log diff --git a/basic-cwe-examples/cwe787.eva/nonterm.log b/basic-cwe-examples/.frama-c/cwe787.eva/nonterm.log similarity index 100% rename from basic-cwe-examples/cwe787.eva/nonterm.log rename to basic-cwe-examples/.frama-c/cwe787.eva/nonterm.log diff --git a/basic-cwe-examples/cwe787.eva/warnings.log b/basic-cwe-examples/.frama-c/cwe787.eva/warnings.log similarity index 100% rename from basic-cwe-examples/cwe787.eva/warnings.log rename to basic-cwe-examples/.frama-c/cwe787.eva/warnings.log diff --git a/basic-cwe-examples/cwe787.parse/framac.ast b/basic-cwe-examples/.frama-c/cwe787.parse/framac.ast similarity index 100% rename from basic-cwe-examples/cwe787.parse/framac.ast rename to basic-cwe-examples/.frama-c/cwe787.parse/framac.ast diff --git a/basic-cwe-examples/cwe787.parse/metrics.log b/basic-cwe-examples/.frama-c/cwe787.parse/metrics.log similarity index 100% rename from basic-cwe-examples/cwe787.parse/metrics.log rename to basic-cwe-examples/.frama-c/cwe787.parse/metrics.log diff --git a/basic-cwe-examples/cwe787.parse/warnings.log b/basic-cwe-examples/.frama-c/cwe787.parse/warnings.log similarity index 100% rename from basic-cwe-examples/cwe787.parse/warnings.log rename to basic-cwe-examples/.frama-c/cwe787.parse/warnings.log diff --git a/basic-cwe-examples/.frama-c/path.mk b/basic-cwe-examples/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/basic-cwe-examples/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/basic-cwe-examples/GNUmakefile b/basic-cwe-examples/GNUmakefile deleted file mode 100644 index 75aa86ceb1cc0401c56ff0cd4a3ff0bd50ec5b2b..0000000000000000000000000000000000000000 --- a/basic-cwe-examples/GNUmakefile +++ /dev/null @@ -1,75 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED -# The flags below are only suggestions to use with Eva, and can be removed - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += \ - -kernel-warn-key annot:missing-spec=abort \ - -kernel-warn-key typing:implicit-function-declaration=abort \ - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -eva-warn-key builtins:missing-spec=abort \ - -TARGETS = cwe20.eva cwe119.eva cwe190.eva cwe416.eva cwe787.eva - -PRECISE_TARGETS = $(subst .eva,-precise.eva,$(TARGETS)) - -# Default target -all: $(TARGETS) $(PRECISE_TARGETS) -help: - @echo "targets: $(TARGETS) $(PRECISE_TARGETS)" -display-targets: - @echo "$(TARGETS) $(PRECISE_TARGETS)" - -cwe20.parse: cwe20.c -cwe119.parse: cwe119.c -cwe190.parse: cwe190.c -cwe416.parse: cwe416.c -cwe787.parse: cwe787.c - -cwe20-precise.parse: cwe20.c -cwe119-precise.parse: cwe119.c -cwe190-precise.parse: cwe190.c -cwe416-precise.parse: cwe416.c -cwe787-precise.parse: cwe787.c - -cwe20-precise.eva: EVAFLAGS += -cwe119-precise.eva: EVAFLAGS += -eva-precision 1 -cwe190-precise.eva: EVAFLAGS += -warn-unsigned-overflow -eva-no-alloc-returns-null -cwe416-precise.eva: EVAFLAGS += -eva-precision 1 -cwe787-precise.eva: EVAFLAGS += -eva-precision 2 -eva-no-alloc-returns-null - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common diff --git a/basic-cwe-examples/frama-c-path.mk b/basic-cwe-examples/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/basic-cwe-examples/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/cerberus/.frama-c/GNUmakefile b/cerberus/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..c281c4c1a2eb603b7131887d667dd3f94c0604e1 --- /dev/null +++ b/cerberus/.frama-c/GNUmakefile @@ -0,0 +1,439 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_32 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + -includefc_stubs.h + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -kernel-warn-key annot:missing-spec=abort \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + -no-autoload-plugins -load-module eva,from,inout,metrics,nonterm,report,scope,variadic \ + +## Eva-specific flags +EVAFLAGS += \ + -eva-warn-key builtins:missing-spec=abort \ + -slevel 6000 \ + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +## Analysis targets (suffixed with .eva) +TARGETS := \ +besson_blazy_wilke_6_2.eva \ +besson_blazy_wilke_bitfields_1.eva \ +besson_blazy_wilke_bitfields_1u.eva \ +besson_blazy_wilkie_Fig_1_adapted.eva \ +besson_blazy_wilkie_Fig_1.eva \ +besson_blazy_wilkie_Fig_2.eva \ +cast_struct_and_first_member_1.eva \ +cast_struct_inter_member_1.eva \ +cast_struct_isomorphic.eva \ +cast_struct_same_prefix.eva \ +cast_union_and_member_1.eva \ +cheri_01_deconst.eva \ +cheri_02_container.eva \ +cheri_03_ii.eva \ +cheri_03_ii_char.eva \ +cheri_04a_int_uintptr_t.eva \ +cheri_04b_int_unsigned_long.eva \ +cheri_05_ia.eva \ +cheri_06_mask.eva \ +cheri_07_wide.eva \ +cheri_08_last_word.eva \ +compcertMMv2-1.eva \ +compcertMMv2-2.eva \ +compcertMMv2-3.eva \ +compcertMMv2-4.eva \ +compcertMMv2-5.eva \ +compcertTSO-1.eva \ +compcertTSO-2.eva \ +effective_type_10.eva \ +effective_type_1.eva \ +effective_type_2.eva \ +effective_type_5.eva \ +effective_type_6.eva \ +effective_type_7.eva \ +effective_type_8.eva \ +effective_type_9.eva \ +frama-c-2013-03-13-2.eva \ +frama-c-2013-03-13-3.eva \ +frama-c-2013-03-13-3-uc.eva \ +khmgzv-1.eva \ +khmgzv-2.eva \ +klw-itp14-1.eva \ +klw-itp14-2.eva \ +krebbers_biener_1.eva \ +null_pointer_1.eva \ +null_pointer_2.eva \ +null_pointer_3.eva \ +null_pointer_4.eva \ +padding_10.eva \ +padding_struct_copy_1.eva \ +padding_struct_copy_2.eva \ +padding_struct_copy_3.eva \ +padding_struct_copy_of_representation_bytes.eva \ +padding_struct_members_copy.eva \ +padding_subunion_1.eva \ +padding_subunion_2.eva \ +padding_unspecified_value_1.eva \ +padding_unspecified_value_2.eva \ +padding_unspecified_value_3.eva \ +padding_unspecified_value_4.eva \ +padding_unspecified_value_5.eva \ +padding_unspecified_value_6.eva \ +padding_unspecified_value_7.eva \ +padding_unspecified_value_8.eva \ +pointer_add_wrap_1.eva \ +pointer_add_wrap_2.eva \ +pointer_arith_algebraic_properties_1_global.eva \ +pointer_arith_algebraic_properties_2_auto.eva \ +pointer_arith_algebraic_properties_2_global.eva \ +pointer_arith_algebraic_properties_3_auto.eva \ +pointer_arith_algebraic_properties_3_global.eva \ +pointer_comparison_7b.eva \ +pointer_comparison_7c.eva \ +pointer_comparison_eq_1_auto.eva \ +pointer_comparison_eq_1_global.eva \ +pointer_comparison_eq_2_auto.eva \ +pointer_comparison_eq_2_global.eva \ +pointer_comparison_eq_zombie_1.eva \ +pointer_comparison_eq_zombie_2.eva \ +pointer_comparison_rel_1_auto.eva \ +pointer_comparison_rel_1_global.eva \ +pointer_comparison_rel_different_type_members.eva \ +pointer_comparison_rel_substruct.eva \ +pointer_copy_memcpy.eva \ +pointer_copy_user_ctrlflow_bitwise.eva \ +pointer_copy_user_ctrlflow_bytewise_abbrev.eva \ +pointer_copy_user_ctrlflow_bytewise.eva \ +pointer_copy_user_dataflow_direct_bitwise.eva \ +pointer_copy_user_dataflow_direct_bytewise.eva \ +pointer_copy_user_dataflow_indirect_bytewise.eva \ +pointer_from_concrete_address_1.eva \ +pointer_from_concrete_address_2.eva \ +pointer_offset_constant_8_malloc.eva \ +pointer_offset_from_subtraction_1_auto.eva \ +pointer_offset_from_subtraction_1_global.eva \ +pointer_offset_from_subtraction_1_malloc.eva \ +pointer_offset_from_subtraction_2_auto.eva \ +pointer_offset_from_subtraction_2_global.eva \ +pointer_offset_xor_auto.eva \ +pointer_offset_xor_global.eva \ +pointer_stability_1.eva \ +pointer_stability_2.eva \ +provenance_basic_auto_xy.eva \ +provenance_basic_auto_yx.eva \ +provenance_basic_global_xy.eva \ +provenance_basic_global_yx.eva \ +provenance_basic_malloc_offset+12.eva \ +provenance_basic_malloc_offset+2.eva \ +provenance_basic_malloc_offset-4.eva \ +provenance_basic_malloc_offset+4.eva \ +provenance_basic_malloc_offset+8.eva \ +provenance_basic_mixed_auto.eva \ +provenance_basic_mixed_auto_offset-4.eva \ +provenance_basic_mixed_auto_offset+4.eva \ +provenance_basic_mixed_auto_offset-64.eva \ +provenance_basic_mixed_global_offset-4.eva \ +provenance_basic_mixed_global_offset+4.eva \ +provenance_basic_mixed_global_offset-64.eva \ +provenance_basic_using_intptr_t_auto_xy.eva \ +provenance_basic_using_intptr_t_auto_yx.eva \ +provenance_basic_using_intptr_t_auto_yx_offset-16.eva \ +provenance_basic_using_intptr_t_global_xy.eva \ +provenance_basic_using_intptr_t_global_xy_offset64.eva \ +provenance_basic_using_intptr_t_global_yx.eva \ +provenance_basic_using_intptr_t_malloc_offset_-16.eva \ +provenance_basic_using_intptr_t_malloc_offset_8.eva \ +provenance_equality_auto_cu_yx_a.eva \ +provenance_equality_auto_cu_yx_b.eva \ +provenance_equality_auto_fn_yx.eva \ +provenance_equality_auto_yx.eva \ +provenance_equality_global_cu_xy_a.eva \ +provenance_equality_global_cu_xy_b.eva \ +provenance_equality_global_cu_yx_a.eva \ +provenance_equality_global_cu_yx_b.eva \ +provenance_equality_global_fn_xy.eva \ +provenance_equality_global_fn_yx.eva \ +provenance_equality_global_xy.eva \ +provenance_equality_global_yx.eva \ +provenance_equality_uintptr_t_global_xy.eva \ +provenance_equality_uintptr_t_global_yx.eva \ +provenance_multiple_1_global.eva \ +provenance_multiple_2_global.eva \ +provenance_multiple_3_global_yx.eva \ +provenance_multiple_4_global_yx.eva \ +provenance_multiple_5_auto.eva \ +provenance_multiple_5_global.eva \ +provenance_roundtrip_via_intptr_t.eva \ +provenance_roundtrip_via_unsigned_long.eva \ +provenance_tag_bits_via_uintptr_t_1.eva \ +provenance_tag_bits_via_uintptr_t_1_no_assert.eva \ +provenance_union_punning_1_global.eva \ +provenance_union_punning_2_auto_xy.eva \ +provenance_union_punning_2_auto_yx.eva \ +provenance_union_punning_2_global_xy.eva \ +provenance_union_punning_2_global_yx.eva \ +provenance_via_io_auto.eva \ +provenance_via_io_bytewise_global.eva \ +provenance_via_io_global.eva \ +provenance_via_io_percentp_global.eva \ +provenance_via_io_uintptr_t_global.eva \ +read_union_same_prefix_visible.eva \ +read_via_invalid_1.eva \ +signalling_nan_1.eva \ +struct_initialise_members.eva \ +struct_inter_submember_1.eva \ +tkn-1.eva \ +tkn-2.eva \ +tkn-3.eva \ +tkn-3-commented.eva \ +trap_representation_1.eva \ +trap_representation_2.eva \ +trap_representation_3.eva \ +ubc_addr_null_1.eva \ +union_punning_gcc_1.eva \ +union_punning_gcc_2.eva \ +union_punning_gcc_3.eva \ +unspecified_value_control_flow_choice.eva \ +unspecified_value_daemonic_1.eva \ +unspecified_value_library_call_argument.eva \ +unspecified_value_representation_bytes_1.eva \ +unspecified_value_representation_bytes_2.eva \ +unspecified_value_representation_bytes_3.eva \ +unspecified_value_representation_bytes_4.eva \ +unspecified_value_stability.eva \ +unspecified_value_strictness_and_1.eva \ +unspecified_value_strictness_int.eva \ +unspecified_value_strictness_mod_1.eva \ +unspecified_value_strictness_mod_2.eva \ +unspecified_value_strictness_unsigned_char.eva \ +unspecified_value_struct_copy.eva \ +unspecified_value_union_1.eva \ +write_union_same_prefix_visible.eva \ + +#TODO: support stdalign.h and _Alignas for the following targets: +#TARGETS+=effective_type_3 effective_type_4 + +# Syntactically invalid and non-obvious to fix +#use_struct_isomorphic.parse: use_struct_isomorphic.c + +# Redefines memcpy +# compcertMMv2-6.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +besson_blazy_wilke_6_2.parse: ../besson_blazy_wilke_6_2.c +besson_blazy_wilke_bitfields_1.parse: ../besson_blazy_wilke_bitfields_1.c +besson_blazy_wilke_bitfields_1u.parse: ../besson_blazy_wilke_bitfields_1u.c +besson_blazy_wilkie_Fig_1_adapted.parse: ../besson_blazy_wilkie_Fig_1_adapted.c +besson_blazy_wilkie_Fig_1.parse: ../besson_blazy_wilkie_Fig_1.c +besson_blazy_wilkie_Fig_2.parse: ../besson_blazy_wilkie_Fig_2.c +cast_struct_and_first_member_1.parse: ../cast_struct_and_first_member_1.c +cast_struct_inter_member_1.parse: ../cast_struct_inter_member_1.c +cast_struct_isomorphic.parse: ../cast_struct_isomorphic.c +cast_struct_same_prefix.parse: ../cast_struct_same_prefix.c +cast_union_and_member_1.parse: ../cast_union_and_member_1.c +cheri_01_deconst.parse: ../cheri_01_deconst.c +cheri_02_container.parse: ../cheri_02_container.c +cheri_03_ii.parse: ../cheri_03_ii.c +cheri_03_ii_char.parse: ../cheri_03_ii_char.c +cheri_04a_int_uintptr_t.parse: ../cheri_04a_int_uintptr_t.c +cheri_04b_int_unsigned_long.parse: ../cheri_04b_int_unsigned_long.c +cheri_05_ia.parse: ../cheri_05_ia.c +cheri_06_mask.parse: ../cheri_06_mask.c +cheri_07_wide.parse: ../cheri_07_wide.c +cheri_08_last_word.parse: ../cheri_08_last_word.c +compcertMMv2-1.parse: ../compcertMMv2-1.c +compcertMMv2-2.parse: ../compcertMMv2-2.c +compcertMMv2-3.parse: ../compcertMMv2-3.c +compcertMMv2-4.parse: ../compcertMMv2-4.c +compcertMMv2-5.parse: ../compcertMMv2-5.c +compcertTSO-1.parse: ../compcertTSO-1.c +compcertTSO-2.parse: ../compcertTSO-2.c +effective_type_10.parse: ../effective_type_10.c +effective_type_1.parse: ../effective_type_1.c +effective_type_2.parse: ../effective_type_2.c +effective_type_3.parse: ../effective_type_3.c +effective_type_4.parse: ../effective_type_4.c +effective_type_5.parse: ../effective_type_5.c +effective_type_6.parse: ../effective_type_6.c +effective_type_7.parse: ../effective_type_7.c +effective_type_8.parse: ../effective_type_8.c +effective_type_9.parse: ../effective_type_9.c +frama-c-2013-03-13-2.parse: ../frama-c-2013-03-13-2.c +frama-c-2013-03-13-3.parse: ../frama-c-2013-03-13-3.c +frama-c-2013-03-13-3-uc.parse: ../frama-c-2013-03-13-3-uc.c +khmgzv-1.parse: ../khmgzv-1.c +khmgzv-2.parse: ../khmgzv-2.c +klw-itp14-1.parse: ../klw-itp14-1.c +klw-itp14-2.parse: ../klw-itp14-2.c +krebbers_biener_1.parse: ../krebbers_biener_1.c +null_pointer_1.parse: ../null_pointer_1.c +null_pointer_2.parse: ../null_pointer_2.c +null_pointer_3.parse: ../null_pointer_3.c +null_pointer_4.parse: ../null_pointer_4.c +padding_10.parse: ../padding_10.c +padding_struct_copy_1.parse: ../padding_struct_copy_1.c +padding_struct_copy_2.parse: ../padding_struct_copy_2.c +padding_struct_copy_3.parse: ../padding_struct_copy_3.c +padding_struct_copy_of_representation_bytes.parse: ../padding_struct_copy_of_representation_bytes.c +padding_struct_members_copy.parse: ../padding_struct_members_copy.c +padding_subunion_1.parse: ../padding_subunion_1.c +padding_subunion_2.parse: ../padding_subunion_2.c +padding_unspecified_value_1.parse: ../padding_unspecified_value_1.c +padding_unspecified_value_2.parse: ../padding_unspecified_value_2.c +padding_unspecified_value_3.parse: ../padding_unspecified_value_3.c +padding_unspecified_value_4.parse: ../padding_unspecified_value_4.c +padding_unspecified_value_5.parse: ../padding_unspecified_value_5.c +padding_unspecified_value_6.parse: ../padding_unspecified_value_6.c +padding_unspecified_value_7.parse: ../padding_unspecified_value_7.c +padding_unspecified_value_8.parse: ../padding_unspecified_value_8.c +pointer_add_wrap_1.parse: ../pointer_add_wrap_1.c +pointer_add_wrap_2.parse: ../pointer_add_wrap_2.c +pointer_arith_algebraic_properties_1_global.parse: ../pointer_arith_algebraic_properties_1_global.c +pointer_arith_algebraic_properties_2_auto.parse: ../pointer_arith_algebraic_properties_2_auto.c +pointer_arith_algebraic_properties_2_global.parse: ../pointer_arith_algebraic_properties_2_global.c +pointer_arith_algebraic_properties_3_auto.parse: ../pointer_arith_algebraic_properties_3_auto.c +pointer_arith_algebraic_properties_3_global.parse: ../pointer_arith_algebraic_properties_3_global.c +pointer_comparison_7b.parse: ../pointer_comparison_7b.c +pointer_comparison_7c.parse: ../pointer_comparison_7c.c +pointer_comparison_eq_1_auto.parse: ../pointer_comparison_eq_1_auto.c +pointer_comparison_eq_1_global.parse: ../pointer_comparison_eq_1_global.c +pointer_comparison_eq_2_auto.parse: ../pointer_comparison_eq_2_auto.c +pointer_comparison_eq_2_global.parse: ../pointer_comparison_eq_2_global.c +pointer_comparison_eq_zombie_1.parse: ../pointer_comparison_eq_zombie_1.c +pointer_comparison_eq_zombie_2.parse: ../pointer_comparison_eq_zombie_2.c +pointer_comparison_rel_1_auto.parse: ../pointer_comparison_rel_1_auto.c +pointer_comparison_rel_1_global.parse: ../pointer_comparison_rel_1_global.c +pointer_comparison_rel_different_type_members.parse: ../pointer_comparison_rel_different_type_members.c +pointer_comparison_rel_substruct.parse: ../pointer_comparison_rel_substruct.c +pointer_copy_memcpy.parse: ../pointer_copy_memcpy.c +pointer_copy_user_ctrlflow_bitwise.parse: ../pointer_copy_user_ctrlflow_bitwise.c +pointer_copy_user_ctrlflow_bytewise_abbrev.parse: ../pointer_copy_user_ctrlflow_bytewise_abbrev.c +pointer_copy_user_ctrlflow_bytewise.parse: ../pointer_copy_user_ctrlflow_bytewise.c +pointer_copy_user_dataflow_direct_bitwise.parse: ../pointer_copy_user_dataflow_direct_bitwise.c +pointer_copy_user_dataflow_direct_bytewise.parse: ../pointer_copy_user_dataflow_direct_bytewise.c +pointer_copy_user_dataflow_indirect_bytewise.parse: ../pointer_copy_user_dataflow_indirect_bytewise.c +pointer_from_concrete_address_1.parse: ../pointer_from_concrete_address_1.c +pointer_from_concrete_address_2.parse: ../pointer_from_concrete_address_2.c +pointer_offset_constant_8_malloc.parse: ../pointer_offset_constant_8_malloc.c +pointer_offset_from_subtraction_1_auto.parse: ../pointer_offset_from_subtraction_1_auto.c +pointer_offset_from_subtraction_1_global.parse: ../pointer_offset_from_subtraction_1_global.c +pointer_offset_from_subtraction_1_malloc.parse: ../pointer_offset_from_subtraction_1_malloc.c +pointer_offset_from_subtraction_2_auto.parse: ../pointer_offset_from_subtraction_2_auto.c +pointer_offset_from_subtraction_2_global.parse: ../pointer_offset_from_subtraction_2_global.c +pointer_offset_xor_auto.parse: ../pointer_offset_xor_auto.c +pointer_offset_xor_global.parse: ../pointer_offset_xor_global.c +pointer_stability_1.parse: ../pointer_stability_1.c +pointer_stability_2.parse: ../pointer_stability_2.c +provenance_basic_auto_xy.parse: ../provenance_basic_auto_xy.c +provenance_basic_auto_yx.parse: ../provenance_basic_auto_yx.c +provenance_basic_global_xy.parse: ../provenance_basic_global_xy.c +provenance_basic_global_yx.parse: ../provenance_basic_global_yx.c +provenance_basic_malloc_offset+12.parse: ../provenance_basic_malloc_offset+12.c +provenance_basic_malloc_offset+2.parse: ../provenance_basic_malloc_offset+2.c +provenance_basic_malloc_offset-4.parse: ../provenance_basic_malloc_offset-4.c +provenance_basic_malloc_offset+4.parse: ../provenance_basic_malloc_offset+4.c +provenance_basic_malloc_offset+8.parse: ../provenance_basic_malloc_offset+8.c +provenance_basic_mixed_auto.parse: ../provenance_basic_mixed_auto.c +provenance_basic_mixed_auto_offset-4.parse: ../provenance_basic_mixed_auto_offset-4.c +provenance_basic_mixed_auto_offset+4.parse: ../provenance_basic_mixed_auto_offset+4.c +provenance_basic_mixed_auto_offset-64.parse: ../provenance_basic_mixed_auto_offset-64.c +provenance_basic_mixed_global_offset-4.parse: ../provenance_basic_mixed_global_offset-4.c +provenance_basic_mixed_global_offset+4.parse: ../provenance_basic_mixed_global_offset+4.c +provenance_basic_mixed_global_offset-64.parse: ../provenance_basic_mixed_global_offset-64.c +provenance_basic_using_intptr_t_auto_xy.parse: ../provenance_basic_using_intptr_t_auto_xy.c +provenance_basic_using_intptr_t_auto_yx.parse: ../provenance_basic_using_intptr_t_auto_yx.c +provenance_basic_using_intptr_t_auto_yx_offset-16.parse: ../provenance_basic_using_intptr_t_auto_yx_offset-16.c +provenance_basic_using_intptr_t_global_xy.parse: ../provenance_basic_using_intptr_t_global_xy.c +provenance_basic_using_intptr_t_global_xy_offset64.parse: ../provenance_basic_using_intptr_t_global_xy_offset64.c +provenance_basic_using_intptr_t_global_yx.parse: ../provenance_basic_using_intptr_t_global_yx.c +provenance_basic_using_intptr_t_malloc_offset_-16.parse: ../provenance_basic_using_intptr_t_malloc_offset_-16.c +provenance_basic_using_intptr_t_malloc_offset_8.parse: ../provenance_basic_using_intptr_t_malloc_offset_8.c +provenance_equality_auto_cu_yx_a.parse: ../provenance_equality_auto_cu_yx_a.c +provenance_equality_auto_cu_yx_b.parse: ../provenance_equality_auto_cu_yx_b.c +provenance_equality_auto_fn_yx.parse: ../provenance_equality_auto_fn_yx.c +provenance_equality_auto_yx.parse: ../provenance_equality_auto_yx.c +provenance_equality_global_cu_xy_a.parse: ../provenance_equality_global_cu_xy_a.c +provenance_equality_global_cu_xy_b.parse: ../provenance_equality_global_cu_xy_b.c +provenance_equality_global_cu_yx_a.parse: ../provenance_equality_global_cu_yx_a.c +provenance_equality_global_cu_yx_b.parse: ../provenance_equality_global_cu_yx_b.c +provenance_equality_global_fn_xy.parse: ../provenance_equality_global_fn_xy.c +provenance_equality_global_fn_yx.parse: ../provenance_equality_global_fn_yx.c +provenance_equality_global_xy.parse: ../provenance_equality_global_xy.c +provenance_equality_global_yx.parse: ../provenance_equality_global_yx.c +provenance_equality_uintptr_t_global_xy.parse: ../provenance_equality_uintptr_t_global_xy.c +provenance_equality_uintptr_t_global_yx.parse: ../provenance_equality_uintptr_t_global_yx.c +provenance_multiple_1_global.parse: ../provenance_multiple_1_global.c +provenance_multiple_2_global.parse: ../provenance_multiple_2_global.c +provenance_multiple_3_global_yx.parse: ../provenance_multiple_3_global_yx.c +provenance_multiple_4_global_yx.parse: ../provenance_multiple_4_global_yx.c +provenance_multiple_5_auto.parse: ../provenance_multiple_5_auto.c +provenance_multiple_5_global.parse: ../provenance_multiple_5_global.c +provenance_roundtrip_via_intptr_t.parse: ../provenance_roundtrip_via_intptr_t.c +provenance_roundtrip_via_unsigned_long.parse: ../provenance_roundtrip_via_unsigned_long.c +provenance_tag_bits_via_uintptr_t_1.parse: ../provenance_tag_bits_via_uintptr_t_1.c +provenance_tag_bits_via_uintptr_t_1_no_assert.parse: ../provenance_tag_bits_via_uintptr_t_1_no_assert.c +provenance_union_punning_1_global.parse: ../provenance_union_punning_1_global.c +provenance_union_punning_2_auto_xy.parse: ../provenance_union_punning_2_auto_xy.c +provenance_union_punning_2_auto_yx.parse: ../provenance_union_punning_2_auto_yx.c +provenance_union_punning_2_global_xy.parse: ../provenance_union_punning_2_global_xy.c +provenance_union_punning_2_global_yx.parse: ../provenance_union_punning_2_global_yx.c +provenance_via_io_auto.parse: ../provenance_via_io_auto.c +provenance_via_io_bytewise_global.parse: ../provenance_via_io_bytewise_global.c +provenance_via_io_global.parse: ../provenance_via_io_global.c +provenance_via_io_percentp_global.parse: ../provenance_via_io_percentp_global.c +provenance_via_io_uintptr_t_global.parse: ../provenance_via_io_uintptr_t_global.c +read_union_same_prefix_visible.parse: ../read_union_same_prefix_visible.c +read_via_invalid_1.parse: ../read_via_invalid_1.c +signalling_nan_1.parse: ../signalling_nan_1.c +struct_initialise_members.parse: ../struct_initialise_members.c +struct_inter_submember_1.parse: ../struct_inter_submember_1.c +tkn-1.parse: ../tkn-1.c +tkn-2.parse: ../tkn-2.c +tkn-3.parse: ../tkn-3.c +tkn-3-commented.parse: ../tkn-3-commented.c +trap_representation_1.parse: ../trap_representation_1.c +trap_representation_2.parse: ../trap_representation_2.c +trap_representation_3.parse: ../trap_representation_3.c +ubc_addr_null_1.parse: ../ubc_addr_null_1.c +union_punning_gcc_1.parse: ../union_punning_gcc_1.c +union_punning_gcc_2.parse: ../union_punning_gcc_2.c +union_punning_gcc_3.parse: ../union_punning_gcc_3.c +unspecified_value_control_flow_choice.parse: ../unspecified_value_control_flow_choice.c +unspecified_value_daemonic_1.parse: ../unspecified_value_daemonic_1.c +unspecified_value_library_call_argument.parse: ../unspecified_value_library_call_argument.c +unspecified_value_representation_bytes_1.parse: ../unspecified_value_representation_bytes_1.c +unspecified_value_representation_bytes_2.parse: ../unspecified_value_representation_bytes_2.c +unspecified_value_representation_bytes_3.parse: ../unspecified_value_representation_bytes_3.c +unspecified_value_representation_bytes_4.parse: ../unspecified_value_representation_bytes_4.c +unspecified_value_stability.parse: ../unspecified_value_stability.c +unspecified_value_strictness_and_1.parse: ../unspecified_value_strictness_and_1.c +unspecified_value_strictness_int.parse: ../unspecified_value_strictness_int.c +unspecified_value_strictness_mod_1.parse: ../unspecified_value_strictness_mod_1.c +unspecified_value_strictness_mod_2.parse: ../unspecified_value_strictness_mod_2.c +unspecified_value_strictness_unsigned_char.parse: ../unspecified_value_strictness_unsigned_char.c +unspecified_value_struct_copy.parse: ../unspecified_value_struct_copy.c +unspecified_value_union_1.parse: ../unspecified_value_union_1.c +write_union_same_prefix_visible.parse: ../write_union_same_prefix_visible.c + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/cerberus/besson_blazy_wilke_6_2.eva/alarms.csv b/cerberus/.frama-c/besson_blazy_wilke_6_2.eva/alarms.csv similarity index 100% rename from cerberus/besson_blazy_wilke_6_2.eva/alarms.csv rename to cerberus/.frama-c/besson_blazy_wilke_6_2.eva/alarms.csv diff --git a/cerberus/besson_blazy_wilke_6_2.eva/metrics.log b/cerberus/.frama-c/besson_blazy_wilke_6_2.eva/metrics.log similarity index 100% rename from cerberus/besson_blazy_wilke_6_2.eva/metrics.log rename to cerberus/.frama-c/besson_blazy_wilke_6_2.eva/metrics.log diff --git a/cerberus/besson_blazy_wilke_6_2.eva/nonterm.log b/cerberus/.frama-c/besson_blazy_wilke_6_2.eva/nonterm.log similarity index 100% rename from cerberus/besson_blazy_wilke_6_2.eva/nonterm.log rename to cerberus/.frama-c/besson_blazy_wilke_6_2.eva/nonterm.log diff --git a/cerberus/besson_blazy_wilke_6_2.eva/warnings.log b/cerberus/.frama-c/besson_blazy_wilke_6_2.eva/warnings.log similarity index 100% rename from cerberus/besson_blazy_wilke_6_2.eva/warnings.log rename to cerberus/.frama-c/besson_blazy_wilke_6_2.eva/warnings.log diff --git a/cerberus/besson_blazy_wilke_6_2.parse/framac.ast b/cerberus/.frama-c/besson_blazy_wilke_6_2.parse/framac.ast similarity index 100% rename from cerberus/besson_blazy_wilke_6_2.parse/framac.ast rename to cerberus/.frama-c/besson_blazy_wilke_6_2.parse/framac.ast diff --git a/cerberus/besson_blazy_wilke_6_2.parse/metrics.log b/cerberus/.frama-c/besson_blazy_wilke_6_2.parse/metrics.log similarity index 100% rename from cerberus/besson_blazy_wilke_6_2.parse/metrics.log rename to cerberus/.frama-c/besson_blazy_wilke_6_2.parse/metrics.log diff --git a/cerberus/besson_blazy_wilke_6_2.parse/warnings.log b/cerberus/.frama-c/besson_blazy_wilke_6_2.parse/warnings.log similarity index 100% rename from cerberus/besson_blazy_wilke_6_2.parse/warnings.log rename to cerberus/.frama-c/besson_blazy_wilke_6_2.parse/warnings.log diff --git a/cerberus/besson_blazy_wilke_bitfields_1.eva/alarms.csv b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1.eva/alarms.csv similarity index 100% rename from cerberus/besson_blazy_wilke_bitfields_1.eva/alarms.csv rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1.eva/alarms.csv diff --git a/cerberus/besson_blazy_wilke_bitfields_1.eva/metrics.log b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1.eva/metrics.log similarity index 100% rename from cerberus/besson_blazy_wilke_bitfields_1.eva/metrics.log rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1.eva/metrics.log diff --git a/cerberus/besson_blazy_wilke_bitfields_1.eva/nonterm.log b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1.eva/nonterm.log similarity index 100% rename from cerberus/besson_blazy_wilke_bitfields_1.eva/nonterm.log rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1.eva/nonterm.log diff --git a/cerberus/besson_blazy_wilke_bitfields_1.eva/warnings.log b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1.eva/warnings.log similarity index 100% rename from cerberus/besson_blazy_wilke_bitfields_1.eva/warnings.log rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1.eva/warnings.log diff --git a/cerberus/besson_blazy_wilke_bitfields_1.parse/framac.ast b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1.parse/framac.ast similarity index 100% rename from cerberus/besson_blazy_wilke_bitfields_1.parse/framac.ast rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1.parse/framac.ast diff --git a/cerberus/besson_blazy_wilke_bitfields_1.parse/metrics.log b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1.parse/metrics.log similarity index 100% rename from cerberus/besson_blazy_wilke_bitfields_1.parse/metrics.log rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1.parse/metrics.log diff --git a/cerberus/besson_blazy_wilke_bitfields_1.parse/warnings.log b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1.parse/warnings.log similarity index 100% rename from cerberus/besson_blazy_wilke_bitfields_1.parse/warnings.log rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1.parse/warnings.log diff --git a/cerberus/besson_blazy_wilke_bitfields_1u.eva/alarms.csv b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.eva/alarms.csv similarity index 100% rename from cerberus/besson_blazy_wilke_bitfields_1u.eva/alarms.csv rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.eva/alarms.csv diff --git a/cerberus/besson_blazy_wilke_bitfields_1u.eva/metrics.log b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.eva/metrics.log similarity index 100% rename from cerberus/besson_blazy_wilke_bitfields_1u.eva/metrics.log rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.eva/metrics.log diff --git a/cerberus/besson_blazy_wilke_bitfields_1u.eva/nonterm.log b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.eva/nonterm.log similarity index 100% rename from cerberus/besson_blazy_wilke_bitfields_1u.eva/nonterm.log rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.eva/nonterm.log diff --git a/cerberus/besson_blazy_wilke_bitfields_1u.eva/warnings.log b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.eva/warnings.log similarity index 100% rename from cerberus/besson_blazy_wilke_bitfields_1u.eva/warnings.log rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.eva/warnings.log diff --git a/cerberus/besson_blazy_wilke_bitfields_1u.parse/framac.ast b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.parse/framac.ast similarity index 100% rename from cerberus/besson_blazy_wilke_bitfields_1u.parse/framac.ast rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.parse/framac.ast diff --git a/cerberus/besson_blazy_wilke_bitfields_1u.parse/metrics.log b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.parse/metrics.log similarity index 100% rename from cerberus/besson_blazy_wilke_bitfields_1u.parse/metrics.log rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.parse/metrics.log diff --git a/cerberus/besson_blazy_wilke_bitfields_1u.parse/warnings.log b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.parse/warnings.log similarity index 100% rename from cerberus/besson_blazy_wilke_bitfields_1u.parse/warnings.log rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.parse/warnings.log diff --git a/cerberus/besson_blazy_wilkie_Fig_1.eva/alarms.csv b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1.eva/alarms.csv similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_1.eva/alarms.csv rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1.eva/alarms.csv diff --git a/cerberus/besson_blazy_wilkie_Fig_1.eva/metrics.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1.eva/metrics.log similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_1.eva/metrics.log rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1.eva/metrics.log diff --git a/cerberus/besson_blazy_wilkie_Fig_1.eva/nonterm.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1.eva/nonterm.log similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_1.eva/nonterm.log rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1.eva/nonterm.log diff --git a/cerberus/besson_blazy_wilkie_Fig_1.eva/warnings.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1.eva/warnings.log similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_1.eva/warnings.log rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1.eva/warnings.log diff --git a/cerberus/besson_blazy_wilkie_Fig_1.parse/framac.ast b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1.parse/framac.ast similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_1.parse/framac.ast rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1.parse/framac.ast diff --git a/cerberus/besson_blazy_wilkie_Fig_1.parse/metrics.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1.parse/metrics.log similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_1.parse/metrics.log rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1.parse/metrics.log diff --git a/cerberus/besson_blazy_wilkie_Fig_1.parse/warnings.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1.parse/warnings.log similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_1.parse/warnings.log rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1.parse/warnings.log diff --git a/cerberus/besson_blazy_wilkie_Fig_1_adapted.eva/alarms.csv b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.eva/alarms.csv similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_1_adapted.eva/alarms.csv rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.eva/alarms.csv diff --git a/cerberus/besson_blazy_wilkie_Fig_1_adapted.eva/metrics.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.eva/metrics.log similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_1_adapted.eva/metrics.log rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.eva/metrics.log diff --git a/cerberus/besson_blazy_wilkie_Fig_1_adapted.eva/nonterm.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.eva/nonterm.log similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_1_adapted.eva/nonterm.log rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.eva/nonterm.log diff --git a/cerberus/besson_blazy_wilkie_Fig_1_adapted.eva/warnings.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.eva/warnings.log similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_1_adapted.eva/warnings.log rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.eva/warnings.log diff --git a/cerberus/besson_blazy_wilkie_Fig_1_adapted.parse/framac.ast b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.parse/framac.ast similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_1_adapted.parse/framac.ast rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.parse/framac.ast diff --git a/cerberus/besson_blazy_wilkie_Fig_1_adapted.parse/metrics.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.parse/metrics.log similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_1_adapted.parse/metrics.log rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.parse/metrics.log diff --git a/cerberus/besson_blazy_wilkie_Fig_1_adapted.parse/warnings.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.parse/warnings.log similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_1_adapted.parse/warnings.log rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.parse/warnings.log diff --git a/cerberus/besson_blazy_wilkie_Fig_2.eva/alarms.csv b/cerberus/.frama-c/besson_blazy_wilkie_Fig_2.eva/alarms.csv similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_2.eva/alarms.csv rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_2.eva/alarms.csv diff --git a/cerberus/besson_blazy_wilkie_Fig_2.eva/metrics.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_2.eva/metrics.log similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_2.eva/metrics.log rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_2.eva/metrics.log diff --git a/cerberus/besson_blazy_wilkie_Fig_2.eva/nonterm.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_2.eva/nonterm.log similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_2.eva/nonterm.log rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_2.eva/nonterm.log diff --git a/cerberus/besson_blazy_wilkie_Fig_2.eva/warnings.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_2.eva/warnings.log similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_2.eva/warnings.log rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_2.eva/warnings.log diff --git a/cerberus/besson_blazy_wilkie_Fig_2.parse/framac.ast b/cerberus/.frama-c/besson_blazy_wilkie_Fig_2.parse/framac.ast similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_2.parse/framac.ast rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_2.parse/framac.ast diff --git a/cerberus/besson_blazy_wilkie_Fig_2.parse/metrics.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_2.parse/metrics.log similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_2.parse/metrics.log rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_2.parse/metrics.log diff --git a/cerberus/besson_blazy_wilkie_Fig_2.parse/warnings.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_2.parse/warnings.log similarity index 100% rename from cerberus/besson_blazy_wilkie_Fig_2.parse/warnings.log rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_2.parse/warnings.log diff --git a/cerberus/cast_struct_and_first_member_1.eva/alarms.csv b/cerberus/.frama-c/cast_struct_and_first_member_1.eva/alarms.csv similarity index 100% rename from cerberus/cast_struct_and_first_member_1.eva/alarms.csv rename to cerberus/.frama-c/cast_struct_and_first_member_1.eva/alarms.csv diff --git a/cerberus/cast_struct_and_first_member_1.eva/metrics.log b/cerberus/.frama-c/cast_struct_and_first_member_1.eva/metrics.log similarity index 100% rename from cerberus/cast_struct_and_first_member_1.eva/metrics.log rename to cerberus/.frama-c/cast_struct_and_first_member_1.eva/metrics.log diff --git a/cerberus/cast_struct_and_first_member_1.eva/nonterm.log b/cerberus/.frama-c/cast_struct_and_first_member_1.eva/nonterm.log similarity index 100% rename from cerberus/cast_struct_and_first_member_1.eva/nonterm.log rename to cerberus/.frama-c/cast_struct_and_first_member_1.eva/nonterm.log diff --git a/cerberus/cast_struct_and_first_member_1.eva/warnings.log b/cerberus/.frama-c/cast_struct_and_first_member_1.eva/warnings.log similarity index 100% rename from cerberus/cast_struct_and_first_member_1.eva/warnings.log rename to cerberus/.frama-c/cast_struct_and_first_member_1.eva/warnings.log diff --git a/cerberus/cast_struct_and_first_member_1.parse/framac.ast b/cerberus/.frama-c/cast_struct_and_first_member_1.parse/framac.ast similarity index 100% rename from cerberus/cast_struct_and_first_member_1.parse/framac.ast rename to cerberus/.frama-c/cast_struct_and_first_member_1.parse/framac.ast diff --git a/cerberus/cast_struct_and_first_member_1.parse/metrics.log b/cerberus/.frama-c/cast_struct_and_first_member_1.parse/metrics.log similarity index 100% rename from cerberus/cast_struct_and_first_member_1.parse/metrics.log rename to cerberus/.frama-c/cast_struct_and_first_member_1.parse/metrics.log diff --git a/cerberus/cast_struct_and_first_member_1.parse/warnings.log b/cerberus/.frama-c/cast_struct_and_first_member_1.parse/warnings.log similarity index 100% rename from cerberus/cast_struct_and_first_member_1.parse/warnings.log rename to cerberus/.frama-c/cast_struct_and_first_member_1.parse/warnings.log diff --git a/cerberus/cast_struct_inter_member_1.eva/alarms.csv b/cerberus/.frama-c/cast_struct_inter_member_1.eva/alarms.csv similarity index 100% rename from cerberus/cast_struct_inter_member_1.eva/alarms.csv rename to cerberus/.frama-c/cast_struct_inter_member_1.eva/alarms.csv diff --git a/cerberus/cast_struct_inter_member_1.eva/metrics.log b/cerberus/.frama-c/cast_struct_inter_member_1.eva/metrics.log similarity index 100% rename from cerberus/cast_struct_inter_member_1.eva/metrics.log rename to cerberus/.frama-c/cast_struct_inter_member_1.eva/metrics.log diff --git a/cerberus/cast_struct_inter_member_1.eva/nonterm.log b/cerberus/.frama-c/cast_struct_inter_member_1.eva/nonterm.log similarity index 100% rename from cerberus/cast_struct_inter_member_1.eva/nonterm.log rename to cerberus/.frama-c/cast_struct_inter_member_1.eva/nonterm.log diff --git a/cerberus/cast_struct_inter_member_1.eva/warnings.log b/cerberus/.frama-c/cast_struct_inter_member_1.eva/warnings.log similarity index 100% rename from cerberus/cast_struct_inter_member_1.eva/warnings.log rename to cerberus/.frama-c/cast_struct_inter_member_1.eva/warnings.log diff --git a/cerberus/cast_struct_inter_member_1.parse/framac.ast b/cerberus/.frama-c/cast_struct_inter_member_1.parse/framac.ast similarity index 100% rename from cerberus/cast_struct_inter_member_1.parse/framac.ast rename to cerberus/.frama-c/cast_struct_inter_member_1.parse/framac.ast diff --git a/cerberus/cast_struct_inter_member_1.parse/metrics.log b/cerberus/.frama-c/cast_struct_inter_member_1.parse/metrics.log similarity index 100% rename from cerberus/cast_struct_inter_member_1.parse/metrics.log rename to cerberus/.frama-c/cast_struct_inter_member_1.parse/metrics.log diff --git a/cerberus/cast_struct_inter_member_1.parse/warnings.log b/cerberus/.frama-c/cast_struct_inter_member_1.parse/warnings.log similarity index 100% rename from cerberus/cast_struct_inter_member_1.parse/warnings.log rename to cerberus/.frama-c/cast_struct_inter_member_1.parse/warnings.log diff --git a/cerberus/cast_struct_isomorphic.eva/alarms.csv b/cerberus/.frama-c/cast_struct_isomorphic.eva/alarms.csv similarity index 100% rename from cerberus/cast_struct_isomorphic.eva/alarms.csv rename to cerberus/.frama-c/cast_struct_isomorphic.eva/alarms.csv diff --git a/cerberus/cast_struct_isomorphic.eva/metrics.log b/cerberus/.frama-c/cast_struct_isomorphic.eva/metrics.log similarity index 100% rename from cerberus/cast_struct_isomorphic.eva/metrics.log rename to cerberus/.frama-c/cast_struct_isomorphic.eva/metrics.log diff --git a/cerberus/cast_struct_isomorphic.eva/nonterm.log b/cerberus/.frama-c/cast_struct_isomorphic.eva/nonterm.log similarity index 100% rename from cerberus/cast_struct_isomorphic.eva/nonterm.log rename to cerberus/.frama-c/cast_struct_isomorphic.eva/nonterm.log diff --git a/cerberus/cast_struct_isomorphic.eva/warnings.log b/cerberus/.frama-c/cast_struct_isomorphic.eva/warnings.log similarity index 100% rename from cerberus/cast_struct_isomorphic.eva/warnings.log rename to cerberus/.frama-c/cast_struct_isomorphic.eva/warnings.log diff --git a/cerberus/cast_struct_isomorphic.parse/framac.ast b/cerberus/.frama-c/cast_struct_isomorphic.parse/framac.ast similarity index 100% rename from cerberus/cast_struct_isomorphic.parse/framac.ast rename to cerberus/.frama-c/cast_struct_isomorphic.parse/framac.ast diff --git a/cerberus/cast_struct_isomorphic.parse/metrics.log b/cerberus/.frama-c/cast_struct_isomorphic.parse/metrics.log similarity index 100% rename from cerberus/cast_struct_isomorphic.parse/metrics.log rename to cerberus/.frama-c/cast_struct_isomorphic.parse/metrics.log diff --git a/cerberus/cast_struct_isomorphic.parse/warnings.log b/cerberus/.frama-c/cast_struct_isomorphic.parse/warnings.log similarity index 100% rename from cerberus/cast_struct_isomorphic.parse/warnings.log rename to cerberus/.frama-c/cast_struct_isomorphic.parse/warnings.log diff --git a/cerberus/cast_struct_same_prefix.eva/alarms.csv b/cerberus/.frama-c/cast_struct_same_prefix.eva/alarms.csv similarity index 100% rename from cerberus/cast_struct_same_prefix.eva/alarms.csv rename to cerberus/.frama-c/cast_struct_same_prefix.eva/alarms.csv diff --git a/cerberus/cast_struct_same_prefix.eva/metrics.log b/cerberus/.frama-c/cast_struct_same_prefix.eva/metrics.log similarity index 100% rename from cerberus/cast_struct_same_prefix.eva/metrics.log rename to cerberus/.frama-c/cast_struct_same_prefix.eva/metrics.log diff --git a/cerberus/cast_struct_same_prefix.eva/nonterm.log b/cerberus/.frama-c/cast_struct_same_prefix.eva/nonterm.log similarity index 100% rename from cerberus/cast_struct_same_prefix.eva/nonterm.log rename to cerberus/.frama-c/cast_struct_same_prefix.eva/nonterm.log diff --git a/cerberus/cast_struct_same_prefix.eva/warnings.log b/cerberus/.frama-c/cast_struct_same_prefix.eva/warnings.log similarity index 100% rename from cerberus/cast_struct_same_prefix.eva/warnings.log rename to cerberus/.frama-c/cast_struct_same_prefix.eva/warnings.log diff --git a/cerberus/cast_struct_same_prefix.parse/framac.ast b/cerberus/.frama-c/cast_struct_same_prefix.parse/framac.ast similarity index 100% rename from cerberus/cast_struct_same_prefix.parse/framac.ast rename to cerberus/.frama-c/cast_struct_same_prefix.parse/framac.ast diff --git a/cerberus/cast_struct_same_prefix.parse/metrics.log b/cerberus/.frama-c/cast_struct_same_prefix.parse/metrics.log similarity index 100% rename from cerberus/cast_struct_same_prefix.parse/metrics.log rename to cerberus/.frama-c/cast_struct_same_prefix.parse/metrics.log diff --git a/cerberus/cast_struct_same_prefix.parse/warnings.log b/cerberus/.frama-c/cast_struct_same_prefix.parse/warnings.log similarity index 100% rename from cerberus/cast_struct_same_prefix.parse/warnings.log rename to cerberus/.frama-c/cast_struct_same_prefix.parse/warnings.log diff --git a/cerberus/cast_union_and_member_1.eva/alarms.csv b/cerberus/.frama-c/cast_union_and_member_1.eva/alarms.csv similarity index 100% rename from cerberus/cast_union_and_member_1.eva/alarms.csv rename to cerberus/.frama-c/cast_union_and_member_1.eva/alarms.csv diff --git a/cerberus/cast_union_and_member_1.eva/metrics.log b/cerberus/.frama-c/cast_union_and_member_1.eva/metrics.log similarity index 100% rename from cerberus/cast_union_and_member_1.eva/metrics.log rename to cerberus/.frama-c/cast_union_and_member_1.eva/metrics.log diff --git a/cerberus/cast_union_and_member_1.eva/nonterm.log b/cerberus/.frama-c/cast_union_and_member_1.eva/nonterm.log similarity index 100% rename from cerberus/cast_union_and_member_1.eva/nonterm.log rename to cerberus/.frama-c/cast_union_and_member_1.eva/nonterm.log diff --git a/cerberus/cast_union_and_member_1.eva/warnings.log b/cerberus/.frama-c/cast_union_and_member_1.eva/warnings.log similarity index 100% rename from cerberus/cast_union_and_member_1.eva/warnings.log rename to cerberus/.frama-c/cast_union_and_member_1.eva/warnings.log diff --git a/cerberus/cast_union_and_member_1.parse/framac.ast b/cerberus/.frama-c/cast_union_and_member_1.parse/framac.ast similarity index 100% rename from cerberus/cast_union_and_member_1.parse/framac.ast rename to cerberus/.frama-c/cast_union_and_member_1.parse/framac.ast diff --git a/cerberus/cast_union_and_member_1.parse/metrics.log b/cerberus/.frama-c/cast_union_and_member_1.parse/metrics.log similarity index 100% rename from cerberus/cast_union_and_member_1.parse/metrics.log rename to cerberus/.frama-c/cast_union_and_member_1.parse/metrics.log diff --git a/cerberus/cast_union_and_member_1.parse/warnings.log b/cerberus/.frama-c/cast_union_and_member_1.parse/warnings.log similarity index 100% rename from cerberus/cast_union_and_member_1.parse/warnings.log rename to cerberus/.frama-c/cast_union_and_member_1.parse/warnings.log diff --git a/cerberus/cheri_01_deconst.eva/alarms.csv b/cerberus/.frama-c/cheri_01_deconst.eva/alarms.csv similarity index 100% rename from cerberus/cheri_01_deconst.eva/alarms.csv rename to cerberus/.frama-c/cheri_01_deconst.eva/alarms.csv diff --git a/cerberus/cheri_01_deconst.eva/metrics.log b/cerberus/.frama-c/cheri_01_deconst.eva/metrics.log similarity index 100% rename from cerberus/cheri_01_deconst.eva/metrics.log rename to cerberus/.frama-c/cheri_01_deconst.eva/metrics.log diff --git a/cerberus/cheri_01_deconst.eva/nonterm.log b/cerberus/.frama-c/cheri_01_deconst.eva/nonterm.log similarity index 100% rename from cerberus/cheri_01_deconst.eva/nonterm.log rename to cerberus/.frama-c/cheri_01_deconst.eva/nonterm.log diff --git a/cerberus/cheri_01_deconst.eva/warnings.log b/cerberus/.frama-c/cheri_01_deconst.eva/warnings.log similarity index 100% rename from cerberus/cheri_01_deconst.eva/warnings.log rename to cerberus/.frama-c/cheri_01_deconst.eva/warnings.log diff --git a/cerberus/cheri_01_deconst.parse/framac.ast b/cerberus/.frama-c/cheri_01_deconst.parse/framac.ast similarity index 100% rename from cerberus/cheri_01_deconst.parse/framac.ast rename to cerberus/.frama-c/cheri_01_deconst.parse/framac.ast diff --git a/cerberus/cheri_01_deconst.parse/metrics.log b/cerberus/.frama-c/cheri_01_deconst.parse/metrics.log similarity index 100% rename from cerberus/cheri_01_deconst.parse/metrics.log rename to cerberus/.frama-c/cheri_01_deconst.parse/metrics.log diff --git a/cerberus/cheri_01_deconst.parse/warnings.log b/cerberus/.frama-c/cheri_01_deconst.parse/warnings.log similarity index 100% rename from cerberus/cheri_01_deconst.parse/warnings.log rename to cerberus/.frama-c/cheri_01_deconst.parse/warnings.log diff --git a/cerberus/cheri_02_container.eva/alarms.csv b/cerberus/.frama-c/cheri_02_container.eva/alarms.csv similarity index 100% rename from cerberus/cheri_02_container.eva/alarms.csv rename to cerberus/.frama-c/cheri_02_container.eva/alarms.csv diff --git a/cerberus/cheri_02_container.eva/metrics.log b/cerberus/.frama-c/cheri_02_container.eva/metrics.log similarity index 100% rename from cerberus/cheri_02_container.eva/metrics.log rename to cerberus/.frama-c/cheri_02_container.eva/metrics.log diff --git a/cerberus/cheri_02_container.eva/nonterm.log b/cerberus/.frama-c/cheri_02_container.eva/nonterm.log similarity index 100% rename from cerberus/cheri_02_container.eva/nonterm.log rename to cerberus/.frama-c/cheri_02_container.eva/nonterm.log diff --git a/cerberus/cheri_02_container.eva/warnings.log b/cerberus/.frama-c/cheri_02_container.eva/warnings.log similarity index 100% rename from cerberus/cheri_02_container.eva/warnings.log rename to cerberus/.frama-c/cheri_02_container.eva/warnings.log diff --git a/cerberus/cheri_02_container.parse/framac.ast b/cerberus/.frama-c/cheri_02_container.parse/framac.ast similarity index 100% rename from cerberus/cheri_02_container.parse/framac.ast rename to cerberus/.frama-c/cheri_02_container.parse/framac.ast diff --git a/cerberus/cheri_02_container.parse/metrics.log b/cerberus/.frama-c/cheri_02_container.parse/metrics.log similarity index 100% rename from cerberus/cheri_02_container.parse/metrics.log rename to cerberus/.frama-c/cheri_02_container.parse/metrics.log diff --git a/cerberus/cheri_02_container.parse/warnings.log b/cerberus/.frama-c/cheri_02_container.parse/warnings.log similarity index 100% rename from cerberus/cheri_02_container.parse/warnings.log rename to cerberus/.frama-c/cheri_02_container.parse/warnings.log diff --git a/cerberus/cheri_03_ii.eva/alarms.csv b/cerberus/.frama-c/cheri_03_ii.eva/alarms.csv similarity index 100% rename from cerberus/cheri_03_ii.eva/alarms.csv rename to cerberus/.frama-c/cheri_03_ii.eva/alarms.csv diff --git a/cerberus/cheri_03_ii.eva/metrics.log b/cerberus/.frama-c/cheri_03_ii.eva/metrics.log similarity index 100% rename from cerberus/cheri_03_ii.eva/metrics.log rename to cerberus/.frama-c/cheri_03_ii.eva/metrics.log diff --git a/cerberus/cheri_03_ii.eva/nonterm.log b/cerberus/.frama-c/cheri_03_ii.eva/nonterm.log similarity index 100% rename from cerberus/cheri_03_ii.eva/nonterm.log rename to cerberus/.frama-c/cheri_03_ii.eva/nonterm.log diff --git a/cerberus/cheri_03_ii.eva/warnings.log b/cerberus/.frama-c/cheri_03_ii.eva/warnings.log similarity index 100% rename from cerberus/cheri_03_ii.eva/warnings.log rename to cerberus/.frama-c/cheri_03_ii.eva/warnings.log diff --git a/cerberus/cheri_03_ii.parse/framac.ast b/cerberus/.frama-c/cheri_03_ii.parse/framac.ast similarity index 100% rename from cerberus/cheri_03_ii.parse/framac.ast rename to cerberus/.frama-c/cheri_03_ii.parse/framac.ast diff --git a/cerberus/cheri_03_ii.parse/metrics.log b/cerberus/.frama-c/cheri_03_ii.parse/metrics.log similarity index 100% rename from cerberus/cheri_03_ii.parse/metrics.log rename to cerberus/.frama-c/cheri_03_ii.parse/metrics.log diff --git a/cerberus/cheri_03_ii.parse/warnings.log b/cerberus/.frama-c/cheri_03_ii.parse/warnings.log similarity index 100% rename from cerberus/cheri_03_ii.parse/warnings.log rename to cerberus/.frama-c/cheri_03_ii.parse/warnings.log diff --git a/cerberus/cheri_03_ii_char.eva/alarms.csv b/cerberus/.frama-c/cheri_03_ii_char.eva/alarms.csv similarity index 100% rename from cerberus/cheri_03_ii_char.eva/alarms.csv rename to cerberus/.frama-c/cheri_03_ii_char.eva/alarms.csv diff --git a/cerberus/cheri_03_ii_char.eva/metrics.log b/cerberus/.frama-c/cheri_03_ii_char.eva/metrics.log similarity index 100% rename from cerberus/cheri_03_ii_char.eva/metrics.log rename to cerberus/.frama-c/cheri_03_ii_char.eva/metrics.log diff --git a/cerberus/cheri_03_ii_char.eva/nonterm.log b/cerberus/.frama-c/cheri_03_ii_char.eva/nonterm.log similarity index 100% rename from cerberus/cheri_03_ii_char.eva/nonterm.log rename to cerberus/.frama-c/cheri_03_ii_char.eva/nonterm.log diff --git a/cerberus/cheri_03_ii_char.eva/warnings.log b/cerberus/.frama-c/cheri_03_ii_char.eva/warnings.log similarity index 100% rename from cerberus/cheri_03_ii_char.eva/warnings.log rename to cerberus/.frama-c/cheri_03_ii_char.eva/warnings.log diff --git a/cerberus/cheri_03_ii_char.parse/framac.ast b/cerberus/.frama-c/cheri_03_ii_char.parse/framac.ast similarity index 100% rename from cerberus/cheri_03_ii_char.parse/framac.ast rename to cerberus/.frama-c/cheri_03_ii_char.parse/framac.ast diff --git a/cerberus/cheri_03_ii_char.parse/metrics.log b/cerberus/.frama-c/cheri_03_ii_char.parse/metrics.log similarity index 100% rename from cerberus/cheri_03_ii_char.parse/metrics.log rename to cerberus/.frama-c/cheri_03_ii_char.parse/metrics.log diff --git a/cerberus/cheri_03_ii_char.parse/warnings.log b/cerberus/.frama-c/cheri_03_ii_char.parse/warnings.log similarity index 100% rename from cerberus/cheri_03_ii_char.parse/warnings.log rename to cerberus/.frama-c/cheri_03_ii_char.parse/warnings.log diff --git a/cerberus/cheri_04a_int_uintptr_t.eva/alarms.csv b/cerberus/.frama-c/cheri_04a_int_uintptr_t.eva/alarms.csv similarity index 100% rename from cerberus/cheri_04a_int_uintptr_t.eva/alarms.csv rename to cerberus/.frama-c/cheri_04a_int_uintptr_t.eva/alarms.csv diff --git a/cerberus/cheri_04a_int_uintptr_t.eva/metrics.log b/cerberus/.frama-c/cheri_04a_int_uintptr_t.eva/metrics.log similarity index 100% rename from cerberus/cheri_04a_int_uintptr_t.eva/metrics.log rename to cerberus/.frama-c/cheri_04a_int_uintptr_t.eva/metrics.log diff --git a/cerberus/cheri_04a_int_uintptr_t.eva/nonterm.log b/cerberus/.frama-c/cheri_04a_int_uintptr_t.eva/nonterm.log similarity index 100% rename from cerberus/cheri_04a_int_uintptr_t.eva/nonterm.log rename to cerberus/.frama-c/cheri_04a_int_uintptr_t.eva/nonterm.log diff --git a/cerberus/cheri_04a_int_uintptr_t.eva/warnings.log b/cerberus/.frama-c/cheri_04a_int_uintptr_t.eva/warnings.log similarity index 100% rename from cerberus/cheri_04a_int_uintptr_t.eva/warnings.log rename to cerberus/.frama-c/cheri_04a_int_uintptr_t.eva/warnings.log diff --git a/cerberus/cheri_04a_int_uintptr_t.parse/framac.ast b/cerberus/.frama-c/cheri_04a_int_uintptr_t.parse/framac.ast similarity index 100% rename from cerberus/cheri_04a_int_uintptr_t.parse/framac.ast rename to cerberus/.frama-c/cheri_04a_int_uintptr_t.parse/framac.ast diff --git a/cerberus/cheri_04a_int_uintptr_t.parse/metrics.log b/cerberus/.frama-c/cheri_04a_int_uintptr_t.parse/metrics.log similarity index 100% rename from cerberus/cheri_04a_int_uintptr_t.parse/metrics.log rename to cerberus/.frama-c/cheri_04a_int_uintptr_t.parse/metrics.log diff --git a/cerberus/cheri_04a_int_uintptr_t.parse/warnings.log b/cerberus/.frama-c/cheri_04a_int_uintptr_t.parse/warnings.log similarity index 100% rename from cerberus/cheri_04a_int_uintptr_t.parse/warnings.log rename to cerberus/.frama-c/cheri_04a_int_uintptr_t.parse/warnings.log diff --git a/cerberus/cheri_04b_int_unsigned_long.eva/alarms.csv b/cerberus/.frama-c/cheri_04b_int_unsigned_long.eva/alarms.csv similarity index 100% rename from cerberus/cheri_04b_int_unsigned_long.eva/alarms.csv rename to cerberus/.frama-c/cheri_04b_int_unsigned_long.eva/alarms.csv diff --git a/cerberus/cheri_04b_int_unsigned_long.eva/metrics.log b/cerberus/.frama-c/cheri_04b_int_unsigned_long.eva/metrics.log similarity index 100% rename from cerberus/cheri_04b_int_unsigned_long.eva/metrics.log rename to cerberus/.frama-c/cheri_04b_int_unsigned_long.eva/metrics.log diff --git a/cerberus/cheri_04b_int_unsigned_long.eva/nonterm.log b/cerberus/.frama-c/cheri_04b_int_unsigned_long.eva/nonterm.log similarity index 100% rename from cerberus/cheri_04b_int_unsigned_long.eva/nonterm.log rename to cerberus/.frama-c/cheri_04b_int_unsigned_long.eva/nonterm.log diff --git a/cerberus/cheri_04b_int_unsigned_long.eva/warnings.log b/cerberus/.frama-c/cheri_04b_int_unsigned_long.eva/warnings.log similarity index 100% rename from cerberus/cheri_04b_int_unsigned_long.eva/warnings.log rename to cerberus/.frama-c/cheri_04b_int_unsigned_long.eva/warnings.log diff --git a/cerberus/cheri_04b_int_unsigned_long.parse/framac.ast b/cerberus/.frama-c/cheri_04b_int_unsigned_long.parse/framac.ast similarity index 100% rename from cerberus/cheri_04b_int_unsigned_long.parse/framac.ast rename to cerberus/.frama-c/cheri_04b_int_unsigned_long.parse/framac.ast diff --git a/cerberus/cheri_04b_int_unsigned_long.parse/metrics.log b/cerberus/.frama-c/cheri_04b_int_unsigned_long.parse/metrics.log similarity index 100% rename from cerberus/cheri_04b_int_unsigned_long.parse/metrics.log rename to cerberus/.frama-c/cheri_04b_int_unsigned_long.parse/metrics.log diff --git a/cerberus/cheri_04b_int_unsigned_long.parse/warnings.log b/cerberus/.frama-c/cheri_04b_int_unsigned_long.parse/warnings.log similarity index 100% rename from cerberus/cheri_04b_int_unsigned_long.parse/warnings.log rename to cerberus/.frama-c/cheri_04b_int_unsigned_long.parse/warnings.log diff --git a/cerberus/cheri_05_ia.eva/alarms.csv b/cerberus/.frama-c/cheri_05_ia.eva/alarms.csv similarity index 100% rename from cerberus/cheri_05_ia.eva/alarms.csv rename to cerberus/.frama-c/cheri_05_ia.eva/alarms.csv diff --git a/cerberus/cheri_05_ia.eva/metrics.log b/cerberus/.frama-c/cheri_05_ia.eva/metrics.log similarity index 100% rename from cerberus/cheri_05_ia.eva/metrics.log rename to cerberus/.frama-c/cheri_05_ia.eva/metrics.log diff --git a/cerberus/cheri_05_ia.eva/nonterm.log b/cerberus/.frama-c/cheri_05_ia.eva/nonterm.log similarity index 100% rename from cerberus/cheri_05_ia.eva/nonterm.log rename to cerberus/.frama-c/cheri_05_ia.eva/nonterm.log diff --git a/cerberus/cheri_05_ia.eva/warnings.log b/cerberus/.frama-c/cheri_05_ia.eva/warnings.log similarity index 100% rename from cerberus/cheri_05_ia.eva/warnings.log rename to cerberus/.frama-c/cheri_05_ia.eva/warnings.log diff --git a/cerberus/cheri_05_ia.parse/framac.ast b/cerberus/.frama-c/cheri_05_ia.parse/framac.ast similarity index 100% rename from cerberus/cheri_05_ia.parse/framac.ast rename to cerberus/.frama-c/cheri_05_ia.parse/framac.ast diff --git a/cerberus/cheri_05_ia.parse/metrics.log b/cerberus/.frama-c/cheri_05_ia.parse/metrics.log similarity index 100% rename from cerberus/cheri_05_ia.parse/metrics.log rename to cerberus/.frama-c/cheri_05_ia.parse/metrics.log diff --git a/cerberus/cheri_05_ia.parse/warnings.log b/cerberus/.frama-c/cheri_05_ia.parse/warnings.log similarity index 100% rename from cerberus/cheri_05_ia.parse/warnings.log rename to cerberus/.frama-c/cheri_05_ia.parse/warnings.log diff --git a/cerberus/cheri_06_mask.eva/alarms.csv b/cerberus/.frama-c/cheri_06_mask.eva/alarms.csv similarity index 100% rename from cerberus/cheri_06_mask.eva/alarms.csv rename to cerberus/.frama-c/cheri_06_mask.eva/alarms.csv diff --git a/cerberus/cheri_06_mask.eva/metrics.log b/cerberus/.frama-c/cheri_06_mask.eva/metrics.log similarity index 100% rename from cerberus/cheri_06_mask.eva/metrics.log rename to cerberus/.frama-c/cheri_06_mask.eva/metrics.log diff --git a/cerberus/cheri_06_mask.eva/nonterm.log b/cerberus/.frama-c/cheri_06_mask.eva/nonterm.log similarity index 100% rename from cerberus/cheri_06_mask.eva/nonterm.log rename to cerberus/.frama-c/cheri_06_mask.eva/nonterm.log diff --git a/cerberus/cheri_06_mask.eva/warnings.log b/cerberus/.frama-c/cheri_06_mask.eva/warnings.log similarity index 100% rename from cerberus/cheri_06_mask.eva/warnings.log rename to cerberus/.frama-c/cheri_06_mask.eva/warnings.log diff --git a/cerberus/cheri_06_mask.parse/framac.ast b/cerberus/.frama-c/cheri_06_mask.parse/framac.ast similarity index 100% rename from cerberus/cheri_06_mask.parse/framac.ast rename to cerberus/.frama-c/cheri_06_mask.parse/framac.ast diff --git a/cerberus/cheri_06_mask.parse/metrics.log b/cerberus/.frama-c/cheri_06_mask.parse/metrics.log similarity index 100% rename from cerberus/cheri_06_mask.parse/metrics.log rename to cerberus/.frama-c/cheri_06_mask.parse/metrics.log diff --git a/cerberus/cheri_06_mask.parse/warnings.log b/cerberus/.frama-c/cheri_06_mask.parse/warnings.log similarity index 100% rename from cerberus/cheri_06_mask.parse/warnings.log rename to cerberus/.frama-c/cheri_06_mask.parse/warnings.log diff --git a/cerberus/cheri_07_wide.eva/alarms.csv b/cerberus/.frama-c/cheri_07_wide.eva/alarms.csv similarity index 100% rename from cerberus/cheri_07_wide.eva/alarms.csv rename to cerberus/.frama-c/cheri_07_wide.eva/alarms.csv diff --git a/cerberus/cheri_07_wide.eva/metrics.log b/cerberus/.frama-c/cheri_07_wide.eva/metrics.log similarity index 100% rename from cerberus/cheri_07_wide.eva/metrics.log rename to cerberus/.frama-c/cheri_07_wide.eva/metrics.log diff --git a/cerberus/cheri_07_wide.eva/nonterm.log b/cerberus/.frama-c/cheri_07_wide.eva/nonterm.log similarity index 100% rename from cerberus/cheri_07_wide.eva/nonterm.log rename to cerberus/.frama-c/cheri_07_wide.eva/nonterm.log diff --git a/cerberus/cheri_07_wide.eva/warnings.log b/cerberus/.frama-c/cheri_07_wide.eva/warnings.log similarity index 78% rename from cerberus/cheri_07_wide.eva/warnings.log rename to cerberus/.frama-c/cheri_07_wide.eva/warnings.log index 3cdf16b5d94390388930fbb168f4233f8a388b70..76958fa83df051b3dcfdf4e99f6be3041b8c0355 100644 --- a/cerberus/cheri_07_wide.eva/warnings.log +++ b/cerberus/.frama-c/cheri_07_wide.eva/warnings.log @@ -1,2 +1,3 @@ +[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration. cheri_07_wide.c:10:[eva:garbled-mix] warning: The specification of function printf_va_1 has generated a garbled mix for assigns clause assigns clause __fc_stdout->__fc_FILE_data. cheri_07_wide.c:12:[eva:garbled-mix] warning: The specification of function printf_va_2 has generated a garbled mix for assigns clause assigns clause __fc_stdout->__fc_FILE_data. diff --git a/cerberus/cheri_07_wide.parse/framac.ast b/cerberus/.frama-c/cheri_07_wide.parse/framac.ast similarity index 100% rename from cerberus/cheri_07_wide.parse/framac.ast rename to cerberus/.frama-c/cheri_07_wide.parse/framac.ast diff --git a/cerberus/cheri_07_wide.parse/metrics.log b/cerberus/.frama-c/cheri_07_wide.parse/metrics.log similarity index 100% rename from cerberus/cheri_07_wide.parse/metrics.log rename to cerberus/.frama-c/cheri_07_wide.parse/metrics.log diff --git a/cerberus/cheri_07_wide.parse/warnings.log b/cerberus/.frama-c/cheri_07_wide.parse/warnings.log similarity index 100% rename from cerberus/cheri_07_wide.parse/warnings.log rename to cerberus/.frama-c/cheri_07_wide.parse/warnings.log diff --git a/cerberus/cheri_08_last_word.eva/alarms.csv b/cerberus/.frama-c/cheri_08_last_word.eva/alarms.csv similarity index 100% rename from cerberus/cheri_08_last_word.eva/alarms.csv rename to cerberus/.frama-c/cheri_08_last_word.eva/alarms.csv diff --git a/cerberus/cheri_08_last_word.eva/metrics.log b/cerberus/.frama-c/cheri_08_last_word.eva/metrics.log similarity index 100% rename from cerberus/cheri_08_last_word.eva/metrics.log rename to cerberus/.frama-c/cheri_08_last_word.eva/metrics.log diff --git a/cerberus/cheri_08_last_word.eva/nonterm.log b/cerberus/.frama-c/cheri_08_last_word.eva/nonterm.log similarity index 100% rename from cerberus/cheri_08_last_word.eva/nonterm.log rename to cerberus/.frama-c/cheri_08_last_word.eva/nonterm.log diff --git a/cerberus/cheri_08_last_word.eva/warnings.log b/cerberus/.frama-c/cheri_08_last_word.eva/warnings.log similarity index 100% rename from cerberus/cheri_08_last_word.eva/warnings.log rename to cerberus/.frama-c/cheri_08_last_word.eva/warnings.log diff --git a/cerberus/cheri_08_last_word.parse/framac.ast b/cerberus/.frama-c/cheri_08_last_word.parse/framac.ast similarity index 100% rename from cerberus/cheri_08_last_word.parse/framac.ast rename to cerberus/.frama-c/cheri_08_last_word.parse/framac.ast diff --git a/cerberus/cheri_08_last_word.parse/metrics.log b/cerberus/.frama-c/cheri_08_last_word.parse/metrics.log similarity index 100% rename from cerberus/cheri_08_last_word.parse/metrics.log rename to cerberus/.frama-c/cheri_08_last_word.parse/metrics.log diff --git a/cerberus/cheri_08_last_word.parse/warnings.log b/cerberus/.frama-c/cheri_08_last_word.parse/warnings.log similarity index 100% rename from cerberus/cheri_08_last_word.parse/warnings.log rename to cerberus/.frama-c/cheri_08_last_word.parse/warnings.log diff --git a/cerberus/compcertMMv2-1.eva/alarms.csv b/cerberus/.frama-c/compcertMMv2-1.eva/alarms.csv similarity index 100% rename from cerberus/compcertMMv2-1.eva/alarms.csv rename to cerberus/.frama-c/compcertMMv2-1.eva/alarms.csv diff --git a/cerberus/compcertMMv2-1.eva/metrics.log b/cerberus/.frama-c/compcertMMv2-1.eva/metrics.log similarity index 100% rename from cerberus/compcertMMv2-1.eva/metrics.log rename to cerberus/.frama-c/compcertMMv2-1.eva/metrics.log diff --git a/cerberus/compcertMMv2-1.eva/nonterm.log b/cerberus/.frama-c/compcertMMv2-1.eva/nonterm.log similarity index 100% rename from cerberus/compcertMMv2-1.eva/nonterm.log rename to cerberus/.frama-c/compcertMMv2-1.eva/nonterm.log diff --git a/cerberus/compcertMMv2-1.eva/warnings.log b/cerberus/.frama-c/compcertMMv2-1.eva/warnings.log similarity index 100% rename from cerberus/compcertMMv2-1.eva/warnings.log rename to cerberus/.frama-c/compcertMMv2-1.eva/warnings.log diff --git a/cerberus/compcertMMv2-1.parse/framac.ast b/cerberus/.frama-c/compcertMMv2-1.parse/framac.ast similarity index 100% rename from cerberus/compcertMMv2-1.parse/framac.ast rename to cerberus/.frama-c/compcertMMv2-1.parse/framac.ast diff --git a/cerberus/compcertMMv2-1.parse/metrics.log b/cerberus/.frama-c/compcertMMv2-1.parse/metrics.log similarity index 100% rename from cerberus/compcertMMv2-1.parse/metrics.log rename to cerberus/.frama-c/compcertMMv2-1.parse/metrics.log diff --git a/cerberus/compcertMMv2-1.parse/warnings.log b/cerberus/.frama-c/compcertMMv2-1.parse/warnings.log similarity index 100% rename from cerberus/compcertMMv2-1.parse/warnings.log rename to cerberus/.frama-c/compcertMMv2-1.parse/warnings.log diff --git a/cerberus/compcertMMv2-2.eva/alarms.csv b/cerberus/.frama-c/compcertMMv2-2.eva/alarms.csv similarity index 100% rename from cerberus/compcertMMv2-2.eva/alarms.csv rename to cerberus/.frama-c/compcertMMv2-2.eva/alarms.csv diff --git a/cerberus/compcertMMv2-2.eva/metrics.log b/cerberus/.frama-c/compcertMMv2-2.eva/metrics.log similarity index 100% rename from cerberus/compcertMMv2-2.eva/metrics.log rename to cerberus/.frama-c/compcertMMv2-2.eva/metrics.log diff --git a/cerberus/compcertMMv2-2.eva/nonterm.log b/cerberus/.frama-c/compcertMMv2-2.eva/nonterm.log similarity index 100% rename from cerberus/compcertMMv2-2.eva/nonterm.log rename to cerberus/.frama-c/compcertMMv2-2.eva/nonterm.log diff --git a/cerberus/compcertMMv2-2.eva/warnings.log b/cerberus/.frama-c/compcertMMv2-2.eva/warnings.log similarity index 100% rename from cerberus/compcertMMv2-2.eva/warnings.log rename to cerberus/.frama-c/compcertMMv2-2.eva/warnings.log diff --git a/cerberus/compcertMMv2-2.parse/framac.ast b/cerberus/.frama-c/compcertMMv2-2.parse/framac.ast similarity index 100% rename from cerberus/compcertMMv2-2.parse/framac.ast rename to cerberus/.frama-c/compcertMMv2-2.parse/framac.ast diff --git a/cerberus/compcertMMv2-2.parse/metrics.log b/cerberus/.frama-c/compcertMMv2-2.parse/metrics.log similarity index 100% rename from cerberus/compcertMMv2-2.parse/metrics.log rename to cerberus/.frama-c/compcertMMv2-2.parse/metrics.log diff --git a/cerberus/compcertMMv2-2.parse/warnings.log b/cerberus/.frama-c/compcertMMv2-2.parse/warnings.log similarity index 100% rename from cerberus/compcertMMv2-2.parse/warnings.log rename to cerberus/.frama-c/compcertMMv2-2.parse/warnings.log diff --git a/cerberus/compcertMMv2-3.eva/alarms.csv b/cerberus/.frama-c/compcertMMv2-3.eva/alarms.csv similarity index 100% rename from cerberus/compcertMMv2-3.eva/alarms.csv rename to cerberus/.frama-c/compcertMMv2-3.eva/alarms.csv diff --git a/cerberus/compcertMMv2-3.eva/metrics.log b/cerberus/.frama-c/compcertMMv2-3.eva/metrics.log similarity index 100% rename from cerberus/compcertMMv2-3.eva/metrics.log rename to cerberus/.frama-c/compcertMMv2-3.eva/metrics.log diff --git a/cerberus/compcertMMv2-3.eva/nonterm.log b/cerberus/.frama-c/compcertMMv2-3.eva/nonterm.log similarity index 100% rename from cerberus/compcertMMv2-3.eva/nonterm.log rename to cerberus/.frama-c/compcertMMv2-3.eva/nonterm.log diff --git a/cerberus/compcertMMv2-3.eva/warnings.log b/cerberus/.frama-c/compcertMMv2-3.eva/warnings.log similarity index 100% rename from cerberus/compcertMMv2-3.eva/warnings.log rename to cerberus/.frama-c/compcertMMv2-3.eva/warnings.log diff --git a/cerberus/compcertMMv2-3.parse/framac.ast b/cerberus/.frama-c/compcertMMv2-3.parse/framac.ast similarity index 100% rename from cerberus/compcertMMv2-3.parse/framac.ast rename to cerberus/.frama-c/compcertMMv2-3.parse/framac.ast diff --git a/cerberus/compcertMMv2-3.parse/metrics.log b/cerberus/.frama-c/compcertMMv2-3.parse/metrics.log similarity index 100% rename from cerberus/compcertMMv2-3.parse/metrics.log rename to cerberus/.frama-c/compcertMMv2-3.parse/metrics.log diff --git a/cerberus/compcertMMv2-3.parse/warnings.log b/cerberus/.frama-c/compcertMMv2-3.parse/warnings.log similarity index 100% rename from cerberus/compcertMMv2-3.parse/warnings.log rename to cerberus/.frama-c/compcertMMv2-3.parse/warnings.log diff --git a/cerberus/compcertMMv2-4.eva/alarms.csv b/cerberus/.frama-c/compcertMMv2-4.eva/alarms.csv similarity index 100% rename from cerberus/compcertMMv2-4.eva/alarms.csv rename to cerberus/.frama-c/compcertMMv2-4.eva/alarms.csv diff --git a/cerberus/compcertMMv2-4.eva/metrics.log b/cerberus/.frama-c/compcertMMv2-4.eva/metrics.log similarity index 100% rename from cerberus/compcertMMv2-4.eva/metrics.log rename to cerberus/.frama-c/compcertMMv2-4.eva/metrics.log diff --git a/cerberus/compcertMMv2-4.eva/nonterm.log b/cerberus/.frama-c/compcertMMv2-4.eva/nonterm.log similarity index 100% rename from cerberus/compcertMMv2-4.eva/nonterm.log rename to cerberus/.frama-c/compcertMMv2-4.eva/nonterm.log diff --git a/cerberus/compcertMMv2-4.eva/warnings.log b/cerberus/.frama-c/compcertMMv2-4.eva/warnings.log similarity index 100% rename from cerberus/compcertMMv2-4.eva/warnings.log rename to cerberus/.frama-c/compcertMMv2-4.eva/warnings.log diff --git a/cerberus/compcertMMv2-4.parse/framac.ast b/cerberus/.frama-c/compcertMMv2-4.parse/framac.ast similarity index 100% rename from cerberus/compcertMMv2-4.parse/framac.ast rename to cerberus/.frama-c/compcertMMv2-4.parse/framac.ast diff --git a/cerberus/compcertMMv2-4.parse/metrics.log b/cerberus/.frama-c/compcertMMv2-4.parse/metrics.log similarity index 100% rename from cerberus/compcertMMv2-4.parse/metrics.log rename to cerberus/.frama-c/compcertMMv2-4.parse/metrics.log diff --git a/cerberus/compcertMMv2-4.parse/warnings.log b/cerberus/.frama-c/compcertMMv2-4.parse/warnings.log similarity index 100% rename from cerberus/compcertMMv2-4.parse/warnings.log rename to cerberus/.frama-c/compcertMMv2-4.parse/warnings.log diff --git a/cerberus/compcertMMv2-5.eva/alarms.csv b/cerberus/.frama-c/compcertMMv2-5.eva/alarms.csv similarity index 100% rename from cerberus/compcertMMv2-5.eva/alarms.csv rename to cerberus/.frama-c/compcertMMv2-5.eva/alarms.csv diff --git a/cerberus/compcertMMv2-5.eva/metrics.log b/cerberus/.frama-c/compcertMMv2-5.eva/metrics.log similarity index 100% rename from cerberus/compcertMMv2-5.eva/metrics.log rename to cerberus/.frama-c/compcertMMv2-5.eva/metrics.log diff --git a/cerberus/compcertMMv2-5.eva/nonterm.log b/cerberus/.frama-c/compcertMMv2-5.eva/nonterm.log similarity index 100% rename from cerberus/compcertMMv2-5.eva/nonterm.log rename to cerberus/.frama-c/compcertMMv2-5.eva/nonterm.log diff --git a/cerberus/compcertMMv2-5.eva/warnings.log b/cerberus/.frama-c/compcertMMv2-5.eva/warnings.log similarity index 100% rename from cerberus/compcertMMv2-5.eva/warnings.log rename to cerberus/.frama-c/compcertMMv2-5.eva/warnings.log diff --git a/cerberus/compcertMMv2-5.parse/framac.ast b/cerberus/.frama-c/compcertMMv2-5.parse/framac.ast similarity index 100% rename from cerberus/compcertMMv2-5.parse/framac.ast rename to cerberus/.frama-c/compcertMMv2-5.parse/framac.ast diff --git a/cerberus/compcertMMv2-5.parse/metrics.log b/cerberus/.frama-c/compcertMMv2-5.parse/metrics.log similarity index 100% rename from cerberus/compcertMMv2-5.parse/metrics.log rename to cerberus/.frama-c/compcertMMv2-5.parse/metrics.log diff --git a/cerberus/compcertMMv2-5.parse/warnings.log b/cerberus/.frama-c/compcertMMv2-5.parse/warnings.log similarity index 100% rename from cerberus/compcertMMv2-5.parse/warnings.log rename to cerberus/.frama-c/compcertMMv2-5.parse/warnings.log diff --git a/cerberus/compcertTSO-1.eva/alarms.csv b/cerberus/.frama-c/compcertTSO-1.eva/alarms.csv similarity index 100% rename from cerberus/compcertTSO-1.eva/alarms.csv rename to cerberus/.frama-c/compcertTSO-1.eva/alarms.csv diff --git a/cerberus/compcertTSO-1.eva/metrics.log b/cerberus/.frama-c/compcertTSO-1.eva/metrics.log similarity index 100% rename from cerberus/compcertTSO-1.eva/metrics.log rename to cerberus/.frama-c/compcertTSO-1.eva/metrics.log diff --git a/cerberus/compcertTSO-1.eva/nonterm.log b/cerberus/.frama-c/compcertTSO-1.eva/nonterm.log similarity index 100% rename from cerberus/compcertTSO-1.eva/nonterm.log rename to cerberus/.frama-c/compcertTSO-1.eva/nonterm.log diff --git a/cerberus/compcertTSO-1.eva/warnings.log b/cerberus/.frama-c/compcertTSO-1.eva/warnings.log similarity index 67% rename from cerberus/compcertTSO-1.eva/warnings.log rename to cerberus/.frama-c/compcertTSO-1.eva/warnings.log index 4a397709dd630278b0c13c2d5b1cebb57795893f..5880780ea1103b115ec7ac70bf68f02a8cda9e72 100644 --- a/cerberus/compcertTSO-1.eva/warnings.log +++ b/cerberus/.frama-c/compcertTSO-1.eva/warnings.log @@ -1,2 +1,3 @@ +[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration. compcertTSO-1.c:8:[eva:locals-escaping] warning: locals {a} escaping the scope of f through \result<f> compcertTSO-1.c:8:[eva:locals-escaping] warning: locals {a} escaping the scope of g through \result<g> diff --git a/cerberus/compcertTSO-1.parse/framac.ast b/cerberus/.frama-c/compcertTSO-1.parse/framac.ast similarity index 100% rename from cerberus/compcertTSO-1.parse/framac.ast rename to cerberus/.frama-c/compcertTSO-1.parse/framac.ast diff --git a/cerberus/compcertTSO-1.parse/metrics.log b/cerberus/.frama-c/compcertTSO-1.parse/metrics.log similarity index 100% rename from cerberus/compcertTSO-1.parse/metrics.log rename to cerberus/.frama-c/compcertTSO-1.parse/metrics.log diff --git a/cerberus/compcertTSO-1.parse/warnings.log b/cerberus/.frama-c/compcertTSO-1.parse/warnings.log similarity index 100% rename from cerberus/compcertTSO-1.parse/warnings.log rename to cerberus/.frama-c/compcertTSO-1.parse/warnings.log diff --git a/cerberus/compcertTSO-2.eva/alarms.csv b/cerberus/.frama-c/compcertTSO-2.eva/alarms.csv similarity index 100% rename from cerberus/compcertTSO-2.eva/alarms.csv rename to cerberus/.frama-c/compcertTSO-2.eva/alarms.csv diff --git a/cerberus/compcertTSO-2.eva/metrics.log b/cerberus/.frama-c/compcertTSO-2.eva/metrics.log similarity index 100% rename from cerberus/compcertTSO-2.eva/metrics.log rename to cerberus/.frama-c/compcertTSO-2.eva/metrics.log diff --git a/cerberus/compcertTSO-2.eva/nonterm.log b/cerberus/.frama-c/compcertTSO-2.eva/nonterm.log similarity index 100% rename from cerberus/compcertTSO-2.eva/nonterm.log rename to cerberus/.frama-c/compcertTSO-2.eva/nonterm.log diff --git a/cerberus/compcertTSO-2.eva/warnings.log b/cerberus/.frama-c/compcertTSO-2.eva/warnings.log similarity index 100% rename from cerberus/compcertTSO-2.eva/warnings.log rename to cerberus/.frama-c/compcertTSO-2.eva/warnings.log diff --git a/cerberus/compcertTSO-2.parse/framac.ast b/cerberus/.frama-c/compcertTSO-2.parse/framac.ast similarity index 100% rename from cerberus/compcertTSO-2.parse/framac.ast rename to cerberus/.frama-c/compcertTSO-2.parse/framac.ast diff --git a/cerberus/compcertTSO-2.parse/metrics.log b/cerberus/.frama-c/compcertTSO-2.parse/metrics.log similarity index 100% rename from cerberus/compcertTSO-2.parse/metrics.log rename to cerberus/.frama-c/compcertTSO-2.parse/metrics.log diff --git a/cerberus/compcertTSO-2.parse/warnings.log b/cerberus/.frama-c/compcertTSO-2.parse/warnings.log similarity index 100% rename from cerberus/compcertTSO-2.parse/warnings.log rename to cerberus/.frama-c/compcertTSO-2.parse/warnings.log diff --git a/cerberus/effective_type_1.eva/alarms.csv b/cerberus/.frama-c/effective_type_1.eva/alarms.csv similarity index 100% rename from cerberus/effective_type_1.eva/alarms.csv rename to cerberus/.frama-c/effective_type_1.eva/alarms.csv diff --git a/cerberus/effective_type_1.eva/metrics.log b/cerberus/.frama-c/effective_type_1.eva/metrics.log similarity index 100% rename from cerberus/effective_type_1.eva/metrics.log rename to cerberus/.frama-c/effective_type_1.eva/metrics.log diff --git a/cerberus/effective_type_1.eva/nonterm.log b/cerberus/.frama-c/effective_type_1.eva/nonterm.log similarity index 100% rename from cerberus/effective_type_1.eva/nonterm.log rename to cerberus/.frama-c/effective_type_1.eva/nonterm.log diff --git a/cerberus/effective_type_1.eva/warnings.log b/cerberus/.frama-c/effective_type_1.eva/warnings.log similarity index 100% rename from cerberus/effective_type_1.eva/warnings.log rename to cerberus/.frama-c/effective_type_1.eva/warnings.log diff --git a/cerberus/effective_type_1.parse/framac.ast b/cerberus/.frama-c/effective_type_1.parse/framac.ast similarity index 100% rename from cerberus/effective_type_1.parse/framac.ast rename to cerberus/.frama-c/effective_type_1.parse/framac.ast diff --git a/cerberus/effective_type_1.parse/metrics.log b/cerberus/.frama-c/effective_type_1.parse/metrics.log similarity index 100% rename from cerberus/effective_type_1.parse/metrics.log rename to cerberus/.frama-c/effective_type_1.parse/metrics.log diff --git a/cerberus/effective_type_1.parse/warnings.log b/cerberus/.frama-c/effective_type_1.parse/warnings.log similarity index 100% rename from cerberus/effective_type_1.parse/warnings.log rename to cerberus/.frama-c/effective_type_1.parse/warnings.log diff --git a/cerberus/effective_type_10.eva/alarms.csv b/cerberus/.frama-c/effective_type_10.eva/alarms.csv similarity index 100% rename from cerberus/effective_type_10.eva/alarms.csv rename to cerberus/.frama-c/effective_type_10.eva/alarms.csv diff --git a/cerberus/effective_type_10.eva/metrics.log b/cerberus/.frama-c/effective_type_10.eva/metrics.log similarity index 100% rename from cerberus/effective_type_10.eva/metrics.log rename to cerberus/.frama-c/effective_type_10.eva/metrics.log diff --git a/cerberus/effective_type_10.eva/nonterm.log b/cerberus/.frama-c/effective_type_10.eva/nonterm.log similarity index 100% rename from cerberus/effective_type_10.eva/nonterm.log rename to cerberus/.frama-c/effective_type_10.eva/nonterm.log diff --git a/cerberus/effective_type_10.eva/warnings.log b/cerberus/.frama-c/effective_type_10.eva/warnings.log similarity index 100% rename from cerberus/effective_type_10.eva/warnings.log rename to cerberus/.frama-c/effective_type_10.eva/warnings.log diff --git a/cerberus/effective_type_10.parse/framac.ast b/cerberus/.frama-c/effective_type_10.parse/framac.ast similarity index 100% rename from cerberus/effective_type_10.parse/framac.ast rename to cerberus/.frama-c/effective_type_10.parse/framac.ast diff --git a/cerberus/effective_type_10.parse/metrics.log b/cerberus/.frama-c/effective_type_10.parse/metrics.log similarity index 100% rename from cerberus/effective_type_10.parse/metrics.log rename to cerberus/.frama-c/effective_type_10.parse/metrics.log diff --git a/cerberus/effective_type_10.parse/warnings.log b/cerberus/.frama-c/effective_type_10.parse/warnings.log similarity index 100% rename from cerberus/effective_type_10.parse/warnings.log rename to cerberus/.frama-c/effective_type_10.parse/warnings.log diff --git a/cerberus/effective_type_2.eva/alarms.csv b/cerberus/.frama-c/effective_type_2.eva/alarms.csv similarity index 100% rename from cerberus/effective_type_2.eva/alarms.csv rename to cerberus/.frama-c/effective_type_2.eva/alarms.csv diff --git a/cerberus/effective_type_2.eva/metrics.log b/cerberus/.frama-c/effective_type_2.eva/metrics.log similarity index 100% rename from cerberus/effective_type_2.eva/metrics.log rename to cerberus/.frama-c/effective_type_2.eva/metrics.log diff --git a/cerberus/effective_type_2.eva/nonterm.log b/cerberus/.frama-c/effective_type_2.eva/nonterm.log similarity index 100% rename from cerberus/effective_type_2.eva/nonterm.log rename to cerberus/.frama-c/effective_type_2.eva/nonterm.log diff --git a/cerberus/effective_type_2.eva/warnings.log b/cerberus/.frama-c/effective_type_2.eva/warnings.log similarity index 100% rename from cerberus/effective_type_2.eva/warnings.log rename to cerberus/.frama-c/effective_type_2.eva/warnings.log diff --git a/cerberus/effective_type_2.parse/framac.ast b/cerberus/.frama-c/effective_type_2.parse/framac.ast similarity index 100% rename from cerberus/effective_type_2.parse/framac.ast rename to cerberus/.frama-c/effective_type_2.parse/framac.ast diff --git a/cerberus/effective_type_2.parse/metrics.log b/cerberus/.frama-c/effective_type_2.parse/metrics.log similarity index 100% rename from cerberus/effective_type_2.parse/metrics.log rename to cerberus/.frama-c/effective_type_2.parse/metrics.log diff --git a/cerberus/effective_type_2.parse/warnings.log b/cerberus/.frama-c/effective_type_2.parse/warnings.log similarity index 100% rename from cerberus/effective_type_2.parse/warnings.log rename to cerberus/.frama-c/effective_type_2.parse/warnings.log diff --git a/cerberus/effective_type_5.eva/alarms.csv b/cerberus/.frama-c/effective_type_5.eva/alarms.csv similarity index 100% rename from cerberus/effective_type_5.eva/alarms.csv rename to cerberus/.frama-c/effective_type_5.eva/alarms.csv diff --git a/cerberus/effective_type_5.eva/metrics.log b/cerberus/.frama-c/effective_type_5.eva/metrics.log similarity index 100% rename from cerberus/effective_type_5.eva/metrics.log rename to cerberus/.frama-c/effective_type_5.eva/metrics.log diff --git a/cerberus/effective_type_5.eva/nonterm.log b/cerberus/.frama-c/effective_type_5.eva/nonterm.log similarity index 100% rename from cerberus/effective_type_5.eva/nonterm.log rename to cerberus/.frama-c/effective_type_5.eva/nonterm.log diff --git a/cerberus/effective_type_5.eva/warnings.log b/cerberus/.frama-c/effective_type_5.eva/warnings.log similarity index 100% rename from cerberus/effective_type_5.eva/warnings.log rename to cerberus/.frama-c/effective_type_5.eva/warnings.log diff --git a/cerberus/effective_type_5.parse/framac.ast b/cerberus/.frama-c/effective_type_5.parse/framac.ast similarity index 100% rename from cerberus/effective_type_5.parse/framac.ast rename to cerberus/.frama-c/effective_type_5.parse/framac.ast diff --git a/cerberus/effective_type_5.parse/metrics.log b/cerberus/.frama-c/effective_type_5.parse/metrics.log similarity index 100% rename from cerberus/effective_type_5.parse/metrics.log rename to cerberus/.frama-c/effective_type_5.parse/metrics.log diff --git a/cerberus/effective_type_5.parse/warnings.log b/cerberus/.frama-c/effective_type_5.parse/warnings.log similarity index 100% rename from cerberus/effective_type_5.parse/warnings.log rename to cerberus/.frama-c/effective_type_5.parse/warnings.log diff --git a/cerberus/effective_type_6.eva/alarms.csv b/cerberus/.frama-c/effective_type_6.eva/alarms.csv similarity index 100% rename from cerberus/effective_type_6.eva/alarms.csv rename to cerberus/.frama-c/effective_type_6.eva/alarms.csv diff --git a/cerberus/effective_type_6.eva/metrics.log b/cerberus/.frama-c/effective_type_6.eva/metrics.log similarity index 100% rename from cerberus/effective_type_6.eva/metrics.log rename to cerberus/.frama-c/effective_type_6.eva/metrics.log diff --git a/cerberus/effective_type_6.eva/nonterm.log b/cerberus/.frama-c/effective_type_6.eva/nonterm.log similarity index 100% rename from cerberus/effective_type_6.eva/nonterm.log rename to cerberus/.frama-c/effective_type_6.eva/nonterm.log diff --git a/cerberus/effective_type_6.eva/warnings.log b/cerberus/.frama-c/effective_type_6.eva/warnings.log similarity index 100% rename from cerberus/effective_type_6.eva/warnings.log rename to cerberus/.frama-c/effective_type_6.eva/warnings.log diff --git a/cerberus/effective_type_6.parse/framac.ast b/cerberus/.frama-c/effective_type_6.parse/framac.ast similarity index 100% rename from cerberus/effective_type_6.parse/framac.ast rename to cerberus/.frama-c/effective_type_6.parse/framac.ast diff --git a/cerberus/effective_type_6.parse/metrics.log b/cerberus/.frama-c/effective_type_6.parse/metrics.log similarity index 100% rename from cerberus/effective_type_6.parse/metrics.log rename to cerberus/.frama-c/effective_type_6.parse/metrics.log diff --git a/cerberus/effective_type_6.parse/warnings.log b/cerberus/.frama-c/effective_type_6.parse/warnings.log similarity index 100% rename from cerberus/effective_type_6.parse/warnings.log rename to cerberus/.frama-c/effective_type_6.parse/warnings.log diff --git a/cerberus/effective_type_7.eva/alarms.csv b/cerberus/.frama-c/effective_type_7.eva/alarms.csv similarity index 100% rename from cerberus/effective_type_7.eva/alarms.csv rename to cerberus/.frama-c/effective_type_7.eva/alarms.csv diff --git a/cerberus/effective_type_7.eva/metrics.log b/cerberus/.frama-c/effective_type_7.eva/metrics.log similarity index 100% rename from cerberus/effective_type_7.eva/metrics.log rename to cerberus/.frama-c/effective_type_7.eva/metrics.log diff --git a/cerberus/effective_type_7.eva/nonterm.log b/cerberus/.frama-c/effective_type_7.eva/nonterm.log similarity index 100% rename from cerberus/effective_type_7.eva/nonterm.log rename to cerberus/.frama-c/effective_type_7.eva/nonterm.log diff --git a/cerberus/effective_type_7.eva/warnings.log b/cerberus/.frama-c/effective_type_7.eva/warnings.log similarity index 100% rename from cerberus/effective_type_7.eva/warnings.log rename to cerberus/.frama-c/effective_type_7.eva/warnings.log diff --git a/cerberus/effective_type_7.parse/framac.ast b/cerberus/.frama-c/effective_type_7.parse/framac.ast similarity index 100% rename from cerberus/effective_type_7.parse/framac.ast rename to cerberus/.frama-c/effective_type_7.parse/framac.ast diff --git a/cerberus/effective_type_7.parse/metrics.log b/cerberus/.frama-c/effective_type_7.parse/metrics.log similarity index 100% rename from cerberus/effective_type_7.parse/metrics.log rename to cerberus/.frama-c/effective_type_7.parse/metrics.log diff --git a/cerberus/effective_type_7.parse/warnings.log b/cerberus/.frama-c/effective_type_7.parse/warnings.log similarity index 100% rename from cerberus/effective_type_7.parse/warnings.log rename to cerberus/.frama-c/effective_type_7.parse/warnings.log diff --git a/cerberus/effective_type_8.eva/alarms.csv b/cerberus/.frama-c/effective_type_8.eva/alarms.csv similarity index 100% rename from cerberus/effective_type_8.eva/alarms.csv rename to cerberus/.frama-c/effective_type_8.eva/alarms.csv diff --git a/cerberus/effective_type_8.eva/metrics.log b/cerberus/.frama-c/effective_type_8.eva/metrics.log similarity index 100% rename from cerberus/effective_type_8.eva/metrics.log rename to cerberus/.frama-c/effective_type_8.eva/metrics.log diff --git a/cerberus/effective_type_8.eva/nonterm.log b/cerberus/.frama-c/effective_type_8.eva/nonterm.log similarity index 100% rename from cerberus/effective_type_8.eva/nonterm.log rename to cerberus/.frama-c/effective_type_8.eva/nonterm.log diff --git a/cerberus/effective_type_8.eva/warnings.log b/cerberus/.frama-c/effective_type_8.eva/warnings.log similarity index 100% rename from cerberus/effective_type_8.eva/warnings.log rename to cerberus/.frama-c/effective_type_8.eva/warnings.log diff --git a/cerberus/effective_type_8.parse/framac.ast b/cerberus/.frama-c/effective_type_8.parse/framac.ast similarity index 100% rename from cerberus/effective_type_8.parse/framac.ast rename to cerberus/.frama-c/effective_type_8.parse/framac.ast diff --git a/cerberus/effective_type_8.parse/metrics.log b/cerberus/.frama-c/effective_type_8.parse/metrics.log similarity index 100% rename from cerberus/effective_type_8.parse/metrics.log rename to cerberus/.frama-c/effective_type_8.parse/metrics.log diff --git a/cerberus/effective_type_8.parse/warnings.log b/cerberus/.frama-c/effective_type_8.parse/warnings.log similarity index 100% rename from cerberus/effective_type_8.parse/warnings.log rename to cerberus/.frama-c/effective_type_8.parse/warnings.log diff --git a/cerberus/effective_type_9.eva/alarms.csv b/cerberus/.frama-c/effective_type_9.eva/alarms.csv similarity index 100% rename from cerberus/effective_type_9.eva/alarms.csv rename to cerberus/.frama-c/effective_type_9.eva/alarms.csv diff --git a/cerberus/effective_type_9.eva/metrics.log b/cerberus/.frama-c/effective_type_9.eva/metrics.log similarity index 100% rename from cerberus/effective_type_9.eva/metrics.log rename to cerberus/.frama-c/effective_type_9.eva/metrics.log diff --git a/cerberus/effective_type_9.eva/nonterm.log b/cerberus/.frama-c/effective_type_9.eva/nonterm.log similarity index 100% rename from cerberus/effective_type_9.eva/nonterm.log rename to cerberus/.frama-c/effective_type_9.eva/nonterm.log diff --git a/cerberus/effective_type_9.eva/warnings.log b/cerberus/.frama-c/effective_type_9.eva/warnings.log similarity index 100% rename from cerberus/effective_type_9.eva/warnings.log rename to cerberus/.frama-c/effective_type_9.eva/warnings.log diff --git a/cerberus/effective_type_9.parse/framac.ast b/cerberus/.frama-c/effective_type_9.parse/framac.ast similarity index 100% rename from cerberus/effective_type_9.parse/framac.ast rename to cerberus/.frama-c/effective_type_9.parse/framac.ast diff --git a/cerberus/effective_type_9.parse/metrics.log b/cerberus/.frama-c/effective_type_9.parse/metrics.log similarity index 100% rename from cerberus/effective_type_9.parse/metrics.log rename to cerberus/.frama-c/effective_type_9.parse/metrics.log diff --git a/cerberus/effective_type_9.parse/warnings.log b/cerberus/.frama-c/effective_type_9.parse/warnings.log similarity index 100% rename from cerberus/effective_type_9.parse/warnings.log rename to cerberus/.frama-c/effective_type_9.parse/warnings.log diff --git a/cerberus/fc_stubs.h b/cerberus/.frama-c/fc_stubs.h similarity index 100% rename from cerberus/fc_stubs.h rename to cerberus/.frama-c/fc_stubs.h diff --git a/cerberus/frama-c-2013-03-13-2.eva/alarms.csv b/cerberus/.frama-c/frama-c-2013-03-13-2.eva/alarms.csv similarity index 100% rename from cerberus/frama-c-2013-03-13-2.eva/alarms.csv rename to cerberus/.frama-c/frama-c-2013-03-13-2.eva/alarms.csv diff --git a/cerberus/frama-c-2013-03-13-2.eva/metrics.log b/cerberus/.frama-c/frama-c-2013-03-13-2.eva/metrics.log similarity index 100% rename from cerberus/frama-c-2013-03-13-2.eva/metrics.log rename to cerberus/.frama-c/frama-c-2013-03-13-2.eva/metrics.log diff --git a/cerberus/frama-c-2013-03-13-2.eva/nonterm.log b/cerberus/.frama-c/frama-c-2013-03-13-2.eva/nonterm.log similarity index 100% rename from cerberus/frama-c-2013-03-13-2.eva/nonterm.log rename to cerberus/.frama-c/frama-c-2013-03-13-2.eva/nonterm.log diff --git a/cerberus/frama-c-2013-03-13-2.eva/warnings.log b/cerberus/.frama-c/frama-c-2013-03-13-2.eva/warnings.log similarity index 100% rename from cerberus/frama-c-2013-03-13-2.eva/warnings.log rename to cerberus/.frama-c/frama-c-2013-03-13-2.eva/warnings.log diff --git a/cerberus/frama-c-2013-03-13-2.parse/framac.ast b/cerberus/.frama-c/frama-c-2013-03-13-2.parse/framac.ast similarity index 100% rename from cerberus/frama-c-2013-03-13-2.parse/framac.ast rename to cerberus/.frama-c/frama-c-2013-03-13-2.parse/framac.ast diff --git a/cerberus/frama-c-2013-03-13-2.parse/metrics.log b/cerberus/.frama-c/frama-c-2013-03-13-2.parse/metrics.log similarity index 100% rename from cerberus/frama-c-2013-03-13-2.parse/metrics.log rename to cerberus/.frama-c/frama-c-2013-03-13-2.parse/metrics.log diff --git a/cerberus/frama-c-2013-03-13-2.parse/warnings.log b/cerberus/.frama-c/frama-c-2013-03-13-2.parse/warnings.log similarity index 100% rename from cerberus/frama-c-2013-03-13-2.parse/warnings.log rename to cerberus/.frama-c/frama-c-2013-03-13-2.parse/warnings.log diff --git a/cerberus/frama-c-2013-03-13-3-uc.eva/alarms.csv b/cerberus/.frama-c/frama-c-2013-03-13-3-uc.eva/alarms.csv similarity index 100% rename from cerberus/frama-c-2013-03-13-3-uc.eva/alarms.csv rename to cerberus/.frama-c/frama-c-2013-03-13-3-uc.eva/alarms.csv diff --git a/cerberus/frama-c-2013-03-13-3-uc.eva/metrics.log b/cerberus/.frama-c/frama-c-2013-03-13-3-uc.eva/metrics.log similarity index 100% rename from cerberus/frama-c-2013-03-13-3-uc.eva/metrics.log rename to cerberus/.frama-c/frama-c-2013-03-13-3-uc.eva/metrics.log diff --git a/cerberus/frama-c-2013-03-13-3-uc.eva/nonterm.log b/cerberus/.frama-c/frama-c-2013-03-13-3-uc.eva/nonterm.log similarity index 100% rename from cerberus/frama-c-2013-03-13-3-uc.eva/nonterm.log rename to cerberus/.frama-c/frama-c-2013-03-13-3-uc.eva/nonterm.log diff --git a/cerberus/frama-c-2013-03-13-3-uc.eva/warnings.log b/cerberus/.frama-c/frama-c-2013-03-13-3-uc.eva/warnings.log similarity index 100% rename from cerberus/frama-c-2013-03-13-3-uc.eva/warnings.log rename to cerberus/.frama-c/frama-c-2013-03-13-3-uc.eva/warnings.log diff --git a/cerberus/frama-c-2013-03-13-3-uc.parse/framac.ast b/cerberus/.frama-c/frama-c-2013-03-13-3-uc.parse/framac.ast similarity index 100% rename from cerberus/frama-c-2013-03-13-3-uc.parse/framac.ast rename to cerberus/.frama-c/frama-c-2013-03-13-3-uc.parse/framac.ast diff --git a/cerberus/frama-c-2013-03-13-3-uc.parse/metrics.log b/cerberus/.frama-c/frama-c-2013-03-13-3-uc.parse/metrics.log similarity index 100% rename from cerberus/frama-c-2013-03-13-3-uc.parse/metrics.log rename to cerberus/.frama-c/frama-c-2013-03-13-3-uc.parse/metrics.log diff --git a/cerberus/frama-c-2013-03-13-3-uc.parse/warnings.log b/cerberus/.frama-c/frama-c-2013-03-13-3-uc.parse/warnings.log similarity index 100% rename from cerberus/frama-c-2013-03-13-3-uc.parse/warnings.log rename to cerberus/.frama-c/frama-c-2013-03-13-3-uc.parse/warnings.log diff --git a/cerberus/frama-c-2013-03-13-3.eva/alarms.csv b/cerberus/.frama-c/frama-c-2013-03-13-3.eva/alarms.csv similarity index 100% rename from cerberus/frama-c-2013-03-13-3.eva/alarms.csv rename to cerberus/.frama-c/frama-c-2013-03-13-3.eva/alarms.csv diff --git a/cerberus/frama-c-2013-03-13-3.eva/metrics.log b/cerberus/.frama-c/frama-c-2013-03-13-3.eva/metrics.log similarity index 100% rename from cerberus/frama-c-2013-03-13-3.eva/metrics.log rename to cerberus/.frama-c/frama-c-2013-03-13-3.eva/metrics.log diff --git a/cerberus/frama-c-2013-03-13-3.eva/nonterm.log b/cerberus/.frama-c/frama-c-2013-03-13-3.eva/nonterm.log similarity index 100% rename from cerberus/frama-c-2013-03-13-3.eva/nonterm.log rename to cerberus/.frama-c/frama-c-2013-03-13-3.eva/nonterm.log diff --git a/cerberus/frama-c-2013-03-13-3.eva/warnings.log b/cerberus/.frama-c/frama-c-2013-03-13-3.eva/warnings.log similarity index 100% rename from cerberus/frama-c-2013-03-13-3.eva/warnings.log rename to cerberus/.frama-c/frama-c-2013-03-13-3.eva/warnings.log diff --git a/cerberus/frama-c-2013-03-13-3.parse/framac.ast b/cerberus/.frama-c/frama-c-2013-03-13-3.parse/framac.ast similarity index 100% rename from cerberus/frama-c-2013-03-13-3.parse/framac.ast rename to cerberus/.frama-c/frama-c-2013-03-13-3.parse/framac.ast diff --git a/cerberus/frama-c-2013-03-13-3.parse/metrics.log b/cerberus/.frama-c/frama-c-2013-03-13-3.parse/metrics.log similarity index 100% rename from cerberus/frama-c-2013-03-13-3.parse/metrics.log rename to cerberus/.frama-c/frama-c-2013-03-13-3.parse/metrics.log diff --git a/cerberus/frama-c-2013-03-13-3.parse/warnings.log b/cerberus/.frama-c/frama-c-2013-03-13-3.parse/warnings.log similarity index 100% rename from cerberus/frama-c-2013-03-13-3.parse/warnings.log rename to cerberus/.frama-c/frama-c-2013-03-13-3.parse/warnings.log diff --git a/cerberus/khmgzv-1.eva/alarms.csv b/cerberus/.frama-c/khmgzv-1.eva/alarms.csv similarity index 100% rename from cerberus/khmgzv-1.eva/alarms.csv rename to cerberus/.frama-c/khmgzv-1.eva/alarms.csv diff --git a/cerberus/khmgzv-1.eva/metrics.log b/cerberus/.frama-c/khmgzv-1.eva/metrics.log similarity index 100% rename from cerberus/khmgzv-1.eva/metrics.log rename to cerberus/.frama-c/khmgzv-1.eva/metrics.log diff --git a/cerberus/khmgzv-1.eva/nonterm.log b/cerberus/.frama-c/khmgzv-1.eva/nonterm.log similarity index 100% rename from cerberus/khmgzv-1.eva/nonterm.log rename to cerberus/.frama-c/khmgzv-1.eva/nonterm.log diff --git a/cerberus/khmgzv-1.eva/warnings.log b/cerberus/.frama-c/khmgzv-1.eva/warnings.log similarity index 100% rename from cerberus/khmgzv-1.eva/warnings.log rename to cerberus/.frama-c/khmgzv-1.eva/warnings.log diff --git a/cerberus/khmgzv-1.parse/framac.ast b/cerberus/.frama-c/khmgzv-1.parse/framac.ast similarity index 100% rename from cerberus/khmgzv-1.parse/framac.ast rename to cerberus/.frama-c/khmgzv-1.parse/framac.ast diff --git a/cerberus/khmgzv-1.parse/metrics.log b/cerberus/.frama-c/khmgzv-1.parse/metrics.log similarity index 100% rename from cerberus/khmgzv-1.parse/metrics.log rename to cerberus/.frama-c/khmgzv-1.parse/metrics.log diff --git a/cerberus/khmgzv-1.parse/warnings.log b/cerberus/.frama-c/khmgzv-1.parse/warnings.log similarity index 100% rename from cerberus/khmgzv-1.parse/warnings.log rename to cerberus/.frama-c/khmgzv-1.parse/warnings.log diff --git a/cerberus/khmgzv-2.eva/alarms.csv b/cerberus/.frama-c/khmgzv-2.eva/alarms.csv similarity index 100% rename from cerberus/khmgzv-2.eva/alarms.csv rename to cerberus/.frama-c/khmgzv-2.eva/alarms.csv diff --git a/cerberus/khmgzv-2.eva/metrics.log b/cerberus/.frama-c/khmgzv-2.eva/metrics.log similarity index 100% rename from cerberus/khmgzv-2.eva/metrics.log rename to cerberus/.frama-c/khmgzv-2.eva/metrics.log diff --git a/cerberus/khmgzv-2.eva/nonterm.log b/cerberus/.frama-c/khmgzv-2.eva/nonterm.log similarity index 100% rename from cerberus/khmgzv-2.eva/nonterm.log rename to cerberus/.frama-c/khmgzv-2.eva/nonterm.log diff --git a/cerberus/khmgzv-2.eva/warnings.log b/cerberus/.frama-c/khmgzv-2.eva/warnings.log similarity index 100% rename from cerberus/khmgzv-2.eva/warnings.log rename to cerberus/.frama-c/khmgzv-2.eva/warnings.log diff --git a/cerberus/khmgzv-2.parse/framac.ast b/cerberus/.frama-c/khmgzv-2.parse/framac.ast similarity index 100% rename from cerberus/khmgzv-2.parse/framac.ast rename to cerberus/.frama-c/khmgzv-2.parse/framac.ast diff --git a/cerberus/khmgzv-2.parse/metrics.log b/cerberus/.frama-c/khmgzv-2.parse/metrics.log similarity index 100% rename from cerberus/khmgzv-2.parse/metrics.log rename to cerberus/.frama-c/khmgzv-2.parse/metrics.log diff --git a/cerberus/khmgzv-2.parse/warnings.log b/cerberus/.frama-c/khmgzv-2.parse/warnings.log similarity index 100% rename from cerberus/khmgzv-2.parse/warnings.log rename to cerberus/.frama-c/khmgzv-2.parse/warnings.log diff --git a/cerberus/klw-itp14-1.eva/alarms.csv b/cerberus/.frama-c/klw-itp14-1.eva/alarms.csv similarity index 100% rename from cerberus/klw-itp14-1.eva/alarms.csv rename to cerberus/.frama-c/klw-itp14-1.eva/alarms.csv diff --git a/cerberus/klw-itp14-1.eva/metrics.log b/cerberus/.frama-c/klw-itp14-1.eva/metrics.log similarity index 100% rename from cerberus/klw-itp14-1.eva/metrics.log rename to cerberus/.frama-c/klw-itp14-1.eva/metrics.log diff --git a/cerberus/klw-itp14-1.eva/nonterm.log b/cerberus/.frama-c/klw-itp14-1.eva/nonterm.log similarity index 100% rename from cerberus/klw-itp14-1.eva/nonterm.log rename to cerberus/.frama-c/klw-itp14-1.eva/nonterm.log diff --git a/cerberus/klw-itp14-1.eva/warnings.log b/cerberus/.frama-c/klw-itp14-1.eva/warnings.log similarity index 100% rename from cerberus/klw-itp14-1.eva/warnings.log rename to cerberus/.frama-c/klw-itp14-1.eva/warnings.log diff --git a/cerberus/klw-itp14-1.parse/framac.ast b/cerberus/.frama-c/klw-itp14-1.parse/framac.ast similarity index 100% rename from cerberus/klw-itp14-1.parse/framac.ast rename to cerberus/.frama-c/klw-itp14-1.parse/framac.ast diff --git a/cerberus/klw-itp14-1.parse/metrics.log b/cerberus/.frama-c/klw-itp14-1.parse/metrics.log similarity index 100% rename from cerberus/klw-itp14-1.parse/metrics.log rename to cerberus/.frama-c/klw-itp14-1.parse/metrics.log diff --git a/cerberus/klw-itp14-1.parse/warnings.log b/cerberus/.frama-c/klw-itp14-1.parse/warnings.log similarity index 100% rename from cerberus/klw-itp14-1.parse/warnings.log rename to cerberus/.frama-c/klw-itp14-1.parse/warnings.log diff --git a/cerberus/klw-itp14-2.eva/alarms.csv b/cerberus/.frama-c/klw-itp14-2.eva/alarms.csv similarity index 100% rename from cerberus/klw-itp14-2.eva/alarms.csv rename to cerberus/.frama-c/klw-itp14-2.eva/alarms.csv diff --git a/cerberus/klw-itp14-2.eva/metrics.log b/cerberus/.frama-c/klw-itp14-2.eva/metrics.log similarity index 100% rename from cerberus/klw-itp14-2.eva/metrics.log rename to cerberus/.frama-c/klw-itp14-2.eva/metrics.log diff --git a/cerberus/klw-itp14-2.eva/nonterm.log b/cerberus/.frama-c/klw-itp14-2.eva/nonterm.log similarity index 100% rename from cerberus/klw-itp14-2.eva/nonterm.log rename to cerberus/.frama-c/klw-itp14-2.eva/nonterm.log diff --git a/cerberus/klw-itp14-2.eva/warnings.log b/cerberus/.frama-c/klw-itp14-2.eva/warnings.log similarity index 100% rename from cerberus/klw-itp14-2.eva/warnings.log rename to cerberus/.frama-c/klw-itp14-2.eva/warnings.log diff --git a/cerberus/klw-itp14-2.parse/framac.ast b/cerberus/.frama-c/klw-itp14-2.parse/framac.ast similarity index 100% rename from cerberus/klw-itp14-2.parse/framac.ast rename to cerberus/.frama-c/klw-itp14-2.parse/framac.ast diff --git a/cerberus/klw-itp14-2.parse/metrics.log b/cerberus/.frama-c/klw-itp14-2.parse/metrics.log similarity index 100% rename from cerberus/klw-itp14-2.parse/metrics.log rename to cerberus/.frama-c/klw-itp14-2.parse/metrics.log diff --git a/cerberus/klw-itp14-2.parse/warnings.log b/cerberus/.frama-c/klw-itp14-2.parse/warnings.log similarity index 100% rename from cerberus/klw-itp14-2.parse/warnings.log rename to cerberus/.frama-c/klw-itp14-2.parse/warnings.log diff --git a/cerberus/krebbers_biener_1.eva/alarms.csv b/cerberus/.frama-c/krebbers_biener_1.eva/alarms.csv similarity index 100% rename from cerberus/krebbers_biener_1.eva/alarms.csv rename to cerberus/.frama-c/krebbers_biener_1.eva/alarms.csv diff --git a/cerberus/krebbers_biener_1.eva/metrics.log b/cerberus/.frama-c/krebbers_biener_1.eva/metrics.log similarity index 100% rename from cerberus/krebbers_biener_1.eva/metrics.log rename to cerberus/.frama-c/krebbers_biener_1.eva/metrics.log diff --git a/cerberus/krebbers_biener_1.eva/nonterm.log b/cerberus/.frama-c/krebbers_biener_1.eva/nonterm.log similarity index 100% rename from cerberus/krebbers_biener_1.eva/nonterm.log rename to cerberus/.frama-c/krebbers_biener_1.eva/nonterm.log diff --git a/cerberus/krebbers_biener_1.eva/warnings.log b/cerberus/.frama-c/krebbers_biener_1.eva/warnings.log similarity index 100% rename from cerberus/krebbers_biener_1.eva/warnings.log rename to cerberus/.frama-c/krebbers_biener_1.eva/warnings.log diff --git a/cerberus/krebbers_biener_1.parse/framac.ast b/cerberus/.frama-c/krebbers_biener_1.parse/framac.ast similarity index 100% rename from cerberus/krebbers_biener_1.parse/framac.ast rename to cerberus/.frama-c/krebbers_biener_1.parse/framac.ast diff --git a/cerberus/krebbers_biener_1.parse/metrics.log b/cerberus/.frama-c/krebbers_biener_1.parse/metrics.log similarity index 100% rename from cerberus/krebbers_biener_1.parse/metrics.log rename to cerberus/.frama-c/krebbers_biener_1.parse/metrics.log diff --git a/cerberus/krebbers_biener_1.parse/warnings.log b/cerberus/.frama-c/krebbers_biener_1.parse/warnings.log similarity index 100% rename from cerberus/krebbers_biener_1.parse/warnings.log rename to cerberus/.frama-c/krebbers_biener_1.parse/warnings.log diff --git a/cerberus/null_pointer_1.eva/alarms.csv b/cerberus/.frama-c/null_pointer_1.eva/alarms.csv similarity index 100% rename from cerberus/null_pointer_1.eva/alarms.csv rename to cerberus/.frama-c/null_pointer_1.eva/alarms.csv diff --git a/cerberus/null_pointer_1.eva/metrics.log b/cerberus/.frama-c/null_pointer_1.eva/metrics.log similarity index 100% rename from cerberus/null_pointer_1.eva/metrics.log rename to cerberus/.frama-c/null_pointer_1.eva/metrics.log diff --git a/cerberus/null_pointer_1.eva/nonterm.log b/cerberus/.frama-c/null_pointer_1.eva/nonterm.log similarity index 100% rename from cerberus/null_pointer_1.eva/nonterm.log rename to cerberus/.frama-c/null_pointer_1.eva/nonterm.log diff --git a/cerberus/null_pointer_1.eva/warnings.log b/cerberus/.frama-c/null_pointer_1.eva/warnings.log similarity index 100% rename from cerberus/null_pointer_1.eva/warnings.log rename to cerberus/.frama-c/null_pointer_1.eva/warnings.log diff --git a/cerberus/null_pointer_1.parse/framac.ast b/cerberus/.frama-c/null_pointer_1.parse/framac.ast similarity index 100% rename from cerberus/null_pointer_1.parse/framac.ast rename to cerberus/.frama-c/null_pointer_1.parse/framac.ast diff --git a/cerberus/null_pointer_1.parse/metrics.log b/cerberus/.frama-c/null_pointer_1.parse/metrics.log similarity index 100% rename from cerberus/null_pointer_1.parse/metrics.log rename to cerberus/.frama-c/null_pointer_1.parse/metrics.log diff --git a/cerberus/null_pointer_1.parse/warnings.log b/cerberus/.frama-c/null_pointer_1.parse/warnings.log similarity index 100% rename from cerberus/null_pointer_1.parse/warnings.log rename to cerberus/.frama-c/null_pointer_1.parse/warnings.log diff --git a/cerberus/null_pointer_2.eva/alarms.csv b/cerberus/.frama-c/null_pointer_2.eva/alarms.csv similarity index 100% rename from cerberus/null_pointer_2.eva/alarms.csv rename to cerberus/.frama-c/null_pointer_2.eva/alarms.csv diff --git a/cerberus/null_pointer_2.eva/metrics.log b/cerberus/.frama-c/null_pointer_2.eva/metrics.log similarity index 100% rename from cerberus/null_pointer_2.eva/metrics.log rename to cerberus/.frama-c/null_pointer_2.eva/metrics.log diff --git a/cerberus/null_pointer_2.eva/nonterm.log b/cerberus/.frama-c/null_pointer_2.eva/nonterm.log similarity index 100% rename from cerberus/null_pointer_2.eva/nonterm.log rename to cerberus/.frama-c/null_pointer_2.eva/nonterm.log diff --git a/cerberus/null_pointer_2.eva/warnings.log b/cerberus/.frama-c/null_pointer_2.eva/warnings.log similarity index 100% rename from cerberus/null_pointer_2.eva/warnings.log rename to cerberus/.frama-c/null_pointer_2.eva/warnings.log diff --git a/cerberus/null_pointer_2.parse/framac.ast b/cerberus/.frama-c/null_pointer_2.parse/framac.ast similarity index 100% rename from cerberus/null_pointer_2.parse/framac.ast rename to cerberus/.frama-c/null_pointer_2.parse/framac.ast diff --git a/cerberus/null_pointer_2.parse/metrics.log b/cerberus/.frama-c/null_pointer_2.parse/metrics.log similarity index 100% rename from cerberus/null_pointer_2.parse/metrics.log rename to cerberus/.frama-c/null_pointer_2.parse/metrics.log diff --git a/cerberus/null_pointer_2.parse/warnings.log b/cerberus/.frama-c/null_pointer_2.parse/warnings.log similarity index 100% rename from cerberus/null_pointer_2.parse/warnings.log rename to cerberus/.frama-c/null_pointer_2.parse/warnings.log diff --git a/cerberus/null_pointer_3.eva/alarms.csv b/cerberus/.frama-c/null_pointer_3.eva/alarms.csv similarity index 100% rename from cerberus/null_pointer_3.eva/alarms.csv rename to cerberus/.frama-c/null_pointer_3.eva/alarms.csv diff --git a/cerberus/null_pointer_3.eva/metrics.log b/cerberus/.frama-c/null_pointer_3.eva/metrics.log similarity index 100% rename from cerberus/null_pointer_3.eva/metrics.log rename to cerberus/.frama-c/null_pointer_3.eva/metrics.log diff --git a/cerberus/null_pointer_3.eva/nonterm.log b/cerberus/.frama-c/null_pointer_3.eva/nonterm.log similarity index 100% rename from cerberus/null_pointer_3.eva/nonterm.log rename to cerberus/.frama-c/null_pointer_3.eva/nonterm.log diff --git a/cerberus/null_pointer_3.eva/warnings.log b/cerberus/.frama-c/null_pointer_3.eva/warnings.log similarity index 100% rename from cerberus/null_pointer_3.eva/warnings.log rename to cerberus/.frama-c/null_pointer_3.eva/warnings.log diff --git a/cerberus/null_pointer_3.parse/framac.ast b/cerberus/.frama-c/null_pointer_3.parse/framac.ast similarity index 100% rename from cerberus/null_pointer_3.parse/framac.ast rename to cerberus/.frama-c/null_pointer_3.parse/framac.ast diff --git a/cerberus/null_pointer_3.parse/metrics.log b/cerberus/.frama-c/null_pointer_3.parse/metrics.log similarity index 100% rename from cerberus/null_pointer_3.parse/metrics.log rename to cerberus/.frama-c/null_pointer_3.parse/metrics.log diff --git a/cerberus/null_pointer_3.parse/warnings.log b/cerberus/.frama-c/null_pointer_3.parse/warnings.log similarity index 100% rename from cerberus/null_pointer_3.parse/warnings.log rename to cerberus/.frama-c/null_pointer_3.parse/warnings.log diff --git a/cerberus/null_pointer_4.eva/alarms.csv b/cerberus/.frama-c/null_pointer_4.eva/alarms.csv similarity index 100% rename from cerberus/null_pointer_4.eva/alarms.csv rename to cerberus/.frama-c/null_pointer_4.eva/alarms.csv diff --git a/cerberus/null_pointer_4.eva/metrics.log b/cerberus/.frama-c/null_pointer_4.eva/metrics.log similarity index 100% rename from cerberus/null_pointer_4.eva/metrics.log rename to cerberus/.frama-c/null_pointer_4.eva/metrics.log diff --git a/cerberus/null_pointer_4.eva/nonterm.log b/cerberus/.frama-c/null_pointer_4.eva/nonterm.log similarity index 100% rename from cerberus/null_pointer_4.eva/nonterm.log rename to cerberus/.frama-c/null_pointer_4.eva/nonterm.log diff --git a/cerberus/.frama-c/null_pointer_4.eva/warnings.log b/cerberus/.frama-c/null_pointer_4.eva/warnings.log new file mode 100644 index 0000000000000000000000000000000000000000..14647f2485bd840524d36da174531e6de0237c15 --- /dev/null +++ b/cerberus/.frama-c/null_pointer_4.eva/warnings.log @@ -0,0 +1 @@ +[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration. diff --git a/cerberus/null_pointer_4.parse/framac.ast b/cerberus/.frama-c/null_pointer_4.parse/framac.ast similarity index 100% rename from cerberus/null_pointer_4.parse/framac.ast rename to cerberus/.frama-c/null_pointer_4.parse/framac.ast diff --git a/cerberus/null_pointer_4.parse/metrics.log b/cerberus/.frama-c/null_pointer_4.parse/metrics.log similarity index 100% rename from cerberus/null_pointer_4.parse/metrics.log rename to cerberus/.frama-c/null_pointer_4.parse/metrics.log diff --git a/cerberus/null_pointer_4.eva/warnings.log b/cerberus/.frama-c/null_pointer_4.parse/warnings.log similarity index 100% rename from cerberus/null_pointer_4.eva/warnings.log rename to cerberus/.frama-c/null_pointer_4.parse/warnings.log diff --git a/cerberus/padding_10.eva/alarms.csv b/cerberus/.frama-c/padding_10.eva/alarms.csv similarity index 100% rename from cerberus/padding_10.eva/alarms.csv rename to cerberus/.frama-c/padding_10.eva/alarms.csv diff --git a/cerberus/padding_10.eva/metrics.log b/cerberus/.frama-c/padding_10.eva/metrics.log similarity index 100% rename from cerberus/padding_10.eva/metrics.log rename to cerberus/.frama-c/padding_10.eva/metrics.log diff --git a/cerberus/padding_10.eva/nonterm.log b/cerberus/.frama-c/padding_10.eva/nonterm.log similarity index 100% rename from cerberus/padding_10.eva/nonterm.log rename to cerberus/.frama-c/padding_10.eva/nonterm.log diff --git a/cerberus/null_pointer_4.parse/warnings.log b/cerberus/.frama-c/padding_10.eva/warnings.log similarity index 100% rename from cerberus/null_pointer_4.parse/warnings.log rename to cerberus/.frama-c/padding_10.eva/warnings.log diff --git a/cerberus/padding_10.parse/framac.ast b/cerberus/.frama-c/padding_10.parse/framac.ast similarity index 100% rename from cerberus/padding_10.parse/framac.ast rename to cerberus/.frama-c/padding_10.parse/framac.ast diff --git a/cerberus/padding_10.parse/metrics.log b/cerberus/.frama-c/padding_10.parse/metrics.log similarity index 100% rename from cerberus/padding_10.parse/metrics.log rename to cerberus/.frama-c/padding_10.parse/metrics.log diff --git a/cerberus/padding_10.eva/warnings.log b/cerberus/.frama-c/padding_10.parse/warnings.log similarity index 100% rename from cerberus/padding_10.eva/warnings.log rename to cerberus/.frama-c/padding_10.parse/warnings.log diff --git a/cerberus/padding_struct_copy_1.eva/alarms.csv b/cerberus/.frama-c/padding_struct_copy_1.eva/alarms.csv similarity index 100% rename from cerberus/padding_struct_copy_1.eva/alarms.csv rename to cerberus/.frama-c/padding_struct_copy_1.eva/alarms.csv diff --git a/cerberus/padding_struct_copy_1.eva/metrics.log b/cerberus/.frama-c/padding_struct_copy_1.eva/metrics.log similarity index 100% rename from cerberus/padding_struct_copy_1.eva/metrics.log rename to cerberus/.frama-c/padding_struct_copy_1.eva/metrics.log diff --git a/cerberus/padding_struct_copy_1.eva/nonterm.log b/cerberus/.frama-c/padding_struct_copy_1.eva/nonterm.log similarity index 100% rename from cerberus/padding_struct_copy_1.eva/nonterm.log rename to cerberus/.frama-c/padding_struct_copy_1.eva/nonterm.log diff --git a/cerberus/padding_10.parse/warnings.log b/cerberus/.frama-c/padding_struct_copy_1.eva/warnings.log similarity index 100% rename from cerberus/padding_10.parse/warnings.log rename to cerberus/.frama-c/padding_struct_copy_1.eva/warnings.log diff --git a/cerberus/padding_struct_copy_1.parse/framac.ast b/cerberus/.frama-c/padding_struct_copy_1.parse/framac.ast similarity index 100% rename from cerberus/padding_struct_copy_1.parse/framac.ast rename to cerberus/.frama-c/padding_struct_copy_1.parse/framac.ast diff --git a/cerberus/padding_struct_copy_1.parse/metrics.log b/cerberus/.frama-c/padding_struct_copy_1.parse/metrics.log similarity index 100% rename from cerberus/padding_struct_copy_1.parse/metrics.log rename to cerberus/.frama-c/padding_struct_copy_1.parse/metrics.log diff --git a/cerberus/padding_struct_copy_1.parse/warnings.log b/cerberus/.frama-c/padding_struct_copy_1.parse/warnings.log similarity index 100% rename from cerberus/padding_struct_copy_1.parse/warnings.log rename to cerberus/.frama-c/padding_struct_copy_1.parse/warnings.log diff --git a/cerberus/padding_struct_copy_2.eva/alarms.csv b/cerberus/.frama-c/padding_struct_copy_2.eva/alarms.csv similarity index 100% rename from cerberus/padding_struct_copy_2.eva/alarms.csv rename to cerberus/.frama-c/padding_struct_copy_2.eva/alarms.csv diff --git a/cerberus/padding_struct_copy_2.eva/metrics.log b/cerberus/.frama-c/padding_struct_copy_2.eva/metrics.log similarity index 100% rename from cerberus/padding_struct_copy_2.eva/metrics.log rename to cerberus/.frama-c/padding_struct_copy_2.eva/metrics.log diff --git a/cerberus/padding_struct_copy_2.eva/nonterm.log b/cerberus/.frama-c/padding_struct_copy_2.eva/nonterm.log similarity index 100% rename from cerberus/padding_struct_copy_2.eva/nonterm.log rename to cerberus/.frama-c/padding_struct_copy_2.eva/nonterm.log diff --git a/cerberus/padding_struct_copy_1.eva/warnings.log b/cerberus/.frama-c/padding_struct_copy_2.eva/warnings.log similarity index 100% rename from cerberus/padding_struct_copy_1.eva/warnings.log rename to cerberus/.frama-c/padding_struct_copy_2.eva/warnings.log diff --git a/cerberus/padding_struct_copy_2.parse/framac.ast b/cerberus/.frama-c/padding_struct_copy_2.parse/framac.ast similarity index 100% rename from cerberus/padding_struct_copy_2.parse/framac.ast rename to cerberus/.frama-c/padding_struct_copy_2.parse/framac.ast diff --git a/cerberus/padding_struct_copy_2.parse/metrics.log b/cerberus/.frama-c/padding_struct_copy_2.parse/metrics.log similarity index 100% rename from cerberus/padding_struct_copy_2.parse/metrics.log rename to cerberus/.frama-c/padding_struct_copy_2.parse/metrics.log diff --git a/cerberus/padding_struct_copy_2.parse/warnings.log b/cerberus/.frama-c/padding_struct_copy_2.parse/warnings.log similarity index 100% rename from cerberus/padding_struct_copy_2.parse/warnings.log rename to cerberus/.frama-c/padding_struct_copy_2.parse/warnings.log diff --git a/cerberus/padding_struct_copy_3.eva/alarms.csv b/cerberus/.frama-c/padding_struct_copy_3.eva/alarms.csv similarity index 100% rename from cerberus/padding_struct_copy_3.eva/alarms.csv rename to cerberus/.frama-c/padding_struct_copy_3.eva/alarms.csv diff --git a/cerberus/padding_struct_copy_3.eva/metrics.log b/cerberus/.frama-c/padding_struct_copy_3.eva/metrics.log similarity index 100% rename from cerberus/padding_struct_copy_3.eva/metrics.log rename to cerberus/.frama-c/padding_struct_copy_3.eva/metrics.log diff --git a/cerberus/padding_struct_copy_3.eva/nonterm.log b/cerberus/.frama-c/padding_struct_copy_3.eva/nonterm.log similarity index 100% rename from cerberus/padding_struct_copy_3.eva/nonterm.log rename to cerberus/.frama-c/padding_struct_copy_3.eva/nonterm.log diff --git a/cerberus/padding_struct_copy_2.eva/warnings.log b/cerberus/.frama-c/padding_struct_copy_3.eva/warnings.log similarity index 100% rename from cerberus/padding_struct_copy_2.eva/warnings.log rename to cerberus/.frama-c/padding_struct_copy_3.eva/warnings.log diff --git a/cerberus/padding_struct_copy_3.parse/framac.ast b/cerberus/.frama-c/padding_struct_copy_3.parse/framac.ast similarity index 100% rename from cerberus/padding_struct_copy_3.parse/framac.ast rename to cerberus/.frama-c/padding_struct_copy_3.parse/framac.ast diff --git a/cerberus/padding_struct_copy_3.parse/metrics.log b/cerberus/.frama-c/padding_struct_copy_3.parse/metrics.log similarity index 100% rename from cerberus/padding_struct_copy_3.parse/metrics.log rename to cerberus/.frama-c/padding_struct_copy_3.parse/metrics.log diff --git a/cerberus/padding_struct_copy_3.parse/warnings.log b/cerberus/.frama-c/padding_struct_copy_3.parse/warnings.log similarity index 100% rename from cerberus/padding_struct_copy_3.parse/warnings.log rename to cerberus/.frama-c/padding_struct_copy_3.parse/warnings.log diff --git a/cerberus/padding_struct_copy_of_representation_bytes.eva/alarms.csv b/cerberus/.frama-c/padding_struct_copy_of_representation_bytes.eva/alarms.csv similarity index 100% rename from cerberus/padding_struct_copy_of_representation_bytes.eva/alarms.csv rename to cerberus/.frama-c/padding_struct_copy_of_representation_bytes.eva/alarms.csv diff --git a/cerberus/padding_struct_copy_of_representation_bytes.eva/metrics.log b/cerberus/.frama-c/padding_struct_copy_of_representation_bytes.eva/metrics.log similarity index 100% rename from cerberus/padding_struct_copy_of_representation_bytes.eva/metrics.log rename to cerberus/.frama-c/padding_struct_copy_of_representation_bytes.eva/metrics.log diff --git a/cerberus/padding_struct_copy_of_representation_bytes.eva/nonterm.log b/cerberus/.frama-c/padding_struct_copy_of_representation_bytes.eva/nonterm.log similarity index 100% rename from cerberus/padding_struct_copy_of_representation_bytes.eva/nonterm.log rename to cerberus/.frama-c/padding_struct_copy_of_representation_bytes.eva/nonterm.log diff --git a/cerberus/padding_struct_copy_3.eva/warnings.log b/cerberus/.frama-c/padding_struct_copy_of_representation_bytes.eva/warnings.log similarity index 100% rename from cerberus/padding_struct_copy_3.eva/warnings.log rename to cerberus/.frama-c/padding_struct_copy_of_representation_bytes.eva/warnings.log diff --git a/cerberus/padding_struct_copy_of_representation_bytes.parse/framac.ast b/cerberus/.frama-c/padding_struct_copy_of_representation_bytes.parse/framac.ast similarity index 100% rename from cerberus/padding_struct_copy_of_representation_bytes.parse/framac.ast rename to cerberus/.frama-c/padding_struct_copy_of_representation_bytes.parse/framac.ast diff --git a/cerberus/padding_struct_copy_of_representation_bytes.parse/metrics.log b/cerberus/.frama-c/padding_struct_copy_of_representation_bytes.parse/metrics.log similarity index 100% rename from cerberus/padding_struct_copy_of_representation_bytes.parse/metrics.log rename to cerberus/.frama-c/padding_struct_copy_of_representation_bytes.parse/metrics.log diff --git a/cerberus/padding_struct_copy_of_representation_bytes.eva/warnings.log b/cerberus/.frama-c/padding_struct_copy_of_representation_bytes.parse/warnings.log similarity index 100% rename from cerberus/padding_struct_copy_of_representation_bytes.eva/warnings.log rename to cerberus/.frama-c/padding_struct_copy_of_representation_bytes.parse/warnings.log diff --git a/cerberus/padding_struct_members_copy.eva/alarms.csv b/cerberus/.frama-c/padding_struct_members_copy.eva/alarms.csv similarity index 100% rename from cerberus/padding_struct_members_copy.eva/alarms.csv rename to cerberus/.frama-c/padding_struct_members_copy.eva/alarms.csv diff --git a/cerberus/padding_struct_members_copy.eva/metrics.log b/cerberus/.frama-c/padding_struct_members_copy.eva/metrics.log similarity index 100% rename from cerberus/padding_struct_members_copy.eva/metrics.log rename to cerberus/.frama-c/padding_struct_members_copy.eva/metrics.log diff --git a/cerberus/padding_struct_members_copy.eva/nonterm.log b/cerberus/.frama-c/padding_struct_members_copy.eva/nonterm.log similarity index 100% rename from cerberus/padding_struct_members_copy.eva/nonterm.log rename to cerberus/.frama-c/padding_struct_members_copy.eva/nonterm.log diff --git a/cerberus/padding_struct_copy_of_representation_bytes.parse/warnings.log b/cerberus/.frama-c/padding_struct_members_copy.eva/warnings.log similarity index 100% rename from cerberus/padding_struct_copy_of_representation_bytes.parse/warnings.log rename to cerberus/.frama-c/padding_struct_members_copy.eva/warnings.log diff --git a/cerberus/padding_struct_members_copy.parse/framac.ast b/cerberus/.frama-c/padding_struct_members_copy.parse/framac.ast similarity index 100% rename from cerberus/padding_struct_members_copy.parse/framac.ast rename to cerberus/.frama-c/padding_struct_members_copy.parse/framac.ast diff --git a/cerberus/padding_struct_members_copy.parse/metrics.log b/cerberus/.frama-c/padding_struct_members_copy.parse/metrics.log similarity index 100% rename from cerberus/padding_struct_members_copy.parse/metrics.log rename to cerberus/.frama-c/padding_struct_members_copy.parse/metrics.log diff --git a/cerberus/padding_struct_members_copy.parse/warnings.log b/cerberus/.frama-c/padding_struct_members_copy.parse/warnings.log similarity index 100% rename from cerberus/padding_struct_members_copy.parse/warnings.log rename to cerberus/.frama-c/padding_struct_members_copy.parse/warnings.log diff --git a/cerberus/padding_subunion_1.eva/alarms.csv b/cerberus/.frama-c/padding_subunion_1.eva/alarms.csv similarity index 100% rename from cerberus/padding_subunion_1.eva/alarms.csv rename to cerberus/.frama-c/padding_subunion_1.eva/alarms.csv diff --git a/cerberus/padding_subunion_1.eva/metrics.log b/cerberus/.frama-c/padding_subunion_1.eva/metrics.log similarity index 100% rename from cerberus/padding_subunion_1.eva/metrics.log rename to cerberus/.frama-c/padding_subunion_1.eva/metrics.log diff --git a/cerberus/padding_subunion_1.eva/nonterm.log b/cerberus/.frama-c/padding_subunion_1.eva/nonterm.log similarity index 100% rename from cerberus/padding_subunion_1.eva/nonterm.log rename to cerberus/.frama-c/padding_subunion_1.eva/nonterm.log diff --git a/cerberus/padding_subunion_1.eva/warnings.log b/cerberus/.frama-c/padding_subunion_1.eva/warnings.log similarity index 55% rename from cerberus/padding_subunion_1.eva/warnings.log rename to cerberus/.frama-c/padding_subunion_1.eva/warnings.log index 77839f1a9108487f674a9d242623eb32de248314..6dd22532c71a7986c9d79f214e93808b3f2584a0 100644 --- a/cerberus/padding_subunion_1.eva/warnings.log +++ b/cerberus/.frama-c/padding_subunion_1.eva/warnings.log @@ -1,2 +1,3 @@ +[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration. padding_subunion_1.c:7:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: main diff --git a/cerberus/padding_subunion_1.parse/framac.ast b/cerberus/.frama-c/padding_subunion_1.parse/framac.ast similarity index 100% rename from cerberus/padding_subunion_1.parse/framac.ast rename to cerberus/.frama-c/padding_subunion_1.parse/framac.ast diff --git a/cerberus/padding_subunion_1.parse/metrics.log b/cerberus/.frama-c/padding_subunion_1.parse/metrics.log similarity index 100% rename from cerberus/padding_subunion_1.parse/metrics.log rename to cerberus/.frama-c/padding_subunion_1.parse/metrics.log diff --git a/cerberus/padding_subunion_1.parse/warnings.log b/cerberus/.frama-c/padding_subunion_1.parse/warnings.log similarity index 100% rename from cerberus/padding_subunion_1.parse/warnings.log rename to cerberus/.frama-c/padding_subunion_1.parse/warnings.log diff --git a/cerberus/padding_subunion_2.eva/alarms.csv b/cerberus/.frama-c/padding_subunion_2.eva/alarms.csv similarity index 100% rename from cerberus/padding_subunion_2.eva/alarms.csv rename to cerberus/.frama-c/padding_subunion_2.eva/alarms.csv diff --git a/cerberus/padding_subunion_2.eva/metrics.log b/cerberus/.frama-c/padding_subunion_2.eva/metrics.log similarity index 100% rename from cerberus/padding_subunion_2.eva/metrics.log rename to cerberus/.frama-c/padding_subunion_2.eva/metrics.log diff --git a/cerberus/padding_subunion_2.eva/nonterm.log b/cerberus/.frama-c/padding_subunion_2.eva/nonterm.log similarity index 100% rename from cerberus/padding_subunion_2.eva/nonterm.log rename to cerberus/.frama-c/padding_subunion_2.eva/nonterm.log diff --git a/cerberus/padding_subunion_2.eva/warnings.log b/cerberus/.frama-c/padding_subunion_2.eva/warnings.log similarity index 100% rename from cerberus/padding_subunion_2.eva/warnings.log rename to cerberus/.frama-c/padding_subunion_2.eva/warnings.log diff --git a/cerberus/padding_subunion_2.parse/framac.ast b/cerberus/.frama-c/padding_subunion_2.parse/framac.ast similarity index 100% rename from cerberus/padding_subunion_2.parse/framac.ast rename to cerberus/.frama-c/padding_subunion_2.parse/framac.ast diff --git a/cerberus/padding_subunion_2.parse/metrics.log b/cerberus/.frama-c/padding_subunion_2.parse/metrics.log similarity index 100% rename from cerberus/padding_subunion_2.parse/metrics.log rename to cerberus/.frama-c/padding_subunion_2.parse/metrics.log diff --git a/cerberus/padding_subunion_2.parse/warnings.log b/cerberus/.frama-c/padding_subunion_2.parse/warnings.log similarity index 100% rename from cerberus/padding_subunion_2.parse/warnings.log rename to cerberus/.frama-c/padding_subunion_2.parse/warnings.log diff --git a/cerberus/padding_unspecified_value_1.eva/alarms.csv b/cerberus/.frama-c/padding_unspecified_value_1.eva/alarms.csv similarity index 100% rename from cerberus/padding_unspecified_value_1.eva/alarms.csv rename to cerberus/.frama-c/padding_unspecified_value_1.eva/alarms.csv diff --git a/cerberus/padding_unspecified_value_1.eva/metrics.log b/cerberus/.frama-c/padding_unspecified_value_1.eva/metrics.log similarity index 100% rename from cerberus/padding_unspecified_value_1.eva/metrics.log rename to cerberus/.frama-c/padding_unspecified_value_1.eva/metrics.log diff --git a/cerberus/padding_unspecified_value_1.eva/nonterm.log b/cerberus/.frama-c/padding_unspecified_value_1.eva/nonterm.log similarity index 100% rename from cerberus/padding_unspecified_value_1.eva/nonterm.log rename to cerberus/.frama-c/padding_unspecified_value_1.eva/nonterm.log diff --git a/cerberus/padding_struct_members_copy.eva/warnings.log b/cerberus/.frama-c/padding_unspecified_value_1.eva/warnings.log similarity index 100% rename from cerberus/padding_struct_members_copy.eva/warnings.log rename to cerberus/.frama-c/padding_unspecified_value_1.eva/warnings.log diff --git a/cerberus/padding_unspecified_value_1.parse/framac.ast b/cerberus/.frama-c/padding_unspecified_value_1.parse/framac.ast similarity index 100% rename from cerberus/padding_unspecified_value_1.parse/framac.ast rename to cerberus/.frama-c/padding_unspecified_value_1.parse/framac.ast diff --git a/cerberus/padding_unspecified_value_1.parse/metrics.log b/cerberus/.frama-c/padding_unspecified_value_1.parse/metrics.log similarity index 100% rename from cerberus/padding_unspecified_value_1.parse/metrics.log rename to cerberus/.frama-c/padding_unspecified_value_1.parse/metrics.log diff --git a/cerberus/padding_unspecified_value_1.eva/warnings.log b/cerberus/.frama-c/padding_unspecified_value_1.parse/warnings.log similarity index 100% rename from cerberus/padding_unspecified_value_1.eva/warnings.log rename to cerberus/.frama-c/padding_unspecified_value_1.parse/warnings.log diff --git a/cerberus/padding_unspecified_value_2.eva/alarms.csv b/cerberus/.frama-c/padding_unspecified_value_2.eva/alarms.csv similarity index 100% rename from cerberus/padding_unspecified_value_2.eva/alarms.csv rename to cerberus/.frama-c/padding_unspecified_value_2.eva/alarms.csv diff --git a/cerberus/padding_unspecified_value_2.eva/metrics.log b/cerberus/.frama-c/padding_unspecified_value_2.eva/metrics.log similarity index 100% rename from cerberus/padding_unspecified_value_2.eva/metrics.log rename to cerberus/.frama-c/padding_unspecified_value_2.eva/metrics.log diff --git a/cerberus/padding_unspecified_value_2.eva/nonterm.log b/cerberus/.frama-c/padding_unspecified_value_2.eva/nonterm.log similarity index 100% rename from cerberus/padding_unspecified_value_2.eva/nonterm.log rename to cerberus/.frama-c/padding_unspecified_value_2.eva/nonterm.log diff --git a/cerberus/padding_unspecified_value_1.parse/warnings.log b/cerberus/.frama-c/padding_unspecified_value_2.eva/warnings.log similarity index 100% rename from cerberus/padding_unspecified_value_1.parse/warnings.log rename to cerberus/.frama-c/padding_unspecified_value_2.eva/warnings.log diff --git a/cerberus/padding_unspecified_value_2.parse/framac.ast b/cerberus/.frama-c/padding_unspecified_value_2.parse/framac.ast similarity index 100% rename from cerberus/padding_unspecified_value_2.parse/framac.ast rename to cerberus/.frama-c/padding_unspecified_value_2.parse/framac.ast diff --git a/cerberus/padding_unspecified_value_2.parse/metrics.log b/cerberus/.frama-c/padding_unspecified_value_2.parse/metrics.log similarity index 100% rename from cerberus/padding_unspecified_value_2.parse/metrics.log rename to cerberus/.frama-c/padding_unspecified_value_2.parse/metrics.log diff --git a/cerberus/padding_unspecified_value_2.parse/warnings.log b/cerberus/.frama-c/padding_unspecified_value_2.parse/warnings.log similarity index 100% rename from cerberus/padding_unspecified_value_2.parse/warnings.log rename to cerberus/.frama-c/padding_unspecified_value_2.parse/warnings.log diff --git a/cerberus/padding_unspecified_value_3.eva/alarms.csv b/cerberus/.frama-c/padding_unspecified_value_3.eva/alarms.csv similarity index 100% rename from cerberus/padding_unspecified_value_3.eva/alarms.csv rename to cerberus/.frama-c/padding_unspecified_value_3.eva/alarms.csv diff --git a/cerberus/padding_unspecified_value_3.eva/metrics.log b/cerberus/.frama-c/padding_unspecified_value_3.eva/metrics.log similarity index 100% rename from cerberus/padding_unspecified_value_3.eva/metrics.log rename to cerberus/.frama-c/padding_unspecified_value_3.eva/metrics.log diff --git a/cerberus/padding_unspecified_value_3.eva/nonterm.log b/cerberus/.frama-c/padding_unspecified_value_3.eva/nonterm.log similarity index 100% rename from cerberus/padding_unspecified_value_3.eva/nonterm.log rename to cerberus/.frama-c/padding_unspecified_value_3.eva/nonterm.log diff --git a/cerberus/padding_unspecified_value_2.eva/warnings.log b/cerberus/.frama-c/padding_unspecified_value_3.eva/warnings.log similarity index 100% rename from cerberus/padding_unspecified_value_2.eva/warnings.log rename to cerberus/.frama-c/padding_unspecified_value_3.eva/warnings.log diff --git a/cerberus/padding_unspecified_value_3.parse/framac.ast b/cerberus/.frama-c/padding_unspecified_value_3.parse/framac.ast similarity index 100% rename from cerberus/padding_unspecified_value_3.parse/framac.ast rename to cerberus/.frama-c/padding_unspecified_value_3.parse/framac.ast diff --git a/cerberus/padding_unspecified_value_3.parse/metrics.log b/cerberus/.frama-c/padding_unspecified_value_3.parse/metrics.log similarity index 100% rename from cerberus/padding_unspecified_value_3.parse/metrics.log rename to cerberus/.frama-c/padding_unspecified_value_3.parse/metrics.log diff --git a/cerberus/padding_unspecified_value_3.parse/warnings.log b/cerberus/.frama-c/padding_unspecified_value_3.parse/warnings.log similarity index 100% rename from cerberus/padding_unspecified_value_3.parse/warnings.log rename to cerberus/.frama-c/padding_unspecified_value_3.parse/warnings.log diff --git a/cerberus/padding_unspecified_value_4.eva/alarms.csv b/cerberus/.frama-c/padding_unspecified_value_4.eva/alarms.csv similarity index 100% rename from cerberus/padding_unspecified_value_4.eva/alarms.csv rename to cerberus/.frama-c/padding_unspecified_value_4.eva/alarms.csv diff --git a/cerberus/padding_unspecified_value_4.eva/metrics.log b/cerberus/.frama-c/padding_unspecified_value_4.eva/metrics.log similarity index 100% rename from cerberus/padding_unspecified_value_4.eva/metrics.log rename to cerberus/.frama-c/padding_unspecified_value_4.eva/metrics.log diff --git a/cerberus/padding_unspecified_value_4.eva/nonterm.log b/cerberus/.frama-c/padding_unspecified_value_4.eva/nonterm.log similarity index 100% rename from cerberus/padding_unspecified_value_4.eva/nonterm.log rename to cerberus/.frama-c/padding_unspecified_value_4.eva/nonterm.log diff --git a/cerberus/padding_unspecified_value_3.eva/warnings.log b/cerberus/.frama-c/padding_unspecified_value_4.eva/warnings.log similarity index 100% rename from cerberus/padding_unspecified_value_3.eva/warnings.log rename to cerberus/.frama-c/padding_unspecified_value_4.eva/warnings.log diff --git a/cerberus/padding_unspecified_value_4.parse/framac.ast b/cerberus/.frama-c/padding_unspecified_value_4.parse/framac.ast similarity index 100% rename from cerberus/padding_unspecified_value_4.parse/framac.ast rename to cerberus/.frama-c/padding_unspecified_value_4.parse/framac.ast diff --git a/cerberus/padding_unspecified_value_4.parse/metrics.log b/cerberus/.frama-c/padding_unspecified_value_4.parse/metrics.log similarity index 100% rename from cerberus/padding_unspecified_value_4.parse/metrics.log rename to cerberus/.frama-c/padding_unspecified_value_4.parse/metrics.log diff --git a/cerberus/padding_unspecified_value_4.parse/warnings.log b/cerberus/.frama-c/padding_unspecified_value_4.parse/warnings.log similarity index 100% rename from cerberus/padding_unspecified_value_4.parse/warnings.log rename to cerberus/.frama-c/padding_unspecified_value_4.parse/warnings.log diff --git a/cerberus/padding_unspecified_value_5.eva/alarms.csv b/cerberus/.frama-c/padding_unspecified_value_5.eva/alarms.csv similarity index 100% rename from cerberus/padding_unspecified_value_5.eva/alarms.csv rename to cerberus/.frama-c/padding_unspecified_value_5.eva/alarms.csv diff --git a/cerberus/padding_unspecified_value_5.eva/metrics.log b/cerberus/.frama-c/padding_unspecified_value_5.eva/metrics.log similarity index 100% rename from cerberus/padding_unspecified_value_5.eva/metrics.log rename to cerberus/.frama-c/padding_unspecified_value_5.eva/metrics.log diff --git a/cerberus/padding_unspecified_value_5.eva/nonterm.log b/cerberus/.frama-c/padding_unspecified_value_5.eva/nonterm.log similarity index 100% rename from cerberus/padding_unspecified_value_5.eva/nonterm.log rename to cerberus/.frama-c/padding_unspecified_value_5.eva/nonterm.log diff --git a/cerberus/.frama-c/padding_unspecified_value_5.eva/warnings.log b/cerberus/.frama-c/padding_unspecified_value_5.eva/warnings.log new file mode 100644 index 0000000000000000000000000000000000000000..14647f2485bd840524d36da174531e6de0237c15 --- /dev/null +++ b/cerberus/.frama-c/padding_unspecified_value_5.eva/warnings.log @@ -0,0 +1 @@ +[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration. diff --git a/cerberus/padding_unspecified_value_5.parse/framac.ast b/cerberus/.frama-c/padding_unspecified_value_5.parse/framac.ast similarity index 100% rename from cerberus/padding_unspecified_value_5.parse/framac.ast rename to cerberus/.frama-c/padding_unspecified_value_5.parse/framac.ast diff --git a/cerberus/padding_unspecified_value_5.parse/metrics.log b/cerberus/.frama-c/padding_unspecified_value_5.parse/metrics.log similarity index 100% rename from cerberus/padding_unspecified_value_5.parse/metrics.log rename to cerberus/.frama-c/padding_unspecified_value_5.parse/metrics.log diff --git a/cerberus/padding_unspecified_value_4.eva/warnings.log b/cerberus/.frama-c/padding_unspecified_value_5.parse/warnings.log similarity index 100% rename from cerberus/padding_unspecified_value_4.eva/warnings.log rename to cerberus/.frama-c/padding_unspecified_value_5.parse/warnings.log diff --git a/cerberus/padding_unspecified_value_6.eva/alarms.csv b/cerberus/.frama-c/padding_unspecified_value_6.eva/alarms.csv similarity index 100% rename from cerberus/padding_unspecified_value_6.eva/alarms.csv rename to cerberus/.frama-c/padding_unspecified_value_6.eva/alarms.csv diff --git a/cerberus/padding_unspecified_value_6.eva/metrics.log b/cerberus/.frama-c/padding_unspecified_value_6.eva/metrics.log similarity index 100% rename from cerberus/padding_unspecified_value_6.eva/metrics.log rename to cerberus/.frama-c/padding_unspecified_value_6.eva/metrics.log diff --git a/cerberus/padding_unspecified_value_6.eva/nonterm.log b/cerberus/.frama-c/padding_unspecified_value_6.eva/nonterm.log similarity index 100% rename from cerberus/padding_unspecified_value_6.eva/nonterm.log rename to cerberus/.frama-c/padding_unspecified_value_6.eva/nonterm.log diff --git a/cerberus/padding_unspecified_value_5.eva/warnings.log b/cerberus/.frama-c/padding_unspecified_value_6.eva/warnings.log similarity index 100% rename from cerberus/padding_unspecified_value_5.eva/warnings.log rename to cerberus/.frama-c/padding_unspecified_value_6.eva/warnings.log diff --git a/cerberus/padding_unspecified_value_6.parse/framac.ast b/cerberus/.frama-c/padding_unspecified_value_6.parse/framac.ast similarity index 100% rename from cerberus/padding_unspecified_value_6.parse/framac.ast rename to cerberus/.frama-c/padding_unspecified_value_6.parse/framac.ast diff --git a/cerberus/padding_unspecified_value_6.parse/metrics.log b/cerberus/.frama-c/padding_unspecified_value_6.parse/metrics.log similarity index 100% rename from cerberus/padding_unspecified_value_6.parse/metrics.log rename to cerberus/.frama-c/padding_unspecified_value_6.parse/metrics.log diff --git a/cerberus/padding_unspecified_value_5.parse/warnings.log b/cerberus/.frama-c/padding_unspecified_value_6.parse/warnings.log similarity index 100% rename from cerberus/padding_unspecified_value_5.parse/warnings.log rename to cerberus/.frama-c/padding_unspecified_value_6.parse/warnings.log diff --git a/cerberus/padding_unspecified_value_7.eva/alarms.csv b/cerberus/.frama-c/padding_unspecified_value_7.eva/alarms.csv similarity index 100% rename from cerberus/padding_unspecified_value_7.eva/alarms.csv rename to cerberus/.frama-c/padding_unspecified_value_7.eva/alarms.csv diff --git a/cerberus/padding_unspecified_value_7.eva/metrics.log b/cerberus/.frama-c/padding_unspecified_value_7.eva/metrics.log similarity index 100% rename from cerberus/padding_unspecified_value_7.eva/metrics.log rename to cerberus/.frama-c/padding_unspecified_value_7.eva/metrics.log diff --git a/cerberus/padding_unspecified_value_7.eva/nonterm.log b/cerberus/.frama-c/padding_unspecified_value_7.eva/nonterm.log similarity index 100% rename from cerberus/padding_unspecified_value_7.eva/nonterm.log rename to cerberus/.frama-c/padding_unspecified_value_7.eva/nonterm.log diff --git a/cerberus/padding_unspecified_value_6.eva/warnings.log b/cerberus/.frama-c/padding_unspecified_value_7.eva/warnings.log similarity index 100% rename from cerberus/padding_unspecified_value_6.eva/warnings.log rename to cerberus/.frama-c/padding_unspecified_value_7.eva/warnings.log diff --git a/cerberus/padding_unspecified_value_7.parse/framac.ast b/cerberus/.frama-c/padding_unspecified_value_7.parse/framac.ast similarity index 100% rename from cerberus/padding_unspecified_value_7.parse/framac.ast rename to cerberus/.frama-c/padding_unspecified_value_7.parse/framac.ast diff --git a/cerberus/padding_unspecified_value_7.parse/metrics.log b/cerberus/.frama-c/padding_unspecified_value_7.parse/metrics.log similarity index 100% rename from cerberus/padding_unspecified_value_7.parse/metrics.log rename to cerberus/.frama-c/padding_unspecified_value_7.parse/metrics.log diff --git a/cerberus/padding_unspecified_value_6.parse/warnings.log b/cerberus/.frama-c/padding_unspecified_value_7.parse/warnings.log similarity index 100% rename from cerberus/padding_unspecified_value_6.parse/warnings.log rename to cerberus/.frama-c/padding_unspecified_value_7.parse/warnings.log diff --git a/cerberus/padding_unspecified_value_8.eva/alarms.csv b/cerberus/.frama-c/padding_unspecified_value_8.eva/alarms.csv similarity index 100% rename from cerberus/padding_unspecified_value_8.eva/alarms.csv rename to cerberus/.frama-c/padding_unspecified_value_8.eva/alarms.csv diff --git a/cerberus/padding_unspecified_value_8.eva/metrics.log b/cerberus/.frama-c/padding_unspecified_value_8.eva/metrics.log similarity index 100% rename from cerberus/padding_unspecified_value_8.eva/metrics.log rename to cerberus/.frama-c/padding_unspecified_value_8.eva/metrics.log diff --git a/cerberus/padding_unspecified_value_8.eva/nonterm.log b/cerberus/.frama-c/padding_unspecified_value_8.eva/nonterm.log similarity index 100% rename from cerberus/padding_unspecified_value_8.eva/nonterm.log rename to cerberus/.frama-c/padding_unspecified_value_8.eva/nonterm.log diff --git a/cerberus/padding_unspecified_value_7.eva/warnings.log b/cerberus/.frama-c/padding_unspecified_value_8.eva/warnings.log similarity index 100% rename from cerberus/padding_unspecified_value_7.eva/warnings.log rename to cerberus/.frama-c/padding_unspecified_value_8.eva/warnings.log diff --git a/cerberus/padding_unspecified_value_8.parse/framac.ast b/cerberus/.frama-c/padding_unspecified_value_8.parse/framac.ast similarity index 100% rename from cerberus/padding_unspecified_value_8.parse/framac.ast rename to cerberus/.frama-c/padding_unspecified_value_8.parse/framac.ast diff --git a/cerberus/padding_unspecified_value_8.parse/metrics.log b/cerberus/.frama-c/padding_unspecified_value_8.parse/metrics.log similarity index 100% rename from cerberus/padding_unspecified_value_8.parse/metrics.log rename to cerberus/.frama-c/padding_unspecified_value_8.parse/metrics.log diff --git a/cerberus/padding_unspecified_value_8.parse/warnings.log b/cerberus/.frama-c/padding_unspecified_value_8.parse/warnings.log similarity index 100% rename from cerberus/padding_unspecified_value_8.parse/warnings.log rename to cerberus/.frama-c/padding_unspecified_value_8.parse/warnings.log diff --git a/cerberus/.frama-c/path.mk b/cerberus/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/cerberus/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/cerberus/pointer_add_wrap_1.eva/alarms.csv b/cerberus/.frama-c/pointer_add_wrap_1.eva/alarms.csv similarity index 100% rename from cerberus/pointer_add_wrap_1.eva/alarms.csv rename to cerberus/.frama-c/pointer_add_wrap_1.eva/alarms.csv diff --git a/cerberus/pointer_add_wrap_1.eva/metrics.log b/cerberus/.frama-c/pointer_add_wrap_1.eva/metrics.log similarity index 100% rename from cerberus/pointer_add_wrap_1.eva/metrics.log rename to cerberus/.frama-c/pointer_add_wrap_1.eva/metrics.log diff --git a/cerberus/pointer_add_wrap_1.eva/nonterm.log b/cerberus/.frama-c/pointer_add_wrap_1.eva/nonterm.log similarity index 100% rename from cerberus/pointer_add_wrap_1.eva/nonterm.log rename to cerberus/.frama-c/pointer_add_wrap_1.eva/nonterm.log diff --git a/cerberus/pointer_add_wrap_1.eva/warnings.log b/cerberus/.frama-c/pointer_add_wrap_1.eva/warnings.log similarity index 100% rename from cerberus/pointer_add_wrap_1.eva/warnings.log rename to cerberus/.frama-c/pointer_add_wrap_1.eva/warnings.log diff --git a/cerberus/pointer_add_wrap_1.parse/framac.ast b/cerberus/.frama-c/pointer_add_wrap_1.parse/framac.ast similarity index 100% rename from cerberus/pointer_add_wrap_1.parse/framac.ast rename to cerberus/.frama-c/pointer_add_wrap_1.parse/framac.ast diff --git a/cerberus/pointer_add_wrap_1.parse/metrics.log b/cerberus/.frama-c/pointer_add_wrap_1.parse/metrics.log similarity index 100% rename from cerberus/pointer_add_wrap_1.parse/metrics.log rename to cerberus/.frama-c/pointer_add_wrap_1.parse/metrics.log diff --git a/cerberus/padding_unspecified_value_7.parse/warnings.log b/cerberus/.frama-c/pointer_add_wrap_1.parse/warnings.log similarity index 100% rename from cerberus/padding_unspecified_value_7.parse/warnings.log rename to cerberus/.frama-c/pointer_add_wrap_1.parse/warnings.log diff --git a/cerberus/pointer_add_wrap_2.eva/alarms.csv b/cerberus/.frama-c/pointer_add_wrap_2.eva/alarms.csv similarity index 100% rename from cerberus/pointer_add_wrap_2.eva/alarms.csv rename to cerberus/.frama-c/pointer_add_wrap_2.eva/alarms.csv diff --git a/cerberus/pointer_add_wrap_2.eva/metrics.log b/cerberus/.frama-c/pointer_add_wrap_2.eva/metrics.log similarity index 100% rename from cerberus/pointer_add_wrap_2.eva/metrics.log rename to cerberus/.frama-c/pointer_add_wrap_2.eva/metrics.log diff --git a/cerberus/pointer_add_wrap_2.eva/nonterm.log b/cerberus/.frama-c/pointer_add_wrap_2.eva/nonterm.log similarity index 100% rename from cerberus/pointer_add_wrap_2.eva/nonterm.log rename to cerberus/.frama-c/pointer_add_wrap_2.eva/nonterm.log diff --git a/cerberus/pointer_add_wrap_2.eva/warnings.log b/cerberus/.frama-c/pointer_add_wrap_2.eva/warnings.log similarity index 100% rename from cerberus/pointer_add_wrap_2.eva/warnings.log rename to cerberus/.frama-c/pointer_add_wrap_2.eva/warnings.log diff --git a/cerberus/pointer_add_wrap_2.parse/framac.ast b/cerberus/.frama-c/pointer_add_wrap_2.parse/framac.ast similarity index 100% rename from cerberus/pointer_add_wrap_2.parse/framac.ast rename to cerberus/.frama-c/pointer_add_wrap_2.parse/framac.ast diff --git a/cerberus/pointer_add_wrap_2.parse/metrics.log b/cerberus/.frama-c/pointer_add_wrap_2.parse/metrics.log similarity index 100% rename from cerberus/pointer_add_wrap_2.parse/metrics.log rename to cerberus/.frama-c/pointer_add_wrap_2.parse/metrics.log diff --git a/cerberus/pointer_add_wrap_2.parse/warnings.log b/cerberus/.frama-c/pointer_add_wrap_2.parse/warnings.log similarity index 100% rename from cerberus/pointer_add_wrap_2.parse/warnings.log rename to cerberus/.frama-c/pointer_add_wrap_2.parse/warnings.log diff --git a/cerberus/pointer_arith_algebraic_properties_1_global.eva/alarms.csv b/cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.eva/alarms.csv similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_1_global.eva/alarms.csv rename to cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.eva/alarms.csv diff --git a/cerberus/pointer_arith_algebraic_properties_1_global.eva/metrics.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.eva/metrics.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_1_global.eva/metrics.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.eva/metrics.log diff --git a/cerberus/pointer_arith_algebraic_properties_1_global.eva/nonterm.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.eva/nonterm.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_1_global.eva/nonterm.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.eva/nonterm.log diff --git a/cerberus/pointer_arith_algebraic_properties_1_global.eva/warnings.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.eva/warnings.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_1_global.eva/warnings.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.eva/warnings.log diff --git a/cerberus/pointer_arith_algebraic_properties_1_global.parse/framac.ast b/cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.parse/framac.ast similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_1_global.parse/framac.ast rename to cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.parse/framac.ast diff --git a/cerberus/pointer_arith_algebraic_properties_1_global.parse/metrics.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.parse/metrics.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_1_global.parse/metrics.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.parse/metrics.log diff --git a/cerberus/padding_unspecified_value_8.eva/warnings.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.parse/warnings.log similarity index 100% rename from cerberus/padding_unspecified_value_8.eva/warnings.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.parse/warnings.log diff --git a/cerberus/pointer_arith_algebraic_properties_2_auto.eva/alarms.csv b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.eva/alarms.csv similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_2_auto.eva/alarms.csv rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.eva/alarms.csv diff --git a/cerberus/pointer_arith_algebraic_properties_2_auto.eva/metrics.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.eva/metrics.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_2_auto.eva/metrics.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.eva/metrics.log diff --git a/cerberus/pointer_arith_algebraic_properties_2_auto.eva/nonterm.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.eva/nonterm.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_2_auto.eva/nonterm.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.eva/nonterm.log diff --git a/cerberus/pointer_add_wrap_1.parse/warnings.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.eva/warnings.log similarity index 100% rename from cerberus/pointer_add_wrap_1.parse/warnings.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.eva/warnings.log diff --git a/cerberus/pointer_arith_algebraic_properties_2_auto.parse/framac.ast b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.parse/framac.ast similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_2_auto.parse/framac.ast rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.parse/framac.ast diff --git a/cerberus/pointer_arith_algebraic_properties_2_auto.parse/metrics.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.parse/metrics.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_2_auto.parse/metrics.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.parse/metrics.log diff --git a/cerberus/pointer_arith_algebraic_properties_1_global.parse/warnings.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.parse/warnings.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_1_global.parse/warnings.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.parse/warnings.log diff --git a/cerberus/pointer_arith_algebraic_properties_2_global.eva/alarms.csv b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.eva/alarms.csv similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_2_global.eva/alarms.csv rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.eva/alarms.csv diff --git a/cerberus/pointer_arith_algebraic_properties_2_global.eva/metrics.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.eva/metrics.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_2_global.eva/metrics.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.eva/metrics.log diff --git a/cerberus/pointer_arith_algebraic_properties_2_global.eva/nonterm.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.eva/nonterm.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_2_global.eva/nonterm.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.eva/nonterm.log diff --git a/cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.eva/warnings.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.eva/warnings.log new file mode 100644 index 0000000000000000000000000000000000000000..14647f2485bd840524d36da174531e6de0237c15 --- /dev/null +++ b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.eva/warnings.log @@ -0,0 +1 @@ +[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration. diff --git a/cerberus/pointer_arith_algebraic_properties_2_global.parse/framac.ast b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.parse/framac.ast similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_2_global.parse/framac.ast rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.parse/framac.ast diff --git a/cerberus/pointer_arith_algebraic_properties_2_global.parse/metrics.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.parse/metrics.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_2_global.parse/metrics.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.parse/metrics.log diff --git a/cerberus/pointer_arith_algebraic_properties_2_auto.eva/warnings.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.parse/warnings.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_2_auto.eva/warnings.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.parse/warnings.log diff --git a/cerberus/pointer_arith_algebraic_properties_3_auto.eva/alarms.csv b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.eva/alarms.csv similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_3_auto.eva/alarms.csv rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.eva/alarms.csv diff --git a/cerberus/pointer_arith_algebraic_properties_3_auto.eva/metrics.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.eva/metrics.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_3_auto.eva/metrics.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.eva/metrics.log diff --git a/cerberus/pointer_arith_algebraic_properties_3_auto.eva/nonterm.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.eva/nonterm.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_3_auto.eva/nonterm.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.eva/nonterm.log diff --git a/cerberus/pointer_arith_algebraic_properties_3_auto.eva/warnings.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.eva/warnings.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_3_auto.eva/warnings.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.eva/warnings.log diff --git a/cerberus/pointer_arith_algebraic_properties_3_auto.parse/framac.ast b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.parse/framac.ast similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_3_auto.parse/framac.ast rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.parse/framac.ast diff --git a/cerberus/pointer_arith_algebraic_properties_3_auto.parse/metrics.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.parse/metrics.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_3_auto.parse/metrics.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.parse/metrics.log diff --git a/cerberus/pointer_arith_algebraic_properties_2_auto.parse/warnings.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.parse/warnings.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_2_auto.parse/warnings.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.parse/warnings.log diff --git a/cerberus/pointer_arith_algebraic_properties_3_global.eva/alarms.csv b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.eva/alarms.csv similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_3_global.eva/alarms.csv rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.eva/alarms.csv diff --git a/cerberus/pointer_arith_algebraic_properties_3_global.eva/metrics.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.eva/metrics.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_3_global.eva/metrics.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.eva/metrics.log diff --git a/cerberus/pointer_arith_algebraic_properties_3_global.eva/nonterm.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.eva/nonterm.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_3_global.eva/nonterm.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.eva/nonterm.log diff --git a/cerberus/pointer_arith_algebraic_properties_3_global.eva/warnings.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.eva/warnings.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_3_global.eva/warnings.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.eva/warnings.log diff --git a/cerberus/pointer_arith_algebraic_properties_3_global.parse/framac.ast b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.parse/framac.ast similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_3_global.parse/framac.ast rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.parse/framac.ast diff --git a/cerberus/pointer_arith_algebraic_properties_3_global.parse/metrics.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.parse/metrics.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_3_global.parse/metrics.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.parse/metrics.log diff --git a/cerberus/pointer_arith_algebraic_properties_2_global.eva/warnings.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.parse/warnings.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_2_global.eva/warnings.log rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.parse/warnings.log diff --git a/cerberus/pointer_comparison_7b.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_7b.eva/alarms.csv similarity index 100% rename from cerberus/pointer_comparison_7b.eva/alarms.csv rename to cerberus/.frama-c/pointer_comparison_7b.eva/alarms.csv diff --git a/cerberus/pointer_comparison_7b.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_7b.eva/metrics.log similarity index 100% rename from cerberus/pointer_comparison_7b.eva/metrics.log rename to cerberus/.frama-c/pointer_comparison_7b.eva/metrics.log diff --git a/cerberus/pointer_comparison_7b.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_7b.eva/nonterm.log similarity index 100% rename from cerberus/pointer_comparison_7b.eva/nonterm.log rename to cerberus/.frama-c/pointer_comparison_7b.eva/nonterm.log diff --git a/cerberus/pointer_comparison_7b.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_7b.eva/warnings.log similarity index 100% rename from cerberus/pointer_comparison_7b.eva/warnings.log rename to cerberus/.frama-c/pointer_comparison_7b.eva/warnings.log diff --git a/cerberus/pointer_comparison_7b.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_7b.parse/framac.ast similarity index 100% rename from cerberus/pointer_comparison_7b.parse/framac.ast rename to cerberus/.frama-c/pointer_comparison_7b.parse/framac.ast diff --git a/cerberus/pointer_comparison_7b.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_7b.parse/metrics.log similarity index 100% rename from cerberus/pointer_comparison_7b.parse/metrics.log rename to cerberus/.frama-c/pointer_comparison_7b.parse/metrics.log diff --git a/cerberus/pointer_arith_algebraic_properties_2_global.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_7b.parse/warnings.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_2_global.parse/warnings.log rename to cerberus/.frama-c/pointer_comparison_7b.parse/warnings.log diff --git a/cerberus/pointer_comparison_7c.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_7c.eva/alarms.csv similarity index 100% rename from cerberus/pointer_comparison_7c.eva/alarms.csv rename to cerberus/.frama-c/pointer_comparison_7c.eva/alarms.csv diff --git a/cerberus/pointer_comparison_7c.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_7c.eva/metrics.log similarity index 100% rename from cerberus/pointer_comparison_7c.eva/metrics.log rename to cerberus/.frama-c/pointer_comparison_7c.eva/metrics.log diff --git a/cerberus/pointer_comparison_7c.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_7c.eva/nonterm.log similarity index 100% rename from cerberus/pointer_comparison_7c.eva/nonterm.log rename to cerberus/.frama-c/pointer_comparison_7c.eva/nonterm.log diff --git a/cerberus/pointer_comparison_7c.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_7c.eva/warnings.log similarity index 100% rename from cerberus/pointer_comparison_7c.eva/warnings.log rename to cerberus/.frama-c/pointer_comparison_7c.eva/warnings.log diff --git a/cerberus/pointer_comparison_7c.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_7c.parse/framac.ast similarity index 100% rename from cerberus/pointer_comparison_7c.parse/framac.ast rename to cerberus/.frama-c/pointer_comparison_7c.parse/framac.ast diff --git a/cerberus/pointer_comparison_7c.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_7c.parse/metrics.log similarity index 100% rename from cerberus/pointer_comparison_7c.parse/metrics.log rename to cerberus/.frama-c/pointer_comparison_7c.parse/metrics.log diff --git a/cerberus/pointer_arith_algebraic_properties_3_auto.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_7c.parse/warnings.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_3_auto.parse/warnings.log rename to cerberus/.frama-c/pointer_comparison_7c.parse/warnings.log diff --git a/cerberus/pointer_comparison_eq_1_auto.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_eq_1_auto.eva/alarms.csv similarity index 100% rename from cerberus/pointer_comparison_eq_1_auto.eva/alarms.csv rename to cerberus/.frama-c/pointer_comparison_eq_1_auto.eva/alarms.csv diff --git a/cerberus/pointer_comparison_eq_1_auto.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_1_auto.eva/metrics.log similarity index 100% rename from cerberus/pointer_comparison_eq_1_auto.eva/metrics.log rename to cerberus/.frama-c/pointer_comparison_eq_1_auto.eva/metrics.log diff --git a/cerberus/pointer_comparison_eq_1_auto.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_eq_1_auto.eva/nonterm.log similarity index 100% rename from cerberus/pointer_comparison_eq_1_auto.eva/nonterm.log rename to cerberus/.frama-c/pointer_comparison_eq_1_auto.eva/nonterm.log diff --git a/cerberus/pointer_arith_algebraic_properties_3_global.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_1_auto.eva/warnings.log similarity index 100% rename from cerberus/pointer_arith_algebraic_properties_3_global.parse/warnings.log rename to cerberus/.frama-c/pointer_comparison_eq_1_auto.eva/warnings.log diff --git a/cerberus/pointer_comparison_eq_1_auto.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_eq_1_auto.parse/framac.ast similarity index 100% rename from cerberus/pointer_comparison_eq_1_auto.parse/framac.ast rename to cerberus/.frama-c/pointer_comparison_eq_1_auto.parse/framac.ast diff --git a/cerberus/pointer_comparison_eq_1_auto.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_1_auto.parse/metrics.log similarity index 100% rename from cerberus/pointer_comparison_eq_1_auto.parse/metrics.log rename to cerberus/.frama-c/pointer_comparison_eq_1_auto.parse/metrics.log diff --git a/cerberus/pointer_comparison_7b.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_1_auto.parse/warnings.log similarity index 100% rename from cerberus/pointer_comparison_7b.parse/warnings.log rename to cerberus/.frama-c/pointer_comparison_eq_1_auto.parse/warnings.log diff --git a/cerberus/pointer_comparison_eq_1_global.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_eq_1_global.eva/alarms.csv similarity index 100% rename from cerberus/pointer_comparison_eq_1_global.eva/alarms.csv rename to cerberus/.frama-c/pointer_comparison_eq_1_global.eva/alarms.csv diff --git a/cerberus/pointer_comparison_eq_1_global.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_1_global.eva/metrics.log similarity index 100% rename from cerberus/pointer_comparison_eq_1_global.eva/metrics.log rename to cerberus/.frama-c/pointer_comparison_eq_1_global.eva/metrics.log diff --git a/cerberus/pointer_comparison_eq_1_global.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_eq_1_global.eva/nonterm.log similarity index 100% rename from cerberus/pointer_comparison_eq_1_global.eva/nonterm.log rename to cerberus/.frama-c/pointer_comparison_eq_1_global.eva/nonterm.log diff --git a/cerberus/pointer_comparison_7c.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_1_global.eva/warnings.log similarity index 100% rename from cerberus/pointer_comparison_7c.parse/warnings.log rename to cerberus/.frama-c/pointer_comparison_eq_1_global.eva/warnings.log diff --git a/cerberus/pointer_comparison_eq_1_global.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_eq_1_global.parse/framac.ast similarity index 100% rename from cerberus/pointer_comparison_eq_1_global.parse/framac.ast rename to cerberus/.frama-c/pointer_comparison_eq_1_global.parse/framac.ast diff --git a/cerberus/pointer_comparison_eq_1_global.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_1_global.parse/metrics.log similarity index 100% rename from cerberus/pointer_comparison_eq_1_global.parse/metrics.log rename to cerberus/.frama-c/pointer_comparison_eq_1_global.parse/metrics.log diff --git a/cerberus/pointer_comparison_eq_1_auto.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_1_global.parse/warnings.log similarity index 100% rename from cerberus/pointer_comparison_eq_1_auto.eva/warnings.log rename to cerberus/.frama-c/pointer_comparison_eq_1_global.parse/warnings.log diff --git a/cerberus/pointer_comparison_eq_2_auto.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_eq_2_auto.eva/alarms.csv similarity index 100% rename from cerberus/pointer_comparison_eq_2_auto.eva/alarms.csv rename to cerberus/.frama-c/pointer_comparison_eq_2_auto.eva/alarms.csv diff --git a/cerberus/pointer_comparison_eq_2_auto.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_2_auto.eva/metrics.log similarity index 100% rename from cerberus/pointer_comparison_eq_2_auto.eva/metrics.log rename to cerberus/.frama-c/pointer_comparison_eq_2_auto.eva/metrics.log diff --git a/cerberus/pointer_comparison_eq_2_auto.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_eq_2_auto.eva/nonterm.log similarity index 100% rename from cerberus/pointer_comparison_eq_2_auto.eva/nonterm.log rename to cerberus/.frama-c/pointer_comparison_eq_2_auto.eva/nonterm.log diff --git a/cerberus/pointer_comparison_eq_1_auto.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_2_auto.eva/warnings.log similarity index 100% rename from cerberus/pointer_comparison_eq_1_auto.parse/warnings.log rename to cerberus/.frama-c/pointer_comparison_eq_2_auto.eva/warnings.log diff --git a/cerberus/pointer_comparison_eq_2_auto.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_eq_2_auto.parse/framac.ast similarity index 100% rename from cerberus/pointer_comparison_eq_2_auto.parse/framac.ast rename to cerberus/.frama-c/pointer_comparison_eq_2_auto.parse/framac.ast diff --git a/cerberus/pointer_comparison_eq_2_auto.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_2_auto.parse/metrics.log similarity index 100% rename from cerberus/pointer_comparison_eq_2_auto.parse/metrics.log rename to cerberus/.frama-c/pointer_comparison_eq_2_auto.parse/metrics.log diff --git a/cerberus/pointer_comparison_eq_1_global.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_2_auto.parse/warnings.log similarity index 100% rename from cerberus/pointer_comparison_eq_1_global.eva/warnings.log rename to cerberus/.frama-c/pointer_comparison_eq_2_auto.parse/warnings.log diff --git a/cerberus/pointer_comparison_eq_2_global.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_eq_2_global.eva/alarms.csv similarity index 100% rename from cerberus/pointer_comparison_eq_2_global.eva/alarms.csv rename to cerberus/.frama-c/pointer_comparison_eq_2_global.eva/alarms.csv diff --git a/cerberus/pointer_comparison_eq_2_global.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_2_global.eva/metrics.log similarity index 100% rename from cerberus/pointer_comparison_eq_2_global.eva/metrics.log rename to cerberus/.frama-c/pointer_comparison_eq_2_global.eva/metrics.log diff --git a/cerberus/pointer_comparison_eq_2_global.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_eq_2_global.eva/nonterm.log similarity index 100% rename from cerberus/pointer_comparison_eq_2_global.eva/nonterm.log rename to cerberus/.frama-c/pointer_comparison_eq_2_global.eva/nonterm.log diff --git a/cerberus/pointer_comparison_eq_1_global.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_2_global.eva/warnings.log similarity index 100% rename from cerberus/pointer_comparison_eq_1_global.parse/warnings.log rename to cerberus/.frama-c/pointer_comparison_eq_2_global.eva/warnings.log diff --git a/cerberus/pointer_comparison_eq_2_global.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_eq_2_global.parse/framac.ast similarity index 100% rename from cerberus/pointer_comparison_eq_2_global.parse/framac.ast rename to cerberus/.frama-c/pointer_comparison_eq_2_global.parse/framac.ast diff --git a/cerberus/pointer_comparison_eq_2_global.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_2_global.parse/metrics.log similarity index 100% rename from cerberus/pointer_comparison_eq_2_global.parse/metrics.log rename to cerberus/.frama-c/pointer_comparison_eq_2_global.parse/metrics.log diff --git a/cerberus/pointer_comparison_eq_2_auto.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_2_global.parse/warnings.log similarity index 100% rename from cerberus/pointer_comparison_eq_2_auto.eva/warnings.log rename to cerberus/.frama-c/pointer_comparison_eq_2_global.parse/warnings.log diff --git a/cerberus/pointer_comparison_eq_zombie_1.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_eq_zombie_1.eva/alarms.csv similarity index 100% rename from cerberus/pointer_comparison_eq_zombie_1.eva/alarms.csv rename to cerberus/.frama-c/pointer_comparison_eq_zombie_1.eva/alarms.csv diff --git a/cerberus/pointer_comparison_eq_zombie_1.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_zombie_1.eva/metrics.log similarity index 100% rename from cerberus/pointer_comparison_eq_zombie_1.eva/metrics.log rename to cerberus/.frama-c/pointer_comparison_eq_zombie_1.eva/metrics.log diff --git a/cerberus/pointer_comparison_eq_zombie_1.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_eq_zombie_1.eva/nonterm.log similarity index 100% rename from cerberus/pointer_comparison_eq_zombie_1.eva/nonterm.log rename to cerberus/.frama-c/pointer_comparison_eq_zombie_1.eva/nonterm.log diff --git a/cerberus/pointer_comparison_eq_zombie_1.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_zombie_1.eva/warnings.log similarity index 100% rename from cerberus/pointer_comparison_eq_zombie_1.eva/warnings.log rename to cerberus/.frama-c/pointer_comparison_eq_zombie_1.eva/warnings.log diff --git a/cerberus/pointer_comparison_eq_zombie_1.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_eq_zombie_1.parse/framac.ast similarity index 100% rename from cerberus/pointer_comparison_eq_zombie_1.parse/framac.ast rename to cerberus/.frama-c/pointer_comparison_eq_zombie_1.parse/framac.ast diff --git a/cerberus/pointer_comparison_eq_zombie_1.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_zombie_1.parse/metrics.log similarity index 100% rename from cerberus/pointer_comparison_eq_zombie_1.parse/metrics.log rename to cerberus/.frama-c/pointer_comparison_eq_zombie_1.parse/metrics.log diff --git a/cerberus/pointer_comparison_eq_2_auto.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_zombie_1.parse/warnings.log similarity index 100% rename from cerberus/pointer_comparison_eq_2_auto.parse/warnings.log rename to cerberus/.frama-c/pointer_comparison_eq_zombie_1.parse/warnings.log diff --git a/cerberus/pointer_comparison_eq_zombie_2.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_eq_zombie_2.eva/alarms.csv similarity index 100% rename from cerberus/pointer_comparison_eq_zombie_2.eva/alarms.csv rename to cerberus/.frama-c/pointer_comparison_eq_zombie_2.eva/alarms.csv diff --git a/cerberus/pointer_comparison_eq_zombie_2.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_zombie_2.eva/metrics.log similarity index 100% rename from cerberus/pointer_comparison_eq_zombie_2.eva/metrics.log rename to cerberus/.frama-c/pointer_comparison_eq_zombie_2.eva/metrics.log diff --git a/cerberus/pointer_comparison_eq_zombie_2.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_eq_zombie_2.eva/nonterm.log similarity index 100% rename from cerberus/pointer_comparison_eq_zombie_2.eva/nonterm.log rename to cerberus/.frama-c/pointer_comparison_eq_zombie_2.eva/nonterm.log diff --git a/cerberus/pointer_comparison_eq_zombie_2.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_zombie_2.eva/warnings.log similarity index 100% rename from cerberus/pointer_comparison_eq_zombie_2.eva/warnings.log rename to cerberus/.frama-c/pointer_comparison_eq_zombie_2.eva/warnings.log diff --git a/cerberus/pointer_comparison_eq_zombie_2.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_eq_zombie_2.parse/framac.ast similarity index 100% rename from cerberus/pointer_comparison_eq_zombie_2.parse/framac.ast rename to cerberus/.frama-c/pointer_comparison_eq_zombie_2.parse/framac.ast diff --git a/cerberus/pointer_comparison_eq_zombie_2.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_zombie_2.parse/metrics.log similarity index 100% rename from cerberus/pointer_comparison_eq_zombie_2.parse/metrics.log rename to cerberus/.frama-c/pointer_comparison_eq_zombie_2.parse/metrics.log diff --git a/cerberus/pointer_comparison_eq_2_global.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_zombie_2.parse/warnings.log similarity index 100% rename from cerberus/pointer_comparison_eq_2_global.eva/warnings.log rename to cerberus/.frama-c/pointer_comparison_eq_zombie_2.parse/warnings.log diff --git a/cerberus/pointer_comparison_rel_1_auto.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_rel_1_auto.eva/alarms.csv similarity index 100% rename from cerberus/pointer_comparison_rel_1_auto.eva/alarms.csv rename to cerberus/.frama-c/pointer_comparison_rel_1_auto.eva/alarms.csv diff --git a/cerberus/pointer_comparison_rel_1_auto.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_rel_1_auto.eva/metrics.log similarity index 100% rename from cerberus/pointer_comparison_rel_1_auto.eva/metrics.log rename to cerberus/.frama-c/pointer_comparison_rel_1_auto.eva/metrics.log diff --git a/cerberus/pointer_comparison_rel_1_auto.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_rel_1_auto.eva/nonterm.log similarity index 100% rename from cerberus/pointer_comparison_rel_1_auto.eva/nonterm.log rename to cerberus/.frama-c/pointer_comparison_rel_1_auto.eva/nonterm.log diff --git a/cerberus/pointer_comparison_rel_1_auto.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_rel_1_auto.eva/warnings.log similarity index 100% rename from cerberus/pointer_comparison_rel_1_auto.eva/warnings.log rename to cerberus/.frama-c/pointer_comparison_rel_1_auto.eva/warnings.log diff --git a/cerberus/pointer_comparison_rel_1_auto.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_rel_1_auto.parse/framac.ast similarity index 100% rename from cerberus/pointer_comparison_rel_1_auto.parse/framac.ast rename to cerberus/.frama-c/pointer_comparison_rel_1_auto.parse/framac.ast diff --git a/cerberus/pointer_comparison_rel_1_auto.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_rel_1_auto.parse/metrics.log similarity index 100% rename from cerberus/pointer_comparison_rel_1_auto.parse/metrics.log rename to cerberus/.frama-c/pointer_comparison_rel_1_auto.parse/metrics.log diff --git a/cerberus/pointer_comparison_eq_2_global.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_rel_1_auto.parse/warnings.log similarity index 100% rename from cerberus/pointer_comparison_eq_2_global.parse/warnings.log rename to cerberus/.frama-c/pointer_comparison_rel_1_auto.parse/warnings.log diff --git a/cerberus/pointer_comparison_rel_1_global.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_rel_1_global.eva/alarms.csv similarity index 100% rename from cerberus/pointer_comparison_rel_1_global.eva/alarms.csv rename to cerberus/.frama-c/pointer_comparison_rel_1_global.eva/alarms.csv diff --git a/cerberus/pointer_comparison_rel_1_global.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_rel_1_global.eva/metrics.log similarity index 100% rename from cerberus/pointer_comparison_rel_1_global.eva/metrics.log rename to cerberus/.frama-c/pointer_comparison_rel_1_global.eva/metrics.log diff --git a/cerberus/pointer_comparison_rel_1_global.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_rel_1_global.eva/nonterm.log similarity index 100% rename from cerberus/pointer_comparison_rel_1_global.eva/nonterm.log rename to cerberus/.frama-c/pointer_comparison_rel_1_global.eva/nonterm.log diff --git a/cerberus/pointer_comparison_rel_1_global.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_rel_1_global.eva/warnings.log similarity index 100% rename from cerberus/pointer_comparison_rel_1_global.eva/warnings.log rename to cerberus/.frama-c/pointer_comparison_rel_1_global.eva/warnings.log diff --git a/cerberus/pointer_comparison_rel_1_global.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_rel_1_global.parse/framac.ast similarity index 100% rename from cerberus/pointer_comparison_rel_1_global.parse/framac.ast rename to cerberus/.frama-c/pointer_comparison_rel_1_global.parse/framac.ast diff --git a/cerberus/pointer_comparison_rel_1_global.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_rel_1_global.parse/metrics.log similarity index 100% rename from cerberus/pointer_comparison_rel_1_global.parse/metrics.log rename to cerberus/.frama-c/pointer_comparison_rel_1_global.parse/metrics.log diff --git a/cerberus/pointer_comparison_eq_zombie_1.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_rel_1_global.parse/warnings.log similarity index 100% rename from cerberus/pointer_comparison_eq_zombie_1.parse/warnings.log rename to cerberus/.frama-c/pointer_comparison_rel_1_global.parse/warnings.log diff --git a/cerberus/pointer_comparison_rel_different_type_members.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_rel_different_type_members.eva/alarms.csv similarity index 100% rename from cerberus/pointer_comparison_rel_different_type_members.eva/alarms.csv rename to cerberus/.frama-c/pointer_comparison_rel_different_type_members.eva/alarms.csv diff --git a/cerberus/pointer_comparison_rel_different_type_members.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_rel_different_type_members.eva/metrics.log similarity index 100% rename from cerberus/pointer_comparison_rel_different_type_members.eva/metrics.log rename to cerberus/.frama-c/pointer_comparison_rel_different_type_members.eva/metrics.log diff --git a/cerberus/pointer_comparison_rel_different_type_members.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_rel_different_type_members.eva/nonterm.log similarity index 100% rename from cerberus/pointer_comparison_rel_different_type_members.eva/nonterm.log rename to cerberus/.frama-c/pointer_comparison_rel_different_type_members.eva/nonterm.log diff --git a/cerberus/pointer_comparison_rel_different_type_members.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_rel_different_type_members.eva/warnings.log similarity index 100% rename from cerberus/pointer_comparison_rel_different_type_members.eva/warnings.log rename to cerberus/.frama-c/pointer_comparison_rel_different_type_members.eva/warnings.log diff --git a/cerberus/pointer_comparison_rel_different_type_members.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_rel_different_type_members.parse/framac.ast similarity index 100% rename from cerberus/pointer_comparison_rel_different_type_members.parse/framac.ast rename to cerberus/.frama-c/pointer_comparison_rel_different_type_members.parse/framac.ast diff --git a/cerberus/pointer_comparison_rel_different_type_members.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_rel_different_type_members.parse/metrics.log similarity index 100% rename from cerberus/pointer_comparison_rel_different_type_members.parse/metrics.log rename to cerberus/.frama-c/pointer_comparison_rel_different_type_members.parse/metrics.log diff --git a/cerberus/pointer_comparison_eq_zombie_2.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_rel_different_type_members.parse/warnings.log similarity index 100% rename from cerberus/pointer_comparison_eq_zombie_2.parse/warnings.log rename to cerberus/.frama-c/pointer_comparison_rel_different_type_members.parse/warnings.log diff --git a/cerberus/pointer_comparison_rel_substruct.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_rel_substruct.eva/alarms.csv similarity index 100% rename from cerberus/pointer_comparison_rel_substruct.eva/alarms.csv rename to cerberus/.frama-c/pointer_comparison_rel_substruct.eva/alarms.csv diff --git a/cerberus/pointer_comparison_rel_substruct.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_rel_substruct.eva/metrics.log similarity index 100% rename from cerberus/pointer_comparison_rel_substruct.eva/metrics.log rename to cerberus/.frama-c/pointer_comparison_rel_substruct.eva/metrics.log diff --git a/cerberus/pointer_comparison_rel_substruct.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_rel_substruct.eva/nonterm.log similarity index 100% rename from cerberus/pointer_comparison_rel_substruct.eva/nonterm.log rename to cerberus/.frama-c/pointer_comparison_rel_substruct.eva/nonterm.log diff --git a/cerberus/pointer_comparison_rel_substruct.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_rel_substruct.eva/warnings.log similarity index 100% rename from cerberus/pointer_comparison_rel_substruct.eva/warnings.log rename to cerberus/.frama-c/pointer_comparison_rel_substruct.eva/warnings.log diff --git a/cerberus/pointer_comparison_rel_substruct.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_rel_substruct.parse/framac.ast similarity index 100% rename from cerberus/pointer_comparison_rel_substruct.parse/framac.ast rename to cerberus/.frama-c/pointer_comparison_rel_substruct.parse/framac.ast diff --git a/cerberus/pointer_comparison_rel_substruct.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_rel_substruct.parse/metrics.log similarity index 100% rename from cerberus/pointer_comparison_rel_substruct.parse/metrics.log rename to cerberus/.frama-c/pointer_comparison_rel_substruct.parse/metrics.log diff --git a/cerberus/pointer_comparison_rel_1_auto.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_rel_substruct.parse/warnings.log similarity index 100% rename from cerberus/pointer_comparison_rel_1_auto.parse/warnings.log rename to cerberus/.frama-c/pointer_comparison_rel_substruct.parse/warnings.log diff --git a/cerberus/pointer_copy_memcpy.eva/alarms.csv b/cerberus/.frama-c/pointer_copy_memcpy.eva/alarms.csv similarity index 100% rename from cerberus/pointer_copy_memcpy.eva/alarms.csv rename to cerberus/.frama-c/pointer_copy_memcpy.eva/alarms.csv diff --git a/cerberus/pointer_copy_memcpy.eva/metrics.log b/cerberus/.frama-c/pointer_copy_memcpy.eva/metrics.log similarity index 100% rename from cerberus/pointer_copy_memcpy.eva/metrics.log rename to cerberus/.frama-c/pointer_copy_memcpy.eva/metrics.log diff --git a/cerberus/pointer_copy_memcpy.eva/nonterm.log b/cerberus/.frama-c/pointer_copy_memcpy.eva/nonterm.log similarity index 100% rename from cerberus/pointer_copy_memcpy.eva/nonterm.log rename to cerberus/.frama-c/pointer_copy_memcpy.eva/nonterm.log diff --git a/cerberus/pointer_comparison_rel_1_global.parse/warnings.log b/cerberus/.frama-c/pointer_copy_memcpy.eva/warnings.log similarity index 100% rename from cerberus/pointer_comparison_rel_1_global.parse/warnings.log rename to cerberus/.frama-c/pointer_copy_memcpy.eva/warnings.log diff --git a/cerberus/pointer_copy_memcpy.parse/framac.ast b/cerberus/.frama-c/pointer_copy_memcpy.parse/framac.ast similarity index 100% rename from cerberus/pointer_copy_memcpy.parse/framac.ast rename to cerberus/.frama-c/pointer_copy_memcpy.parse/framac.ast diff --git a/cerberus/pointer_copy_memcpy.parse/metrics.log b/cerberus/.frama-c/pointer_copy_memcpy.parse/metrics.log similarity index 100% rename from cerberus/pointer_copy_memcpy.parse/metrics.log rename to cerberus/.frama-c/pointer_copy_memcpy.parse/metrics.log diff --git a/cerberus/pointer_comparison_rel_different_type_members.parse/warnings.log b/cerberus/.frama-c/pointer_copy_memcpy.parse/warnings.log similarity index 100% rename from cerberus/pointer_comparison_rel_different_type_members.parse/warnings.log rename to cerberus/.frama-c/pointer_copy_memcpy.parse/warnings.log diff --git a/cerberus/pointer_copy_user_ctrlflow_bitwise.eva/alarms.csv b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.eva/alarms.csv similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bitwise.eva/alarms.csv rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.eva/alarms.csv diff --git a/cerberus/pointer_copy_user_ctrlflow_bitwise.eva/metrics.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.eva/metrics.log similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bitwise.eva/metrics.log rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.eva/metrics.log diff --git a/cerberus/pointer_copy_user_ctrlflow_bitwise.eva/nonterm.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.eva/nonterm.log similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bitwise.eva/nonterm.log rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.eva/nonterm.log diff --git a/cerberus/pointer_copy_user_ctrlflow_bitwise.eva/warnings.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.eva/warnings.log similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bitwise.eva/warnings.log rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.eva/warnings.log diff --git a/cerberus/pointer_copy_user_ctrlflow_bitwise.parse/framac.ast b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.parse/framac.ast similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bitwise.parse/framac.ast rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.parse/framac.ast diff --git a/cerberus/pointer_copy_user_ctrlflow_bitwise.parse/metrics.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.parse/metrics.log similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bitwise.parse/metrics.log rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.parse/metrics.log diff --git a/cerberus/pointer_comparison_rel_substruct.parse/warnings.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.parse/warnings.log similarity index 100% rename from cerberus/pointer_comparison_rel_substruct.parse/warnings.log rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.parse/warnings.log diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise.eva/alarms.csv b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.eva/alarms.csv similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bytewise.eva/alarms.csv rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.eva/alarms.csv diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise.eva/metrics.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.eva/metrics.log similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bytewise.eva/metrics.log rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.eva/metrics.log diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise.eva/nonterm.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.eva/nonterm.log similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bytewise.eva/nonterm.log rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.eva/nonterm.log diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise.eva/warnings.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.eva/warnings.log similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bytewise.eva/warnings.log rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.eva/warnings.log diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise.parse/framac.ast b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.parse/framac.ast similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bytewise.parse/framac.ast rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.parse/framac.ast diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise.parse/metrics.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.parse/metrics.log similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bytewise.parse/metrics.log rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.parse/metrics.log diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise.parse/warnings.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.parse/warnings.log similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bytewise.parse/warnings.log rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.parse/warnings.log diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/alarms.csv b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/alarms.csv similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/alarms.csv rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/alarms.csv diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/metrics.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/metrics.log similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/metrics.log rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/metrics.log diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/nonterm.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/nonterm.log similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/nonterm.log rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/nonterm.log diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/warnings.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/warnings.log similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/warnings.log rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/warnings.log diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/framac.ast b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/framac.ast similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/framac.ast rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/framac.ast diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/metrics.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/metrics.log similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/metrics.log rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/metrics.log diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/warnings.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/warnings.log similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/warnings.log rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/warnings.log diff --git a/cerberus/pointer_copy_user_dataflow_direct_bitwise.eva/alarms.csv b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.eva/alarms.csv similarity index 100% rename from cerberus/pointer_copy_user_dataflow_direct_bitwise.eva/alarms.csv rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.eva/alarms.csv diff --git a/cerberus/pointer_copy_user_dataflow_direct_bitwise.eva/metrics.log b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.eva/metrics.log similarity index 100% rename from cerberus/pointer_copy_user_dataflow_direct_bitwise.eva/metrics.log rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.eva/metrics.log diff --git a/cerberus/pointer_copy_user_dataflow_direct_bitwise.eva/nonterm.log b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.eva/nonterm.log similarity index 100% rename from cerberus/pointer_copy_user_dataflow_direct_bitwise.eva/nonterm.log rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.eva/nonterm.log diff --git a/cerberus/pointer_copy_user_dataflow_direct_bitwise.eva/warnings.log b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.eva/warnings.log similarity index 100% rename from cerberus/pointer_copy_user_dataflow_direct_bitwise.eva/warnings.log rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.eva/warnings.log diff --git a/cerberus/pointer_copy_user_dataflow_direct_bitwise.parse/framac.ast b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.parse/framac.ast similarity index 100% rename from cerberus/pointer_copy_user_dataflow_direct_bitwise.parse/framac.ast rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.parse/framac.ast diff --git a/cerberus/pointer_copy_user_dataflow_direct_bitwise.parse/metrics.log b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.parse/metrics.log similarity index 100% rename from cerberus/pointer_copy_user_dataflow_direct_bitwise.parse/metrics.log rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.parse/metrics.log diff --git a/cerberus/pointer_copy_memcpy.eva/warnings.log b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.parse/warnings.log similarity index 100% rename from cerberus/pointer_copy_memcpy.eva/warnings.log rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.parse/warnings.log diff --git a/cerberus/pointer_copy_user_dataflow_direct_bytewise.eva/alarms.csv b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.eva/alarms.csv similarity index 100% rename from cerberus/pointer_copy_user_dataflow_direct_bytewise.eva/alarms.csv rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.eva/alarms.csv diff --git a/cerberus/pointer_copy_user_dataflow_direct_bytewise.eva/metrics.log b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.eva/metrics.log similarity index 100% rename from cerberus/pointer_copy_user_dataflow_direct_bytewise.eva/metrics.log rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.eva/metrics.log diff --git a/cerberus/pointer_copy_user_dataflow_direct_bytewise.eva/nonterm.log b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.eva/nonterm.log similarity index 100% rename from cerberus/pointer_copy_user_dataflow_direct_bytewise.eva/nonterm.log rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.eva/nonterm.log diff --git a/cerberus/pointer_copy_user_dataflow_direct_bytewise.eva/warnings.log b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.eva/warnings.log similarity index 100% rename from cerberus/pointer_copy_user_dataflow_direct_bytewise.eva/warnings.log rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.eva/warnings.log diff --git a/cerberus/pointer_copy_user_dataflow_direct_bytewise.parse/framac.ast b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.parse/framac.ast similarity index 100% rename from cerberus/pointer_copy_user_dataflow_direct_bytewise.parse/framac.ast rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.parse/framac.ast diff --git a/cerberus/pointer_copy_user_dataflow_direct_bytewise.parse/metrics.log b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.parse/metrics.log similarity index 100% rename from cerberus/pointer_copy_user_dataflow_direct_bytewise.parse/metrics.log rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.parse/metrics.log diff --git a/cerberus/pointer_copy_memcpy.parse/warnings.log b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.parse/warnings.log similarity index 100% rename from cerberus/pointer_copy_memcpy.parse/warnings.log rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.parse/warnings.log diff --git a/cerberus/pointer_copy_user_dataflow_indirect_bytewise.eva/alarms.csv b/cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.eva/alarms.csv similarity index 100% rename from cerberus/pointer_copy_user_dataflow_indirect_bytewise.eva/alarms.csv rename to cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.eva/alarms.csv diff --git a/cerberus/pointer_copy_user_dataflow_indirect_bytewise.eva/metrics.log b/cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.eva/metrics.log similarity index 100% rename from cerberus/pointer_copy_user_dataflow_indirect_bytewise.eva/metrics.log rename to cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.eva/metrics.log diff --git a/cerberus/pointer_copy_user_dataflow_indirect_bytewise.eva/nonterm.log b/cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.eva/nonterm.log similarity index 100% rename from cerberus/pointer_copy_user_dataflow_indirect_bytewise.eva/nonterm.log rename to cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.eva/nonterm.log diff --git a/cerberus/pointer_copy_user_dataflow_indirect_bytewise.eva/warnings.log b/cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.eva/warnings.log similarity index 100% rename from cerberus/pointer_copy_user_dataflow_indirect_bytewise.eva/warnings.log rename to cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.eva/warnings.log diff --git a/cerberus/pointer_copy_user_dataflow_indirect_bytewise.parse/framac.ast b/cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.parse/framac.ast similarity index 100% rename from cerberus/pointer_copy_user_dataflow_indirect_bytewise.parse/framac.ast rename to cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.parse/framac.ast diff --git a/cerberus/pointer_copy_user_dataflow_indirect_bytewise.parse/metrics.log b/cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.parse/metrics.log similarity index 100% rename from cerberus/pointer_copy_user_dataflow_indirect_bytewise.parse/metrics.log rename to cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.parse/metrics.log diff --git a/cerberus/pointer_copy_user_ctrlflow_bitwise.parse/warnings.log b/cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.parse/warnings.log similarity index 100% rename from cerberus/pointer_copy_user_ctrlflow_bitwise.parse/warnings.log rename to cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.parse/warnings.log diff --git a/cerberus/pointer_from_concrete_address_1.eva/alarms.csv b/cerberus/.frama-c/pointer_from_concrete_address_1.eva/alarms.csv similarity index 100% rename from cerberus/pointer_from_concrete_address_1.eva/alarms.csv rename to cerberus/.frama-c/pointer_from_concrete_address_1.eva/alarms.csv diff --git a/cerberus/pointer_from_concrete_address_1.eva/metrics.log b/cerberus/.frama-c/pointer_from_concrete_address_1.eva/metrics.log similarity index 100% rename from cerberus/pointer_from_concrete_address_1.eva/metrics.log rename to cerberus/.frama-c/pointer_from_concrete_address_1.eva/metrics.log diff --git a/cerberus/pointer_from_concrete_address_1.eva/nonterm.log b/cerberus/.frama-c/pointer_from_concrete_address_1.eva/nonterm.log similarity index 100% rename from cerberus/pointer_from_concrete_address_1.eva/nonterm.log rename to cerberus/.frama-c/pointer_from_concrete_address_1.eva/nonterm.log diff --git a/cerberus/pointer_from_concrete_address_1.eva/warnings.log b/cerberus/.frama-c/pointer_from_concrete_address_1.eva/warnings.log similarity index 100% rename from cerberus/pointer_from_concrete_address_1.eva/warnings.log rename to cerberus/.frama-c/pointer_from_concrete_address_1.eva/warnings.log diff --git a/cerberus/pointer_from_concrete_address_1.parse/framac.ast b/cerberus/.frama-c/pointer_from_concrete_address_1.parse/framac.ast similarity index 100% rename from cerberus/pointer_from_concrete_address_1.parse/framac.ast rename to cerberus/.frama-c/pointer_from_concrete_address_1.parse/framac.ast diff --git a/cerberus/pointer_from_concrete_address_1.parse/metrics.log b/cerberus/.frama-c/pointer_from_concrete_address_1.parse/metrics.log similarity index 100% rename from cerberus/pointer_from_concrete_address_1.parse/metrics.log rename to cerberus/.frama-c/pointer_from_concrete_address_1.parse/metrics.log diff --git a/cerberus/pointer_copy_user_dataflow_direct_bitwise.parse/warnings.log b/cerberus/.frama-c/pointer_from_concrete_address_1.parse/warnings.log similarity index 100% rename from cerberus/pointer_copy_user_dataflow_direct_bitwise.parse/warnings.log rename to cerberus/.frama-c/pointer_from_concrete_address_1.parse/warnings.log diff --git a/cerberus/pointer_from_concrete_address_2.eva/alarms.csv b/cerberus/.frama-c/pointer_from_concrete_address_2.eva/alarms.csv similarity index 100% rename from cerberus/pointer_from_concrete_address_2.eva/alarms.csv rename to cerberus/.frama-c/pointer_from_concrete_address_2.eva/alarms.csv diff --git a/cerberus/pointer_from_concrete_address_2.eva/metrics.log b/cerberus/.frama-c/pointer_from_concrete_address_2.eva/metrics.log similarity index 100% rename from cerberus/pointer_from_concrete_address_2.eva/metrics.log rename to cerberus/.frama-c/pointer_from_concrete_address_2.eva/metrics.log diff --git a/cerberus/pointer_from_concrete_address_2.eva/nonterm.log b/cerberus/.frama-c/pointer_from_concrete_address_2.eva/nonterm.log similarity index 100% rename from cerberus/pointer_from_concrete_address_2.eva/nonterm.log rename to cerberus/.frama-c/pointer_from_concrete_address_2.eva/nonterm.log diff --git a/cerberus/pointer_from_concrete_address_2.eva/warnings.log b/cerberus/.frama-c/pointer_from_concrete_address_2.eva/warnings.log similarity index 100% rename from cerberus/pointer_from_concrete_address_2.eva/warnings.log rename to cerberus/.frama-c/pointer_from_concrete_address_2.eva/warnings.log diff --git a/cerberus/pointer_from_concrete_address_2.parse/framac.ast b/cerberus/.frama-c/pointer_from_concrete_address_2.parse/framac.ast similarity index 100% rename from cerberus/pointer_from_concrete_address_2.parse/framac.ast rename to cerberus/.frama-c/pointer_from_concrete_address_2.parse/framac.ast diff --git a/cerberus/pointer_from_concrete_address_2.parse/metrics.log b/cerberus/.frama-c/pointer_from_concrete_address_2.parse/metrics.log similarity index 100% rename from cerberus/pointer_from_concrete_address_2.parse/metrics.log rename to cerberus/.frama-c/pointer_from_concrete_address_2.parse/metrics.log diff --git a/cerberus/pointer_copy_user_dataflow_direct_bytewise.parse/warnings.log b/cerberus/.frama-c/pointer_from_concrete_address_2.parse/warnings.log similarity index 100% rename from cerberus/pointer_copy_user_dataflow_direct_bytewise.parse/warnings.log rename to cerberus/.frama-c/pointer_from_concrete_address_2.parse/warnings.log diff --git a/cerberus/pointer_offset_constant_8_malloc.eva/alarms.csv b/cerberus/.frama-c/pointer_offset_constant_8_malloc.eva/alarms.csv similarity index 100% rename from cerberus/pointer_offset_constant_8_malloc.eva/alarms.csv rename to cerberus/.frama-c/pointer_offset_constant_8_malloc.eva/alarms.csv diff --git a/cerberus/pointer_offset_constant_8_malloc.eva/metrics.log b/cerberus/.frama-c/pointer_offset_constant_8_malloc.eva/metrics.log similarity index 100% rename from cerberus/pointer_offset_constant_8_malloc.eva/metrics.log rename to cerberus/.frama-c/pointer_offset_constant_8_malloc.eva/metrics.log diff --git a/cerberus/pointer_offset_constant_8_malloc.eva/nonterm.log b/cerberus/.frama-c/pointer_offset_constant_8_malloc.eva/nonterm.log similarity index 100% rename from cerberus/pointer_offset_constant_8_malloc.eva/nonterm.log rename to cerberus/.frama-c/pointer_offset_constant_8_malloc.eva/nonterm.log diff --git a/cerberus/pointer_offset_constant_8_malloc.eva/warnings.log b/cerberus/.frama-c/pointer_offset_constant_8_malloc.eva/warnings.log similarity index 100% rename from cerberus/pointer_offset_constant_8_malloc.eva/warnings.log rename to cerberus/.frama-c/pointer_offset_constant_8_malloc.eva/warnings.log diff --git a/cerberus/pointer_offset_constant_8_malloc.parse/framac.ast b/cerberus/.frama-c/pointer_offset_constant_8_malloc.parse/framac.ast similarity index 100% rename from cerberus/pointer_offset_constant_8_malloc.parse/framac.ast rename to cerberus/.frama-c/pointer_offset_constant_8_malloc.parse/framac.ast diff --git a/cerberus/pointer_offset_constant_8_malloc.parse/metrics.log b/cerberus/.frama-c/pointer_offset_constant_8_malloc.parse/metrics.log similarity index 100% rename from cerberus/pointer_offset_constant_8_malloc.parse/metrics.log rename to cerberus/.frama-c/pointer_offset_constant_8_malloc.parse/metrics.log diff --git a/cerberus/pointer_copy_user_dataflow_indirect_bytewise.parse/warnings.log b/cerberus/.frama-c/pointer_offset_constant_8_malloc.parse/warnings.log similarity index 100% rename from cerberus/pointer_copy_user_dataflow_indirect_bytewise.parse/warnings.log rename to cerberus/.frama-c/pointer_offset_constant_8_malloc.parse/warnings.log diff --git a/cerberus/pointer_offset_from_subtraction_1_auto.eva/alarms.csv b/cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.eva/alarms.csv similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_auto.eva/alarms.csv rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.eva/alarms.csv diff --git a/cerberus/pointer_offset_from_subtraction_1_auto.eva/metrics.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.eva/metrics.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_auto.eva/metrics.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.eva/metrics.log diff --git a/cerberus/pointer_offset_from_subtraction_1_auto.eva/nonterm.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.eva/nonterm.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_auto.eva/nonterm.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.eva/nonterm.log diff --git a/cerberus/pointer_offset_from_subtraction_1_auto.eva/warnings.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.eva/warnings.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_auto.eva/warnings.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.eva/warnings.log diff --git a/cerberus/pointer_offset_from_subtraction_1_auto.parse/framac.ast b/cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.parse/framac.ast similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_auto.parse/framac.ast rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.parse/framac.ast diff --git a/cerberus/pointer_offset_from_subtraction_1_auto.parse/metrics.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.parse/metrics.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_auto.parse/metrics.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.parse/metrics.log diff --git a/cerberus/pointer_from_concrete_address_1.parse/warnings.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.parse/warnings.log similarity index 100% rename from cerberus/pointer_from_concrete_address_1.parse/warnings.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.parse/warnings.log diff --git a/cerberus/pointer_offset_from_subtraction_1_global.eva/alarms.csv b/cerberus/.frama-c/pointer_offset_from_subtraction_1_global.eva/alarms.csv similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_global.eva/alarms.csv rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_global.eva/alarms.csv diff --git a/cerberus/pointer_offset_from_subtraction_1_global.eva/metrics.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_global.eva/metrics.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_global.eva/metrics.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_global.eva/metrics.log diff --git a/cerberus/pointer_offset_from_subtraction_1_global.eva/nonterm.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_global.eva/nonterm.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_global.eva/nonterm.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_global.eva/nonterm.log diff --git a/cerberus/pointer_offset_from_subtraction_1_global.eva/warnings.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_global.eva/warnings.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_global.eva/warnings.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_global.eva/warnings.log diff --git a/cerberus/pointer_offset_from_subtraction_1_global.parse/framac.ast b/cerberus/.frama-c/pointer_offset_from_subtraction_1_global.parse/framac.ast similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_global.parse/framac.ast rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_global.parse/framac.ast diff --git a/cerberus/pointer_offset_from_subtraction_1_global.parse/metrics.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_global.parse/metrics.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_global.parse/metrics.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_global.parse/metrics.log diff --git a/cerberus/pointer_from_concrete_address_2.parse/warnings.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_global.parse/warnings.log similarity index 100% rename from cerberus/pointer_from_concrete_address_2.parse/warnings.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_global.parse/warnings.log diff --git a/cerberus/pointer_offset_from_subtraction_1_malloc.eva/alarms.csv b/cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.eva/alarms.csv similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_malloc.eva/alarms.csv rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.eva/alarms.csv diff --git a/cerberus/pointer_offset_from_subtraction_1_malloc.eva/metrics.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.eva/metrics.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_malloc.eva/metrics.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.eva/metrics.log diff --git a/cerberus/pointer_offset_from_subtraction_1_malloc.eva/nonterm.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.eva/nonterm.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_malloc.eva/nonterm.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.eva/nonterm.log diff --git a/cerberus/pointer_offset_from_subtraction_1_malloc.eva/warnings.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.eva/warnings.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_malloc.eva/warnings.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.eva/warnings.log diff --git a/cerberus/pointer_offset_from_subtraction_1_malloc.parse/framac.ast b/cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.parse/framac.ast similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_malloc.parse/framac.ast rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.parse/framac.ast diff --git a/cerberus/pointer_offset_from_subtraction_1_malloc.parse/metrics.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.parse/metrics.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_malloc.parse/metrics.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.parse/metrics.log diff --git a/cerberus/pointer_offset_constant_8_malloc.parse/warnings.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.parse/warnings.log similarity index 100% rename from cerberus/pointer_offset_constant_8_malloc.parse/warnings.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.parse/warnings.log diff --git a/cerberus/pointer_offset_from_subtraction_2_auto.eva/alarms.csv b/cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.eva/alarms.csv similarity index 100% rename from cerberus/pointer_offset_from_subtraction_2_auto.eva/alarms.csv rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.eva/alarms.csv diff --git a/cerberus/pointer_offset_from_subtraction_2_auto.eva/metrics.log b/cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.eva/metrics.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_2_auto.eva/metrics.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.eva/metrics.log diff --git a/cerberus/pointer_offset_from_subtraction_2_auto.eva/nonterm.log b/cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.eva/nonterm.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_2_auto.eva/nonterm.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.eva/nonterm.log diff --git a/cerberus/pointer_offset_from_subtraction_2_auto.eva/warnings.log b/cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.eva/warnings.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_2_auto.eva/warnings.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.eva/warnings.log diff --git a/cerberus/pointer_offset_from_subtraction_2_auto.parse/framac.ast b/cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.parse/framac.ast similarity index 100% rename from cerberus/pointer_offset_from_subtraction_2_auto.parse/framac.ast rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.parse/framac.ast diff --git a/cerberus/pointer_offset_from_subtraction_2_auto.parse/metrics.log b/cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.parse/metrics.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_2_auto.parse/metrics.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.parse/metrics.log diff --git a/cerberus/pointer_offset_from_subtraction_1_auto.parse/warnings.log b/cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.parse/warnings.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_auto.parse/warnings.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.parse/warnings.log diff --git a/cerberus/pointer_offset_from_subtraction_2_global.eva/alarms.csv b/cerberus/.frama-c/pointer_offset_from_subtraction_2_global.eva/alarms.csv similarity index 100% rename from cerberus/pointer_offset_from_subtraction_2_global.eva/alarms.csv rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_global.eva/alarms.csv diff --git a/cerberus/pointer_offset_from_subtraction_2_global.eva/metrics.log b/cerberus/.frama-c/pointer_offset_from_subtraction_2_global.eva/metrics.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_2_global.eva/metrics.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_global.eva/metrics.log diff --git a/cerberus/pointer_offset_from_subtraction_2_global.eva/nonterm.log b/cerberus/.frama-c/pointer_offset_from_subtraction_2_global.eva/nonterm.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_2_global.eva/nonterm.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_global.eva/nonterm.log diff --git a/cerberus/pointer_offset_from_subtraction_2_global.eva/warnings.log b/cerberus/.frama-c/pointer_offset_from_subtraction_2_global.eva/warnings.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_2_global.eva/warnings.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_global.eva/warnings.log diff --git a/cerberus/pointer_offset_from_subtraction_2_global.parse/framac.ast b/cerberus/.frama-c/pointer_offset_from_subtraction_2_global.parse/framac.ast similarity index 100% rename from cerberus/pointer_offset_from_subtraction_2_global.parse/framac.ast rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_global.parse/framac.ast diff --git a/cerberus/pointer_offset_from_subtraction_2_global.parse/metrics.log b/cerberus/.frama-c/pointer_offset_from_subtraction_2_global.parse/metrics.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_2_global.parse/metrics.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_global.parse/metrics.log diff --git a/cerberus/pointer_offset_from_subtraction_1_global.parse/warnings.log b/cerberus/.frama-c/pointer_offset_from_subtraction_2_global.parse/warnings.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_global.parse/warnings.log rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_global.parse/warnings.log diff --git a/cerberus/pointer_offset_xor_auto.eva/alarms.csv b/cerberus/.frama-c/pointer_offset_xor_auto.eva/alarms.csv similarity index 100% rename from cerberus/pointer_offset_xor_auto.eva/alarms.csv rename to cerberus/.frama-c/pointer_offset_xor_auto.eva/alarms.csv diff --git a/cerberus/pointer_offset_xor_auto.eva/metrics.log b/cerberus/.frama-c/pointer_offset_xor_auto.eva/metrics.log similarity index 100% rename from cerberus/pointer_offset_xor_auto.eva/metrics.log rename to cerberus/.frama-c/pointer_offset_xor_auto.eva/metrics.log diff --git a/cerberus/pointer_offset_xor_auto.eva/nonterm.log b/cerberus/.frama-c/pointer_offset_xor_auto.eva/nonterm.log similarity index 100% rename from cerberus/pointer_offset_xor_auto.eva/nonterm.log rename to cerberus/.frama-c/pointer_offset_xor_auto.eva/nonterm.log diff --git a/cerberus/pointer_offset_xor_auto.eva/warnings.log b/cerberus/.frama-c/pointer_offset_xor_auto.eva/warnings.log similarity index 75% rename from cerberus/pointer_offset_xor_auto.eva/warnings.log rename to cerberus/.frama-c/pointer_offset_xor_auto.eva/warnings.log index 5f466f9859c64c4e452025c954f69296a791c3f5..dd8bf5f199da158402c7d2d47e09dfa79688753e 100644 --- a/cerberus/pointer_offset_xor_auto.eva/warnings.log +++ b/cerberus/.frama-c/pointer_offset_xor_auto.eva/warnings.log @@ -1,3 +1,4 @@ +[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration. [eva:garbled-mix] warning: Garbled mix generated during analysis: {{ garbled mix of &{y} (origin: Arithmetic {pointer_offset_xor_auto.c:7}) }} {{ garbled mix of &{x} (origin: Arithmetic {pointer_offset_xor_auto.c:7}) }} diff --git a/cerberus/pointer_offset_xor_auto.parse/framac.ast b/cerberus/.frama-c/pointer_offset_xor_auto.parse/framac.ast similarity index 100% rename from cerberus/pointer_offset_xor_auto.parse/framac.ast rename to cerberus/.frama-c/pointer_offset_xor_auto.parse/framac.ast diff --git a/cerberus/pointer_offset_xor_auto.parse/metrics.log b/cerberus/.frama-c/pointer_offset_xor_auto.parse/metrics.log similarity index 100% rename from cerberus/pointer_offset_xor_auto.parse/metrics.log rename to cerberus/.frama-c/pointer_offset_xor_auto.parse/metrics.log diff --git a/cerberus/pointer_offset_from_subtraction_1_malloc.parse/warnings.log b/cerberus/.frama-c/pointer_offset_xor_auto.parse/warnings.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_1_malloc.parse/warnings.log rename to cerberus/.frama-c/pointer_offset_xor_auto.parse/warnings.log diff --git a/cerberus/pointer_offset_xor_global.eva/alarms.csv b/cerberus/.frama-c/pointer_offset_xor_global.eva/alarms.csv similarity index 100% rename from cerberus/pointer_offset_xor_global.eva/alarms.csv rename to cerberus/.frama-c/pointer_offset_xor_global.eva/alarms.csv diff --git a/cerberus/pointer_offset_xor_global.eva/metrics.log b/cerberus/.frama-c/pointer_offset_xor_global.eva/metrics.log similarity index 100% rename from cerberus/pointer_offset_xor_global.eva/metrics.log rename to cerberus/.frama-c/pointer_offset_xor_global.eva/metrics.log diff --git a/cerberus/pointer_offset_xor_global.eva/nonterm.log b/cerberus/.frama-c/pointer_offset_xor_global.eva/nonterm.log similarity index 100% rename from cerberus/pointer_offset_xor_global.eva/nonterm.log rename to cerberus/.frama-c/pointer_offset_xor_global.eva/nonterm.log diff --git a/cerberus/pointer_offset_xor_global.eva/warnings.log b/cerberus/.frama-c/pointer_offset_xor_global.eva/warnings.log similarity index 100% rename from cerberus/pointer_offset_xor_global.eva/warnings.log rename to cerberus/.frama-c/pointer_offset_xor_global.eva/warnings.log diff --git a/cerberus/pointer_offset_xor_global.parse/framac.ast b/cerberus/.frama-c/pointer_offset_xor_global.parse/framac.ast similarity index 100% rename from cerberus/pointer_offset_xor_global.parse/framac.ast rename to cerberus/.frama-c/pointer_offset_xor_global.parse/framac.ast diff --git a/cerberus/pointer_offset_xor_global.parse/metrics.log b/cerberus/.frama-c/pointer_offset_xor_global.parse/metrics.log similarity index 100% rename from cerberus/pointer_offset_xor_global.parse/metrics.log rename to cerberus/.frama-c/pointer_offset_xor_global.parse/metrics.log diff --git a/cerberus/pointer_offset_from_subtraction_2_auto.parse/warnings.log b/cerberus/.frama-c/pointer_offset_xor_global.parse/warnings.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_2_auto.parse/warnings.log rename to cerberus/.frama-c/pointer_offset_xor_global.parse/warnings.log diff --git a/cerberus/pointer_stability_1.eva/alarms.csv b/cerberus/.frama-c/pointer_stability_1.eva/alarms.csv similarity index 100% rename from cerberus/pointer_stability_1.eva/alarms.csv rename to cerberus/.frama-c/pointer_stability_1.eva/alarms.csv diff --git a/cerberus/pointer_stability_1.eva/metrics.log b/cerberus/.frama-c/pointer_stability_1.eva/metrics.log similarity index 100% rename from cerberus/pointer_stability_1.eva/metrics.log rename to cerberus/.frama-c/pointer_stability_1.eva/metrics.log diff --git a/cerberus/pointer_stability_1.eva/nonterm.log b/cerberus/.frama-c/pointer_stability_1.eva/nonterm.log similarity index 100% rename from cerberus/pointer_stability_1.eva/nonterm.log rename to cerberus/.frama-c/pointer_stability_1.eva/nonterm.log diff --git a/cerberus/pointer_offset_from_subtraction_2_global.parse/warnings.log b/cerberus/.frama-c/pointer_stability_1.eva/warnings.log similarity index 100% rename from cerberus/pointer_offset_from_subtraction_2_global.parse/warnings.log rename to cerberus/.frama-c/pointer_stability_1.eva/warnings.log diff --git a/cerberus/pointer_stability_1.parse/framac.ast b/cerberus/.frama-c/pointer_stability_1.parse/framac.ast similarity index 100% rename from cerberus/pointer_stability_1.parse/framac.ast rename to cerberus/.frama-c/pointer_stability_1.parse/framac.ast diff --git a/cerberus/pointer_stability_1.parse/metrics.log b/cerberus/.frama-c/pointer_stability_1.parse/metrics.log similarity index 100% rename from cerberus/pointer_stability_1.parse/metrics.log rename to cerberus/.frama-c/pointer_stability_1.parse/metrics.log diff --git a/cerberus/pointer_offset_xor_auto.parse/warnings.log b/cerberus/.frama-c/pointer_stability_1.parse/warnings.log similarity index 100% rename from cerberus/pointer_offset_xor_auto.parse/warnings.log rename to cerberus/.frama-c/pointer_stability_1.parse/warnings.log diff --git a/cerberus/pointer_stability_2.eva/alarms.csv b/cerberus/.frama-c/pointer_stability_2.eva/alarms.csv similarity index 100% rename from cerberus/pointer_stability_2.eva/alarms.csv rename to cerberus/.frama-c/pointer_stability_2.eva/alarms.csv diff --git a/cerberus/pointer_stability_2.eva/metrics.log b/cerberus/.frama-c/pointer_stability_2.eva/metrics.log similarity index 100% rename from cerberus/pointer_stability_2.eva/metrics.log rename to cerberus/.frama-c/pointer_stability_2.eva/metrics.log diff --git a/cerberus/pointer_stability_2.eva/nonterm.log b/cerberus/.frama-c/pointer_stability_2.eva/nonterm.log similarity index 100% rename from cerberus/pointer_stability_2.eva/nonterm.log rename to cerberus/.frama-c/pointer_stability_2.eva/nonterm.log diff --git a/cerberus/pointer_offset_xor_global.parse/warnings.log b/cerberus/.frama-c/pointer_stability_2.eva/warnings.log similarity index 100% rename from cerberus/pointer_offset_xor_global.parse/warnings.log rename to cerberus/.frama-c/pointer_stability_2.eva/warnings.log diff --git a/cerberus/pointer_stability_2.parse/framac.ast b/cerberus/.frama-c/pointer_stability_2.parse/framac.ast similarity index 100% rename from cerberus/pointer_stability_2.parse/framac.ast rename to cerberus/.frama-c/pointer_stability_2.parse/framac.ast diff --git a/cerberus/pointer_stability_2.parse/metrics.log b/cerberus/.frama-c/pointer_stability_2.parse/metrics.log similarity index 100% rename from cerberus/pointer_stability_2.parse/metrics.log rename to cerberus/.frama-c/pointer_stability_2.parse/metrics.log diff --git a/cerberus/pointer_stability_1.eva/warnings.log b/cerberus/.frama-c/pointer_stability_2.parse/warnings.log similarity index 100% rename from cerberus/pointer_stability_1.eva/warnings.log rename to cerberus/.frama-c/pointer_stability_2.parse/warnings.log diff --git a/cerberus/provenance_basic_auto_xy.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_auto_xy.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_auto_xy.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_auto_xy.eva/alarms.csv diff --git a/cerberus/provenance_basic_auto_xy.eva/metrics.log b/cerberus/.frama-c/provenance_basic_auto_xy.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_auto_xy.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_auto_xy.eva/metrics.log diff --git a/cerberus/provenance_basic_auto_xy.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_auto_xy.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_auto_xy.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_auto_xy.eva/nonterm.log diff --git a/cerberus/provenance_basic_auto_xy.eva/warnings.log b/cerberus/.frama-c/provenance_basic_auto_xy.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_auto_xy.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_auto_xy.eva/warnings.log diff --git a/cerberus/provenance_basic_auto_xy.parse/framac.ast b/cerberus/.frama-c/provenance_basic_auto_xy.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_auto_xy.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_auto_xy.parse/framac.ast diff --git a/cerberus/provenance_basic_auto_xy.parse/metrics.log b/cerberus/.frama-c/provenance_basic_auto_xy.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_auto_xy.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_auto_xy.parse/metrics.log diff --git a/cerberus/pointer_stability_1.parse/warnings.log b/cerberus/.frama-c/provenance_basic_auto_xy.parse/warnings.log similarity index 100% rename from cerberus/pointer_stability_1.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_auto_xy.parse/warnings.log diff --git a/cerberus/provenance_basic_auto_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_auto_yx.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_auto_yx.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_auto_yx.eva/alarms.csv diff --git a/cerberus/provenance_basic_auto_yx.eva/metrics.log b/cerberus/.frama-c/provenance_basic_auto_yx.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_auto_yx.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_auto_yx.eva/metrics.log diff --git a/cerberus/provenance_basic_auto_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_auto_yx.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_auto_yx.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_auto_yx.eva/nonterm.log diff --git a/cerberus/provenance_basic_auto_yx.eva/warnings.log b/cerberus/.frama-c/provenance_basic_auto_yx.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_auto_yx.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_auto_yx.eva/warnings.log diff --git a/cerberus/provenance_basic_auto_yx.parse/framac.ast b/cerberus/.frama-c/provenance_basic_auto_yx.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_auto_yx.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_auto_yx.parse/framac.ast diff --git a/cerberus/provenance_basic_auto_yx.parse/metrics.log b/cerberus/.frama-c/provenance_basic_auto_yx.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_auto_yx.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_auto_yx.parse/metrics.log diff --git a/cerberus/pointer_stability_2.eva/warnings.log b/cerberus/.frama-c/provenance_basic_auto_yx.parse/warnings.log similarity index 100% rename from cerberus/pointer_stability_2.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_auto_yx.parse/warnings.log diff --git a/cerberus/provenance_basic_global_xy.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_global_xy.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_global_xy.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_global_xy.eva/alarms.csv diff --git a/cerberus/provenance_basic_global_xy.eva/metrics.log b/cerberus/.frama-c/provenance_basic_global_xy.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_global_xy.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_global_xy.eva/metrics.log diff --git a/cerberus/provenance_basic_global_xy.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_global_xy.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_global_xy.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_global_xy.eva/nonterm.log diff --git a/cerberus/provenance_basic_global_xy.eva/warnings.log b/cerberus/.frama-c/provenance_basic_global_xy.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_global_xy.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_global_xy.eva/warnings.log diff --git a/cerberus/provenance_basic_global_xy.parse/framac.ast b/cerberus/.frama-c/provenance_basic_global_xy.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_global_xy.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_global_xy.parse/framac.ast diff --git a/cerberus/provenance_basic_global_xy.parse/metrics.log b/cerberus/.frama-c/provenance_basic_global_xy.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_global_xy.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_global_xy.parse/metrics.log diff --git a/cerberus/pointer_stability_2.parse/warnings.log b/cerberus/.frama-c/provenance_basic_global_xy.parse/warnings.log similarity index 100% rename from cerberus/pointer_stability_2.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_global_xy.parse/warnings.log diff --git a/cerberus/provenance_basic_global_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_global_yx.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_global_yx.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_global_yx.eva/alarms.csv diff --git a/cerberus/provenance_basic_global_yx.eva/metrics.log b/cerberus/.frama-c/provenance_basic_global_yx.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_global_yx.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_global_yx.eva/metrics.log diff --git a/cerberus/provenance_basic_global_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_global_yx.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_global_yx.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_global_yx.eva/nonterm.log diff --git a/cerberus/provenance_basic_global_yx.eva/warnings.log b/cerberus/.frama-c/provenance_basic_global_yx.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_global_yx.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_global_yx.eva/warnings.log diff --git a/cerberus/provenance_basic_global_yx.parse/framac.ast b/cerberus/.frama-c/provenance_basic_global_yx.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_global_yx.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_global_yx.parse/framac.ast diff --git a/cerberus/provenance_basic_global_yx.parse/metrics.log b/cerberus/.frama-c/provenance_basic_global_yx.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_global_yx.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_global_yx.parse/metrics.log diff --git a/cerberus/provenance_basic_auto_xy.parse/warnings.log b/cerberus/.frama-c/provenance_basic_global_yx.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_auto_xy.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_global_yx.parse/warnings.log diff --git a/cerberus/provenance_basic_malloc_offset+12.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_malloc_offset+12.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_malloc_offset+12.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_malloc_offset+12.eva/alarms.csv diff --git a/cerberus/provenance_basic_malloc_offset+12.eva/metrics.log b/cerberus/.frama-c/provenance_basic_malloc_offset+12.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset+12.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_malloc_offset+12.eva/metrics.log diff --git a/cerberus/provenance_basic_malloc_offset+12.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_malloc_offset+12.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset+12.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_malloc_offset+12.eva/nonterm.log diff --git a/cerberus/provenance_basic_malloc_offset+12.eva/warnings.log b/cerberus/.frama-c/provenance_basic_malloc_offset+12.eva/warnings.log similarity index 90% rename from cerberus/provenance_basic_malloc_offset+12.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_malloc_offset+12.eva/warnings.log index 83184169fbaa485d5621bd1ba4963a46121d14b4..0b296c6fb0e0e04e7bff346d38c9eee71efe6859 100644 --- a/cerberus/provenance_basic_malloc_offset+12.eva/warnings.log +++ b/cerberus/.frama-c/provenance_basic_malloc_offset+12.eva/warnings.log @@ -1,3 +1,4 @@ +[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration. provenance_basic_malloc_offset+12.c:4:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: main provenance_basic_malloc_offset+12.c:5:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. diff --git a/cerberus/provenance_basic_malloc_offset+12.parse/framac.ast b/cerberus/.frama-c/provenance_basic_malloc_offset+12.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_malloc_offset+12.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_malloc_offset+12.parse/framac.ast diff --git a/cerberus/provenance_basic_malloc_offset+12.parse/metrics.log b/cerberus/.frama-c/provenance_basic_malloc_offset+12.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset+12.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_malloc_offset+12.parse/metrics.log diff --git a/cerberus/provenance_basic_auto_yx.parse/warnings.log b/cerberus/.frama-c/provenance_basic_malloc_offset+12.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_auto_yx.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_malloc_offset+12.parse/warnings.log diff --git a/cerberus/provenance_basic_malloc_offset+2.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_malloc_offset+2.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_malloc_offset+2.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_malloc_offset+2.eva/alarms.csv diff --git a/cerberus/provenance_basic_malloc_offset+2.eva/metrics.log b/cerberus/.frama-c/provenance_basic_malloc_offset+2.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset+2.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_malloc_offset+2.eva/metrics.log diff --git a/cerberus/provenance_basic_malloc_offset+2.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_malloc_offset+2.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset+2.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_malloc_offset+2.eva/nonterm.log diff --git a/cerberus/provenance_basic_malloc_offset+2.eva/warnings.log b/cerberus/.frama-c/provenance_basic_malloc_offset+2.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset+2.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_malloc_offset+2.eva/warnings.log diff --git a/cerberus/provenance_basic_malloc_offset+2.parse/framac.ast b/cerberus/.frama-c/provenance_basic_malloc_offset+2.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_malloc_offset+2.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_malloc_offset+2.parse/framac.ast diff --git a/cerberus/provenance_basic_malloc_offset+2.parse/metrics.log b/cerberus/.frama-c/provenance_basic_malloc_offset+2.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset+2.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_malloc_offset+2.parse/metrics.log diff --git a/cerberus/provenance_basic_global_xy.parse/warnings.log b/cerberus/.frama-c/provenance_basic_malloc_offset+2.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_global_xy.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_malloc_offset+2.parse/warnings.log diff --git a/cerberus/provenance_basic_malloc_offset+4.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_malloc_offset+4.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_malloc_offset+4.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_malloc_offset+4.eva/alarms.csv diff --git a/cerberus/provenance_basic_malloc_offset+4.eva/metrics.log b/cerberus/.frama-c/provenance_basic_malloc_offset+4.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset+4.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_malloc_offset+4.eva/metrics.log diff --git a/cerberus/provenance_basic_malloc_offset+4.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_malloc_offset+4.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset+4.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_malloc_offset+4.eva/nonterm.log diff --git a/cerberus/provenance_basic_malloc_offset+4.eva/warnings.log b/cerberus/.frama-c/provenance_basic_malloc_offset+4.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset+4.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_malloc_offset+4.eva/warnings.log diff --git a/cerberus/provenance_basic_malloc_offset+4.parse/framac.ast b/cerberus/.frama-c/provenance_basic_malloc_offset+4.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_malloc_offset+4.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_malloc_offset+4.parse/framac.ast diff --git a/cerberus/provenance_basic_malloc_offset+4.parse/metrics.log b/cerberus/.frama-c/provenance_basic_malloc_offset+4.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset+4.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_malloc_offset+4.parse/metrics.log diff --git a/cerberus/provenance_basic_global_yx.parse/warnings.log b/cerberus/.frama-c/provenance_basic_malloc_offset+4.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_global_yx.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_malloc_offset+4.parse/warnings.log diff --git a/cerberus/provenance_basic_malloc_offset+8.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_malloc_offset+8.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_malloc_offset+8.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_malloc_offset+8.eva/alarms.csv diff --git a/cerberus/provenance_basic_malloc_offset+8.eva/metrics.log b/cerberus/.frama-c/provenance_basic_malloc_offset+8.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset+8.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_malloc_offset+8.eva/metrics.log diff --git a/cerberus/provenance_basic_malloc_offset+8.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_malloc_offset+8.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset+8.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_malloc_offset+8.eva/nonterm.log diff --git a/cerberus/provenance_basic_malloc_offset+8.eva/warnings.log b/cerberus/.frama-c/provenance_basic_malloc_offset+8.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset+8.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_malloc_offset+8.eva/warnings.log diff --git a/cerberus/provenance_basic_malloc_offset+8.parse/framac.ast b/cerberus/.frama-c/provenance_basic_malloc_offset+8.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_malloc_offset+8.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_malloc_offset+8.parse/framac.ast diff --git a/cerberus/provenance_basic_malloc_offset+8.parse/metrics.log b/cerberus/.frama-c/provenance_basic_malloc_offset+8.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset+8.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_malloc_offset+8.parse/metrics.log diff --git a/cerberus/provenance_basic_malloc_offset+12.parse/warnings.log b/cerberus/.frama-c/provenance_basic_malloc_offset+8.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset+12.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_malloc_offset+8.parse/warnings.log diff --git a/cerberus/provenance_basic_malloc_offset-4.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_malloc_offset-4.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_malloc_offset-4.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_malloc_offset-4.eva/alarms.csv diff --git a/cerberus/provenance_basic_malloc_offset-4.eva/metrics.log b/cerberus/.frama-c/provenance_basic_malloc_offset-4.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset-4.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_malloc_offset-4.eva/metrics.log diff --git a/cerberus/provenance_basic_malloc_offset-4.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_malloc_offset-4.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset-4.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_malloc_offset-4.eva/nonterm.log diff --git a/cerberus/provenance_basic_malloc_offset-4.eva/warnings.log b/cerberus/.frama-c/provenance_basic_malloc_offset-4.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset-4.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_malloc_offset-4.eva/warnings.log diff --git a/cerberus/provenance_basic_malloc_offset-4.parse/framac.ast b/cerberus/.frama-c/provenance_basic_malloc_offset-4.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_malloc_offset-4.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_malloc_offset-4.parse/framac.ast diff --git a/cerberus/provenance_basic_malloc_offset-4.parse/metrics.log b/cerberus/.frama-c/provenance_basic_malloc_offset-4.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset-4.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_malloc_offset-4.parse/metrics.log diff --git a/cerberus/provenance_basic_malloc_offset+2.parse/warnings.log b/cerberus/.frama-c/provenance_basic_malloc_offset-4.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset+2.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_malloc_offset-4.parse/warnings.log diff --git a/cerberus/provenance_basic_mixed_auto.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_mixed_auto.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_mixed_auto.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_mixed_auto.eva/alarms.csv diff --git a/cerberus/provenance_basic_mixed_auto.eva/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_auto.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_mixed_auto.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_mixed_auto.eva/metrics.log diff --git a/cerberus/provenance_basic_mixed_auto.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_mixed_auto.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_mixed_auto.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_mixed_auto.eva/nonterm.log diff --git a/cerberus/provenance_basic_mixed_auto.eva/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_auto.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_mixed_auto.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_mixed_auto.eva/warnings.log diff --git a/cerberus/provenance_basic_mixed_auto.parse/framac.ast b/cerberus/.frama-c/provenance_basic_mixed_auto.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_mixed_auto.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_mixed_auto.parse/framac.ast diff --git a/cerberus/provenance_basic_mixed_auto.parse/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_auto.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_mixed_auto.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_mixed_auto.parse/metrics.log diff --git a/cerberus/provenance_basic_malloc_offset+4.parse/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_auto.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset+4.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_mixed_auto.parse/warnings.log diff --git a/cerberus/provenance_basic_mixed_auto_offset+4.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset+4.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.eva/alarms.csv diff --git a/cerberus/provenance_basic_mixed_auto_offset+4.eva/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset+4.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.eva/metrics.log diff --git a/cerberus/provenance_basic_mixed_auto_offset+4.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset+4.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.eva/nonterm.log diff --git a/cerberus/provenance_basic_mixed_auto_offset+4.eva/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset+4.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.eva/warnings.log diff --git a/cerberus/provenance_basic_mixed_auto_offset+4.parse/framac.ast b/cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset+4.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.parse/framac.ast diff --git a/cerberus/provenance_basic_mixed_auto_offset+4.parse/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset+4.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.parse/metrics.log diff --git a/cerberus/provenance_basic_malloc_offset+8.parse/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset+8.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.parse/warnings.log diff --git a/cerberus/provenance_basic_mixed_auto_offset-4.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset-4.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.eva/alarms.csv diff --git a/cerberus/provenance_basic_mixed_auto_offset-4.eva/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset-4.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.eva/metrics.log diff --git a/cerberus/provenance_basic_mixed_auto_offset-4.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset-4.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.eva/nonterm.log diff --git a/cerberus/provenance_basic_mixed_auto_offset-4.eva/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset-4.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.eva/warnings.log diff --git a/cerberus/provenance_basic_mixed_auto_offset-4.parse/framac.ast b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset-4.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.parse/framac.ast diff --git a/cerberus/provenance_basic_mixed_auto_offset-4.parse/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset-4.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.parse/metrics.log diff --git a/cerberus/provenance_basic_malloc_offset-4.parse/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_malloc_offset-4.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.parse/warnings.log diff --git a/cerberus/provenance_basic_mixed_auto_offset-64.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset-64.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.eva/alarms.csv diff --git a/cerberus/provenance_basic_mixed_auto_offset-64.eva/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset-64.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.eva/metrics.log diff --git a/cerberus/provenance_basic_mixed_auto_offset-64.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset-64.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.eva/nonterm.log diff --git a/cerberus/provenance_basic_mixed_auto_offset-64.eva/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset-64.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.eva/warnings.log diff --git a/cerberus/provenance_basic_mixed_auto_offset-64.parse/framac.ast b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset-64.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.parse/framac.ast diff --git a/cerberus/provenance_basic_mixed_auto_offset-64.parse/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset-64.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.parse/metrics.log diff --git a/cerberus/provenance_basic_mixed_auto.parse/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_mixed_auto.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.parse/warnings.log diff --git a/cerberus/provenance_basic_mixed_global_offset+4.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_mixed_global_offset+4.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset+4.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_mixed_global_offset+4.eva/alarms.csv diff --git a/cerberus/provenance_basic_mixed_global_offset+4.eva/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset+4.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset+4.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_mixed_global_offset+4.eva/metrics.log diff --git a/cerberus/provenance_basic_mixed_global_offset+4.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset+4.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset+4.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_mixed_global_offset+4.eva/nonterm.log diff --git a/cerberus/provenance_basic_mixed_global_offset+4.eva/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset+4.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset+4.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_mixed_global_offset+4.eva/warnings.log diff --git a/cerberus/provenance_basic_mixed_global_offset+4.parse/framac.ast b/cerberus/.frama-c/provenance_basic_mixed_global_offset+4.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset+4.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_mixed_global_offset+4.parse/framac.ast diff --git a/cerberus/provenance_basic_mixed_global_offset+4.parse/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset+4.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset+4.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_mixed_global_offset+4.parse/metrics.log diff --git a/cerberus/provenance_basic_mixed_auto_offset+4.parse/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset+4.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset+4.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_mixed_global_offset+4.parse/warnings.log diff --git a/cerberus/provenance_basic_mixed_global_offset-4.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_mixed_global_offset-4.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset-4.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-4.eva/alarms.csv diff --git a/cerberus/provenance_basic_mixed_global_offset-4.eva/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset-4.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset-4.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-4.eva/metrics.log diff --git a/cerberus/provenance_basic_mixed_global_offset-4.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset-4.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset-4.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-4.eva/nonterm.log diff --git a/cerberus/provenance_basic_mixed_global_offset-4.eva/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset-4.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset-4.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-4.eva/warnings.log diff --git a/cerberus/provenance_basic_mixed_global_offset-4.parse/framac.ast b/cerberus/.frama-c/provenance_basic_mixed_global_offset-4.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset-4.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-4.parse/framac.ast diff --git a/cerberus/provenance_basic_mixed_global_offset-4.parse/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset-4.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset-4.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-4.parse/metrics.log diff --git a/cerberus/provenance_basic_mixed_auto_offset-4.parse/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset-4.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset-4.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-4.parse/warnings.log diff --git a/cerberus/provenance_basic_mixed_global_offset-64.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_mixed_global_offset-64.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset-64.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-64.eva/alarms.csv diff --git a/cerberus/provenance_basic_mixed_global_offset-64.eva/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset-64.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset-64.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-64.eva/metrics.log diff --git a/cerberus/provenance_basic_mixed_global_offset-64.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset-64.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset-64.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-64.eva/nonterm.log diff --git a/cerberus/provenance_basic_mixed_global_offset-64.eva/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset-64.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset-64.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-64.eva/warnings.log diff --git a/cerberus/provenance_basic_mixed_global_offset-64.parse/framac.ast b/cerberus/.frama-c/provenance_basic_mixed_global_offset-64.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset-64.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-64.parse/framac.ast diff --git a/cerberus/provenance_basic_mixed_global_offset-64.parse/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset-64.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset-64.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-64.parse/metrics.log diff --git a/cerberus/provenance_basic_mixed_auto_offset-64.parse/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset-64.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_mixed_auto_offset-64.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-64.parse/warnings.log diff --git a/cerberus/provenance_basic_using_intptr_t_auto_xy.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_auto_xy.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.eva/alarms.csv diff --git a/cerberus/provenance_basic_using_intptr_t_auto_xy.eva/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_auto_xy.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.eva/metrics.log diff --git a/cerberus/provenance_basic_using_intptr_t_auto_xy.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_auto_xy.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.eva/nonterm.log diff --git a/cerberus/provenance_basic_using_intptr_t_auto_xy.eva/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_auto_xy.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.eva/warnings.log diff --git a/cerberus/provenance_basic_using_intptr_t_auto_xy.parse/framac.ast b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_auto_xy.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.parse/framac.ast diff --git a/cerberus/provenance_basic_using_intptr_t_auto_xy.parse/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_auto_xy.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.parse/metrics.log diff --git a/cerberus/provenance_basic_mixed_global_offset+4.parse/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset+4.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.parse/warnings.log diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_auto_yx.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.eva/alarms.csv diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx.eva/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_auto_yx.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.eva/metrics.log diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_auto_yx.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.eva/nonterm.log diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx.eva/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.eva/warnings.log similarity index 86% rename from cerberus/provenance_basic_using_intptr_t_auto_yx.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.eva/warnings.log index af084233f67f41e72e0c57c358e385a80109a070..c4a4f6aeecd0457bf7ec442002e4179878247803 100644 --- a/cerberus/provenance_basic_using_intptr_t_auto_yx.eva/warnings.log +++ b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.eva/warnings.log @@ -1,3 +1,4 @@ +[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration. provenance_basic_using_intptr_t_auto_yx.c:8:[eva:garbled-mix] warning: The specification of function printf_va_1 has generated a garbled mix for assigns clause assigns clause __fc_stdout->__fc_FILE_data. provenance_basic_using_intptr_t_auto_yx.c:11:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: main diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx.parse/framac.ast b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_auto_yx.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.parse/framac.ast diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx.parse/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_auto_yx.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.parse/metrics.log diff --git a/cerberus/provenance_basic_mixed_global_offset-4.parse/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset-4.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.parse/warnings.log diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/alarms.csv diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/metrics.log diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/nonterm.log diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/warnings.log diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/framac.ast b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/framac.ast diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/metrics.log diff --git a/cerberus/provenance_basic_mixed_global_offset-64.parse/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_mixed_global_offset-64.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/warnings.log diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_xy.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.eva/alarms.csv diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy.eva/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_xy.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.eva/metrics.log diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_xy.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.eva/nonterm.log diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy.eva/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_xy.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.eva/warnings.log diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy.parse/framac.ast b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_xy.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.parse/framac.ast diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy.parse/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_xy.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.parse/metrics.log diff --git a/cerberus/provenance_basic_using_intptr_t_auto_xy.parse/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_auto_xy.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.parse/warnings.log diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy_offset64.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_xy_offset64.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.eva/alarms.csv diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy_offset64.eva/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_xy_offset64.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.eva/metrics.log diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy_offset64.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_xy_offset64.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.eva/nonterm.log diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy_offset64.eva/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_xy_offset64.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.eva/warnings.log diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy_offset64.parse/framac.ast b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_xy_offset64.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.parse/framac.ast diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy_offset64.parse/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_xy_offset64.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.parse/metrics.log diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx.parse/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_auto_yx.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.parse/warnings.log diff --git a/cerberus/provenance_basic_using_intptr_t_global_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_yx.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.eva/alarms.csv diff --git a/cerberus/provenance_basic_using_intptr_t_global_yx.eva/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_yx.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.eva/metrics.log diff --git a/cerberus/provenance_basic_using_intptr_t_global_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_yx.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.eva/nonterm.log diff --git a/cerberus/provenance_basic_using_intptr_t_global_yx.eva/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_yx.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.eva/warnings.log diff --git a/cerberus/provenance_basic_using_intptr_t_global_yx.parse/framac.ast b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_yx.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.parse/framac.ast diff --git a/cerberus/provenance_basic_using_intptr_t_global_yx.parse/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_yx.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.parse/metrics.log diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.parse/warnings.log diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.eva/alarms.csv diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.eva/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.eva/metrics.log diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.eva/nonterm.log diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.eva/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.eva/warnings.log diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.parse/framac.ast b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.parse/framac.ast diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.parse/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.parse/metrics.log diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy.parse/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_xy.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.parse/warnings.log diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_8.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.eva/alarms.csv similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_8.eva/alarms.csv rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.eva/alarms.csv diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_8.eva/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.eva/metrics.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_8.eva/metrics.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.eva/metrics.log diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_8.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.eva/nonterm.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_8.eva/nonterm.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.eva/nonterm.log diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_8.eva/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.eva/warnings.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_8.eva/warnings.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.eva/warnings.log diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_8.parse/framac.ast b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.parse/framac.ast similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_8.parse/framac.ast rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.parse/framac.ast diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_8.parse/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.parse/metrics.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_8.parse/metrics.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.parse/metrics.log diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy_offset64.parse/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_xy_offset64.parse/warnings.log rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.parse/warnings.log diff --git a/cerberus/provenance_equality_auto_cu_yx_a.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_auto_cu_yx_a.eva/alarms.csv similarity index 100% rename from cerberus/provenance_equality_auto_cu_yx_a.eva/alarms.csv rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_a.eva/alarms.csv diff --git a/cerberus/provenance_equality_auto_cu_yx_a.eva/metrics.log b/cerberus/.frama-c/provenance_equality_auto_cu_yx_a.eva/metrics.log similarity index 100% rename from cerberus/provenance_equality_auto_cu_yx_a.eva/metrics.log rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_a.eva/metrics.log diff --git a/cerberus/provenance_equality_auto_cu_yx_a.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_auto_cu_yx_a.eva/nonterm.log similarity index 100% rename from cerberus/provenance_equality_auto_cu_yx_a.eva/nonterm.log rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_a.eva/nonterm.log diff --git a/cerberus/provenance_equality_auto_cu_yx_a.eva/warnings.log b/cerberus/.frama-c/provenance_equality_auto_cu_yx_a.eva/warnings.log similarity index 100% rename from cerberus/provenance_equality_auto_cu_yx_a.eva/warnings.log rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_a.eva/warnings.log diff --git a/cerberus/provenance_equality_auto_cu_yx_a.parse/framac.ast b/cerberus/.frama-c/provenance_equality_auto_cu_yx_a.parse/framac.ast similarity index 100% rename from cerberus/provenance_equality_auto_cu_yx_a.parse/framac.ast rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_a.parse/framac.ast diff --git a/cerberus/provenance_equality_auto_cu_yx_a.parse/metrics.log b/cerberus/.frama-c/provenance_equality_auto_cu_yx_a.parse/metrics.log similarity index 100% rename from cerberus/provenance_equality_auto_cu_yx_a.parse/metrics.log rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_a.parse/metrics.log diff --git a/cerberus/provenance_basic_using_intptr_t_global_yx.parse/warnings.log b/cerberus/.frama-c/provenance_equality_auto_cu_yx_a.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_global_yx.parse/warnings.log rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_a.parse/warnings.log diff --git a/cerberus/provenance_equality_auto_cu_yx_b.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_auto_cu_yx_b.eva/alarms.csv similarity index 100% rename from cerberus/provenance_equality_auto_cu_yx_b.eva/alarms.csv rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_b.eva/alarms.csv diff --git a/cerberus/provenance_equality_auto_cu_yx_b.eva/metrics.log b/cerberus/.frama-c/provenance_equality_auto_cu_yx_b.eva/metrics.log similarity index 100% rename from cerberus/provenance_equality_auto_cu_yx_b.eva/metrics.log rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_b.eva/metrics.log diff --git a/cerberus/provenance_equality_auto_cu_yx_b.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_auto_cu_yx_b.eva/nonterm.log similarity index 100% rename from cerberus/provenance_equality_auto_cu_yx_b.eva/nonterm.log rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_b.eva/nonterm.log diff --git a/cerberus/.frama-c/provenance_equality_auto_cu_yx_b.eva/warnings.log b/cerberus/.frama-c/provenance_equality_auto_cu_yx_b.eva/warnings.log new file mode 100644 index 0000000000000000000000000000000000000000..14647f2485bd840524d36da174531e6de0237c15 --- /dev/null +++ b/cerberus/.frama-c/provenance_equality_auto_cu_yx_b.eva/warnings.log @@ -0,0 +1 @@ +[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration. diff --git a/cerberus/provenance_equality_auto_cu_yx_b.parse/framac.ast b/cerberus/.frama-c/provenance_equality_auto_cu_yx_b.parse/framac.ast similarity index 100% rename from cerberus/provenance_equality_auto_cu_yx_b.parse/framac.ast rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_b.parse/framac.ast diff --git a/cerberus/provenance_equality_auto_cu_yx_b.parse/metrics.log b/cerberus/.frama-c/provenance_equality_auto_cu_yx_b.parse/metrics.log similarity index 100% rename from cerberus/provenance_equality_auto_cu_yx_b.parse/metrics.log rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_b.parse/metrics.log diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.parse/warnings.log b/cerberus/.frama-c/provenance_equality_auto_cu_yx_b.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.parse/warnings.log rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_b.parse/warnings.log diff --git a/cerberus/provenance_equality_auto_fn_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_auto_fn_yx.eva/alarms.csv similarity index 100% rename from cerberus/provenance_equality_auto_fn_yx.eva/alarms.csv rename to cerberus/.frama-c/provenance_equality_auto_fn_yx.eva/alarms.csv diff --git a/cerberus/provenance_equality_auto_fn_yx.eva/metrics.log b/cerberus/.frama-c/provenance_equality_auto_fn_yx.eva/metrics.log similarity index 100% rename from cerberus/provenance_equality_auto_fn_yx.eva/metrics.log rename to cerberus/.frama-c/provenance_equality_auto_fn_yx.eva/metrics.log diff --git a/cerberus/provenance_equality_auto_fn_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_auto_fn_yx.eva/nonterm.log similarity index 100% rename from cerberus/provenance_equality_auto_fn_yx.eva/nonterm.log rename to cerberus/.frama-c/provenance_equality_auto_fn_yx.eva/nonterm.log diff --git a/cerberus/provenance_equality_auto_fn_yx.eva/warnings.log b/cerberus/.frama-c/provenance_equality_auto_fn_yx.eva/warnings.log similarity index 100% rename from cerberus/provenance_equality_auto_fn_yx.eva/warnings.log rename to cerberus/.frama-c/provenance_equality_auto_fn_yx.eva/warnings.log diff --git a/cerberus/provenance_equality_auto_fn_yx.parse/framac.ast b/cerberus/.frama-c/provenance_equality_auto_fn_yx.parse/framac.ast similarity index 100% rename from cerberus/provenance_equality_auto_fn_yx.parse/framac.ast rename to cerberus/.frama-c/provenance_equality_auto_fn_yx.parse/framac.ast diff --git a/cerberus/provenance_equality_auto_fn_yx.parse/metrics.log b/cerberus/.frama-c/provenance_equality_auto_fn_yx.parse/metrics.log similarity index 100% rename from cerberus/provenance_equality_auto_fn_yx.parse/metrics.log rename to cerberus/.frama-c/provenance_equality_auto_fn_yx.parse/metrics.log diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_8.parse/warnings.log b/cerberus/.frama-c/provenance_equality_auto_fn_yx.parse/warnings.log similarity index 100% rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_8.parse/warnings.log rename to cerberus/.frama-c/provenance_equality_auto_fn_yx.parse/warnings.log diff --git a/cerberus/provenance_equality_auto_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_auto_yx.eva/alarms.csv similarity index 100% rename from cerberus/provenance_equality_auto_yx.eva/alarms.csv rename to cerberus/.frama-c/provenance_equality_auto_yx.eva/alarms.csv diff --git a/cerberus/provenance_equality_auto_yx.eva/metrics.log b/cerberus/.frama-c/provenance_equality_auto_yx.eva/metrics.log similarity index 100% rename from cerberus/provenance_equality_auto_yx.eva/metrics.log rename to cerberus/.frama-c/provenance_equality_auto_yx.eva/metrics.log diff --git a/cerberus/provenance_equality_auto_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_auto_yx.eva/nonterm.log similarity index 100% rename from cerberus/provenance_equality_auto_yx.eva/nonterm.log rename to cerberus/.frama-c/provenance_equality_auto_yx.eva/nonterm.log diff --git a/cerberus/provenance_equality_auto_yx.eva/warnings.log b/cerberus/.frama-c/provenance_equality_auto_yx.eva/warnings.log similarity index 100% rename from cerberus/provenance_equality_auto_yx.eva/warnings.log rename to cerberus/.frama-c/provenance_equality_auto_yx.eva/warnings.log diff --git a/cerberus/provenance_equality_auto_yx.parse/framac.ast b/cerberus/.frama-c/provenance_equality_auto_yx.parse/framac.ast similarity index 100% rename from cerberus/provenance_equality_auto_yx.parse/framac.ast rename to cerberus/.frama-c/provenance_equality_auto_yx.parse/framac.ast diff --git a/cerberus/provenance_equality_auto_yx.parse/metrics.log b/cerberus/.frama-c/provenance_equality_auto_yx.parse/metrics.log similarity index 100% rename from cerberus/provenance_equality_auto_yx.parse/metrics.log rename to cerberus/.frama-c/provenance_equality_auto_yx.parse/metrics.log diff --git a/cerberus/provenance_equality_auto_cu_yx_a.parse/warnings.log b/cerberus/.frama-c/provenance_equality_auto_yx.parse/warnings.log similarity index 100% rename from cerberus/provenance_equality_auto_cu_yx_a.parse/warnings.log rename to cerberus/.frama-c/provenance_equality_auto_yx.parse/warnings.log diff --git a/cerberus/provenance_equality_global_cu_xy_a.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_global_cu_xy_a.eva/alarms.csv similarity index 100% rename from cerberus/provenance_equality_global_cu_xy_a.eva/alarms.csv rename to cerberus/.frama-c/provenance_equality_global_cu_xy_a.eva/alarms.csv diff --git a/cerberus/provenance_equality_global_cu_xy_a.eva/metrics.log b/cerberus/.frama-c/provenance_equality_global_cu_xy_a.eva/metrics.log similarity index 100% rename from cerberus/provenance_equality_global_cu_xy_a.eva/metrics.log rename to cerberus/.frama-c/provenance_equality_global_cu_xy_a.eva/metrics.log diff --git a/cerberus/provenance_equality_global_cu_xy_a.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_global_cu_xy_a.eva/nonterm.log similarity index 100% rename from cerberus/provenance_equality_global_cu_xy_a.eva/nonterm.log rename to cerberus/.frama-c/provenance_equality_global_cu_xy_a.eva/nonterm.log diff --git a/cerberus/provenance_equality_global_cu_xy_a.eva/warnings.log b/cerberus/.frama-c/provenance_equality_global_cu_xy_a.eva/warnings.log similarity index 100% rename from cerberus/provenance_equality_global_cu_xy_a.eva/warnings.log rename to cerberus/.frama-c/provenance_equality_global_cu_xy_a.eva/warnings.log diff --git a/cerberus/provenance_equality_global_cu_xy_a.parse/framac.ast b/cerberus/.frama-c/provenance_equality_global_cu_xy_a.parse/framac.ast similarity index 100% rename from cerberus/provenance_equality_global_cu_xy_a.parse/framac.ast rename to cerberus/.frama-c/provenance_equality_global_cu_xy_a.parse/framac.ast diff --git a/cerberus/provenance_equality_global_cu_xy_a.parse/metrics.log b/cerberus/.frama-c/provenance_equality_global_cu_xy_a.parse/metrics.log similarity index 100% rename from cerberus/provenance_equality_global_cu_xy_a.parse/metrics.log rename to cerberus/.frama-c/provenance_equality_global_cu_xy_a.parse/metrics.log diff --git a/cerberus/provenance_equality_auto_cu_yx_b.eva/warnings.log b/cerberus/.frama-c/provenance_equality_global_cu_xy_a.parse/warnings.log similarity index 100% rename from cerberus/provenance_equality_auto_cu_yx_b.eva/warnings.log rename to cerberus/.frama-c/provenance_equality_global_cu_xy_a.parse/warnings.log diff --git a/cerberus/provenance_equality_global_cu_xy_b.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_global_cu_xy_b.eva/alarms.csv similarity index 100% rename from cerberus/provenance_equality_global_cu_xy_b.eva/alarms.csv rename to cerberus/.frama-c/provenance_equality_global_cu_xy_b.eva/alarms.csv diff --git a/cerberus/provenance_equality_global_cu_xy_b.eva/metrics.log b/cerberus/.frama-c/provenance_equality_global_cu_xy_b.eva/metrics.log similarity index 100% rename from cerberus/provenance_equality_global_cu_xy_b.eva/metrics.log rename to cerberus/.frama-c/provenance_equality_global_cu_xy_b.eva/metrics.log diff --git a/cerberus/provenance_equality_global_cu_xy_b.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_global_cu_xy_b.eva/nonterm.log similarity index 100% rename from cerberus/provenance_equality_global_cu_xy_b.eva/nonterm.log rename to cerberus/.frama-c/provenance_equality_global_cu_xy_b.eva/nonterm.log diff --git a/cerberus/provenance_equality_auto_cu_yx_b.parse/warnings.log b/cerberus/.frama-c/provenance_equality_global_cu_xy_b.eva/warnings.log similarity index 100% rename from cerberus/provenance_equality_auto_cu_yx_b.parse/warnings.log rename to cerberus/.frama-c/provenance_equality_global_cu_xy_b.eva/warnings.log diff --git a/cerberus/provenance_equality_global_cu_xy_b.parse/framac.ast b/cerberus/.frama-c/provenance_equality_global_cu_xy_b.parse/framac.ast similarity index 100% rename from cerberus/provenance_equality_global_cu_xy_b.parse/framac.ast rename to cerberus/.frama-c/provenance_equality_global_cu_xy_b.parse/framac.ast diff --git a/cerberus/provenance_equality_global_cu_xy_b.parse/metrics.log b/cerberus/.frama-c/provenance_equality_global_cu_xy_b.parse/metrics.log similarity index 100% rename from cerberus/provenance_equality_global_cu_xy_b.parse/metrics.log rename to cerberus/.frama-c/provenance_equality_global_cu_xy_b.parse/metrics.log diff --git a/cerberus/provenance_equality_auto_fn_yx.parse/warnings.log b/cerberus/.frama-c/provenance_equality_global_cu_xy_b.parse/warnings.log similarity index 100% rename from cerberus/provenance_equality_auto_fn_yx.parse/warnings.log rename to cerberus/.frama-c/provenance_equality_global_cu_xy_b.parse/warnings.log diff --git a/cerberus/provenance_equality_global_cu_yx_a.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_global_cu_yx_a.eva/alarms.csv similarity index 100% rename from cerberus/provenance_equality_global_cu_yx_a.eva/alarms.csv rename to cerberus/.frama-c/provenance_equality_global_cu_yx_a.eva/alarms.csv diff --git a/cerberus/provenance_equality_global_cu_yx_a.eva/metrics.log b/cerberus/.frama-c/provenance_equality_global_cu_yx_a.eva/metrics.log similarity index 100% rename from cerberus/provenance_equality_global_cu_yx_a.eva/metrics.log rename to cerberus/.frama-c/provenance_equality_global_cu_yx_a.eva/metrics.log diff --git a/cerberus/provenance_equality_global_cu_yx_a.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_global_cu_yx_a.eva/nonterm.log similarity index 100% rename from cerberus/provenance_equality_global_cu_yx_a.eva/nonterm.log rename to cerberus/.frama-c/provenance_equality_global_cu_yx_a.eva/nonterm.log diff --git a/cerberus/provenance_equality_global_cu_yx_a.eva/warnings.log b/cerberus/.frama-c/provenance_equality_global_cu_yx_a.eva/warnings.log similarity index 100% rename from cerberus/provenance_equality_global_cu_yx_a.eva/warnings.log rename to cerberus/.frama-c/provenance_equality_global_cu_yx_a.eva/warnings.log diff --git a/cerberus/provenance_equality_global_cu_yx_a.parse/framac.ast b/cerberus/.frama-c/provenance_equality_global_cu_yx_a.parse/framac.ast similarity index 100% rename from cerberus/provenance_equality_global_cu_yx_a.parse/framac.ast rename to cerberus/.frama-c/provenance_equality_global_cu_yx_a.parse/framac.ast diff --git a/cerberus/provenance_equality_global_cu_yx_a.parse/metrics.log b/cerberus/.frama-c/provenance_equality_global_cu_yx_a.parse/metrics.log similarity index 100% rename from cerberus/provenance_equality_global_cu_yx_a.parse/metrics.log rename to cerberus/.frama-c/provenance_equality_global_cu_yx_a.parse/metrics.log diff --git a/cerberus/provenance_equality_auto_yx.parse/warnings.log b/cerberus/.frama-c/provenance_equality_global_cu_yx_a.parse/warnings.log similarity index 100% rename from cerberus/provenance_equality_auto_yx.parse/warnings.log rename to cerberus/.frama-c/provenance_equality_global_cu_yx_a.parse/warnings.log diff --git a/cerberus/provenance_equality_global_cu_yx_b.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_global_cu_yx_b.eva/alarms.csv similarity index 100% rename from cerberus/provenance_equality_global_cu_yx_b.eva/alarms.csv rename to cerberus/.frama-c/provenance_equality_global_cu_yx_b.eva/alarms.csv diff --git a/cerberus/provenance_equality_global_cu_yx_b.eva/metrics.log b/cerberus/.frama-c/provenance_equality_global_cu_yx_b.eva/metrics.log similarity index 100% rename from cerberus/provenance_equality_global_cu_yx_b.eva/metrics.log rename to cerberus/.frama-c/provenance_equality_global_cu_yx_b.eva/metrics.log diff --git a/cerberus/provenance_equality_global_cu_yx_b.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_global_cu_yx_b.eva/nonterm.log similarity index 100% rename from cerberus/provenance_equality_global_cu_yx_b.eva/nonterm.log rename to cerberus/.frama-c/provenance_equality_global_cu_yx_b.eva/nonterm.log diff --git a/cerberus/provenance_equality_global_cu_xy_a.parse/warnings.log b/cerberus/.frama-c/provenance_equality_global_cu_yx_b.eva/warnings.log similarity index 100% rename from cerberus/provenance_equality_global_cu_xy_a.parse/warnings.log rename to cerberus/.frama-c/provenance_equality_global_cu_yx_b.eva/warnings.log diff --git a/cerberus/provenance_equality_global_cu_yx_b.parse/framac.ast b/cerberus/.frama-c/provenance_equality_global_cu_yx_b.parse/framac.ast similarity index 100% rename from cerberus/provenance_equality_global_cu_yx_b.parse/framac.ast rename to cerberus/.frama-c/provenance_equality_global_cu_yx_b.parse/framac.ast diff --git a/cerberus/provenance_equality_global_cu_yx_b.parse/metrics.log b/cerberus/.frama-c/provenance_equality_global_cu_yx_b.parse/metrics.log similarity index 100% rename from cerberus/provenance_equality_global_cu_yx_b.parse/metrics.log rename to cerberus/.frama-c/provenance_equality_global_cu_yx_b.parse/metrics.log diff --git a/cerberus/provenance_equality_global_cu_xy_b.eva/warnings.log b/cerberus/.frama-c/provenance_equality_global_cu_yx_b.parse/warnings.log similarity index 100% rename from cerberus/provenance_equality_global_cu_xy_b.eva/warnings.log rename to cerberus/.frama-c/provenance_equality_global_cu_yx_b.parse/warnings.log diff --git a/cerberus/provenance_equality_global_fn_xy.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_global_fn_xy.eva/alarms.csv similarity index 100% rename from cerberus/provenance_equality_global_fn_xy.eva/alarms.csv rename to cerberus/.frama-c/provenance_equality_global_fn_xy.eva/alarms.csv diff --git a/cerberus/provenance_equality_global_fn_xy.eva/metrics.log b/cerberus/.frama-c/provenance_equality_global_fn_xy.eva/metrics.log similarity index 100% rename from cerberus/provenance_equality_global_fn_xy.eva/metrics.log rename to cerberus/.frama-c/provenance_equality_global_fn_xy.eva/metrics.log diff --git a/cerberus/provenance_equality_global_fn_xy.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_global_fn_xy.eva/nonterm.log similarity index 100% rename from cerberus/provenance_equality_global_fn_xy.eva/nonterm.log rename to cerberus/.frama-c/provenance_equality_global_fn_xy.eva/nonterm.log diff --git a/cerberus/provenance_equality_global_fn_xy.eva/warnings.log b/cerberus/.frama-c/provenance_equality_global_fn_xy.eva/warnings.log similarity index 100% rename from cerberus/provenance_equality_global_fn_xy.eva/warnings.log rename to cerberus/.frama-c/provenance_equality_global_fn_xy.eva/warnings.log diff --git a/cerberus/provenance_equality_global_fn_xy.parse/framac.ast b/cerberus/.frama-c/provenance_equality_global_fn_xy.parse/framac.ast similarity index 100% rename from cerberus/provenance_equality_global_fn_xy.parse/framac.ast rename to cerberus/.frama-c/provenance_equality_global_fn_xy.parse/framac.ast diff --git a/cerberus/provenance_equality_global_fn_xy.parse/metrics.log b/cerberus/.frama-c/provenance_equality_global_fn_xy.parse/metrics.log similarity index 100% rename from cerberus/provenance_equality_global_fn_xy.parse/metrics.log rename to cerberus/.frama-c/provenance_equality_global_fn_xy.parse/metrics.log diff --git a/cerberus/provenance_equality_global_cu_xy_b.parse/warnings.log b/cerberus/.frama-c/provenance_equality_global_fn_xy.parse/warnings.log similarity index 100% rename from cerberus/provenance_equality_global_cu_xy_b.parse/warnings.log rename to cerberus/.frama-c/provenance_equality_global_fn_xy.parse/warnings.log diff --git a/cerberus/provenance_equality_global_fn_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_global_fn_yx.eva/alarms.csv similarity index 100% rename from cerberus/provenance_equality_global_fn_yx.eva/alarms.csv rename to cerberus/.frama-c/provenance_equality_global_fn_yx.eva/alarms.csv diff --git a/cerberus/provenance_equality_global_fn_yx.eva/metrics.log b/cerberus/.frama-c/provenance_equality_global_fn_yx.eva/metrics.log similarity index 100% rename from cerberus/provenance_equality_global_fn_yx.eva/metrics.log rename to cerberus/.frama-c/provenance_equality_global_fn_yx.eva/metrics.log diff --git a/cerberus/provenance_equality_global_fn_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_global_fn_yx.eva/nonterm.log similarity index 100% rename from cerberus/provenance_equality_global_fn_yx.eva/nonterm.log rename to cerberus/.frama-c/provenance_equality_global_fn_yx.eva/nonterm.log diff --git a/cerberus/provenance_equality_global_fn_yx.eva/warnings.log b/cerberus/.frama-c/provenance_equality_global_fn_yx.eva/warnings.log similarity index 100% rename from cerberus/provenance_equality_global_fn_yx.eva/warnings.log rename to cerberus/.frama-c/provenance_equality_global_fn_yx.eva/warnings.log diff --git a/cerberus/provenance_equality_global_fn_yx.parse/framac.ast b/cerberus/.frama-c/provenance_equality_global_fn_yx.parse/framac.ast similarity index 100% rename from cerberus/provenance_equality_global_fn_yx.parse/framac.ast rename to cerberus/.frama-c/provenance_equality_global_fn_yx.parse/framac.ast diff --git a/cerberus/provenance_equality_global_fn_yx.parse/metrics.log b/cerberus/.frama-c/provenance_equality_global_fn_yx.parse/metrics.log similarity index 100% rename from cerberus/provenance_equality_global_fn_yx.parse/metrics.log rename to cerberus/.frama-c/provenance_equality_global_fn_yx.parse/metrics.log diff --git a/cerberus/provenance_equality_global_cu_yx_a.parse/warnings.log b/cerberus/.frama-c/provenance_equality_global_fn_yx.parse/warnings.log similarity index 100% rename from cerberus/provenance_equality_global_cu_yx_a.parse/warnings.log rename to cerberus/.frama-c/provenance_equality_global_fn_yx.parse/warnings.log diff --git a/cerberus/provenance_equality_global_xy.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_global_xy.eva/alarms.csv similarity index 100% rename from cerberus/provenance_equality_global_xy.eva/alarms.csv rename to cerberus/.frama-c/provenance_equality_global_xy.eva/alarms.csv diff --git a/cerberus/provenance_equality_global_xy.eva/metrics.log b/cerberus/.frama-c/provenance_equality_global_xy.eva/metrics.log similarity index 100% rename from cerberus/provenance_equality_global_xy.eva/metrics.log rename to cerberus/.frama-c/provenance_equality_global_xy.eva/metrics.log diff --git a/cerberus/provenance_equality_global_xy.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_global_xy.eva/nonterm.log similarity index 100% rename from cerberus/provenance_equality_global_xy.eva/nonterm.log rename to cerberus/.frama-c/provenance_equality_global_xy.eva/nonterm.log diff --git a/cerberus/provenance_equality_global_xy.eva/warnings.log b/cerberus/.frama-c/provenance_equality_global_xy.eva/warnings.log similarity index 100% rename from cerberus/provenance_equality_global_xy.eva/warnings.log rename to cerberus/.frama-c/provenance_equality_global_xy.eva/warnings.log diff --git a/cerberus/provenance_equality_global_xy.parse/framac.ast b/cerberus/.frama-c/provenance_equality_global_xy.parse/framac.ast similarity index 100% rename from cerberus/provenance_equality_global_xy.parse/framac.ast rename to cerberus/.frama-c/provenance_equality_global_xy.parse/framac.ast diff --git a/cerberus/provenance_equality_global_xy.parse/metrics.log b/cerberus/.frama-c/provenance_equality_global_xy.parse/metrics.log similarity index 100% rename from cerberus/provenance_equality_global_xy.parse/metrics.log rename to cerberus/.frama-c/provenance_equality_global_xy.parse/metrics.log diff --git a/cerberus/provenance_equality_global_cu_yx_b.eva/warnings.log b/cerberus/.frama-c/provenance_equality_global_xy.parse/warnings.log similarity index 100% rename from cerberus/provenance_equality_global_cu_yx_b.eva/warnings.log rename to cerberus/.frama-c/provenance_equality_global_xy.parse/warnings.log diff --git a/cerberus/provenance_equality_global_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_global_yx.eva/alarms.csv similarity index 100% rename from cerberus/provenance_equality_global_yx.eva/alarms.csv rename to cerberus/.frama-c/provenance_equality_global_yx.eva/alarms.csv diff --git a/cerberus/provenance_equality_global_yx.eva/metrics.log b/cerberus/.frama-c/provenance_equality_global_yx.eva/metrics.log similarity index 100% rename from cerberus/provenance_equality_global_yx.eva/metrics.log rename to cerberus/.frama-c/provenance_equality_global_yx.eva/metrics.log diff --git a/cerberus/provenance_equality_global_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_global_yx.eva/nonterm.log similarity index 100% rename from cerberus/provenance_equality_global_yx.eva/nonterm.log rename to cerberus/.frama-c/provenance_equality_global_yx.eva/nonterm.log diff --git a/cerberus/provenance_equality_global_yx.eva/warnings.log b/cerberus/.frama-c/provenance_equality_global_yx.eva/warnings.log similarity index 100% rename from cerberus/provenance_equality_global_yx.eva/warnings.log rename to cerberus/.frama-c/provenance_equality_global_yx.eva/warnings.log diff --git a/cerberus/provenance_equality_global_yx.parse/framac.ast b/cerberus/.frama-c/provenance_equality_global_yx.parse/framac.ast similarity index 100% rename from cerberus/provenance_equality_global_yx.parse/framac.ast rename to cerberus/.frama-c/provenance_equality_global_yx.parse/framac.ast diff --git a/cerberus/provenance_equality_global_yx.parse/metrics.log b/cerberus/.frama-c/provenance_equality_global_yx.parse/metrics.log similarity index 100% rename from cerberus/provenance_equality_global_yx.parse/metrics.log rename to cerberus/.frama-c/provenance_equality_global_yx.parse/metrics.log diff --git a/cerberus/provenance_equality_global_cu_yx_b.parse/warnings.log b/cerberus/.frama-c/provenance_equality_global_yx.parse/warnings.log similarity index 100% rename from cerberus/provenance_equality_global_cu_yx_b.parse/warnings.log rename to cerberus/.frama-c/provenance_equality_global_yx.parse/warnings.log diff --git a/cerberus/provenance_equality_uintptr_t_global_xy.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.eva/alarms.csv similarity index 100% rename from cerberus/provenance_equality_uintptr_t_global_xy.eva/alarms.csv rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.eva/alarms.csv diff --git a/cerberus/provenance_equality_uintptr_t_global_xy.eva/metrics.log b/cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.eva/metrics.log similarity index 100% rename from cerberus/provenance_equality_uintptr_t_global_xy.eva/metrics.log rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.eva/metrics.log diff --git a/cerberus/provenance_equality_uintptr_t_global_xy.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.eva/nonterm.log similarity index 100% rename from cerberus/provenance_equality_uintptr_t_global_xy.eva/nonterm.log rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.eva/nonterm.log diff --git a/cerberus/provenance_equality_uintptr_t_global_xy.eva/warnings.log b/cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.eva/warnings.log similarity index 100% rename from cerberus/provenance_equality_uintptr_t_global_xy.eva/warnings.log rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.eva/warnings.log diff --git a/cerberus/provenance_equality_uintptr_t_global_xy.parse/framac.ast b/cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.parse/framac.ast similarity index 100% rename from cerberus/provenance_equality_uintptr_t_global_xy.parse/framac.ast rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.parse/framac.ast diff --git a/cerberus/provenance_equality_uintptr_t_global_xy.parse/metrics.log b/cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.parse/metrics.log similarity index 100% rename from cerberus/provenance_equality_uintptr_t_global_xy.parse/metrics.log rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.parse/metrics.log diff --git a/cerberus/provenance_equality_global_fn_xy.parse/warnings.log b/cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.parse/warnings.log similarity index 100% rename from cerberus/provenance_equality_global_fn_xy.parse/warnings.log rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.parse/warnings.log diff --git a/cerberus/provenance_equality_uintptr_t_global_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.eva/alarms.csv similarity index 100% rename from cerberus/provenance_equality_uintptr_t_global_yx.eva/alarms.csv rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.eva/alarms.csv diff --git a/cerberus/provenance_equality_uintptr_t_global_yx.eva/metrics.log b/cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.eva/metrics.log similarity index 100% rename from cerberus/provenance_equality_uintptr_t_global_yx.eva/metrics.log rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.eva/metrics.log diff --git a/cerberus/provenance_equality_uintptr_t_global_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.eva/nonterm.log similarity index 100% rename from cerberus/provenance_equality_uintptr_t_global_yx.eva/nonterm.log rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.eva/nonterm.log diff --git a/cerberus/provenance_equality_uintptr_t_global_yx.eva/warnings.log b/cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.eva/warnings.log similarity index 100% rename from cerberus/provenance_equality_uintptr_t_global_yx.eva/warnings.log rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.eva/warnings.log diff --git a/cerberus/provenance_equality_uintptr_t_global_yx.parse/framac.ast b/cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.parse/framac.ast similarity index 100% rename from cerberus/provenance_equality_uintptr_t_global_yx.parse/framac.ast rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.parse/framac.ast diff --git a/cerberus/provenance_equality_uintptr_t_global_yx.parse/metrics.log b/cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.parse/metrics.log similarity index 100% rename from cerberus/provenance_equality_uintptr_t_global_yx.parse/metrics.log rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.parse/metrics.log diff --git a/cerberus/provenance_equality_global_fn_yx.parse/warnings.log b/cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.parse/warnings.log similarity index 100% rename from cerberus/provenance_equality_global_fn_yx.parse/warnings.log rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.parse/warnings.log diff --git a/cerberus/provenance_multiple_1_global.eva/alarms.csv b/cerberus/.frama-c/provenance_multiple_1_global.eva/alarms.csv similarity index 100% rename from cerberus/provenance_multiple_1_global.eva/alarms.csv rename to cerberus/.frama-c/provenance_multiple_1_global.eva/alarms.csv diff --git a/cerberus/provenance_multiple_1_global.eva/metrics.log b/cerberus/.frama-c/provenance_multiple_1_global.eva/metrics.log similarity index 100% rename from cerberus/provenance_multiple_1_global.eva/metrics.log rename to cerberus/.frama-c/provenance_multiple_1_global.eva/metrics.log diff --git a/cerberus/provenance_multiple_1_global.eva/nonterm.log b/cerberus/.frama-c/provenance_multiple_1_global.eva/nonterm.log similarity index 100% rename from cerberus/provenance_multiple_1_global.eva/nonterm.log rename to cerberus/.frama-c/provenance_multiple_1_global.eva/nonterm.log diff --git a/cerberus/provenance_equality_global_xy.parse/warnings.log b/cerberus/.frama-c/provenance_multiple_1_global.eva/warnings.log similarity index 100% rename from cerberus/provenance_equality_global_xy.parse/warnings.log rename to cerberus/.frama-c/provenance_multiple_1_global.eva/warnings.log diff --git a/cerberus/provenance_multiple_1_global.parse/framac.ast b/cerberus/.frama-c/provenance_multiple_1_global.parse/framac.ast similarity index 100% rename from cerberus/provenance_multiple_1_global.parse/framac.ast rename to cerberus/.frama-c/provenance_multiple_1_global.parse/framac.ast diff --git a/cerberus/provenance_multiple_1_global.parse/metrics.log b/cerberus/.frama-c/provenance_multiple_1_global.parse/metrics.log similarity index 100% rename from cerberus/provenance_multiple_1_global.parse/metrics.log rename to cerberus/.frama-c/provenance_multiple_1_global.parse/metrics.log diff --git a/cerberus/provenance_equality_global_yx.parse/warnings.log b/cerberus/.frama-c/provenance_multiple_1_global.parse/warnings.log similarity index 100% rename from cerberus/provenance_equality_global_yx.parse/warnings.log rename to cerberus/.frama-c/provenance_multiple_1_global.parse/warnings.log diff --git a/cerberus/provenance_multiple_2_global.eva/alarms.csv b/cerberus/.frama-c/provenance_multiple_2_global.eva/alarms.csv similarity index 100% rename from cerberus/provenance_multiple_2_global.eva/alarms.csv rename to cerberus/.frama-c/provenance_multiple_2_global.eva/alarms.csv diff --git a/cerberus/provenance_multiple_2_global.eva/metrics.log b/cerberus/.frama-c/provenance_multiple_2_global.eva/metrics.log similarity index 100% rename from cerberus/provenance_multiple_2_global.eva/metrics.log rename to cerberus/.frama-c/provenance_multiple_2_global.eva/metrics.log diff --git a/cerberus/provenance_multiple_2_global.eva/nonterm.log b/cerberus/.frama-c/provenance_multiple_2_global.eva/nonterm.log similarity index 100% rename from cerberus/provenance_multiple_2_global.eva/nonterm.log rename to cerberus/.frama-c/provenance_multiple_2_global.eva/nonterm.log diff --git a/cerberus/provenance_equality_uintptr_t_global_xy.parse/warnings.log b/cerberus/.frama-c/provenance_multiple_2_global.eva/warnings.log similarity index 100% rename from cerberus/provenance_equality_uintptr_t_global_xy.parse/warnings.log rename to cerberus/.frama-c/provenance_multiple_2_global.eva/warnings.log diff --git a/cerberus/provenance_multiple_2_global.parse/framac.ast b/cerberus/.frama-c/provenance_multiple_2_global.parse/framac.ast similarity index 100% rename from cerberus/provenance_multiple_2_global.parse/framac.ast rename to cerberus/.frama-c/provenance_multiple_2_global.parse/framac.ast diff --git a/cerberus/provenance_multiple_2_global.parse/metrics.log b/cerberus/.frama-c/provenance_multiple_2_global.parse/metrics.log similarity index 100% rename from cerberus/provenance_multiple_2_global.parse/metrics.log rename to cerberus/.frama-c/provenance_multiple_2_global.parse/metrics.log diff --git a/cerberus/provenance_equality_uintptr_t_global_yx.parse/warnings.log b/cerberus/.frama-c/provenance_multiple_2_global.parse/warnings.log similarity index 100% rename from cerberus/provenance_equality_uintptr_t_global_yx.parse/warnings.log rename to cerberus/.frama-c/provenance_multiple_2_global.parse/warnings.log diff --git a/cerberus/provenance_multiple_3_global_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_multiple_3_global_yx.eva/alarms.csv similarity index 100% rename from cerberus/provenance_multiple_3_global_yx.eva/alarms.csv rename to cerberus/.frama-c/provenance_multiple_3_global_yx.eva/alarms.csv diff --git a/cerberus/provenance_multiple_3_global_yx.eva/metrics.log b/cerberus/.frama-c/provenance_multiple_3_global_yx.eva/metrics.log similarity index 100% rename from cerberus/provenance_multiple_3_global_yx.eva/metrics.log rename to cerberus/.frama-c/provenance_multiple_3_global_yx.eva/metrics.log diff --git a/cerberus/provenance_multiple_3_global_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_multiple_3_global_yx.eva/nonterm.log similarity index 100% rename from cerberus/provenance_multiple_3_global_yx.eva/nonterm.log rename to cerberus/.frama-c/provenance_multiple_3_global_yx.eva/nonterm.log diff --git a/cerberus/provenance_multiple_3_global_yx.eva/warnings.log b/cerberus/.frama-c/provenance_multiple_3_global_yx.eva/warnings.log similarity index 100% rename from cerberus/provenance_multiple_3_global_yx.eva/warnings.log rename to cerberus/.frama-c/provenance_multiple_3_global_yx.eva/warnings.log diff --git a/cerberus/provenance_multiple_3_global_yx.parse/framac.ast b/cerberus/.frama-c/provenance_multiple_3_global_yx.parse/framac.ast similarity index 100% rename from cerberus/provenance_multiple_3_global_yx.parse/framac.ast rename to cerberus/.frama-c/provenance_multiple_3_global_yx.parse/framac.ast diff --git a/cerberus/provenance_multiple_3_global_yx.parse/metrics.log b/cerberus/.frama-c/provenance_multiple_3_global_yx.parse/metrics.log similarity index 100% rename from cerberus/provenance_multiple_3_global_yx.parse/metrics.log rename to cerberus/.frama-c/provenance_multiple_3_global_yx.parse/metrics.log diff --git a/cerberus/provenance_multiple_1_global.eva/warnings.log b/cerberus/.frama-c/provenance_multiple_3_global_yx.parse/warnings.log similarity index 100% rename from cerberus/provenance_multiple_1_global.eva/warnings.log rename to cerberus/.frama-c/provenance_multiple_3_global_yx.parse/warnings.log diff --git a/cerberus/provenance_multiple_4_global_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_multiple_4_global_yx.eva/alarms.csv similarity index 100% rename from cerberus/provenance_multiple_4_global_yx.eva/alarms.csv rename to cerberus/.frama-c/provenance_multiple_4_global_yx.eva/alarms.csv diff --git a/cerberus/provenance_multiple_4_global_yx.eva/metrics.log b/cerberus/.frama-c/provenance_multiple_4_global_yx.eva/metrics.log similarity index 100% rename from cerberus/provenance_multiple_4_global_yx.eva/metrics.log rename to cerberus/.frama-c/provenance_multiple_4_global_yx.eva/metrics.log diff --git a/cerberus/provenance_multiple_4_global_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_multiple_4_global_yx.eva/nonterm.log similarity index 100% rename from cerberus/provenance_multiple_4_global_yx.eva/nonterm.log rename to cerberus/.frama-c/provenance_multiple_4_global_yx.eva/nonterm.log diff --git a/cerberus/provenance_multiple_4_global_yx.eva/warnings.log b/cerberus/.frama-c/provenance_multiple_4_global_yx.eva/warnings.log similarity index 100% rename from cerberus/provenance_multiple_4_global_yx.eva/warnings.log rename to cerberus/.frama-c/provenance_multiple_4_global_yx.eva/warnings.log diff --git a/cerberus/provenance_multiple_4_global_yx.parse/framac.ast b/cerberus/.frama-c/provenance_multiple_4_global_yx.parse/framac.ast similarity index 100% rename from cerberus/provenance_multiple_4_global_yx.parse/framac.ast rename to cerberus/.frama-c/provenance_multiple_4_global_yx.parse/framac.ast diff --git a/cerberus/provenance_multiple_4_global_yx.parse/metrics.log b/cerberus/.frama-c/provenance_multiple_4_global_yx.parse/metrics.log similarity index 100% rename from cerberus/provenance_multiple_4_global_yx.parse/metrics.log rename to cerberus/.frama-c/provenance_multiple_4_global_yx.parse/metrics.log diff --git a/cerberus/provenance_multiple_1_global.parse/warnings.log b/cerberus/.frama-c/provenance_multiple_4_global_yx.parse/warnings.log similarity index 100% rename from cerberus/provenance_multiple_1_global.parse/warnings.log rename to cerberus/.frama-c/provenance_multiple_4_global_yx.parse/warnings.log diff --git a/cerberus/provenance_multiple_5_auto.eva/alarms.csv b/cerberus/.frama-c/provenance_multiple_5_auto.eva/alarms.csv similarity index 100% rename from cerberus/provenance_multiple_5_auto.eva/alarms.csv rename to cerberus/.frama-c/provenance_multiple_5_auto.eva/alarms.csv diff --git a/cerberus/provenance_multiple_5_auto.eva/metrics.log b/cerberus/.frama-c/provenance_multiple_5_auto.eva/metrics.log similarity index 100% rename from cerberus/provenance_multiple_5_auto.eva/metrics.log rename to cerberus/.frama-c/provenance_multiple_5_auto.eva/metrics.log diff --git a/cerberus/provenance_multiple_5_auto.eva/nonterm.log b/cerberus/.frama-c/provenance_multiple_5_auto.eva/nonterm.log similarity index 100% rename from cerberus/provenance_multiple_5_auto.eva/nonterm.log rename to cerberus/.frama-c/provenance_multiple_5_auto.eva/nonterm.log diff --git a/cerberus/provenance_multiple_5_auto.eva/warnings.log b/cerberus/.frama-c/provenance_multiple_5_auto.eva/warnings.log similarity index 100% rename from cerberus/provenance_multiple_5_auto.eva/warnings.log rename to cerberus/.frama-c/provenance_multiple_5_auto.eva/warnings.log diff --git a/cerberus/provenance_multiple_5_auto.parse/framac.ast b/cerberus/.frama-c/provenance_multiple_5_auto.parse/framac.ast similarity index 100% rename from cerberus/provenance_multiple_5_auto.parse/framac.ast rename to cerberus/.frama-c/provenance_multiple_5_auto.parse/framac.ast diff --git a/cerberus/provenance_multiple_5_auto.parse/metrics.log b/cerberus/.frama-c/provenance_multiple_5_auto.parse/metrics.log similarity index 100% rename from cerberus/provenance_multiple_5_auto.parse/metrics.log rename to cerberus/.frama-c/provenance_multiple_5_auto.parse/metrics.log diff --git a/cerberus/provenance_multiple_2_global.eva/warnings.log b/cerberus/.frama-c/provenance_multiple_5_auto.parse/warnings.log similarity index 100% rename from cerberus/provenance_multiple_2_global.eva/warnings.log rename to cerberus/.frama-c/provenance_multiple_5_auto.parse/warnings.log diff --git a/cerberus/provenance_multiple_5_global.eva/alarms.csv b/cerberus/.frama-c/provenance_multiple_5_global.eva/alarms.csv similarity index 100% rename from cerberus/provenance_multiple_5_global.eva/alarms.csv rename to cerberus/.frama-c/provenance_multiple_5_global.eva/alarms.csv diff --git a/cerberus/provenance_multiple_5_global.eva/metrics.log b/cerberus/.frama-c/provenance_multiple_5_global.eva/metrics.log similarity index 100% rename from cerberus/provenance_multiple_5_global.eva/metrics.log rename to cerberus/.frama-c/provenance_multiple_5_global.eva/metrics.log diff --git a/cerberus/provenance_multiple_5_global.eva/nonterm.log b/cerberus/.frama-c/provenance_multiple_5_global.eva/nonterm.log similarity index 100% rename from cerberus/provenance_multiple_5_global.eva/nonterm.log rename to cerberus/.frama-c/provenance_multiple_5_global.eva/nonterm.log diff --git a/cerberus/provenance_multiple_5_global.eva/warnings.log b/cerberus/.frama-c/provenance_multiple_5_global.eva/warnings.log similarity index 100% rename from cerberus/provenance_multiple_5_global.eva/warnings.log rename to cerberus/.frama-c/provenance_multiple_5_global.eva/warnings.log diff --git a/cerberus/provenance_multiple_5_global.parse/framac.ast b/cerberus/.frama-c/provenance_multiple_5_global.parse/framac.ast similarity index 100% rename from cerberus/provenance_multiple_5_global.parse/framac.ast rename to cerberus/.frama-c/provenance_multiple_5_global.parse/framac.ast diff --git a/cerberus/provenance_multiple_5_global.parse/metrics.log b/cerberus/.frama-c/provenance_multiple_5_global.parse/metrics.log similarity index 100% rename from cerberus/provenance_multiple_5_global.parse/metrics.log rename to cerberus/.frama-c/provenance_multiple_5_global.parse/metrics.log diff --git a/cerberus/provenance_multiple_2_global.parse/warnings.log b/cerberus/.frama-c/provenance_multiple_5_global.parse/warnings.log similarity index 100% rename from cerberus/provenance_multiple_2_global.parse/warnings.log rename to cerberus/.frama-c/provenance_multiple_5_global.parse/warnings.log diff --git a/cerberus/provenance_roundtrip_via_intptr_t.eva/alarms.csv b/cerberus/.frama-c/provenance_roundtrip_via_intptr_t.eva/alarms.csv similarity index 100% rename from cerberus/provenance_roundtrip_via_intptr_t.eva/alarms.csv rename to cerberus/.frama-c/provenance_roundtrip_via_intptr_t.eva/alarms.csv diff --git a/cerberus/provenance_roundtrip_via_intptr_t.eva/metrics.log b/cerberus/.frama-c/provenance_roundtrip_via_intptr_t.eva/metrics.log similarity index 100% rename from cerberus/provenance_roundtrip_via_intptr_t.eva/metrics.log rename to cerberus/.frama-c/provenance_roundtrip_via_intptr_t.eva/metrics.log diff --git a/cerberus/provenance_roundtrip_via_intptr_t.eva/nonterm.log b/cerberus/.frama-c/provenance_roundtrip_via_intptr_t.eva/nonterm.log similarity index 100% rename from cerberus/provenance_roundtrip_via_intptr_t.eva/nonterm.log rename to cerberus/.frama-c/provenance_roundtrip_via_intptr_t.eva/nonterm.log diff --git a/cerberus/provenance_multiple_3_global_yx.parse/warnings.log b/cerberus/.frama-c/provenance_roundtrip_via_intptr_t.eva/warnings.log similarity index 100% rename from cerberus/provenance_multiple_3_global_yx.parse/warnings.log rename to cerberus/.frama-c/provenance_roundtrip_via_intptr_t.eva/warnings.log diff --git a/cerberus/provenance_roundtrip_via_intptr_t.parse/framac.ast b/cerberus/.frama-c/provenance_roundtrip_via_intptr_t.parse/framac.ast similarity index 100% rename from cerberus/provenance_roundtrip_via_intptr_t.parse/framac.ast rename to cerberus/.frama-c/provenance_roundtrip_via_intptr_t.parse/framac.ast diff --git a/cerberus/provenance_roundtrip_via_intptr_t.parse/metrics.log b/cerberus/.frama-c/provenance_roundtrip_via_intptr_t.parse/metrics.log similarity index 100% rename from cerberus/provenance_roundtrip_via_intptr_t.parse/metrics.log rename to cerberus/.frama-c/provenance_roundtrip_via_intptr_t.parse/metrics.log diff --git a/cerberus/provenance_multiple_4_global_yx.parse/warnings.log b/cerberus/.frama-c/provenance_roundtrip_via_intptr_t.parse/warnings.log similarity index 100% rename from cerberus/provenance_multiple_4_global_yx.parse/warnings.log rename to cerberus/.frama-c/provenance_roundtrip_via_intptr_t.parse/warnings.log diff --git a/cerberus/provenance_roundtrip_via_unsigned_long.eva/alarms.csv b/cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.eva/alarms.csv similarity index 100% rename from cerberus/provenance_roundtrip_via_unsigned_long.eva/alarms.csv rename to cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.eva/alarms.csv diff --git a/cerberus/provenance_roundtrip_via_unsigned_long.eva/metrics.log b/cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.eva/metrics.log similarity index 100% rename from cerberus/provenance_roundtrip_via_unsigned_long.eva/metrics.log rename to cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.eva/metrics.log diff --git a/cerberus/provenance_roundtrip_via_unsigned_long.eva/nonterm.log b/cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.eva/nonterm.log similarity index 100% rename from cerberus/provenance_roundtrip_via_unsigned_long.eva/nonterm.log rename to cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.eva/nonterm.log diff --git a/cerberus/provenance_multiple_5_auto.parse/warnings.log b/cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.eva/warnings.log similarity index 100% rename from cerberus/provenance_multiple_5_auto.parse/warnings.log rename to cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.eva/warnings.log diff --git a/cerberus/provenance_roundtrip_via_unsigned_long.parse/framac.ast b/cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.parse/framac.ast similarity index 100% rename from cerberus/provenance_roundtrip_via_unsigned_long.parse/framac.ast rename to cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.parse/framac.ast diff --git a/cerberus/provenance_roundtrip_via_unsigned_long.parse/metrics.log b/cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.parse/metrics.log similarity index 100% rename from cerberus/provenance_roundtrip_via_unsigned_long.parse/metrics.log rename to cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.parse/metrics.log diff --git a/cerberus/provenance_multiple_5_global.parse/warnings.log b/cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.parse/warnings.log similarity index 100% rename from cerberus/provenance_multiple_5_global.parse/warnings.log rename to cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.parse/warnings.log diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1.eva/alarms.csv b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.eva/alarms.csv similarity index 100% rename from cerberus/provenance_tag_bits_via_uintptr_t_1.eva/alarms.csv rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.eva/alarms.csv diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1.eva/metrics.log b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.eva/metrics.log similarity index 100% rename from cerberus/provenance_tag_bits_via_uintptr_t_1.eva/metrics.log rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.eva/metrics.log diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1.eva/nonterm.log b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.eva/nonterm.log similarity index 100% rename from cerberus/provenance_tag_bits_via_uintptr_t_1.eva/nonterm.log rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.eva/nonterm.log diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1.eva/warnings.log b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.eva/warnings.log similarity index 100% rename from cerberus/provenance_tag_bits_via_uintptr_t_1.eva/warnings.log rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.eva/warnings.log diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1.parse/framac.ast b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.parse/framac.ast similarity index 100% rename from cerberus/provenance_tag_bits_via_uintptr_t_1.parse/framac.ast rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.parse/framac.ast diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1.parse/metrics.log b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.parse/metrics.log similarity index 100% rename from cerberus/provenance_tag_bits_via_uintptr_t_1.parse/metrics.log rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.parse/metrics.log diff --git a/cerberus/provenance_roundtrip_via_intptr_t.eva/warnings.log b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.parse/warnings.log similarity index 100% rename from cerberus/provenance_roundtrip_via_intptr_t.eva/warnings.log rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.parse/warnings.log diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/alarms.csv b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/alarms.csv similarity index 100% rename from cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/alarms.csv rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/alarms.csv diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/metrics.log b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/metrics.log similarity index 100% rename from cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/metrics.log rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/metrics.log diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/nonterm.log b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/nonterm.log similarity index 100% rename from cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/nonterm.log rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/nonterm.log diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/warnings.log b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/warnings.log similarity index 100% rename from cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/warnings.log rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/warnings.log diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/framac.ast b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/framac.ast similarity index 100% rename from cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/framac.ast rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/framac.ast diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/metrics.log b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/metrics.log similarity index 100% rename from cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/metrics.log rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/metrics.log diff --git a/cerberus/provenance_roundtrip_via_intptr_t.parse/warnings.log b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/warnings.log similarity index 100% rename from cerberus/provenance_roundtrip_via_intptr_t.parse/warnings.log rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/warnings.log diff --git a/cerberus/provenance_union_punning_1_global.eva/alarms.csv b/cerberus/.frama-c/provenance_union_punning_1_global.eva/alarms.csv similarity index 100% rename from cerberus/provenance_union_punning_1_global.eva/alarms.csv rename to cerberus/.frama-c/provenance_union_punning_1_global.eva/alarms.csv diff --git a/cerberus/provenance_union_punning_1_global.eva/metrics.log b/cerberus/.frama-c/provenance_union_punning_1_global.eva/metrics.log similarity index 100% rename from cerberus/provenance_union_punning_1_global.eva/metrics.log rename to cerberus/.frama-c/provenance_union_punning_1_global.eva/metrics.log diff --git a/cerberus/provenance_union_punning_1_global.eva/nonterm.log b/cerberus/.frama-c/provenance_union_punning_1_global.eva/nonterm.log similarity index 100% rename from cerberus/provenance_union_punning_1_global.eva/nonterm.log rename to cerberus/.frama-c/provenance_union_punning_1_global.eva/nonterm.log diff --git a/cerberus/provenance_union_punning_1_global.eva/warnings.log b/cerberus/.frama-c/provenance_union_punning_1_global.eva/warnings.log similarity index 100% rename from cerberus/provenance_union_punning_1_global.eva/warnings.log rename to cerberus/.frama-c/provenance_union_punning_1_global.eva/warnings.log diff --git a/cerberus/provenance_union_punning_1_global.parse/framac.ast b/cerberus/.frama-c/provenance_union_punning_1_global.parse/framac.ast similarity index 100% rename from cerberus/provenance_union_punning_1_global.parse/framac.ast rename to cerberus/.frama-c/provenance_union_punning_1_global.parse/framac.ast diff --git a/cerberus/provenance_union_punning_1_global.parse/metrics.log b/cerberus/.frama-c/provenance_union_punning_1_global.parse/metrics.log similarity index 100% rename from cerberus/provenance_union_punning_1_global.parse/metrics.log rename to cerberus/.frama-c/provenance_union_punning_1_global.parse/metrics.log diff --git a/cerberus/provenance_roundtrip_via_unsigned_long.eva/warnings.log b/cerberus/.frama-c/provenance_union_punning_1_global.parse/warnings.log similarity index 100% rename from cerberus/provenance_roundtrip_via_unsigned_long.eva/warnings.log rename to cerberus/.frama-c/provenance_union_punning_1_global.parse/warnings.log diff --git a/cerberus/provenance_union_punning_2_auto_xy.eva/alarms.csv b/cerberus/.frama-c/provenance_union_punning_2_auto_xy.eva/alarms.csv similarity index 100% rename from cerberus/provenance_union_punning_2_auto_xy.eva/alarms.csv rename to cerberus/.frama-c/provenance_union_punning_2_auto_xy.eva/alarms.csv diff --git a/cerberus/provenance_union_punning_2_auto_xy.eva/metrics.log b/cerberus/.frama-c/provenance_union_punning_2_auto_xy.eva/metrics.log similarity index 100% rename from cerberus/provenance_union_punning_2_auto_xy.eva/metrics.log rename to cerberus/.frama-c/provenance_union_punning_2_auto_xy.eva/metrics.log diff --git a/cerberus/provenance_union_punning_2_auto_xy.eva/nonterm.log b/cerberus/.frama-c/provenance_union_punning_2_auto_xy.eva/nonterm.log similarity index 100% rename from cerberus/provenance_union_punning_2_auto_xy.eva/nonterm.log rename to cerberus/.frama-c/provenance_union_punning_2_auto_xy.eva/nonterm.log diff --git a/cerberus/provenance_union_punning_2_auto_xy.eva/warnings.log b/cerberus/.frama-c/provenance_union_punning_2_auto_xy.eva/warnings.log similarity index 100% rename from cerberus/provenance_union_punning_2_auto_xy.eva/warnings.log rename to cerberus/.frama-c/provenance_union_punning_2_auto_xy.eva/warnings.log diff --git a/cerberus/provenance_union_punning_2_auto_xy.parse/framac.ast b/cerberus/.frama-c/provenance_union_punning_2_auto_xy.parse/framac.ast similarity index 100% rename from cerberus/provenance_union_punning_2_auto_xy.parse/framac.ast rename to cerberus/.frama-c/provenance_union_punning_2_auto_xy.parse/framac.ast diff --git a/cerberus/provenance_union_punning_2_auto_xy.parse/metrics.log b/cerberus/.frama-c/provenance_union_punning_2_auto_xy.parse/metrics.log similarity index 100% rename from cerberus/provenance_union_punning_2_auto_xy.parse/metrics.log rename to cerberus/.frama-c/provenance_union_punning_2_auto_xy.parse/metrics.log diff --git a/cerberus/provenance_roundtrip_via_unsigned_long.parse/warnings.log b/cerberus/.frama-c/provenance_union_punning_2_auto_xy.parse/warnings.log similarity index 100% rename from cerberus/provenance_roundtrip_via_unsigned_long.parse/warnings.log rename to cerberus/.frama-c/provenance_union_punning_2_auto_xy.parse/warnings.log diff --git a/cerberus/provenance_union_punning_2_auto_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_union_punning_2_auto_yx.eva/alarms.csv similarity index 100% rename from cerberus/provenance_union_punning_2_auto_yx.eva/alarms.csv rename to cerberus/.frama-c/provenance_union_punning_2_auto_yx.eva/alarms.csv diff --git a/cerberus/provenance_union_punning_2_auto_yx.eva/metrics.log b/cerberus/.frama-c/provenance_union_punning_2_auto_yx.eva/metrics.log similarity index 100% rename from cerberus/provenance_union_punning_2_auto_yx.eva/metrics.log rename to cerberus/.frama-c/provenance_union_punning_2_auto_yx.eva/metrics.log diff --git a/cerberus/provenance_union_punning_2_auto_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_union_punning_2_auto_yx.eva/nonterm.log similarity index 100% rename from cerberus/provenance_union_punning_2_auto_yx.eva/nonterm.log rename to cerberus/.frama-c/provenance_union_punning_2_auto_yx.eva/nonterm.log diff --git a/cerberus/provenance_union_punning_2_auto_yx.eva/warnings.log b/cerberus/.frama-c/provenance_union_punning_2_auto_yx.eva/warnings.log similarity index 100% rename from cerberus/provenance_union_punning_2_auto_yx.eva/warnings.log rename to cerberus/.frama-c/provenance_union_punning_2_auto_yx.eva/warnings.log diff --git a/cerberus/provenance_union_punning_2_auto_yx.parse/framac.ast b/cerberus/.frama-c/provenance_union_punning_2_auto_yx.parse/framac.ast similarity index 100% rename from cerberus/provenance_union_punning_2_auto_yx.parse/framac.ast rename to cerberus/.frama-c/provenance_union_punning_2_auto_yx.parse/framac.ast diff --git a/cerberus/provenance_union_punning_2_auto_yx.parse/metrics.log b/cerberus/.frama-c/provenance_union_punning_2_auto_yx.parse/metrics.log similarity index 100% rename from cerberus/provenance_union_punning_2_auto_yx.parse/metrics.log rename to cerberus/.frama-c/provenance_union_punning_2_auto_yx.parse/metrics.log diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1.parse/warnings.log b/cerberus/.frama-c/provenance_union_punning_2_auto_yx.parse/warnings.log similarity index 100% rename from cerberus/provenance_tag_bits_via_uintptr_t_1.parse/warnings.log rename to cerberus/.frama-c/provenance_union_punning_2_auto_yx.parse/warnings.log diff --git a/cerberus/provenance_union_punning_2_global_xy.eva/alarms.csv b/cerberus/.frama-c/provenance_union_punning_2_global_xy.eva/alarms.csv similarity index 100% rename from cerberus/provenance_union_punning_2_global_xy.eva/alarms.csv rename to cerberus/.frama-c/provenance_union_punning_2_global_xy.eva/alarms.csv diff --git a/cerberus/provenance_union_punning_2_global_xy.eva/metrics.log b/cerberus/.frama-c/provenance_union_punning_2_global_xy.eva/metrics.log similarity index 100% rename from cerberus/provenance_union_punning_2_global_xy.eva/metrics.log rename to cerberus/.frama-c/provenance_union_punning_2_global_xy.eva/metrics.log diff --git a/cerberus/provenance_union_punning_2_global_xy.eva/nonterm.log b/cerberus/.frama-c/provenance_union_punning_2_global_xy.eva/nonterm.log similarity index 100% rename from cerberus/provenance_union_punning_2_global_xy.eva/nonterm.log rename to cerberus/.frama-c/provenance_union_punning_2_global_xy.eva/nonterm.log diff --git a/cerberus/provenance_union_punning_2_global_xy.eva/warnings.log b/cerberus/.frama-c/provenance_union_punning_2_global_xy.eva/warnings.log similarity index 100% rename from cerberus/provenance_union_punning_2_global_xy.eva/warnings.log rename to cerberus/.frama-c/provenance_union_punning_2_global_xy.eva/warnings.log diff --git a/cerberus/provenance_union_punning_2_global_xy.parse/framac.ast b/cerberus/.frama-c/provenance_union_punning_2_global_xy.parse/framac.ast similarity index 100% rename from cerberus/provenance_union_punning_2_global_xy.parse/framac.ast rename to cerberus/.frama-c/provenance_union_punning_2_global_xy.parse/framac.ast diff --git a/cerberus/provenance_union_punning_2_global_xy.parse/metrics.log b/cerberus/.frama-c/provenance_union_punning_2_global_xy.parse/metrics.log similarity index 100% rename from cerberus/provenance_union_punning_2_global_xy.parse/metrics.log rename to cerberus/.frama-c/provenance_union_punning_2_global_xy.parse/metrics.log diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/warnings.log b/cerberus/.frama-c/provenance_union_punning_2_global_xy.parse/warnings.log similarity index 100% rename from cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/warnings.log rename to cerberus/.frama-c/provenance_union_punning_2_global_xy.parse/warnings.log diff --git a/cerberus/provenance_union_punning_2_global_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_union_punning_2_global_yx.eva/alarms.csv similarity index 100% rename from cerberus/provenance_union_punning_2_global_yx.eva/alarms.csv rename to cerberus/.frama-c/provenance_union_punning_2_global_yx.eva/alarms.csv diff --git a/cerberus/provenance_union_punning_2_global_yx.eva/metrics.log b/cerberus/.frama-c/provenance_union_punning_2_global_yx.eva/metrics.log similarity index 100% rename from cerberus/provenance_union_punning_2_global_yx.eva/metrics.log rename to cerberus/.frama-c/provenance_union_punning_2_global_yx.eva/metrics.log diff --git a/cerberus/provenance_union_punning_2_global_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_union_punning_2_global_yx.eva/nonterm.log similarity index 100% rename from cerberus/provenance_union_punning_2_global_yx.eva/nonterm.log rename to cerberus/.frama-c/provenance_union_punning_2_global_yx.eva/nonterm.log diff --git a/cerberus/provenance_union_punning_2_global_yx.eva/warnings.log b/cerberus/.frama-c/provenance_union_punning_2_global_yx.eva/warnings.log similarity index 100% rename from cerberus/provenance_union_punning_2_global_yx.eva/warnings.log rename to cerberus/.frama-c/provenance_union_punning_2_global_yx.eva/warnings.log diff --git a/cerberus/provenance_union_punning_2_global_yx.parse/framac.ast b/cerberus/.frama-c/provenance_union_punning_2_global_yx.parse/framac.ast similarity index 100% rename from cerberus/provenance_union_punning_2_global_yx.parse/framac.ast rename to cerberus/.frama-c/provenance_union_punning_2_global_yx.parse/framac.ast diff --git a/cerberus/provenance_union_punning_2_global_yx.parse/metrics.log b/cerberus/.frama-c/provenance_union_punning_2_global_yx.parse/metrics.log similarity index 100% rename from cerberus/provenance_union_punning_2_global_yx.parse/metrics.log rename to cerberus/.frama-c/provenance_union_punning_2_global_yx.parse/metrics.log diff --git a/cerberus/provenance_union_punning_1_global.parse/warnings.log b/cerberus/.frama-c/provenance_union_punning_2_global_yx.parse/warnings.log similarity index 100% rename from cerberus/provenance_union_punning_1_global.parse/warnings.log rename to cerberus/.frama-c/provenance_union_punning_2_global_yx.parse/warnings.log diff --git a/cerberus/provenance_via_io_auto.eva/alarms.csv b/cerberus/.frama-c/provenance_via_io_auto.eva/alarms.csv similarity index 100% rename from cerberus/provenance_via_io_auto.eva/alarms.csv rename to cerberus/.frama-c/provenance_via_io_auto.eva/alarms.csv diff --git a/cerberus/provenance_via_io_auto.eva/metrics.log b/cerberus/.frama-c/provenance_via_io_auto.eva/metrics.log similarity index 100% rename from cerberus/provenance_via_io_auto.eva/metrics.log rename to cerberus/.frama-c/provenance_via_io_auto.eva/metrics.log diff --git a/cerberus/provenance_via_io_auto.eva/nonterm.log b/cerberus/.frama-c/provenance_via_io_auto.eva/nonterm.log similarity index 100% rename from cerberus/provenance_via_io_auto.eva/nonterm.log rename to cerberus/.frama-c/provenance_via_io_auto.eva/nonterm.log diff --git a/cerberus/provenance_via_io_auto.eva/warnings.log b/cerberus/.frama-c/provenance_via_io_auto.eva/warnings.log similarity index 100% rename from cerberus/provenance_via_io_auto.eva/warnings.log rename to cerberus/.frama-c/provenance_via_io_auto.eva/warnings.log diff --git a/cerberus/provenance_via_io_auto.parse/framac.ast b/cerberus/.frama-c/provenance_via_io_auto.parse/framac.ast similarity index 100% rename from cerberus/provenance_via_io_auto.parse/framac.ast rename to cerberus/.frama-c/provenance_via_io_auto.parse/framac.ast diff --git a/cerberus/provenance_via_io_auto.parse/metrics.log b/cerberus/.frama-c/provenance_via_io_auto.parse/metrics.log similarity index 100% rename from cerberus/provenance_via_io_auto.parse/metrics.log rename to cerberus/.frama-c/provenance_via_io_auto.parse/metrics.log diff --git a/cerberus/provenance_union_punning_2_auto_xy.parse/warnings.log b/cerberus/.frama-c/provenance_via_io_auto.parse/warnings.log similarity index 100% rename from cerberus/provenance_union_punning_2_auto_xy.parse/warnings.log rename to cerberus/.frama-c/provenance_via_io_auto.parse/warnings.log diff --git a/cerberus/provenance_via_io_bytewise_global.eva/alarms.csv b/cerberus/.frama-c/provenance_via_io_bytewise_global.eva/alarms.csv similarity index 100% rename from cerberus/provenance_via_io_bytewise_global.eva/alarms.csv rename to cerberus/.frama-c/provenance_via_io_bytewise_global.eva/alarms.csv diff --git a/cerberus/provenance_via_io_bytewise_global.eva/metrics.log b/cerberus/.frama-c/provenance_via_io_bytewise_global.eva/metrics.log similarity index 100% rename from cerberus/provenance_via_io_bytewise_global.eva/metrics.log rename to cerberus/.frama-c/provenance_via_io_bytewise_global.eva/metrics.log diff --git a/cerberus/provenance_via_io_bytewise_global.eva/nonterm.log b/cerberus/.frama-c/provenance_via_io_bytewise_global.eva/nonterm.log similarity index 100% rename from cerberus/provenance_via_io_bytewise_global.eva/nonterm.log rename to cerberus/.frama-c/provenance_via_io_bytewise_global.eva/nonterm.log diff --git a/cerberus/provenance_via_io_bytewise_global.eva/warnings.log b/cerberus/.frama-c/provenance_via_io_bytewise_global.eva/warnings.log similarity index 88% rename from cerberus/provenance_via_io_bytewise_global.eva/warnings.log rename to cerberus/.frama-c/provenance_via_io_bytewise_global.eva/warnings.log index 1fcfffd06835e4ae359c066c72768b64c047eb52..293d8de2d57dc93ca08d5f58a64385357d6935f8 100644 --- a/cerberus/provenance_via_io_bytewise_global.eva/warnings.log +++ b/cerberus/.frama-c/provenance_via_io_bytewise_global.eva/warnings.log @@ -1,3 +1,4 @@ +[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration. provenance_via_io_bytewise_global.c:6:[eva:garbled-mix] warning: The specification of function printf_va_1 has generated a garbled mix for assigns clause assigns clause __fc_stdout->__fc_FILE_data. provenance_via_io_bytewise_global.c:6:[eva:garbled-mix] warning: The specification of function printf_va_1 has generated a garbled mix for assigns clause assigns clause __fc_stdout->__fc_FILE_data. provenance_via_io_bytewise_global.c:14:[eva:garbled-mix] warning: The specification of function printf_va_2 has generated a garbled mix for assigns clause assigns clause __fc_stdout->__fc_FILE_data. diff --git a/cerberus/provenance_via_io_bytewise_global.parse/framac.ast b/cerberus/.frama-c/provenance_via_io_bytewise_global.parse/framac.ast similarity index 100% rename from cerberus/provenance_via_io_bytewise_global.parse/framac.ast rename to cerberus/.frama-c/provenance_via_io_bytewise_global.parse/framac.ast diff --git a/cerberus/provenance_via_io_bytewise_global.parse/metrics.log b/cerberus/.frama-c/provenance_via_io_bytewise_global.parse/metrics.log similarity index 100% rename from cerberus/provenance_via_io_bytewise_global.parse/metrics.log rename to cerberus/.frama-c/provenance_via_io_bytewise_global.parse/metrics.log diff --git a/cerberus/provenance_union_punning_2_auto_yx.parse/warnings.log b/cerberus/.frama-c/provenance_via_io_bytewise_global.parse/warnings.log similarity index 100% rename from cerberus/provenance_union_punning_2_auto_yx.parse/warnings.log rename to cerberus/.frama-c/provenance_via_io_bytewise_global.parse/warnings.log diff --git a/cerberus/provenance_via_io_global.eva/alarms.csv b/cerberus/.frama-c/provenance_via_io_global.eva/alarms.csv similarity index 100% rename from cerberus/provenance_via_io_global.eva/alarms.csv rename to cerberus/.frama-c/provenance_via_io_global.eva/alarms.csv diff --git a/cerberus/provenance_via_io_global.eva/metrics.log b/cerberus/.frama-c/provenance_via_io_global.eva/metrics.log similarity index 100% rename from cerberus/provenance_via_io_global.eva/metrics.log rename to cerberus/.frama-c/provenance_via_io_global.eva/metrics.log diff --git a/cerberus/provenance_via_io_global.eva/nonterm.log b/cerberus/.frama-c/provenance_via_io_global.eva/nonterm.log similarity index 100% rename from cerberus/provenance_via_io_global.eva/nonterm.log rename to cerberus/.frama-c/provenance_via_io_global.eva/nonterm.log diff --git a/cerberus/provenance_via_io_global.eva/warnings.log b/cerberus/.frama-c/provenance_via_io_global.eva/warnings.log similarity index 100% rename from cerberus/provenance_via_io_global.eva/warnings.log rename to cerberus/.frama-c/provenance_via_io_global.eva/warnings.log diff --git a/cerberus/provenance_via_io_global.parse/framac.ast b/cerberus/.frama-c/provenance_via_io_global.parse/framac.ast similarity index 100% rename from cerberus/provenance_via_io_global.parse/framac.ast rename to cerberus/.frama-c/provenance_via_io_global.parse/framac.ast diff --git a/cerberus/provenance_via_io_global.parse/metrics.log b/cerberus/.frama-c/provenance_via_io_global.parse/metrics.log similarity index 100% rename from cerberus/provenance_via_io_global.parse/metrics.log rename to cerberus/.frama-c/provenance_via_io_global.parse/metrics.log diff --git a/cerberus/provenance_union_punning_2_global_xy.parse/warnings.log b/cerberus/.frama-c/provenance_via_io_global.parse/warnings.log similarity index 100% rename from cerberus/provenance_union_punning_2_global_xy.parse/warnings.log rename to cerberus/.frama-c/provenance_via_io_global.parse/warnings.log diff --git a/cerberus/provenance_via_io_percentp_global.eva/alarms.csv b/cerberus/.frama-c/provenance_via_io_percentp_global.eva/alarms.csv similarity index 100% rename from cerberus/provenance_via_io_percentp_global.eva/alarms.csv rename to cerberus/.frama-c/provenance_via_io_percentp_global.eva/alarms.csv diff --git a/cerberus/provenance_via_io_percentp_global.eva/metrics.log b/cerberus/.frama-c/provenance_via_io_percentp_global.eva/metrics.log similarity index 100% rename from cerberus/provenance_via_io_percentp_global.eva/metrics.log rename to cerberus/.frama-c/provenance_via_io_percentp_global.eva/metrics.log diff --git a/cerberus/provenance_via_io_percentp_global.eva/nonterm.log b/cerberus/.frama-c/provenance_via_io_percentp_global.eva/nonterm.log similarity index 100% rename from cerberus/provenance_via_io_percentp_global.eva/nonterm.log rename to cerberus/.frama-c/provenance_via_io_percentp_global.eva/nonterm.log diff --git a/cerberus/provenance_via_io_percentp_global.eva/warnings.log b/cerberus/.frama-c/provenance_via_io_percentp_global.eva/warnings.log similarity index 100% rename from cerberus/provenance_via_io_percentp_global.eva/warnings.log rename to cerberus/.frama-c/provenance_via_io_percentp_global.eva/warnings.log diff --git a/cerberus/provenance_via_io_percentp_global.parse/framac.ast b/cerberus/.frama-c/provenance_via_io_percentp_global.parse/framac.ast similarity index 100% rename from cerberus/provenance_via_io_percentp_global.parse/framac.ast rename to cerberus/.frama-c/provenance_via_io_percentp_global.parse/framac.ast diff --git a/cerberus/provenance_via_io_percentp_global.parse/metrics.log b/cerberus/.frama-c/provenance_via_io_percentp_global.parse/metrics.log similarity index 100% rename from cerberus/provenance_via_io_percentp_global.parse/metrics.log rename to cerberus/.frama-c/provenance_via_io_percentp_global.parse/metrics.log diff --git a/cerberus/provenance_union_punning_2_global_yx.parse/warnings.log b/cerberus/.frama-c/provenance_via_io_percentp_global.parse/warnings.log similarity index 100% rename from cerberus/provenance_union_punning_2_global_yx.parse/warnings.log rename to cerberus/.frama-c/provenance_via_io_percentp_global.parse/warnings.log diff --git a/cerberus/provenance_via_io_uintptr_t_global.eva/alarms.csv b/cerberus/.frama-c/provenance_via_io_uintptr_t_global.eva/alarms.csv similarity index 100% rename from cerberus/provenance_via_io_uintptr_t_global.eva/alarms.csv rename to cerberus/.frama-c/provenance_via_io_uintptr_t_global.eva/alarms.csv diff --git a/cerberus/provenance_via_io_uintptr_t_global.eva/metrics.log b/cerberus/.frama-c/provenance_via_io_uintptr_t_global.eva/metrics.log similarity index 100% rename from cerberus/provenance_via_io_uintptr_t_global.eva/metrics.log rename to cerberus/.frama-c/provenance_via_io_uintptr_t_global.eva/metrics.log diff --git a/cerberus/provenance_via_io_uintptr_t_global.eva/nonterm.log b/cerberus/.frama-c/provenance_via_io_uintptr_t_global.eva/nonterm.log similarity index 100% rename from cerberus/provenance_via_io_uintptr_t_global.eva/nonterm.log rename to cerberus/.frama-c/provenance_via_io_uintptr_t_global.eva/nonterm.log diff --git a/cerberus/provenance_via_io_uintptr_t_global.eva/warnings.log b/cerberus/.frama-c/provenance_via_io_uintptr_t_global.eva/warnings.log similarity index 100% rename from cerberus/provenance_via_io_uintptr_t_global.eva/warnings.log rename to cerberus/.frama-c/provenance_via_io_uintptr_t_global.eva/warnings.log diff --git a/cerberus/provenance_via_io_uintptr_t_global.parse/framac.ast b/cerberus/.frama-c/provenance_via_io_uintptr_t_global.parse/framac.ast similarity index 100% rename from cerberus/provenance_via_io_uintptr_t_global.parse/framac.ast rename to cerberus/.frama-c/provenance_via_io_uintptr_t_global.parse/framac.ast diff --git a/cerberus/provenance_via_io_uintptr_t_global.parse/metrics.log b/cerberus/.frama-c/provenance_via_io_uintptr_t_global.parse/metrics.log similarity index 100% rename from cerberus/provenance_via_io_uintptr_t_global.parse/metrics.log rename to cerberus/.frama-c/provenance_via_io_uintptr_t_global.parse/metrics.log diff --git a/cerberus/provenance_via_io_auto.parse/warnings.log b/cerberus/.frama-c/provenance_via_io_uintptr_t_global.parse/warnings.log similarity index 100% rename from cerberus/provenance_via_io_auto.parse/warnings.log rename to cerberus/.frama-c/provenance_via_io_uintptr_t_global.parse/warnings.log diff --git a/cerberus/read_union_same_prefix_visible.eva/alarms.csv b/cerberus/.frama-c/read_union_same_prefix_visible.eva/alarms.csv similarity index 100% rename from cerberus/read_union_same_prefix_visible.eva/alarms.csv rename to cerberus/.frama-c/read_union_same_prefix_visible.eva/alarms.csv diff --git a/cerberus/read_union_same_prefix_visible.eva/metrics.log b/cerberus/.frama-c/read_union_same_prefix_visible.eva/metrics.log similarity index 100% rename from cerberus/read_union_same_prefix_visible.eva/metrics.log rename to cerberus/.frama-c/read_union_same_prefix_visible.eva/metrics.log diff --git a/cerberus/read_union_same_prefix_visible.eva/nonterm.log b/cerberus/.frama-c/read_union_same_prefix_visible.eva/nonterm.log similarity index 100% rename from cerberus/read_union_same_prefix_visible.eva/nonterm.log rename to cerberus/.frama-c/read_union_same_prefix_visible.eva/nonterm.log diff --git a/cerberus/provenance_via_io_bytewise_global.parse/warnings.log b/cerberus/.frama-c/read_union_same_prefix_visible.eva/warnings.log similarity index 100% rename from cerberus/provenance_via_io_bytewise_global.parse/warnings.log rename to cerberus/.frama-c/read_union_same_prefix_visible.eva/warnings.log diff --git a/cerberus/read_union_same_prefix_visible.parse/framac.ast b/cerberus/.frama-c/read_union_same_prefix_visible.parse/framac.ast similarity index 100% rename from cerberus/read_union_same_prefix_visible.parse/framac.ast rename to cerberus/.frama-c/read_union_same_prefix_visible.parse/framac.ast diff --git a/cerberus/read_union_same_prefix_visible.parse/metrics.log b/cerberus/.frama-c/read_union_same_prefix_visible.parse/metrics.log similarity index 100% rename from cerberus/read_union_same_prefix_visible.parse/metrics.log rename to cerberus/.frama-c/read_union_same_prefix_visible.parse/metrics.log diff --git a/cerberus/provenance_via_io_global.parse/warnings.log b/cerberus/.frama-c/read_union_same_prefix_visible.parse/warnings.log similarity index 100% rename from cerberus/provenance_via_io_global.parse/warnings.log rename to cerberus/.frama-c/read_union_same_prefix_visible.parse/warnings.log diff --git a/cerberus/read_via_invalid_1.eva/alarms.csv b/cerberus/.frama-c/read_via_invalid_1.eva/alarms.csv similarity index 100% rename from cerberus/read_via_invalid_1.eva/alarms.csv rename to cerberus/.frama-c/read_via_invalid_1.eva/alarms.csv diff --git a/cerberus/read_via_invalid_1.eva/metrics.log b/cerberus/.frama-c/read_via_invalid_1.eva/metrics.log similarity index 100% rename from cerberus/read_via_invalid_1.eva/metrics.log rename to cerberus/.frama-c/read_via_invalid_1.eva/metrics.log diff --git a/cerberus/read_via_invalid_1.eva/nonterm.log b/cerberus/.frama-c/read_via_invalid_1.eva/nonterm.log similarity index 100% rename from cerberus/read_via_invalid_1.eva/nonterm.log rename to cerberus/.frama-c/read_via_invalid_1.eva/nonterm.log diff --git a/cerberus/provenance_via_io_percentp_global.parse/warnings.log b/cerberus/.frama-c/read_via_invalid_1.eva/warnings.log similarity index 100% rename from cerberus/provenance_via_io_percentp_global.parse/warnings.log rename to cerberus/.frama-c/read_via_invalid_1.eva/warnings.log diff --git a/cerberus/read_via_invalid_1.parse/framac.ast b/cerberus/.frama-c/read_via_invalid_1.parse/framac.ast similarity index 100% rename from cerberus/read_via_invalid_1.parse/framac.ast rename to cerberus/.frama-c/read_via_invalid_1.parse/framac.ast diff --git a/cerberus/read_via_invalid_1.parse/metrics.log b/cerberus/.frama-c/read_via_invalid_1.parse/metrics.log similarity index 100% rename from cerberus/read_via_invalid_1.parse/metrics.log rename to cerberus/.frama-c/read_via_invalid_1.parse/metrics.log diff --git a/cerberus/provenance_via_io_uintptr_t_global.parse/warnings.log b/cerberus/.frama-c/read_via_invalid_1.parse/warnings.log similarity index 100% rename from cerberus/provenance_via_io_uintptr_t_global.parse/warnings.log rename to cerberus/.frama-c/read_via_invalid_1.parse/warnings.log diff --git a/cerberus/signalling_nan_1.eva/alarms.csv b/cerberus/.frama-c/signalling_nan_1.eva/alarms.csv similarity index 100% rename from cerberus/signalling_nan_1.eva/alarms.csv rename to cerberus/.frama-c/signalling_nan_1.eva/alarms.csv diff --git a/cerberus/signalling_nan_1.eva/metrics.log b/cerberus/.frama-c/signalling_nan_1.eva/metrics.log similarity index 100% rename from cerberus/signalling_nan_1.eva/metrics.log rename to cerberus/.frama-c/signalling_nan_1.eva/metrics.log diff --git a/cerberus/signalling_nan_1.eva/nonterm.log b/cerberus/.frama-c/signalling_nan_1.eva/nonterm.log similarity index 100% rename from cerberus/signalling_nan_1.eva/nonterm.log rename to cerberus/.frama-c/signalling_nan_1.eva/nonterm.log diff --git a/cerberus/read_union_same_prefix_visible.eva/warnings.log b/cerberus/.frama-c/signalling_nan_1.eva/warnings.log similarity index 100% rename from cerberus/read_union_same_prefix_visible.eva/warnings.log rename to cerberus/.frama-c/signalling_nan_1.eva/warnings.log diff --git a/cerberus/signalling_nan_1.parse/framac.ast b/cerberus/.frama-c/signalling_nan_1.parse/framac.ast similarity index 100% rename from cerberus/signalling_nan_1.parse/framac.ast rename to cerberus/.frama-c/signalling_nan_1.parse/framac.ast diff --git a/cerberus/signalling_nan_1.parse/metrics.log b/cerberus/.frama-c/signalling_nan_1.parse/metrics.log similarity index 100% rename from cerberus/signalling_nan_1.parse/metrics.log rename to cerberus/.frama-c/signalling_nan_1.parse/metrics.log diff --git a/cerberus/signalling_nan_1.parse/warnings.log b/cerberus/.frama-c/signalling_nan_1.parse/warnings.log similarity index 100% rename from cerberus/signalling_nan_1.parse/warnings.log rename to cerberus/.frama-c/signalling_nan_1.parse/warnings.log diff --git a/cerberus/struct_initialise_members.eva/alarms.csv b/cerberus/.frama-c/struct_initialise_members.eva/alarms.csv similarity index 100% rename from cerberus/struct_initialise_members.eva/alarms.csv rename to cerberus/.frama-c/struct_initialise_members.eva/alarms.csv diff --git a/cerberus/struct_initialise_members.eva/metrics.log b/cerberus/.frama-c/struct_initialise_members.eva/metrics.log similarity index 100% rename from cerberus/struct_initialise_members.eva/metrics.log rename to cerberus/.frama-c/struct_initialise_members.eva/metrics.log diff --git a/cerberus/struct_initialise_members.eva/nonterm.log b/cerberus/.frama-c/struct_initialise_members.eva/nonterm.log similarity index 100% rename from cerberus/struct_initialise_members.eva/nonterm.log rename to cerberus/.frama-c/struct_initialise_members.eva/nonterm.log diff --git a/cerberus/read_union_same_prefix_visible.parse/warnings.log b/cerberus/.frama-c/struct_initialise_members.eva/warnings.log similarity index 100% rename from cerberus/read_union_same_prefix_visible.parse/warnings.log rename to cerberus/.frama-c/struct_initialise_members.eva/warnings.log diff --git a/cerberus/struct_initialise_members.parse/framac.ast b/cerberus/.frama-c/struct_initialise_members.parse/framac.ast similarity index 100% rename from cerberus/struct_initialise_members.parse/framac.ast rename to cerberus/.frama-c/struct_initialise_members.parse/framac.ast diff --git a/cerberus/struct_initialise_members.parse/metrics.log b/cerberus/.frama-c/struct_initialise_members.parse/metrics.log similarity index 100% rename from cerberus/struct_initialise_members.parse/metrics.log rename to cerberus/.frama-c/struct_initialise_members.parse/metrics.log diff --git a/cerberus/struct_initialise_members.parse/warnings.log b/cerberus/.frama-c/struct_initialise_members.parse/warnings.log similarity index 100% rename from cerberus/struct_initialise_members.parse/warnings.log rename to cerberus/.frama-c/struct_initialise_members.parse/warnings.log diff --git a/cerberus/struct_inter_submember_1.eva/alarms.csv b/cerberus/.frama-c/struct_inter_submember_1.eva/alarms.csv similarity index 100% rename from cerberus/struct_inter_submember_1.eva/alarms.csv rename to cerberus/.frama-c/struct_inter_submember_1.eva/alarms.csv diff --git a/cerberus/struct_inter_submember_1.eva/metrics.log b/cerberus/.frama-c/struct_inter_submember_1.eva/metrics.log similarity index 100% rename from cerberus/struct_inter_submember_1.eva/metrics.log rename to cerberus/.frama-c/struct_inter_submember_1.eva/metrics.log diff --git a/cerberus/struct_inter_submember_1.eva/nonterm.log b/cerberus/.frama-c/struct_inter_submember_1.eva/nonterm.log similarity index 100% rename from cerberus/struct_inter_submember_1.eva/nonterm.log rename to cerberus/.frama-c/struct_inter_submember_1.eva/nonterm.log diff --git a/cerberus/read_via_invalid_1.eva/warnings.log b/cerberus/.frama-c/struct_inter_submember_1.eva/warnings.log similarity index 100% rename from cerberus/read_via_invalid_1.eva/warnings.log rename to cerberus/.frama-c/struct_inter_submember_1.eva/warnings.log diff --git a/cerberus/struct_inter_submember_1.parse/framac.ast b/cerberus/.frama-c/struct_inter_submember_1.parse/framac.ast similarity index 100% rename from cerberus/struct_inter_submember_1.parse/framac.ast rename to cerberus/.frama-c/struct_inter_submember_1.parse/framac.ast diff --git a/cerberus/struct_inter_submember_1.parse/metrics.log b/cerberus/.frama-c/struct_inter_submember_1.parse/metrics.log similarity index 100% rename from cerberus/struct_inter_submember_1.parse/metrics.log rename to cerberus/.frama-c/struct_inter_submember_1.parse/metrics.log diff --git a/cerberus/read_via_invalid_1.parse/warnings.log b/cerberus/.frama-c/struct_inter_submember_1.parse/warnings.log similarity index 100% rename from cerberus/read_via_invalid_1.parse/warnings.log rename to cerberus/.frama-c/struct_inter_submember_1.parse/warnings.log diff --git a/cerberus/tkn-1.eva/alarms.csv b/cerberus/.frama-c/tkn-1.eva/alarms.csv similarity index 100% rename from cerberus/tkn-1.eva/alarms.csv rename to cerberus/.frama-c/tkn-1.eva/alarms.csv diff --git a/cerberus/tkn-1.eva/metrics.log b/cerberus/.frama-c/tkn-1.eva/metrics.log similarity index 100% rename from cerberus/tkn-1.eva/metrics.log rename to cerberus/.frama-c/tkn-1.eva/metrics.log diff --git a/cerberus/tkn-1.eva/nonterm.log b/cerberus/.frama-c/tkn-1.eva/nonterm.log similarity index 100% rename from cerberus/tkn-1.eva/nonterm.log rename to cerberus/.frama-c/tkn-1.eva/nonterm.log diff --git a/cerberus/signalling_nan_1.eva/warnings.log b/cerberus/.frama-c/tkn-1.eva/warnings.log similarity index 100% rename from cerberus/signalling_nan_1.eva/warnings.log rename to cerberus/.frama-c/tkn-1.eva/warnings.log diff --git a/cerberus/tkn-1.parse/framac.ast b/cerberus/.frama-c/tkn-1.parse/framac.ast similarity index 100% rename from cerberus/tkn-1.parse/framac.ast rename to cerberus/.frama-c/tkn-1.parse/framac.ast diff --git a/cerberus/tkn-1.parse/metrics.log b/cerberus/.frama-c/tkn-1.parse/metrics.log similarity index 100% rename from cerberus/tkn-1.parse/metrics.log rename to cerberus/.frama-c/tkn-1.parse/metrics.log diff --git a/cerberus/struct_initialise_members.eva/warnings.log b/cerberus/.frama-c/tkn-1.parse/warnings.log similarity index 100% rename from cerberus/struct_initialise_members.eva/warnings.log rename to cerberus/.frama-c/tkn-1.parse/warnings.log diff --git a/cerberus/tkn-2.eva/alarms.csv b/cerberus/.frama-c/tkn-2.eva/alarms.csv similarity index 100% rename from cerberus/tkn-2.eva/alarms.csv rename to cerberus/.frama-c/tkn-2.eva/alarms.csv diff --git a/cerberus/tkn-2.eva/metrics.log b/cerberus/.frama-c/tkn-2.eva/metrics.log similarity index 100% rename from cerberus/tkn-2.eva/metrics.log rename to cerberus/.frama-c/tkn-2.eva/metrics.log diff --git a/cerberus/tkn-2.eva/nonterm.log b/cerberus/.frama-c/tkn-2.eva/nonterm.log similarity index 100% rename from cerberus/tkn-2.eva/nonterm.log rename to cerberus/.frama-c/tkn-2.eva/nonterm.log diff --git a/cerberus/tkn-2.eva/warnings.log b/cerberus/.frama-c/tkn-2.eva/warnings.log similarity index 100% rename from cerberus/tkn-2.eva/warnings.log rename to cerberus/.frama-c/tkn-2.eva/warnings.log diff --git a/cerberus/tkn-2.parse/framac.ast b/cerberus/.frama-c/tkn-2.parse/framac.ast similarity index 100% rename from cerberus/tkn-2.parse/framac.ast rename to cerberus/.frama-c/tkn-2.parse/framac.ast diff --git a/cerberus/tkn-2.parse/metrics.log b/cerberus/.frama-c/tkn-2.parse/metrics.log similarity index 100% rename from cerberus/tkn-2.parse/metrics.log rename to cerberus/.frama-c/tkn-2.parse/metrics.log diff --git a/cerberus/struct_inter_submember_1.eva/warnings.log b/cerberus/.frama-c/tkn-2.parse/warnings.log similarity index 100% rename from cerberus/struct_inter_submember_1.eva/warnings.log rename to cerberus/.frama-c/tkn-2.parse/warnings.log diff --git a/cerberus/tkn-3-commented.eva/alarms.csv b/cerberus/.frama-c/tkn-3-commented.eva/alarms.csv similarity index 100% rename from cerberus/tkn-3-commented.eva/alarms.csv rename to cerberus/.frama-c/tkn-3-commented.eva/alarms.csv diff --git a/cerberus/tkn-3-commented.eva/metrics.log b/cerberus/.frama-c/tkn-3-commented.eva/metrics.log similarity index 100% rename from cerberus/tkn-3-commented.eva/metrics.log rename to cerberus/.frama-c/tkn-3-commented.eva/metrics.log diff --git a/cerberus/tkn-3-commented.eva/nonterm.log b/cerberus/.frama-c/tkn-3-commented.eva/nonterm.log similarity index 100% rename from cerberus/tkn-3-commented.eva/nonterm.log rename to cerberus/.frama-c/tkn-3-commented.eva/nonterm.log diff --git a/cerberus/tkn-3-commented.eva/warnings.log b/cerberus/.frama-c/tkn-3-commented.eva/warnings.log similarity index 100% rename from cerberus/tkn-3-commented.eva/warnings.log rename to cerberus/.frama-c/tkn-3-commented.eva/warnings.log diff --git a/cerberus/tkn-3-commented.parse/framac.ast b/cerberus/.frama-c/tkn-3-commented.parse/framac.ast similarity index 100% rename from cerberus/tkn-3-commented.parse/framac.ast rename to cerberus/.frama-c/tkn-3-commented.parse/framac.ast diff --git a/cerberus/tkn-3-commented.parse/metrics.log b/cerberus/.frama-c/tkn-3-commented.parse/metrics.log similarity index 100% rename from cerberus/tkn-3-commented.parse/metrics.log rename to cerberus/.frama-c/tkn-3-commented.parse/metrics.log diff --git a/cerberus/struct_inter_submember_1.parse/warnings.log b/cerberus/.frama-c/tkn-3-commented.parse/warnings.log similarity index 100% rename from cerberus/struct_inter_submember_1.parse/warnings.log rename to cerberus/.frama-c/tkn-3-commented.parse/warnings.log diff --git a/cerberus/tkn-3.eva/alarms.csv b/cerberus/.frama-c/tkn-3.eva/alarms.csv similarity index 100% rename from cerberus/tkn-3.eva/alarms.csv rename to cerberus/.frama-c/tkn-3.eva/alarms.csv diff --git a/cerberus/tkn-3.eva/metrics.log b/cerberus/.frama-c/tkn-3.eva/metrics.log similarity index 100% rename from cerberus/tkn-3.eva/metrics.log rename to cerberus/.frama-c/tkn-3.eva/metrics.log diff --git a/cerberus/tkn-3.eva/nonterm.log b/cerberus/.frama-c/tkn-3.eva/nonterm.log similarity index 100% rename from cerberus/tkn-3.eva/nonterm.log rename to cerberus/.frama-c/tkn-3.eva/nonterm.log diff --git a/cerberus/tkn-3.eva/warnings.log b/cerberus/.frama-c/tkn-3.eva/warnings.log similarity index 100% rename from cerberus/tkn-3.eva/warnings.log rename to cerberus/.frama-c/tkn-3.eva/warnings.log diff --git a/cerberus/tkn-3.parse/framac.ast b/cerberus/.frama-c/tkn-3.parse/framac.ast similarity index 100% rename from cerberus/tkn-3.parse/framac.ast rename to cerberus/.frama-c/tkn-3.parse/framac.ast diff --git a/cerberus/tkn-3.parse/metrics.log b/cerberus/.frama-c/tkn-3.parse/metrics.log similarity index 100% rename from cerberus/tkn-3.parse/metrics.log rename to cerberus/.frama-c/tkn-3.parse/metrics.log diff --git a/cerberus/tkn-1.eva/warnings.log b/cerberus/.frama-c/tkn-3.parse/warnings.log similarity index 100% rename from cerberus/tkn-1.eva/warnings.log rename to cerberus/.frama-c/tkn-3.parse/warnings.log diff --git a/cerberus/trap_representation_1.eva/alarms.csv b/cerberus/.frama-c/trap_representation_1.eva/alarms.csv similarity index 100% rename from cerberus/trap_representation_1.eva/alarms.csv rename to cerberus/.frama-c/trap_representation_1.eva/alarms.csv diff --git a/cerberus/trap_representation_1.eva/metrics.log b/cerberus/.frama-c/trap_representation_1.eva/metrics.log similarity index 100% rename from cerberus/trap_representation_1.eva/metrics.log rename to cerberus/.frama-c/trap_representation_1.eva/metrics.log diff --git a/cerberus/trap_representation_1.eva/nonterm.log b/cerberus/.frama-c/trap_representation_1.eva/nonterm.log similarity index 100% rename from cerberus/trap_representation_1.eva/nonterm.log rename to cerberus/.frama-c/trap_representation_1.eva/nonterm.log diff --git a/cerberus/tkn-1.parse/warnings.log b/cerberus/.frama-c/trap_representation_1.eva/warnings.log similarity index 100% rename from cerberus/tkn-1.parse/warnings.log rename to cerberus/.frama-c/trap_representation_1.eva/warnings.log diff --git a/cerberus/trap_representation_1.parse/framac.ast b/cerberus/.frama-c/trap_representation_1.parse/framac.ast similarity index 100% rename from cerberus/trap_representation_1.parse/framac.ast rename to cerberus/.frama-c/trap_representation_1.parse/framac.ast diff --git a/cerberus/trap_representation_1.parse/metrics.log b/cerberus/.frama-c/trap_representation_1.parse/metrics.log similarity index 100% rename from cerberus/trap_representation_1.parse/metrics.log rename to cerberus/.frama-c/trap_representation_1.parse/metrics.log diff --git a/cerberus/tkn-2.parse/warnings.log b/cerberus/.frama-c/trap_representation_1.parse/warnings.log similarity index 100% rename from cerberus/tkn-2.parse/warnings.log rename to cerberus/.frama-c/trap_representation_1.parse/warnings.log diff --git a/cerberus/trap_representation_2.eva/alarms.csv b/cerberus/.frama-c/trap_representation_2.eva/alarms.csv similarity index 100% rename from cerberus/trap_representation_2.eva/alarms.csv rename to cerberus/.frama-c/trap_representation_2.eva/alarms.csv diff --git a/cerberus/trap_representation_2.eva/metrics.log b/cerberus/.frama-c/trap_representation_2.eva/metrics.log similarity index 100% rename from cerberus/trap_representation_2.eva/metrics.log rename to cerberus/.frama-c/trap_representation_2.eva/metrics.log diff --git a/cerberus/trap_representation_2.eva/nonterm.log b/cerberus/.frama-c/trap_representation_2.eva/nonterm.log similarity index 100% rename from cerberus/trap_representation_2.eva/nonterm.log rename to cerberus/.frama-c/trap_representation_2.eva/nonterm.log diff --git a/cerberus/tkn-3-commented.parse/warnings.log b/cerberus/.frama-c/trap_representation_2.eva/warnings.log similarity index 100% rename from cerberus/tkn-3-commented.parse/warnings.log rename to cerberus/.frama-c/trap_representation_2.eva/warnings.log diff --git a/cerberus/trap_representation_2.parse/framac.ast b/cerberus/.frama-c/trap_representation_2.parse/framac.ast similarity index 100% rename from cerberus/trap_representation_2.parse/framac.ast rename to cerberus/.frama-c/trap_representation_2.parse/framac.ast diff --git a/cerberus/trap_representation_2.parse/metrics.log b/cerberus/.frama-c/trap_representation_2.parse/metrics.log similarity index 100% rename from cerberus/trap_representation_2.parse/metrics.log rename to cerberus/.frama-c/trap_representation_2.parse/metrics.log diff --git a/cerberus/tkn-3.parse/warnings.log b/cerberus/.frama-c/trap_representation_2.parse/warnings.log similarity index 100% rename from cerberus/tkn-3.parse/warnings.log rename to cerberus/.frama-c/trap_representation_2.parse/warnings.log diff --git a/cerberus/trap_representation_3.eva/alarms.csv b/cerberus/.frama-c/trap_representation_3.eva/alarms.csv similarity index 100% rename from cerberus/trap_representation_3.eva/alarms.csv rename to cerberus/.frama-c/trap_representation_3.eva/alarms.csv diff --git a/cerberus/trap_representation_3.eva/metrics.log b/cerberus/.frama-c/trap_representation_3.eva/metrics.log similarity index 100% rename from cerberus/trap_representation_3.eva/metrics.log rename to cerberus/.frama-c/trap_representation_3.eva/metrics.log diff --git a/cerberus/trap_representation_3.eva/nonterm.log b/cerberus/.frama-c/trap_representation_3.eva/nonterm.log similarity index 100% rename from cerberus/trap_representation_3.eva/nonterm.log rename to cerberus/.frama-c/trap_representation_3.eva/nonterm.log diff --git a/cerberus/.frama-c/trap_representation_3.eva/warnings.log b/cerberus/.frama-c/trap_representation_3.eva/warnings.log new file mode 100644 index 0000000000000000000000000000000000000000..14647f2485bd840524d36da174531e6de0237c15 --- /dev/null +++ b/cerberus/.frama-c/trap_representation_3.eva/warnings.log @@ -0,0 +1 @@ +[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration. diff --git a/cerberus/trap_representation_3.parse/framac.ast b/cerberus/.frama-c/trap_representation_3.parse/framac.ast similarity index 100% rename from cerberus/trap_representation_3.parse/framac.ast rename to cerberus/.frama-c/trap_representation_3.parse/framac.ast diff --git a/cerberus/trap_representation_3.parse/metrics.log b/cerberus/.frama-c/trap_representation_3.parse/metrics.log similarity index 100% rename from cerberus/trap_representation_3.parse/metrics.log rename to cerberus/.frama-c/trap_representation_3.parse/metrics.log diff --git a/cerberus/trap_representation_1.eva/warnings.log b/cerberus/.frama-c/trap_representation_3.parse/warnings.log similarity index 100% rename from cerberus/trap_representation_1.eva/warnings.log rename to cerberus/.frama-c/trap_representation_3.parse/warnings.log diff --git a/cerberus/ubc_addr_null_1.eva/alarms.csv b/cerberus/.frama-c/ubc_addr_null_1.eva/alarms.csv similarity index 100% rename from cerberus/ubc_addr_null_1.eva/alarms.csv rename to cerberus/.frama-c/ubc_addr_null_1.eva/alarms.csv diff --git a/cerberus/ubc_addr_null_1.eva/metrics.log b/cerberus/.frama-c/ubc_addr_null_1.eva/metrics.log similarity index 100% rename from cerberus/ubc_addr_null_1.eva/metrics.log rename to cerberus/.frama-c/ubc_addr_null_1.eva/metrics.log diff --git a/cerberus/ubc_addr_null_1.eva/nonterm.log b/cerberus/.frama-c/ubc_addr_null_1.eva/nonterm.log similarity index 100% rename from cerberus/ubc_addr_null_1.eva/nonterm.log rename to cerberus/.frama-c/ubc_addr_null_1.eva/nonterm.log diff --git a/cerberus/trap_representation_1.parse/warnings.log b/cerberus/.frama-c/ubc_addr_null_1.eva/warnings.log similarity index 100% rename from cerberus/trap_representation_1.parse/warnings.log rename to cerberus/.frama-c/ubc_addr_null_1.eva/warnings.log diff --git a/cerberus/ubc_addr_null_1.parse/framac.ast b/cerberus/.frama-c/ubc_addr_null_1.parse/framac.ast similarity index 100% rename from cerberus/ubc_addr_null_1.parse/framac.ast rename to cerberus/.frama-c/ubc_addr_null_1.parse/framac.ast diff --git a/cerberus/ubc_addr_null_1.parse/metrics.log b/cerberus/.frama-c/ubc_addr_null_1.parse/metrics.log similarity index 100% rename from cerberus/ubc_addr_null_1.parse/metrics.log rename to cerberus/.frama-c/ubc_addr_null_1.parse/metrics.log diff --git a/cerberus/trap_representation_2.eva/warnings.log b/cerberus/.frama-c/ubc_addr_null_1.parse/warnings.log similarity index 100% rename from cerberus/trap_representation_2.eva/warnings.log rename to cerberus/.frama-c/ubc_addr_null_1.parse/warnings.log diff --git a/cerberus/union_punning_gcc_1.eva/alarms.csv b/cerberus/.frama-c/union_punning_gcc_1.eva/alarms.csv similarity index 100% rename from cerberus/union_punning_gcc_1.eva/alarms.csv rename to cerberus/.frama-c/union_punning_gcc_1.eva/alarms.csv diff --git a/cerberus/union_punning_gcc_1.eva/metrics.log b/cerberus/.frama-c/union_punning_gcc_1.eva/metrics.log similarity index 100% rename from cerberus/union_punning_gcc_1.eva/metrics.log rename to cerberus/.frama-c/union_punning_gcc_1.eva/metrics.log diff --git a/cerberus/union_punning_gcc_1.eva/nonterm.log b/cerberus/.frama-c/union_punning_gcc_1.eva/nonterm.log similarity index 100% rename from cerberus/union_punning_gcc_1.eva/nonterm.log rename to cerberus/.frama-c/union_punning_gcc_1.eva/nonterm.log diff --git a/cerberus/trap_representation_2.parse/warnings.log b/cerberus/.frama-c/union_punning_gcc_1.eva/warnings.log similarity index 100% rename from cerberus/trap_representation_2.parse/warnings.log rename to cerberus/.frama-c/union_punning_gcc_1.eva/warnings.log diff --git a/cerberus/union_punning_gcc_1.parse/framac.ast b/cerberus/.frama-c/union_punning_gcc_1.parse/framac.ast similarity index 100% rename from cerberus/union_punning_gcc_1.parse/framac.ast rename to cerberus/.frama-c/union_punning_gcc_1.parse/framac.ast diff --git a/cerberus/union_punning_gcc_1.parse/metrics.log b/cerberus/.frama-c/union_punning_gcc_1.parse/metrics.log similarity index 100% rename from cerberus/union_punning_gcc_1.parse/metrics.log rename to cerberus/.frama-c/union_punning_gcc_1.parse/metrics.log diff --git a/cerberus/union_punning_gcc_1.parse/warnings.log b/cerberus/.frama-c/union_punning_gcc_1.parse/warnings.log similarity index 100% rename from cerberus/union_punning_gcc_1.parse/warnings.log rename to cerberus/.frama-c/union_punning_gcc_1.parse/warnings.log diff --git a/cerberus/union_punning_gcc_2.eva/alarms.csv b/cerberus/.frama-c/union_punning_gcc_2.eva/alarms.csv similarity index 100% rename from cerberus/union_punning_gcc_2.eva/alarms.csv rename to cerberus/.frama-c/union_punning_gcc_2.eva/alarms.csv diff --git a/cerberus/union_punning_gcc_2.eva/metrics.log b/cerberus/.frama-c/union_punning_gcc_2.eva/metrics.log similarity index 100% rename from cerberus/union_punning_gcc_2.eva/metrics.log rename to cerberus/.frama-c/union_punning_gcc_2.eva/metrics.log diff --git a/cerberus/union_punning_gcc_2.eva/nonterm.log b/cerberus/.frama-c/union_punning_gcc_2.eva/nonterm.log similarity index 100% rename from cerberus/union_punning_gcc_2.eva/nonterm.log rename to cerberus/.frama-c/union_punning_gcc_2.eva/nonterm.log diff --git a/cerberus/trap_representation_3.eva/warnings.log b/cerberus/.frama-c/union_punning_gcc_2.eva/warnings.log similarity index 100% rename from cerberus/trap_representation_3.eva/warnings.log rename to cerberus/.frama-c/union_punning_gcc_2.eva/warnings.log diff --git a/cerberus/union_punning_gcc_2.parse/framac.ast b/cerberus/.frama-c/union_punning_gcc_2.parse/framac.ast similarity index 100% rename from cerberus/union_punning_gcc_2.parse/framac.ast rename to cerberus/.frama-c/union_punning_gcc_2.parse/framac.ast diff --git a/cerberus/union_punning_gcc_2.parse/metrics.log b/cerberus/.frama-c/union_punning_gcc_2.parse/metrics.log similarity index 100% rename from cerberus/union_punning_gcc_2.parse/metrics.log rename to cerberus/.frama-c/union_punning_gcc_2.parse/metrics.log diff --git a/cerberus/union_punning_gcc_2.parse/warnings.log b/cerberus/.frama-c/union_punning_gcc_2.parse/warnings.log similarity index 100% rename from cerberus/union_punning_gcc_2.parse/warnings.log rename to cerberus/.frama-c/union_punning_gcc_2.parse/warnings.log diff --git a/cerberus/union_punning_gcc_3.eva/alarms.csv b/cerberus/.frama-c/union_punning_gcc_3.eva/alarms.csv similarity index 100% rename from cerberus/union_punning_gcc_3.eva/alarms.csv rename to cerberus/.frama-c/union_punning_gcc_3.eva/alarms.csv diff --git a/cerberus/union_punning_gcc_3.eva/metrics.log b/cerberus/.frama-c/union_punning_gcc_3.eva/metrics.log similarity index 100% rename from cerberus/union_punning_gcc_3.eva/metrics.log rename to cerberus/.frama-c/union_punning_gcc_3.eva/metrics.log diff --git a/cerberus/union_punning_gcc_3.eva/nonterm.log b/cerberus/.frama-c/union_punning_gcc_3.eva/nonterm.log similarity index 100% rename from cerberus/union_punning_gcc_3.eva/nonterm.log rename to cerberus/.frama-c/union_punning_gcc_3.eva/nonterm.log diff --git a/cerberus/trap_representation_3.parse/warnings.log b/cerberus/.frama-c/union_punning_gcc_3.eva/warnings.log similarity index 100% rename from cerberus/trap_representation_3.parse/warnings.log rename to cerberus/.frama-c/union_punning_gcc_3.eva/warnings.log diff --git a/cerberus/union_punning_gcc_3.parse/framac.ast b/cerberus/.frama-c/union_punning_gcc_3.parse/framac.ast similarity index 100% rename from cerberus/union_punning_gcc_3.parse/framac.ast rename to cerberus/.frama-c/union_punning_gcc_3.parse/framac.ast diff --git a/cerberus/union_punning_gcc_3.parse/metrics.log b/cerberus/.frama-c/union_punning_gcc_3.parse/metrics.log similarity index 100% rename from cerberus/union_punning_gcc_3.parse/metrics.log rename to cerberus/.frama-c/union_punning_gcc_3.parse/metrics.log diff --git a/cerberus/union_punning_gcc_3.parse/warnings.log b/cerberus/.frama-c/union_punning_gcc_3.parse/warnings.log similarity index 100% rename from cerberus/union_punning_gcc_3.parse/warnings.log rename to cerberus/.frama-c/union_punning_gcc_3.parse/warnings.log diff --git a/cerberus/unspecified_value_control_flow_choice.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_control_flow_choice.eva/alarms.csv similarity index 100% rename from cerberus/unspecified_value_control_flow_choice.eva/alarms.csv rename to cerberus/.frama-c/unspecified_value_control_flow_choice.eva/alarms.csv diff --git a/cerberus/unspecified_value_control_flow_choice.eva/metrics.log b/cerberus/.frama-c/unspecified_value_control_flow_choice.eva/metrics.log similarity index 100% rename from cerberus/unspecified_value_control_flow_choice.eva/metrics.log rename to cerberus/.frama-c/unspecified_value_control_flow_choice.eva/metrics.log diff --git a/cerberus/unspecified_value_control_flow_choice.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_control_flow_choice.eva/nonterm.log similarity index 100% rename from cerberus/unspecified_value_control_flow_choice.eva/nonterm.log rename to cerberus/.frama-c/unspecified_value_control_flow_choice.eva/nonterm.log diff --git a/cerberus/ubc_addr_null_1.eva/warnings.log b/cerberus/.frama-c/unspecified_value_control_flow_choice.eva/warnings.log similarity index 100% rename from cerberus/ubc_addr_null_1.eva/warnings.log rename to cerberus/.frama-c/unspecified_value_control_flow_choice.eva/warnings.log diff --git a/cerberus/unspecified_value_control_flow_choice.parse/framac.ast b/cerberus/.frama-c/unspecified_value_control_flow_choice.parse/framac.ast similarity index 100% rename from cerberus/unspecified_value_control_flow_choice.parse/framac.ast rename to cerberus/.frama-c/unspecified_value_control_flow_choice.parse/framac.ast diff --git a/cerberus/unspecified_value_control_flow_choice.parse/metrics.log b/cerberus/.frama-c/unspecified_value_control_flow_choice.parse/metrics.log similarity index 100% rename from cerberus/unspecified_value_control_flow_choice.parse/metrics.log rename to cerberus/.frama-c/unspecified_value_control_flow_choice.parse/metrics.log diff --git a/cerberus/ubc_addr_null_1.parse/warnings.log b/cerberus/.frama-c/unspecified_value_control_flow_choice.parse/warnings.log similarity index 100% rename from cerberus/ubc_addr_null_1.parse/warnings.log rename to cerberus/.frama-c/unspecified_value_control_flow_choice.parse/warnings.log diff --git a/cerberus/unspecified_value_daemonic_1.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_daemonic_1.eva/alarms.csv similarity index 100% rename from cerberus/unspecified_value_daemonic_1.eva/alarms.csv rename to cerberus/.frama-c/unspecified_value_daemonic_1.eva/alarms.csv diff --git a/cerberus/unspecified_value_daemonic_1.eva/metrics.log b/cerberus/.frama-c/unspecified_value_daemonic_1.eva/metrics.log similarity index 100% rename from cerberus/unspecified_value_daemonic_1.eva/metrics.log rename to cerberus/.frama-c/unspecified_value_daemonic_1.eva/metrics.log diff --git a/cerberus/unspecified_value_daemonic_1.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_daemonic_1.eva/nonterm.log similarity index 100% rename from cerberus/unspecified_value_daemonic_1.eva/nonterm.log rename to cerberus/.frama-c/unspecified_value_daemonic_1.eva/nonterm.log diff --git a/cerberus/union_punning_gcc_1.eva/warnings.log b/cerberus/.frama-c/unspecified_value_daemonic_1.eva/warnings.log similarity index 100% rename from cerberus/union_punning_gcc_1.eva/warnings.log rename to cerberus/.frama-c/unspecified_value_daemonic_1.eva/warnings.log diff --git a/cerberus/unspecified_value_daemonic_1.parse/framac.ast b/cerberus/.frama-c/unspecified_value_daemonic_1.parse/framac.ast similarity index 100% rename from cerberus/unspecified_value_daemonic_1.parse/framac.ast rename to cerberus/.frama-c/unspecified_value_daemonic_1.parse/framac.ast diff --git a/cerberus/unspecified_value_daemonic_1.parse/metrics.log b/cerberus/.frama-c/unspecified_value_daemonic_1.parse/metrics.log similarity index 100% rename from cerberus/unspecified_value_daemonic_1.parse/metrics.log rename to cerberus/.frama-c/unspecified_value_daemonic_1.parse/metrics.log diff --git a/cerberus/union_punning_gcc_2.eva/warnings.log b/cerberus/.frama-c/unspecified_value_daemonic_1.parse/warnings.log similarity index 100% rename from cerberus/union_punning_gcc_2.eva/warnings.log rename to cerberus/.frama-c/unspecified_value_daemonic_1.parse/warnings.log diff --git a/cerberus/unspecified_value_library_call_argument.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_library_call_argument.eva/alarms.csv similarity index 100% rename from cerberus/unspecified_value_library_call_argument.eva/alarms.csv rename to cerberus/.frama-c/unspecified_value_library_call_argument.eva/alarms.csv diff --git a/cerberus/unspecified_value_library_call_argument.eva/metrics.log b/cerberus/.frama-c/unspecified_value_library_call_argument.eva/metrics.log similarity index 100% rename from cerberus/unspecified_value_library_call_argument.eva/metrics.log rename to cerberus/.frama-c/unspecified_value_library_call_argument.eva/metrics.log diff --git a/cerberus/unspecified_value_library_call_argument.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_library_call_argument.eva/nonterm.log similarity index 100% rename from cerberus/unspecified_value_library_call_argument.eva/nonterm.log rename to cerberus/.frama-c/unspecified_value_library_call_argument.eva/nonterm.log diff --git a/cerberus/union_punning_gcc_3.eva/warnings.log b/cerberus/.frama-c/unspecified_value_library_call_argument.eva/warnings.log similarity index 100% rename from cerberus/union_punning_gcc_3.eva/warnings.log rename to cerberus/.frama-c/unspecified_value_library_call_argument.eva/warnings.log diff --git a/cerberus/unspecified_value_library_call_argument.parse/framac.ast b/cerberus/.frama-c/unspecified_value_library_call_argument.parse/framac.ast similarity index 100% rename from cerberus/unspecified_value_library_call_argument.parse/framac.ast rename to cerberus/.frama-c/unspecified_value_library_call_argument.parse/framac.ast diff --git a/cerberus/unspecified_value_library_call_argument.parse/metrics.log b/cerberus/.frama-c/unspecified_value_library_call_argument.parse/metrics.log similarity index 100% rename from cerberus/unspecified_value_library_call_argument.parse/metrics.log rename to cerberus/.frama-c/unspecified_value_library_call_argument.parse/metrics.log diff --git a/cerberus/unspecified_value_control_flow_choice.eva/warnings.log b/cerberus/.frama-c/unspecified_value_library_call_argument.parse/warnings.log similarity index 100% rename from cerberus/unspecified_value_control_flow_choice.eva/warnings.log rename to cerberus/.frama-c/unspecified_value_library_call_argument.parse/warnings.log diff --git a/cerberus/unspecified_value_representation_bytes_1.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_representation_bytes_1.eva/alarms.csv similarity index 100% rename from cerberus/unspecified_value_representation_bytes_1.eva/alarms.csv rename to cerberus/.frama-c/unspecified_value_representation_bytes_1.eva/alarms.csv diff --git a/cerberus/unspecified_value_representation_bytes_1.eva/metrics.log b/cerberus/.frama-c/unspecified_value_representation_bytes_1.eva/metrics.log similarity index 100% rename from cerberus/unspecified_value_representation_bytes_1.eva/metrics.log rename to cerberus/.frama-c/unspecified_value_representation_bytes_1.eva/metrics.log diff --git a/cerberus/unspecified_value_representation_bytes_1.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_representation_bytes_1.eva/nonterm.log similarity index 100% rename from cerberus/unspecified_value_representation_bytes_1.eva/nonterm.log rename to cerberus/.frama-c/unspecified_value_representation_bytes_1.eva/nonterm.log diff --git a/cerberus/.frama-c/unspecified_value_representation_bytes_1.eva/warnings.log b/cerberus/.frama-c/unspecified_value_representation_bytes_1.eva/warnings.log new file mode 100644 index 0000000000000000000000000000000000000000..14647f2485bd840524d36da174531e6de0237c15 --- /dev/null +++ b/cerberus/.frama-c/unspecified_value_representation_bytes_1.eva/warnings.log @@ -0,0 +1 @@ +[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration. diff --git a/cerberus/unspecified_value_representation_bytes_1.parse/framac.ast b/cerberus/.frama-c/unspecified_value_representation_bytes_1.parse/framac.ast similarity index 100% rename from cerberus/unspecified_value_representation_bytes_1.parse/framac.ast rename to cerberus/.frama-c/unspecified_value_representation_bytes_1.parse/framac.ast diff --git a/cerberus/unspecified_value_representation_bytes_1.parse/metrics.log b/cerberus/.frama-c/unspecified_value_representation_bytes_1.parse/metrics.log similarity index 100% rename from cerberus/unspecified_value_representation_bytes_1.parse/metrics.log rename to cerberus/.frama-c/unspecified_value_representation_bytes_1.parse/metrics.log diff --git a/cerberus/unspecified_value_representation_bytes_1.parse/warnings.log b/cerberus/.frama-c/unspecified_value_representation_bytes_1.parse/warnings.log similarity index 100% rename from cerberus/unspecified_value_representation_bytes_1.parse/warnings.log rename to cerberus/.frama-c/unspecified_value_representation_bytes_1.parse/warnings.log diff --git a/cerberus/unspecified_value_representation_bytes_2.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_representation_bytes_2.eva/alarms.csv similarity index 100% rename from cerberus/unspecified_value_representation_bytes_2.eva/alarms.csv rename to cerberus/.frama-c/unspecified_value_representation_bytes_2.eva/alarms.csv diff --git a/cerberus/unspecified_value_representation_bytes_2.eva/metrics.log b/cerberus/.frama-c/unspecified_value_representation_bytes_2.eva/metrics.log similarity index 100% rename from cerberus/unspecified_value_representation_bytes_2.eva/metrics.log rename to cerberus/.frama-c/unspecified_value_representation_bytes_2.eva/metrics.log diff --git a/cerberus/unspecified_value_representation_bytes_2.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_representation_bytes_2.eva/nonterm.log similarity index 100% rename from cerberus/unspecified_value_representation_bytes_2.eva/nonterm.log rename to cerberus/.frama-c/unspecified_value_representation_bytes_2.eva/nonterm.log diff --git a/cerberus/unspecified_value_control_flow_choice.parse/warnings.log b/cerberus/.frama-c/unspecified_value_representation_bytes_2.eva/warnings.log similarity index 100% rename from cerberus/unspecified_value_control_flow_choice.parse/warnings.log rename to cerberus/.frama-c/unspecified_value_representation_bytes_2.eva/warnings.log diff --git a/cerberus/unspecified_value_representation_bytes_2.parse/framac.ast b/cerberus/.frama-c/unspecified_value_representation_bytes_2.parse/framac.ast similarity index 100% rename from cerberus/unspecified_value_representation_bytes_2.parse/framac.ast rename to cerberus/.frama-c/unspecified_value_representation_bytes_2.parse/framac.ast diff --git a/cerberus/unspecified_value_representation_bytes_2.parse/metrics.log b/cerberus/.frama-c/unspecified_value_representation_bytes_2.parse/metrics.log similarity index 100% rename from cerberus/unspecified_value_representation_bytes_2.parse/metrics.log rename to cerberus/.frama-c/unspecified_value_representation_bytes_2.parse/metrics.log diff --git a/cerberus/unspecified_value_representation_bytes_2.parse/warnings.log b/cerberus/.frama-c/unspecified_value_representation_bytes_2.parse/warnings.log similarity index 100% rename from cerberus/unspecified_value_representation_bytes_2.parse/warnings.log rename to cerberus/.frama-c/unspecified_value_representation_bytes_2.parse/warnings.log diff --git a/cerberus/unspecified_value_representation_bytes_3.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_representation_bytes_3.eva/alarms.csv similarity index 100% rename from cerberus/unspecified_value_representation_bytes_3.eva/alarms.csv rename to cerberus/.frama-c/unspecified_value_representation_bytes_3.eva/alarms.csv diff --git a/cerberus/unspecified_value_representation_bytes_3.eva/metrics.log b/cerberus/.frama-c/unspecified_value_representation_bytes_3.eva/metrics.log similarity index 100% rename from cerberus/unspecified_value_representation_bytes_3.eva/metrics.log rename to cerberus/.frama-c/unspecified_value_representation_bytes_3.eva/metrics.log diff --git a/cerberus/unspecified_value_representation_bytes_3.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_representation_bytes_3.eva/nonterm.log similarity index 100% rename from cerberus/unspecified_value_representation_bytes_3.eva/nonterm.log rename to cerberus/.frama-c/unspecified_value_representation_bytes_3.eva/nonterm.log diff --git a/cerberus/unspecified_value_daemonic_1.eva/warnings.log b/cerberus/.frama-c/unspecified_value_representation_bytes_3.eva/warnings.log similarity index 100% rename from cerberus/unspecified_value_daemonic_1.eva/warnings.log rename to cerberus/.frama-c/unspecified_value_representation_bytes_3.eva/warnings.log diff --git a/cerberus/unspecified_value_representation_bytes_3.parse/framac.ast b/cerberus/.frama-c/unspecified_value_representation_bytes_3.parse/framac.ast similarity index 100% rename from cerberus/unspecified_value_representation_bytes_3.parse/framac.ast rename to cerberus/.frama-c/unspecified_value_representation_bytes_3.parse/framac.ast diff --git a/cerberus/unspecified_value_representation_bytes_3.parse/metrics.log b/cerberus/.frama-c/unspecified_value_representation_bytes_3.parse/metrics.log similarity index 100% rename from cerberus/unspecified_value_representation_bytes_3.parse/metrics.log rename to cerberus/.frama-c/unspecified_value_representation_bytes_3.parse/metrics.log diff --git a/cerberus/unspecified_value_representation_bytes_3.parse/warnings.log b/cerberus/.frama-c/unspecified_value_representation_bytes_3.parse/warnings.log similarity index 100% rename from cerberus/unspecified_value_representation_bytes_3.parse/warnings.log rename to cerberus/.frama-c/unspecified_value_representation_bytes_3.parse/warnings.log diff --git a/cerberus/unspecified_value_representation_bytes_4.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_representation_bytes_4.eva/alarms.csv similarity index 100% rename from cerberus/unspecified_value_representation_bytes_4.eva/alarms.csv rename to cerberus/.frama-c/unspecified_value_representation_bytes_4.eva/alarms.csv diff --git a/cerberus/unspecified_value_representation_bytes_4.eva/metrics.log b/cerberus/.frama-c/unspecified_value_representation_bytes_4.eva/metrics.log similarity index 100% rename from cerberus/unspecified_value_representation_bytes_4.eva/metrics.log rename to cerberus/.frama-c/unspecified_value_representation_bytes_4.eva/metrics.log diff --git a/cerberus/unspecified_value_representation_bytes_4.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_representation_bytes_4.eva/nonterm.log similarity index 100% rename from cerberus/unspecified_value_representation_bytes_4.eva/nonterm.log rename to cerberus/.frama-c/unspecified_value_representation_bytes_4.eva/nonterm.log diff --git a/cerberus/unspecified_value_daemonic_1.parse/warnings.log b/cerberus/.frama-c/unspecified_value_representation_bytes_4.eva/warnings.log similarity index 100% rename from cerberus/unspecified_value_daemonic_1.parse/warnings.log rename to cerberus/.frama-c/unspecified_value_representation_bytes_4.eva/warnings.log diff --git a/cerberus/unspecified_value_representation_bytes_4.parse/framac.ast b/cerberus/.frama-c/unspecified_value_representation_bytes_4.parse/framac.ast similarity index 100% rename from cerberus/unspecified_value_representation_bytes_4.parse/framac.ast rename to cerberus/.frama-c/unspecified_value_representation_bytes_4.parse/framac.ast diff --git a/cerberus/unspecified_value_representation_bytes_4.parse/metrics.log b/cerberus/.frama-c/unspecified_value_representation_bytes_4.parse/metrics.log similarity index 100% rename from cerberus/unspecified_value_representation_bytes_4.parse/metrics.log rename to cerberus/.frama-c/unspecified_value_representation_bytes_4.parse/metrics.log diff --git a/cerberus/unspecified_value_representation_bytes_4.parse/warnings.log b/cerberus/.frama-c/unspecified_value_representation_bytes_4.parse/warnings.log similarity index 100% rename from cerberus/unspecified_value_representation_bytes_4.parse/warnings.log rename to cerberus/.frama-c/unspecified_value_representation_bytes_4.parse/warnings.log diff --git a/cerberus/unspecified_value_stability.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_stability.eva/alarms.csv similarity index 100% rename from cerberus/unspecified_value_stability.eva/alarms.csv rename to cerberus/.frama-c/unspecified_value_stability.eva/alarms.csv diff --git a/cerberus/unspecified_value_stability.eva/metrics.log b/cerberus/.frama-c/unspecified_value_stability.eva/metrics.log similarity index 100% rename from cerberus/unspecified_value_stability.eva/metrics.log rename to cerberus/.frama-c/unspecified_value_stability.eva/metrics.log diff --git a/cerberus/unspecified_value_stability.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_stability.eva/nonterm.log similarity index 100% rename from cerberus/unspecified_value_stability.eva/nonterm.log rename to cerberus/.frama-c/unspecified_value_stability.eva/nonterm.log diff --git a/cerberus/unspecified_value_library_call_argument.eva/warnings.log b/cerberus/.frama-c/unspecified_value_stability.eva/warnings.log similarity index 100% rename from cerberus/unspecified_value_library_call_argument.eva/warnings.log rename to cerberus/.frama-c/unspecified_value_stability.eva/warnings.log diff --git a/cerberus/unspecified_value_stability.parse/framac.ast b/cerberus/.frama-c/unspecified_value_stability.parse/framac.ast similarity index 100% rename from cerberus/unspecified_value_stability.parse/framac.ast rename to cerberus/.frama-c/unspecified_value_stability.parse/framac.ast diff --git a/cerberus/unspecified_value_stability.parse/metrics.log b/cerberus/.frama-c/unspecified_value_stability.parse/metrics.log similarity index 100% rename from cerberus/unspecified_value_stability.parse/metrics.log rename to cerberus/.frama-c/unspecified_value_stability.parse/metrics.log diff --git a/cerberus/unspecified_value_stability.parse/warnings.log b/cerberus/.frama-c/unspecified_value_stability.parse/warnings.log similarity index 100% rename from cerberus/unspecified_value_stability.parse/warnings.log rename to cerberus/.frama-c/unspecified_value_stability.parse/warnings.log diff --git a/cerberus/unspecified_value_strictness_and_1.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_strictness_and_1.eva/alarms.csv similarity index 100% rename from cerberus/unspecified_value_strictness_and_1.eva/alarms.csv rename to cerberus/.frama-c/unspecified_value_strictness_and_1.eva/alarms.csv diff --git a/cerberus/unspecified_value_strictness_and_1.eva/metrics.log b/cerberus/.frama-c/unspecified_value_strictness_and_1.eva/metrics.log similarity index 100% rename from cerberus/unspecified_value_strictness_and_1.eva/metrics.log rename to cerberus/.frama-c/unspecified_value_strictness_and_1.eva/metrics.log diff --git a/cerberus/unspecified_value_strictness_and_1.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_strictness_and_1.eva/nonterm.log similarity index 100% rename from cerberus/unspecified_value_strictness_and_1.eva/nonterm.log rename to cerberus/.frama-c/unspecified_value_strictness_and_1.eva/nonterm.log diff --git a/cerberus/unspecified_value_library_call_argument.parse/warnings.log b/cerberus/.frama-c/unspecified_value_strictness_and_1.eva/warnings.log similarity index 100% rename from cerberus/unspecified_value_library_call_argument.parse/warnings.log rename to cerberus/.frama-c/unspecified_value_strictness_and_1.eva/warnings.log diff --git a/cerberus/unspecified_value_strictness_and_1.parse/framac.ast b/cerberus/.frama-c/unspecified_value_strictness_and_1.parse/framac.ast similarity index 100% rename from cerberus/unspecified_value_strictness_and_1.parse/framac.ast rename to cerberus/.frama-c/unspecified_value_strictness_and_1.parse/framac.ast diff --git a/cerberus/unspecified_value_strictness_and_1.parse/metrics.log b/cerberus/.frama-c/unspecified_value_strictness_and_1.parse/metrics.log similarity index 100% rename from cerberus/unspecified_value_strictness_and_1.parse/metrics.log rename to cerberus/.frama-c/unspecified_value_strictness_and_1.parse/metrics.log diff --git a/cerberus/unspecified_value_representation_bytes_1.eva/warnings.log b/cerberus/.frama-c/unspecified_value_strictness_and_1.parse/warnings.log similarity index 100% rename from cerberus/unspecified_value_representation_bytes_1.eva/warnings.log rename to cerberus/.frama-c/unspecified_value_strictness_and_1.parse/warnings.log diff --git a/cerberus/unspecified_value_strictness_int.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_strictness_int.eva/alarms.csv similarity index 100% rename from cerberus/unspecified_value_strictness_int.eva/alarms.csv rename to cerberus/.frama-c/unspecified_value_strictness_int.eva/alarms.csv diff --git a/cerberus/unspecified_value_strictness_int.eva/metrics.log b/cerberus/.frama-c/unspecified_value_strictness_int.eva/metrics.log similarity index 100% rename from cerberus/unspecified_value_strictness_int.eva/metrics.log rename to cerberus/.frama-c/unspecified_value_strictness_int.eva/metrics.log diff --git a/cerberus/unspecified_value_strictness_int.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_strictness_int.eva/nonterm.log similarity index 100% rename from cerberus/unspecified_value_strictness_int.eva/nonterm.log rename to cerberus/.frama-c/unspecified_value_strictness_int.eva/nonterm.log diff --git a/cerberus/unspecified_value_representation_bytes_2.eva/warnings.log b/cerberus/.frama-c/unspecified_value_strictness_int.eva/warnings.log similarity index 100% rename from cerberus/unspecified_value_representation_bytes_2.eva/warnings.log rename to cerberus/.frama-c/unspecified_value_strictness_int.eva/warnings.log diff --git a/cerberus/unspecified_value_strictness_int.parse/framac.ast b/cerberus/.frama-c/unspecified_value_strictness_int.parse/framac.ast similarity index 100% rename from cerberus/unspecified_value_strictness_int.parse/framac.ast rename to cerberus/.frama-c/unspecified_value_strictness_int.parse/framac.ast diff --git a/cerberus/unspecified_value_strictness_int.parse/metrics.log b/cerberus/.frama-c/unspecified_value_strictness_int.parse/metrics.log similarity index 100% rename from cerberus/unspecified_value_strictness_int.parse/metrics.log rename to cerberus/.frama-c/unspecified_value_strictness_int.parse/metrics.log diff --git a/cerberus/unspecified_value_representation_bytes_3.eva/warnings.log b/cerberus/.frama-c/unspecified_value_strictness_int.parse/warnings.log similarity index 100% rename from cerberus/unspecified_value_representation_bytes_3.eva/warnings.log rename to cerberus/.frama-c/unspecified_value_strictness_int.parse/warnings.log diff --git a/cerberus/unspecified_value_strictness_mod_1.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_strictness_mod_1.eva/alarms.csv similarity index 100% rename from cerberus/unspecified_value_strictness_mod_1.eva/alarms.csv rename to cerberus/.frama-c/unspecified_value_strictness_mod_1.eva/alarms.csv diff --git a/cerberus/unspecified_value_strictness_mod_1.eva/metrics.log b/cerberus/.frama-c/unspecified_value_strictness_mod_1.eva/metrics.log similarity index 100% rename from cerberus/unspecified_value_strictness_mod_1.eva/metrics.log rename to cerberus/.frama-c/unspecified_value_strictness_mod_1.eva/metrics.log diff --git a/cerberus/unspecified_value_strictness_mod_1.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_strictness_mod_1.eva/nonterm.log similarity index 100% rename from cerberus/unspecified_value_strictness_mod_1.eva/nonterm.log rename to cerberus/.frama-c/unspecified_value_strictness_mod_1.eva/nonterm.log diff --git a/cerberus/unspecified_value_representation_bytes_4.eva/warnings.log b/cerberus/.frama-c/unspecified_value_strictness_mod_1.eva/warnings.log similarity index 100% rename from cerberus/unspecified_value_representation_bytes_4.eva/warnings.log rename to cerberus/.frama-c/unspecified_value_strictness_mod_1.eva/warnings.log diff --git a/cerberus/unspecified_value_strictness_mod_1.parse/framac.ast b/cerberus/.frama-c/unspecified_value_strictness_mod_1.parse/framac.ast similarity index 100% rename from cerberus/unspecified_value_strictness_mod_1.parse/framac.ast rename to cerberus/.frama-c/unspecified_value_strictness_mod_1.parse/framac.ast diff --git a/cerberus/unspecified_value_strictness_mod_1.parse/metrics.log b/cerberus/.frama-c/unspecified_value_strictness_mod_1.parse/metrics.log similarity index 100% rename from cerberus/unspecified_value_strictness_mod_1.parse/metrics.log rename to cerberus/.frama-c/unspecified_value_strictness_mod_1.parse/metrics.log diff --git a/cerberus/unspecified_value_stability.eva/warnings.log b/cerberus/.frama-c/unspecified_value_strictness_mod_1.parse/warnings.log similarity index 100% rename from cerberus/unspecified_value_stability.eva/warnings.log rename to cerberus/.frama-c/unspecified_value_strictness_mod_1.parse/warnings.log diff --git a/cerberus/unspecified_value_strictness_mod_2.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_strictness_mod_2.eva/alarms.csv similarity index 100% rename from cerberus/unspecified_value_strictness_mod_2.eva/alarms.csv rename to cerberus/.frama-c/unspecified_value_strictness_mod_2.eva/alarms.csv diff --git a/cerberus/unspecified_value_strictness_mod_2.eva/metrics.log b/cerberus/.frama-c/unspecified_value_strictness_mod_2.eva/metrics.log similarity index 100% rename from cerberus/unspecified_value_strictness_mod_2.eva/metrics.log rename to cerberus/.frama-c/unspecified_value_strictness_mod_2.eva/metrics.log diff --git a/cerberus/unspecified_value_strictness_mod_2.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_strictness_mod_2.eva/nonterm.log similarity index 100% rename from cerberus/unspecified_value_strictness_mod_2.eva/nonterm.log rename to cerberus/.frama-c/unspecified_value_strictness_mod_2.eva/nonterm.log diff --git a/cerberus/unspecified_value_strictness_and_1.eva/warnings.log b/cerberus/.frama-c/unspecified_value_strictness_mod_2.eva/warnings.log similarity index 100% rename from cerberus/unspecified_value_strictness_and_1.eva/warnings.log rename to cerberus/.frama-c/unspecified_value_strictness_mod_2.eva/warnings.log diff --git a/cerberus/unspecified_value_strictness_mod_2.parse/framac.ast b/cerberus/.frama-c/unspecified_value_strictness_mod_2.parse/framac.ast similarity index 100% rename from cerberus/unspecified_value_strictness_mod_2.parse/framac.ast rename to cerberus/.frama-c/unspecified_value_strictness_mod_2.parse/framac.ast diff --git a/cerberus/unspecified_value_strictness_mod_2.parse/metrics.log b/cerberus/.frama-c/unspecified_value_strictness_mod_2.parse/metrics.log similarity index 100% rename from cerberus/unspecified_value_strictness_mod_2.parse/metrics.log rename to cerberus/.frama-c/unspecified_value_strictness_mod_2.parse/metrics.log diff --git a/cerberus/unspecified_value_strictness_and_1.parse/warnings.log b/cerberus/.frama-c/unspecified_value_strictness_mod_2.parse/warnings.log similarity index 100% rename from cerberus/unspecified_value_strictness_and_1.parse/warnings.log rename to cerberus/.frama-c/unspecified_value_strictness_mod_2.parse/warnings.log diff --git a/cerberus/unspecified_value_strictness_unsigned_char.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_strictness_unsigned_char.eva/alarms.csv similarity index 100% rename from cerberus/unspecified_value_strictness_unsigned_char.eva/alarms.csv rename to cerberus/.frama-c/unspecified_value_strictness_unsigned_char.eva/alarms.csv diff --git a/cerberus/unspecified_value_strictness_unsigned_char.eva/metrics.log b/cerberus/.frama-c/unspecified_value_strictness_unsigned_char.eva/metrics.log similarity index 100% rename from cerberus/unspecified_value_strictness_unsigned_char.eva/metrics.log rename to cerberus/.frama-c/unspecified_value_strictness_unsigned_char.eva/metrics.log diff --git a/cerberus/unspecified_value_strictness_unsigned_char.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_strictness_unsigned_char.eva/nonterm.log similarity index 100% rename from cerberus/unspecified_value_strictness_unsigned_char.eva/nonterm.log rename to cerberus/.frama-c/unspecified_value_strictness_unsigned_char.eva/nonterm.log diff --git a/cerberus/unspecified_value_strictness_int.eva/warnings.log b/cerberus/.frama-c/unspecified_value_strictness_unsigned_char.eva/warnings.log similarity index 100% rename from cerberus/unspecified_value_strictness_int.eva/warnings.log rename to cerberus/.frama-c/unspecified_value_strictness_unsigned_char.eva/warnings.log diff --git a/cerberus/unspecified_value_strictness_unsigned_char.parse/framac.ast b/cerberus/.frama-c/unspecified_value_strictness_unsigned_char.parse/framac.ast similarity index 100% rename from cerberus/unspecified_value_strictness_unsigned_char.parse/framac.ast rename to cerberus/.frama-c/unspecified_value_strictness_unsigned_char.parse/framac.ast diff --git a/cerberus/unspecified_value_strictness_unsigned_char.parse/metrics.log b/cerberus/.frama-c/unspecified_value_strictness_unsigned_char.parse/metrics.log similarity index 100% rename from cerberus/unspecified_value_strictness_unsigned_char.parse/metrics.log rename to cerberus/.frama-c/unspecified_value_strictness_unsigned_char.parse/metrics.log diff --git a/cerberus/unspecified_value_strictness_int.parse/warnings.log b/cerberus/.frama-c/unspecified_value_strictness_unsigned_char.parse/warnings.log similarity index 100% rename from cerberus/unspecified_value_strictness_int.parse/warnings.log rename to cerberus/.frama-c/unspecified_value_strictness_unsigned_char.parse/warnings.log diff --git a/cerberus/unspecified_value_struct_copy.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_struct_copy.eva/alarms.csv similarity index 100% rename from cerberus/unspecified_value_struct_copy.eva/alarms.csv rename to cerberus/.frama-c/unspecified_value_struct_copy.eva/alarms.csv diff --git a/cerberus/unspecified_value_struct_copy.eva/metrics.log b/cerberus/.frama-c/unspecified_value_struct_copy.eva/metrics.log similarity index 100% rename from cerberus/unspecified_value_struct_copy.eva/metrics.log rename to cerberus/.frama-c/unspecified_value_struct_copy.eva/metrics.log diff --git a/cerberus/unspecified_value_struct_copy.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_struct_copy.eva/nonterm.log similarity index 100% rename from cerberus/unspecified_value_struct_copy.eva/nonterm.log rename to cerberus/.frama-c/unspecified_value_struct_copy.eva/nonterm.log diff --git a/cerberus/unspecified_value_strictness_mod_1.eva/warnings.log b/cerberus/.frama-c/unspecified_value_struct_copy.eva/warnings.log similarity index 100% rename from cerberus/unspecified_value_strictness_mod_1.eva/warnings.log rename to cerberus/.frama-c/unspecified_value_struct_copy.eva/warnings.log diff --git a/cerberus/unspecified_value_struct_copy.parse/framac.ast b/cerberus/.frama-c/unspecified_value_struct_copy.parse/framac.ast similarity index 100% rename from cerberus/unspecified_value_struct_copy.parse/framac.ast rename to cerberus/.frama-c/unspecified_value_struct_copy.parse/framac.ast diff --git a/cerberus/unspecified_value_struct_copy.parse/metrics.log b/cerberus/.frama-c/unspecified_value_struct_copy.parse/metrics.log similarity index 100% rename from cerberus/unspecified_value_struct_copy.parse/metrics.log rename to cerberus/.frama-c/unspecified_value_struct_copy.parse/metrics.log diff --git a/cerberus/unspecified_value_strictness_mod_1.parse/warnings.log b/cerberus/.frama-c/unspecified_value_struct_copy.parse/warnings.log similarity index 100% rename from cerberus/unspecified_value_strictness_mod_1.parse/warnings.log rename to cerberus/.frama-c/unspecified_value_struct_copy.parse/warnings.log diff --git a/cerberus/unspecified_value_union_1.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_union_1.eva/alarms.csv similarity index 100% rename from cerberus/unspecified_value_union_1.eva/alarms.csv rename to cerberus/.frama-c/unspecified_value_union_1.eva/alarms.csv diff --git a/cerberus/unspecified_value_union_1.eva/metrics.log b/cerberus/.frama-c/unspecified_value_union_1.eva/metrics.log similarity index 100% rename from cerberus/unspecified_value_union_1.eva/metrics.log rename to cerberus/.frama-c/unspecified_value_union_1.eva/metrics.log diff --git a/cerberus/unspecified_value_union_1.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_union_1.eva/nonterm.log similarity index 100% rename from cerberus/unspecified_value_union_1.eva/nonterm.log rename to cerberus/.frama-c/unspecified_value_union_1.eva/nonterm.log diff --git a/cerberus/unspecified_value_strictness_mod_2.eva/warnings.log b/cerberus/.frama-c/unspecified_value_union_1.eva/warnings.log similarity index 100% rename from cerberus/unspecified_value_strictness_mod_2.eva/warnings.log rename to cerberus/.frama-c/unspecified_value_union_1.eva/warnings.log diff --git a/cerberus/unspecified_value_union_1.parse/framac.ast b/cerberus/.frama-c/unspecified_value_union_1.parse/framac.ast similarity index 100% rename from cerberus/unspecified_value_union_1.parse/framac.ast rename to cerberus/.frama-c/unspecified_value_union_1.parse/framac.ast diff --git a/cerberus/unspecified_value_union_1.parse/metrics.log b/cerberus/.frama-c/unspecified_value_union_1.parse/metrics.log similarity index 100% rename from cerberus/unspecified_value_union_1.parse/metrics.log rename to cerberus/.frama-c/unspecified_value_union_1.parse/metrics.log diff --git a/cerberus/unspecified_value_strictness_mod_2.parse/warnings.log b/cerberus/.frama-c/unspecified_value_union_1.parse/warnings.log similarity index 100% rename from cerberus/unspecified_value_strictness_mod_2.parse/warnings.log rename to cerberus/.frama-c/unspecified_value_union_1.parse/warnings.log diff --git a/cerberus/write_union_same_prefix_visible.eva/alarms.csv b/cerberus/.frama-c/write_union_same_prefix_visible.eva/alarms.csv similarity index 100% rename from cerberus/write_union_same_prefix_visible.eva/alarms.csv rename to cerberus/.frama-c/write_union_same_prefix_visible.eva/alarms.csv diff --git a/cerberus/write_union_same_prefix_visible.eva/metrics.log b/cerberus/.frama-c/write_union_same_prefix_visible.eva/metrics.log similarity index 100% rename from cerberus/write_union_same_prefix_visible.eva/metrics.log rename to cerberus/.frama-c/write_union_same_prefix_visible.eva/metrics.log diff --git a/cerberus/write_union_same_prefix_visible.eva/nonterm.log b/cerberus/.frama-c/write_union_same_prefix_visible.eva/nonterm.log similarity index 100% rename from cerberus/write_union_same_prefix_visible.eva/nonterm.log rename to cerberus/.frama-c/write_union_same_prefix_visible.eva/nonterm.log diff --git a/cerberus/unspecified_value_strictness_unsigned_char.eva/warnings.log b/cerberus/.frama-c/write_union_same_prefix_visible.eva/warnings.log similarity index 100% rename from cerberus/unspecified_value_strictness_unsigned_char.eva/warnings.log rename to cerberus/.frama-c/write_union_same_prefix_visible.eva/warnings.log diff --git a/cerberus/write_union_same_prefix_visible.parse/framac.ast b/cerberus/.frama-c/write_union_same_prefix_visible.parse/framac.ast similarity index 100% rename from cerberus/write_union_same_prefix_visible.parse/framac.ast rename to cerberus/.frama-c/write_union_same_prefix_visible.parse/framac.ast diff --git a/cerberus/write_union_same_prefix_visible.parse/metrics.log b/cerberus/.frama-c/write_union_same_prefix_visible.parse/metrics.log similarity index 100% rename from cerberus/write_union_same_prefix_visible.parse/metrics.log rename to cerberus/.frama-c/write_union_same_prefix_visible.parse/metrics.log diff --git a/cerberus/unspecified_value_strictness_unsigned_char.parse/warnings.log b/cerberus/.frama-c/write_union_same_prefix_visible.parse/warnings.log similarity index 100% rename from cerberus/unspecified_value_strictness_unsigned_char.parse/warnings.log rename to cerberus/.frama-c/write_union_same_prefix_visible.parse/warnings.log diff --git a/cerberus/GNUmakefile b/cerberus/GNUmakefile deleted file mode 100644 index 89cb2356167d13d5789055afe2ee853179374934..0000000000000000000000000000000000000000 --- a/cerberus/GNUmakefile +++ /dev/null @@ -1,454 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED -# The flags below are only suggestions to use with Eva, and can be removed - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += -includefc_stubs.h - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += \ - -kernel-warn-key annot:missing-spec=abort \ - -kernel-warn-key typing:implicit-function-declaration=abort \ - -no-autoload-plugins -load-module eva,from,inout,metrics,nonterm,report,scope,variadic \ - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -eva-warn-key builtins:missing-spec=abort \ - -slevel 6000 \ - -TARGETS := \ -besson_blazy_wilke_6_2.eva \ -besson_blazy_wilke_bitfields_1.eva \ -besson_blazy_wilke_bitfields_1u.eva \ -besson_blazy_wilkie_Fig_1_adapted.eva \ -besson_blazy_wilkie_Fig_1.eva \ -besson_blazy_wilkie_Fig_2.eva \ -cast_struct_and_first_member_1.eva \ -cast_struct_inter_member_1.eva \ -cast_struct_isomorphic.eva \ -cast_struct_same_prefix.eva \ -cast_union_and_member_1.eva \ -cheri_01_deconst.eva \ -cheri_02_container.eva \ -cheri_03_ii.eva \ -cheri_03_ii_char.eva \ -cheri_04a_int_uintptr_t.eva \ -cheri_04b_int_unsigned_long.eva \ -cheri_05_ia.eva \ -cheri_06_mask.eva \ -cheri_07_wide.eva \ -cheri_08_last_word.eva \ -compcertMMv2-1.eva \ -compcertMMv2-2.eva \ -compcertMMv2-3.eva \ -compcertMMv2-4.eva \ -compcertMMv2-5.eva \ -compcertTSO-1.eva \ -compcertTSO-2.eva \ -effective_type_10.eva \ -effective_type_1.eva \ -effective_type_2.eva \ -effective_type_5.eva \ -effective_type_6.eva \ -effective_type_7.eva \ -effective_type_8.eva \ -effective_type_9.eva \ -frama-c-2013-03-13-2.eva \ -frama-c-2013-03-13-3.eva \ -frama-c-2013-03-13-3-uc.eva \ -khmgzv-1.eva \ -khmgzv-2.eva \ -klw-itp14-1.eva \ -klw-itp14-2.eva \ -krebbers_biener_1.eva \ -null_pointer_1.eva \ -null_pointer_2.eva \ -null_pointer_3.eva \ -null_pointer_4.eva \ -padding_10.eva \ -padding_struct_copy_1.eva \ -padding_struct_copy_2.eva \ -padding_struct_copy_3.eva \ -padding_struct_copy_of_representation_bytes.eva \ -padding_struct_members_copy.eva \ -padding_subunion_1.eva \ -padding_subunion_2.eva \ -padding_unspecified_value_1.eva \ -padding_unspecified_value_2.eva \ -padding_unspecified_value_3.eva \ -padding_unspecified_value_4.eva \ -padding_unspecified_value_5.eva \ -padding_unspecified_value_6.eva \ -padding_unspecified_value_7.eva \ -padding_unspecified_value_8.eva \ -pointer_add_wrap_1.eva \ -pointer_add_wrap_2.eva \ -pointer_arith_algebraic_properties_1_global.eva \ -pointer_arith_algebraic_properties_2_auto.eva \ -pointer_arith_algebraic_properties_2_global.eva \ -pointer_arith_algebraic_properties_3_auto.eva \ -pointer_arith_algebraic_properties_3_global.eva \ -pointer_comparison_7b.eva \ -pointer_comparison_7c.eva \ -pointer_comparison_eq_1_auto.eva \ -pointer_comparison_eq_1_global.eva \ -pointer_comparison_eq_2_auto.eva \ -pointer_comparison_eq_2_global.eva \ -pointer_comparison_eq_zombie_1.eva \ -pointer_comparison_eq_zombie_2.eva \ -pointer_comparison_rel_1_auto.eva \ -pointer_comparison_rel_1_global.eva \ -pointer_comparison_rel_different_type_members.eva \ -pointer_comparison_rel_substruct.eva \ -pointer_copy_memcpy.eva \ -pointer_copy_user_ctrlflow_bitwise.eva \ -pointer_copy_user_ctrlflow_bytewise_abbrev.eva \ -pointer_copy_user_ctrlflow_bytewise.eva \ -pointer_copy_user_dataflow_direct_bitwise.eva \ -pointer_copy_user_dataflow_direct_bytewise.eva \ -pointer_copy_user_dataflow_indirect_bytewise.eva \ -pointer_from_concrete_address_1.eva \ -pointer_from_concrete_address_2.eva \ -pointer_offset_constant_8_malloc.eva \ -pointer_offset_from_subtraction_1_auto.eva \ -pointer_offset_from_subtraction_1_global.eva \ -pointer_offset_from_subtraction_1_malloc.eva \ -pointer_offset_from_subtraction_2_auto.eva \ -pointer_offset_from_subtraction_2_global.eva \ -pointer_offset_xor_auto.eva \ -pointer_offset_xor_global.eva \ -pointer_stability_1.eva \ -pointer_stability_2.eva \ -provenance_basic_auto_xy.eva \ -provenance_basic_auto_yx.eva \ -provenance_basic_global_xy.eva \ -provenance_basic_global_yx.eva \ -provenance_basic_malloc_offset+12.eva \ -provenance_basic_malloc_offset+2.eva \ -provenance_basic_malloc_offset-4.eva \ -provenance_basic_malloc_offset+4.eva \ -provenance_basic_malloc_offset+8.eva \ -provenance_basic_mixed_auto.eva \ -provenance_basic_mixed_auto_offset-4.eva \ -provenance_basic_mixed_auto_offset+4.eva \ -provenance_basic_mixed_auto_offset-64.eva \ -provenance_basic_mixed_global_offset-4.eva \ -provenance_basic_mixed_global_offset+4.eva \ -provenance_basic_mixed_global_offset-64.eva \ -provenance_basic_using_intptr_t_auto_xy.eva \ -provenance_basic_using_intptr_t_auto_yx.eva \ -provenance_basic_using_intptr_t_auto_yx_offset-16.eva \ -provenance_basic_using_intptr_t_global_xy.eva \ -provenance_basic_using_intptr_t_global_xy_offset64.eva \ -provenance_basic_using_intptr_t_global_yx.eva \ -provenance_basic_using_intptr_t_malloc_offset_-16.eva \ -provenance_basic_using_intptr_t_malloc_offset_8.eva \ -provenance_equality_auto_cu_yx_a.eva \ -provenance_equality_auto_cu_yx_b.eva \ -provenance_equality_auto_fn_yx.eva \ -provenance_equality_auto_yx.eva \ -provenance_equality_global_cu_xy_a.eva \ -provenance_equality_global_cu_xy_b.eva \ -provenance_equality_global_cu_yx_a.eva \ -provenance_equality_global_cu_yx_b.eva \ -provenance_equality_global_fn_xy.eva \ -provenance_equality_global_fn_yx.eva \ -provenance_equality_global_xy.eva \ -provenance_equality_global_yx.eva \ -provenance_equality_uintptr_t_global_xy.eva \ -provenance_equality_uintptr_t_global_yx.eva \ -provenance_multiple_1_global.eva \ -provenance_multiple_2_global.eva \ -provenance_multiple_3_global_yx.eva \ -provenance_multiple_4_global_yx.eva \ -provenance_multiple_5_auto.eva \ -provenance_multiple_5_global.eva \ -provenance_roundtrip_via_intptr_t.eva \ -provenance_roundtrip_via_unsigned_long.eva \ -provenance_tag_bits_via_uintptr_t_1.eva \ -provenance_tag_bits_via_uintptr_t_1_no_assert.eva \ -provenance_union_punning_1_global.eva \ -provenance_union_punning_2_auto_xy.eva \ -provenance_union_punning_2_auto_yx.eva \ -provenance_union_punning_2_global_xy.eva \ -provenance_union_punning_2_global_yx.eva \ -provenance_via_io_auto.eva \ -provenance_via_io_bytewise_global.eva \ -provenance_via_io_global.eva \ -provenance_via_io_percentp_global.eva \ -provenance_via_io_uintptr_t_global.eva \ -read_union_same_prefix_visible.eva \ -read_via_invalid_1.eva \ -signalling_nan_1.eva \ -struct_initialise_members.eva \ -struct_inter_submember_1.eva \ -tkn-1.eva \ -tkn-2.eva \ -tkn-3.eva \ -tkn-3-commented.eva \ -trap_representation_1.eva \ -trap_representation_2.eva \ -trap_representation_3.eva \ -ubc_addr_null_1.eva \ -union_punning_gcc_1.eva \ -union_punning_gcc_2.eva \ -union_punning_gcc_3.eva \ -unspecified_value_control_flow_choice.eva \ -unspecified_value_daemonic_1.eva \ -unspecified_value_library_call_argument.eva \ -unspecified_value_representation_bytes_1.eva \ -unspecified_value_representation_bytes_2.eva \ -unspecified_value_representation_bytes_3.eva \ -unspecified_value_representation_bytes_4.eva \ -unspecified_value_stability.eva \ -unspecified_value_strictness_and_1.eva \ -unspecified_value_strictness_int.eva \ -unspecified_value_strictness_mod_1.eva \ -unspecified_value_strictness_mod_2.eva \ -unspecified_value_strictness_unsigned_char.eva \ -unspecified_value_struct_copy.eva \ -unspecified_value_union_1.eva \ -write_union_same_prefix_visible.eva \ - -# Default target -all: $(TARGETS) - -#TODO: support stdalign.h and _Alignas for the following targets: -#TARGETS+=effective_type_3 effective_type_4 - -# Syntactically invalid and non-obvious to fix -#use_struct_isomorphic.parse: use_struct_isomorphic.c - -# Redefines memcpy -# compcertMMv2-6.eva - - -besson_blazy_wilke_6_2.parse: besson_blazy_wilke_6_2.c -besson_blazy_wilke_bitfields_1.parse: besson_blazy_wilke_bitfields_1.c -besson_blazy_wilke_bitfields_1u.parse: besson_blazy_wilke_bitfields_1u.c -besson_blazy_wilkie_Fig_1_adapted.parse: besson_blazy_wilkie_Fig_1_adapted.c -besson_blazy_wilkie_Fig_1.parse: besson_blazy_wilkie_Fig_1.c -besson_blazy_wilkie_Fig_2.parse: besson_blazy_wilkie_Fig_2.c -cast_struct_and_first_member_1.parse: cast_struct_and_first_member_1.c -cast_struct_inter_member_1.parse: cast_struct_inter_member_1.c -cast_struct_isomorphic.parse: cast_struct_isomorphic.c -cast_struct_same_prefix.parse: cast_struct_same_prefix.c -cast_union_and_member_1.parse: cast_union_and_member_1.c -cheri_01_deconst.parse: cheri_01_deconst.c -cheri_02_container.parse: cheri_02_container.c -cheri_03_ii.parse: cheri_03_ii.c -cheri_03_ii_char.parse: cheri_03_ii_char.c -cheri_04a_int_uintptr_t.parse: cheri_04a_int_uintptr_t.c -cheri_04b_int_unsigned_long.parse: cheri_04b_int_unsigned_long.c -cheri_05_ia.parse: cheri_05_ia.c -cheri_06_mask.parse: cheri_06_mask.c -cheri_07_wide.parse: cheri_07_wide.c -cheri_08_last_word.parse: cheri_08_last_word.c -compcertMMv2-1.parse: compcertMMv2-1.c -compcertMMv2-2.parse: compcertMMv2-2.c -compcertMMv2-3.parse: compcertMMv2-3.c -compcertMMv2-4.parse: compcertMMv2-4.c -compcertMMv2-5.parse: compcertMMv2-5.c -compcertTSO-1.parse: compcertTSO-1.c -compcertTSO-2.parse: compcertTSO-2.c -effective_type_10.parse: effective_type_10.c -effective_type_1.parse: effective_type_1.c -effective_type_2.parse: effective_type_2.c -effective_type_3.parse: effective_type_3.c -effective_type_4.parse: effective_type_4.c -effective_type_5.parse: effective_type_5.c -effective_type_6.parse: effective_type_6.c -effective_type_7.parse: effective_type_7.c -effective_type_8.parse: effective_type_8.c -effective_type_9.parse: effective_type_9.c -frama-c-2013-03-13-2.parse: frama-c-2013-03-13-2.c -frama-c-2013-03-13-3.parse: frama-c-2013-03-13-3.c -frama-c-2013-03-13-3-uc.parse: frama-c-2013-03-13-3-uc.c -khmgzv-1.parse: khmgzv-1.c -khmgzv-2.parse: khmgzv-2.c -klw-itp14-1.parse: klw-itp14-1.c -klw-itp14-2.parse: klw-itp14-2.c -krebbers_biener_1.parse: krebbers_biener_1.c -null_pointer_1.parse: null_pointer_1.c -null_pointer_2.parse: null_pointer_2.c -null_pointer_3.parse: null_pointer_3.c -null_pointer_4.parse: null_pointer_4.c -padding_10.parse: padding_10.c -padding_struct_copy_1.parse: padding_struct_copy_1.c -padding_struct_copy_2.parse: padding_struct_copy_2.c -padding_struct_copy_3.parse: padding_struct_copy_3.c -padding_struct_copy_of_representation_bytes.parse: padding_struct_copy_of_representation_bytes.c -padding_struct_members_copy.parse: padding_struct_members_copy.c -padding_subunion_1.parse: padding_subunion_1.c -padding_subunion_2.parse: padding_subunion_2.c -padding_unspecified_value_1.parse: padding_unspecified_value_1.c -padding_unspecified_value_2.parse: padding_unspecified_value_2.c -padding_unspecified_value_3.parse: padding_unspecified_value_3.c -padding_unspecified_value_4.parse: padding_unspecified_value_4.c -padding_unspecified_value_5.parse: padding_unspecified_value_5.c -padding_unspecified_value_6.parse: padding_unspecified_value_6.c -padding_unspecified_value_7.parse: padding_unspecified_value_7.c -padding_unspecified_value_8.parse: padding_unspecified_value_8.c -pointer_add_wrap_1.parse: pointer_add_wrap_1.c -pointer_add_wrap_2.parse: pointer_add_wrap_2.c -pointer_arith_algebraic_properties_1_global.parse: pointer_arith_algebraic_properties_1_global.c -pointer_arith_algebraic_properties_2_auto.parse: pointer_arith_algebraic_properties_2_auto.c -pointer_arith_algebraic_properties_2_global.parse: pointer_arith_algebraic_properties_2_global.c -pointer_arith_algebraic_properties_3_auto.parse: pointer_arith_algebraic_properties_3_auto.c -pointer_arith_algebraic_properties_3_global.parse: pointer_arith_algebraic_properties_3_global.c -pointer_comparison_7b.parse: pointer_comparison_7b.c -pointer_comparison_7c.parse: pointer_comparison_7c.c -pointer_comparison_eq_1_auto.parse: pointer_comparison_eq_1_auto.c -pointer_comparison_eq_1_global.parse: pointer_comparison_eq_1_global.c -pointer_comparison_eq_2_auto.parse: pointer_comparison_eq_2_auto.c -pointer_comparison_eq_2_global.parse: pointer_comparison_eq_2_global.c -pointer_comparison_eq_zombie_1.parse: pointer_comparison_eq_zombie_1.c -pointer_comparison_eq_zombie_2.parse: pointer_comparison_eq_zombie_2.c -pointer_comparison_rel_1_auto.parse: pointer_comparison_rel_1_auto.c -pointer_comparison_rel_1_global.parse: pointer_comparison_rel_1_global.c -pointer_comparison_rel_different_type_members.parse: pointer_comparison_rel_different_type_members.c -pointer_comparison_rel_substruct.parse: pointer_comparison_rel_substruct.c -pointer_copy_memcpy.parse: pointer_copy_memcpy.c -pointer_copy_user_ctrlflow_bitwise.parse: pointer_copy_user_ctrlflow_bitwise.c -pointer_copy_user_ctrlflow_bytewise_abbrev.parse: pointer_copy_user_ctrlflow_bytewise_abbrev.c -pointer_copy_user_ctrlflow_bytewise.parse: pointer_copy_user_ctrlflow_bytewise.c -pointer_copy_user_dataflow_direct_bitwise.parse: pointer_copy_user_dataflow_direct_bitwise.c -pointer_copy_user_dataflow_direct_bytewise.parse: pointer_copy_user_dataflow_direct_bytewise.c -pointer_copy_user_dataflow_indirect_bytewise.parse: pointer_copy_user_dataflow_indirect_bytewise.c -pointer_from_concrete_address_1.parse: pointer_from_concrete_address_1.c -pointer_from_concrete_address_2.parse: pointer_from_concrete_address_2.c -pointer_offset_constant_8_malloc.parse: pointer_offset_constant_8_malloc.c -pointer_offset_from_subtraction_1_auto.parse: pointer_offset_from_subtraction_1_auto.c -pointer_offset_from_subtraction_1_global.parse: pointer_offset_from_subtraction_1_global.c -pointer_offset_from_subtraction_1_malloc.parse: pointer_offset_from_subtraction_1_malloc.c -pointer_offset_from_subtraction_2_auto.parse: pointer_offset_from_subtraction_2_auto.c -pointer_offset_from_subtraction_2_global.parse: pointer_offset_from_subtraction_2_global.c -pointer_offset_xor_auto.parse: pointer_offset_xor_auto.c -pointer_offset_xor_global.parse: pointer_offset_xor_global.c -pointer_stability_1.parse: pointer_stability_1.c -pointer_stability_2.parse: pointer_stability_2.c -provenance_basic_auto_xy.parse: provenance_basic_auto_xy.c -provenance_basic_auto_yx.parse: provenance_basic_auto_yx.c -provenance_basic_global_xy.parse: provenance_basic_global_xy.c -provenance_basic_global_yx.parse: provenance_basic_global_yx.c -provenance_basic_malloc_offset+12.parse: provenance_basic_malloc_offset+12.c -provenance_basic_malloc_offset+2.parse: provenance_basic_malloc_offset+2.c -provenance_basic_malloc_offset-4.parse: provenance_basic_malloc_offset-4.c -provenance_basic_malloc_offset+4.parse: provenance_basic_malloc_offset+4.c -provenance_basic_malloc_offset+8.parse: provenance_basic_malloc_offset+8.c -provenance_basic_mixed_auto.parse: provenance_basic_mixed_auto.c -provenance_basic_mixed_auto_offset-4.parse: provenance_basic_mixed_auto_offset-4.c -provenance_basic_mixed_auto_offset+4.parse: provenance_basic_mixed_auto_offset+4.c -provenance_basic_mixed_auto_offset-64.parse: provenance_basic_mixed_auto_offset-64.c -provenance_basic_mixed_global_offset-4.parse: provenance_basic_mixed_global_offset-4.c -provenance_basic_mixed_global_offset+4.parse: provenance_basic_mixed_global_offset+4.c -provenance_basic_mixed_global_offset-64.parse: provenance_basic_mixed_global_offset-64.c -provenance_basic_using_intptr_t_auto_xy.parse: provenance_basic_using_intptr_t_auto_xy.c -provenance_basic_using_intptr_t_auto_yx.parse: provenance_basic_using_intptr_t_auto_yx.c -provenance_basic_using_intptr_t_auto_yx_offset-16.parse: provenance_basic_using_intptr_t_auto_yx_offset-16.c -provenance_basic_using_intptr_t_global_xy.parse: provenance_basic_using_intptr_t_global_xy.c -provenance_basic_using_intptr_t_global_xy_offset64.parse: provenance_basic_using_intptr_t_global_xy_offset64.c -provenance_basic_using_intptr_t_global_yx.parse: provenance_basic_using_intptr_t_global_yx.c -provenance_basic_using_intptr_t_malloc_offset_-16.parse: provenance_basic_using_intptr_t_malloc_offset_-16.c -provenance_basic_using_intptr_t_malloc_offset_8.parse: provenance_basic_using_intptr_t_malloc_offset_8.c -provenance_equality_auto_cu_yx_a.parse: provenance_equality_auto_cu_yx_a.c -provenance_equality_auto_cu_yx_b.parse: provenance_equality_auto_cu_yx_b.c -provenance_equality_auto_fn_yx.parse: provenance_equality_auto_fn_yx.c -provenance_equality_auto_yx.parse: provenance_equality_auto_yx.c -provenance_equality_global_cu_xy_a.parse: provenance_equality_global_cu_xy_a.c -provenance_equality_global_cu_xy_b.parse: provenance_equality_global_cu_xy_b.c -provenance_equality_global_cu_yx_a.parse: provenance_equality_global_cu_yx_a.c -provenance_equality_global_cu_yx_b.parse: provenance_equality_global_cu_yx_b.c -provenance_equality_global_fn_xy.parse: provenance_equality_global_fn_xy.c -provenance_equality_global_fn_yx.parse: provenance_equality_global_fn_yx.c -provenance_equality_global_xy.parse: provenance_equality_global_xy.c -provenance_equality_global_yx.parse: provenance_equality_global_yx.c -provenance_equality_uintptr_t_global_xy.parse: provenance_equality_uintptr_t_global_xy.c -provenance_equality_uintptr_t_global_yx.parse: provenance_equality_uintptr_t_global_yx.c -provenance_multiple_1_global.parse: provenance_multiple_1_global.c -provenance_multiple_2_global.parse: provenance_multiple_2_global.c -provenance_multiple_3_global_yx.parse: provenance_multiple_3_global_yx.c -provenance_multiple_4_global_yx.parse: provenance_multiple_4_global_yx.c -provenance_multiple_5_auto.parse: provenance_multiple_5_auto.c -provenance_multiple_5_global.parse: provenance_multiple_5_global.c -provenance_roundtrip_via_intptr_t.parse: provenance_roundtrip_via_intptr_t.c -provenance_roundtrip_via_unsigned_long.parse: provenance_roundtrip_via_unsigned_long.c -provenance_tag_bits_via_uintptr_t_1.parse: provenance_tag_bits_via_uintptr_t_1.c -provenance_tag_bits_via_uintptr_t_1_no_assert.parse: provenance_tag_bits_via_uintptr_t_1_no_assert.c -provenance_union_punning_1_global.parse: provenance_union_punning_1_global.c -provenance_union_punning_2_auto_xy.parse: provenance_union_punning_2_auto_xy.c -provenance_union_punning_2_auto_yx.parse: provenance_union_punning_2_auto_yx.c -provenance_union_punning_2_global_xy.parse: provenance_union_punning_2_global_xy.c -provenance_union_punning_2_global_yx.parse: provenance_union_punning_2_global_yx.c -provenance_via_io_auto.parse: provenance_via_io_auto.c -provenance_via_io_bytewise_global.parse: provenance_via_io_bytewise_global.c -provenance_via_io_global.parse: provenance_via_io_global.c -provenance_via_io_percentp_global.parse: provenance_via_io_percentp_global.c -provenance_via_io_uintptr_t_global.parse: provenance_via_io_uintptr_t_global.c -read_union_same_prefix_visible.parse: read_union_same_prefix_visible.c -read_via_invalid_1.parse: read_via_invalid_1.c -signalling_nan_1.parse: signalling_nan_1.c -struct_initialise_members.parse: struct_initialise_members.c -struct_inter_submember_1.parse: struct_inter_submember_1.c -tkn-1.parse: tkn-1.c -tkn-2.parse: tkn-2.c -tkn-3.parse: tkn-3.c -tkn-3-commented.parse: tkn-3-commented.c -trap_representation_1.parse: trap_representation_1.c -trap_representation_2.parse: trap_representation_2.c -trap_representation_3.parse: trap_representation_3.c -ubc_addr_null_1.parse: ubc_addr_null_1.c -union_punning_gcc_1.parse: union_punning_gcc_1.c -union_punning_gcc_2.parse: union_punning_gcc_2.c -union_punning_gcc_3.parse: union_punning_gcc_3.c -unspecified_value_control_flow_choice.parse: unspecified_value_control_flow_choice.c -unspecified_value_daemonic_1.parse: unspecified_value_daemonic_1.c -unspecified_value_library_call_argument.parse: unspecified_value_library_call_argument.c -unspecified_value_representation_bytes_1.parse: unspecified_value_representation_bytes_1.c -unspecified_value_representation_bytes_2.parse: unspecified_value_representation_bytes_2.c -unspecified_value_representation_bytes_3.parse: unspecified_value_representation_bytes_3.c -unspecified_value_representation_bytes_4.parse: unspecified_value_representation_bytes_4.c -unspecified_value_stability.parse: unspecified_value_stability.c -unspecified_value_strictness_and_1.parse: unspecified_value_strictness_and_1.c -unspecified_value_strictness_int.parse: unspecified_value_strictness_int.c -unspecified_value_strictness_mod_1.parse: unspecified_value_strictness_mod_1.c -unspecified_value_strictness_mod_2.parse: unspecified_value_strictness_mod_2.c -unspecified_value_strictness_unsigned_char.parse: unspecified_value_strictness_unsigned_char.c -unspecified_value_struct_copy.parse: unspecified_value_struct_copy.c -unspecified_value_union_1.parse: unspecified_value_union_1.c -write_union_same_prefix_visible.parse: write_union_same_prefix_visible.c - -parse: $(TARGETS:%.eva=%.parse) - -help: - @echo "targets: $(TARGETS)" -display-targets: - @echo "$(TARGETS)" - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common diff --git a/cerberus/frama-c-path.mk b/cerberus/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/cerberus/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/chrony/.frama-c/GNUmakefile b/chrony/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..2ec79115bbb1d6aba0b4ff9cef4b31526824db06 --- /dev/null +++ b/chrony/.frama-c/GNUmakefile @@ -0,0 +1,102 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_64 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + -I .. \ + -D_XOPEN_SOURCE=200112L \ + -DNB_TESTS=3 \ + +## General flags +FCFLAGS += \ + -cpp-command "cpp -E -C -I.." \ + -cpp-frama-c-compliant \ + -add-symbolic-path=.:.. \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + -warn-special-float none \ + +## Eva-specific flags +EVAFLAGS += \ + -eva-use-spec atoi,malloc,free,calloc,Transform,parse_include,SCH_AddTimeout \ + -eva-warn-key=alarm \ + -eva-malloc-functions malloc,realloc,Malloc,Malloc2,Realloc,Realloc2 \ + -eva-warn-key builtins:missing-spec=abort \ + -eva-warn-key malloc:weak \ + -eva-domains equality,gauges \ + -eva-domains-function symbolic-locations:prune_register \ + -eva-domains-function symbolic-locations:SST_DoNewRegression \ + -eva-domains-function symbolic-locations:SST_AccumulateSample \ + -eva-domains-function symbolic-locations:find_min_delay_sample \ + -eva-domains-function symbolic-locations:UTI_NormaliseTimespec \ + -eva-domains-function symbolic-locations:estimate_asymmetry \ + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +TEST_COMMON_SRCS = \ + ../test/unit/test.c \ + $(shell $(FRAMAC)-config -print-share-path)/libc/string.c \ + $(shell $(FRAMAC)-config -print-share-path)/libc/stdlib.c \ + $(shell $(FRAMAC)-config -print-share-path)/libc/stdio.c \ + $(shell $(FRAMAC)-config -print-share-path)/libc/glob.c \ + $(shell $(FRAMAC)-config -print-share-path)/libc/netdb.c \ + ../addrfilt.c \ + ../array.c \ + ../clientlog.c \ + ../cmdparse.c \ + ../conf.c \ + ../hash_intmd5.c \ + ../keys.c \ + ../local.c \ + ../memory.c \ + ../nameserv.c \ + ../ntp_io.c \ + ../reference.c \ + ../regress.c \ + ../sched.c \ + ../smooth.c \ + ../sources.c \ + ../sourcestats.c \ + ../util.c \ + ../stubs.c \ + fc_stubs.c \ + +# logging.c voluntarily omitted, to skip analyzing logging functions + +## Analysis targets (suffixed with .eva) +TARGETS = chrony-ntp-core.eva chrony-regress.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +chrony-ntp-core.parse: \ + $(TEST_COMMON_SRCS) \ + ../test/unit/ntp_core.c \ + +chrony-ntp-core.eva: EVAFLAGS += -main eva_main + +# The following parsing rule reuses variable TEST_COMMON_SRCS to avoid +# having to manually list the sources. Note that the unit test version of +# regress.c redefines some functions from the other regress.c file, so +# we remove the latter from the list of sources. +chrony-regress.parse: \ + $(filter-out ../regress.c,$(TEST_COMMON_SRCS)) \ + ../test/unit/regress.c \ + +chrony-regress.eva: EVAFLAGS += -main eva_main + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/chrony/.frama-c/chrony-ntp-core.eva/alarms.csv b/chrony/.frama-c/chrony-ntp-core.eva/alarms.csv new file mode 100644 index 0000000000000000000000000000000000000000..a769ebaf89fc06564aa34225651b8cabbf701b1d --- /dev/null +++ b/chrony/.frama-c/chrony-ntp-core.eva/alarms.csv @@ -0,0 +1,907 @@ +directory file line function property kind status property +. addrfilt.c 66 split_ip6 initialization Unknown \initialized(&ip->addr.in6[(int)((int)(i * 4) + 0)]) +. addrfilt.c 66 split_ip6 initialization Unknown \initialized(&ip->addr.in6[(int)((int)(i * 4) + 1)]) +. addrfilt.c 66 split_ip6 initialization Unknown \initialized(&ip->addr.in6[(int)((int)(i * 4) + 2)]) +. addrfilt.c 66 split_ip6 initialization Unknown \initialized(&ip->addr.in6[(int)((int)(i * 4) + 3)]) +. addrfilt.c 82 get_subnet initialization Unknown \initialized(addr + off) +. addrfilt.c 82 get_subnet mem_access Unknown \valid_read(addr + off) +. addrfilt.c 112 close_node dangling_pointer Unknown ¬\dangling(&node->extended) +. addrfilt.c 112 close_node initialization Unknown \initialized(&node->extended) +. addrfilt.c 112 close_node mem_access Unknown \valid_read(&node->extended) +. addrfilt.c 135 open_node dangling_pointer Unknown ¬\dangling(&node->extended) +. addrfilt.c 135 open_node initialization Unknown \initialized(&node->extended) +. addrfilt.c 141 open_node dangling_pointer Unknown ¬\dangling(&node->extended) +. addrfilt.c 141 open_node initialization Unknown \initialized(&node->extended) +. addrfilt.c 142 open_node mem_access Unknown \valid(&child_node->state) +. addrfilt.c 178 set_subnet dangling_pointer Unknown ¬\dangling(&node->extended) +. addrfilt.c 178 set_subnet initialization Unknown \initialized(&node->extended) +. addrfilt.c 178 set_subnet mem_access Unknown \valid_read(&node->extended) +. addrfilt.c 181 set_subnet dangling_pointer Unknown ¬\dangling(&node->extended) +. addrfilt.c 181 set_subnet initialization Unknown \initialized(&node->extended) +. addrfilt.c 189 set_subnet dangling_pointer Unknown ¬\dangling(&node) +. addrfilt.c 189 set_subnet mem_access Unknown \valid(&node->state) +. addrfilt.c 198 set_subnet dangling_pointer Unknown ¬\dangling(&node->extended) +. addrfilt.c 198 set_subnet initialization Unknown \initialized(&node->extended) +. addrfilt.c 198 set_subnet mem_access Unknown \valid_read(&node->extended) +. addrfilt.c 201 set_subnet dangling_pointer Unknown ¬\dangling(&node->extended) +. addrfilt.c 201 set_subnet initialization Unknown \initialized(&node->extended) +. addrfilt.c 210 set_subnet precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. addrfilt.c 212 set_subnet dangling_pointer Unknown ¬\dangling(&node->extended) +. addrfilt.c 212 set_subnet initialization Unknown \initialized(&node->extended) +. addrfilt.c 212 set_subnet mem_access Unknown \valid_read(&node->extended) +. addrfilt.c 218 set_subnet dangling_pointer Unknown ¬\dangling(&node) +. addrfilt.c 218 set_subnet dangling_pointer Unknown ¬\dangling(&node->extended) +. addrfilt.c 218 set_subnet initialization Unknown \initialized(&node->extended) +. addrfilt.c 222 set_subnet dangling_pointer Unknown ¬\dangling(&this_node) +. addrfilt.c 222 set_subnet mem_access Unknown \valid(&this_node->state) +. addrfilt.c 242 set_subnet_ initialization Unknown \initialized(&ip_addr->family) +. addrfilt.c 242 set_subnet_ mem_access Unknown \valid_read(&ip_addr->family) +. addrfilt.c 326 check_ip_in_node dangling_pointer Unknown ¬\dangling(&node->state) +. addrfilt.c 326 check_ip_in_node initialization Unknown \initialized(&node->state) +. addrfilt.c 326 check_ip_in_node mem_access Unknown \valid_read(&node->state) +. addrfilt.c 329 check_ip_in_node dangling_pointer Unknown ¬\dangling(&node->extended) +. addrfilt.c 329 check_ip_in_node initialization Unknown \initialized(&node->extended) +. addrfilt.c 329 check_ip_in_node mem_access Unknown \valid_read(&node->extended) +. addrfilt.c 329 check_ip_in_node ptr_comparison Unknown \pointer_comparable((void *)0, (void *)node->extended) +. addrfilt.c 332 check_ip_in_node signed_overflow Unknown bits_consumed + 4 ≤ 2147483647 +. addrfilt.c 347 check_ip_in_node precondition of __FC_assert Invalid or unreachable nonnull_c: c ≢ 0 +. addrfilt.c 389 is_any_allowed dangling_pointer Unknown ¬\dangling(&node->extended) +. array.c 69 realloc_array precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. array.c 94 ARR_GetElement precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. array.c 103 ARR_GetElements precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. array.c 116 ARR_AppendElement precondition of memcpy Unknown valid_dest: valid_or_empty(dest, n) +. cmdmon.h 37 CAM_AddAccessRestriction assigns clause Unknown assigns \result, *ip_addr; +. cmdmon.h 37 CAM_AddAccessRestriction from clause Unknown assigns *ip_addr \from *ip_addr, subnet_bits, allow, all; +. cmdmon.h 37 CAM_AddAccessRestriction from clause Unknown assigns \result \from *ip_addr, subnet_bits, allow, all; +. cmdparse.c 82 CPS_ParseNTPSourceAdd mem_access Unknown \valid_read(line) +. cmdparse.c 104 CPS_ParseNTPSourceAdd precondition of sscanf_va_18 Unknown valid_read_string(s) +. cmdparse.c 104 sscanf_va_18 precondition Unknown valid_read_string(s) +. cmdparse.c 108 CPS_ParseNTPSourceAdd precondition of sscanf_va_17 Unknown valid_read_string(s) +. cmdparse.c 108 sscanf_va_17 precondition Unknown valid_read_string(s) +. cmdparse.c 111 CPS_ParseNTPSourceAdd precondition of sscanf_va_16 Unknown valid_read_string(s) +. cmdparse.c 111 sscanf_va_16 precondition Unknown valid_read_string(s) +. cmdparse.c 114 CPS_ParseNTPSourceAdd precondition of sscanf_va_15 Unknown valid_read_string(s) +. cmdparse.c 114 sscanf_va_15 precondition Unknown valid_read_string(s) +. cmdparse.c 117 CPS_ParseNTPSourceAdd precondition of sscanf_va_14 Unknown valid_read_string(s) +. cmdparse.c 117 sscanf_va_14 precondition Unknown valid_read_string(s) +. cmdparse.c 120 CPS_ParseNTPSourceAdd precondition of sscanf_va_13 Unknown valid_read_string(s) +. cmdparse.c 120 sscanf_va_13 precondition Unknown valid_read_string(s) +. cmdparse.c 123 CPS_ParseNTPSourceAdd precondition of sscanf_va_12 Unknown valid_read_string(s) +. cmdparse.c 123 sscanf_va_12 precondition Unknown valid_read_string(s) +. cmdparse.c 126 CPS_ParseNTPSourceAdd precondition of sscanf_va_11 Unknown valid_read_string(s) +. cmdparse.c 126 sscanf_va_11 precondition Unknown valid_read_string(s) +. cmdparse.c 129 CPS_ParseNTPSourceAdd precondition of sscanf_va_10 Unknown valid_read_string(s) +. cmdparse.c 129 sscanf_va_10 precondition Unknown valid_read_string(s) +. cmdparse.c 132 CPS_ParseNTPSourceAdd precondition of sscanf_va_9 Unknown valid_read_string(s) +. cmdparse.c 132 sscanf_va_9 precondition Unknown valid_read_string(s) +. cmdparse.c 135 CPS_ParseNTPSourceAdd precondition of sscanf_va_8 Unknown valid_read_string(s) +. cmdparse.c 135 sscanf_va_8 precondition Unknown valid_read_string(s) +. cmdparse.c 138 CPS_ParseNTPSourceAdd precondition of sscanf_va_7 Unknown valid_read_string(s) +. cmdparse.c 138 sscanf_va_7 precondition Unknown valid_read_string(s) +. cmdparse.c 141 CPS_ParseNTPSourceAdd precondition of sscanf_va_6 Unknown valid_read_string(s) +. cmdparse.c 141 sscanf_va_6 precondition Unknown valid_read_string(s) +. cmdparse.c 144 CPS_ParseNTPSourceAdd precondition of sscanf_va_5 Unknown valid_read_string(s) +. cmdparse.c 144 sscanf_va_5 precondition Unknown valid_read_string(s) +. cmdparse.c 147 CPS_ParseNTPSourceAdd precondition of sscanf_va_4 Unknown valid_read_string(s) +. cmdparse.c 147 sscanf_va_4 precondition Unknown valid_read_string(s) +. cmdparse.c 150 CPS_ParseNTPSourceAdd precondition of sscanf_va_3 Unknown valid_read_string(s) +. cmdparse.c 150 sscanf_va_3 precondition Unknown valid_read_string(s) +. cmdparse.c 153 CPS_ParseNTPSourceAdd precondition of sscanf_va_2 Unknown valid_read_string(s) +. cmdparse.c 153 sscanf_va_2 precondition Unknown valid_read_string(s) +. cmdparse.c 156 CPS_ParseNTPSourceAdd precondition of sscanf_va_1 Unknown valid_read_string(s) +. cmdparse.c 156 sscanf_va_1 precondition Unknown valid_read_string(s) +. cmdparse.c 180 CPS_ParseLocal mem_access Unknown \valid_read(line) +. cmdparse.c 185 CPS_ParseLocal precondition of sscanf_va_20 Unknown valid_read_string(s) +. cmdparse.c 185 sscanf_va_20 precondition Unknown valid_read_string(s) +. cmdparse.c 192 CPS_ParseLocal precondition of sscanf_va_19 Unknown valid_read_string(s) +. cmdparse.c 192 sscanf_va_19 precondition Unknown valid_read_string(s) +. cmdparse.c 213 CPS_NormalizeLine initialization Unknown \initialized(p) +. cmdparse.c 213 CPS_NormalizeLine mem_access Unknown \valid_read(p) +. cmdparse.c 216 CPS_NormalizeLine mem_access Unknown \valid(tmp) +. cmdparse.c 225 CPS_NormalizeLine mem_access Unknown \valid(tmp_2) +. cmdparse.c 230 CPS_NormalizeLine ptr_comparison Unknown \pointer_comparable((void *)q, (void *)line) +. cmdparse.c 230 CPS_NormalizeLine initialization Unknown \initialized(q + (int)(-1)) +. cmdparse.c 230 CPS_NormalizeLine mem_access Unknown \valid_read(q + (int)(-1)) +. cmdparse.c 233 CPS_NormalizeLine mem_access Unknown \valid(q) +. cmdparse.c 244 CPS_SplitWord initialization Unknown \initialized(q) +. cmdparse.c 244 CPS_SplitWord mem_access Unknown \valid_read(q) +. cmdparse.c 248 CPS_SplitWord initialization Unknown \initialized(q) +. cmdparse.c 248 CPS_SplitWord mem_access Unknown \valid_read(q) +. cmdparse.c 249 CPS_SplitWord initialization Unknown \initialized(tmp_1) +. cmdparse.c 249 CPS_SplitWord mem_access Unknown \valid(tmp_0) +. cmdparse.c 252 CPS_SplitWord initialization Unknown \initialized(q) +. cmdparse.c 252 CPS_SplitWord mem_access Unknown \valid_read(q) +. cmdparse.c 255 CPS_SplitWord mem_access Unknown \valid(p) +. cmdparse.c 274 CPS_ParseKey initialization Unknown \initialized(s2) +. cmdparse.c 274 CPS_ParseKey initialization Unknown \initialized(s4) +. cmdparse.c 277 CPS_ParseKey precondition of sscanf_va_21 Unknown valid_read_string(s) +. cmdparse.c 277 sscanf_va_21 precondition Unknown valid_read_string(s) +. cmdparse.c 280 CPS_ParseKey initialization Unknown \initialized(s3) +. conf.c 298 get_number_of_args mem_access Unknown \valid_read(line) +. conf.c 300 get_number_of_args mem_access Unknown \valid_read(line) +. conf.c 364 CNF_Finalise dangling_pointer Unknown ¬\dangling(&((CNF_HwTsInterface *)tmp)->name) +. conf.c 364 CNF_Finalise initialization Unknown \initialized(&((CNF_HwTsInterface *)tmp)->name) +. conf.c 364 CNF_Finalise mem_access Unknown \valid_read(&((CNF_HwTsInterface *)tmp)->name) +. conf.c 368 CNF_Finalise dangling_pointer Unknown ¬\dangling(&((NTP_Source *)tmp_1)->params.name) +. conf.c 368 CNF_Finalise initialization Unknown \initialized(&((NTP_Source *)tmp_1)->params.name) +. conf.c 368 CNF_Finalise mem_access Unknown \valid_read(&((NTP_Source *)tmp_1)->params.name) +. conf.c 601 parse_int precondition of sscanf_va_22 Unknown valid_read_string(s) +. conf.c 601 sscanf_va_22 precondition Unknown valid_read_string(s) +. conf.c 614 parse_double precondition of sscanf_va_23 Unknown valid_read_string(s) +. conf.c 614 sscanf_va_23 precondition Unknown valid_read_string(s) +. conf.c 645 parse_source initialization Unknown \initialized(&source.params.name) +. conf.c 659 parse_ratelimit mem_access Unknown \valid_read(line) +. conf.c 662 parse_ratelimit precondition of sscanf_va_24 Unknown valid_read_string(s) +. conf.c 662 sscanf_va_24 precondition Unknown valid_read_string(s) +. conf.c 729 parse_refclock mem_access Unknown \valid_read(cmd) +. conf.c 733 parse_refclock precondition of sscanf_va_39 Unknown valid_read_string(s) +. conf.c 733 sscanf_va_39 precondition Unknown valid_read_string(s) +. conf.c 735 parse_refclock initialization Unknown \initialized(&ref[1]) +. conf.c 735 parse_refclock initialization Unknown \initialized(&ref[2]) +. conf.c 735 parse_refclock initialization Unknown \initialized(&ref[3]) +. conf.c 735 parse_refclock initialization Unknown \initialized((unsigned char *)ref) +. conf.c 737 parse_refclock precondition of sscanf_va_38 Unknown valid_read_string(s) +. conf.c 737 sscanf_va_38 precondition Unknown valid_read_string(s) +. conf.c 739 parse_refclock initialization Unknown \initialized(&ref[1]) +. conf.c 739 parse_refclock initialization Unknown \initialized(&ref[2]) +. conf.c 739 parse_refclock initialization Unknown \initialized(&ref[3]) +. conf.c 739 parse_refclock initialization Unknown \initialized((unsigned char *)ref) +. conf.c 741 parse_refclock precondition of sscanf_va_37 Unknown valid_read_string(s) +. conf.c 741 sscanf_va_37 precondition Unknown valid_read_string(s) +. conf.c 745 parse_refclock precondition of sscanf_va_36 Unknown valid_read_string(s) +. conf.c 745 sscanf_va_36 precondition Unknown valid_read_string(s) +. conf.c 749 parse_refclock precondition of sscanf_va_35 Unknown valid_read_string(s) +. conf.c 749 sscanf_va_35 precondition Unknown valid_read_string(s) +. conf.c 753 parse_refclock precondition of sscanf_va_34 Unknown valid_read_string(s) +. conf.c 753 sscanf_va_34 precondition Unknown valid_read_string(s) +. conf.c 756 parse_refclock precondition of sscanf_va_33 Unknown valid_read_string(s) +. conf.c 756 sscanf_va_33 precondition Unknown valid_read_string(s) +. conf.c 759 parse_refclock precondition of sscanf_va_32 Unknown valid_read_string(s) +. conf.c 759 sscanf_va_32 precondition Unknown valid_read_string(s) +. conf.c 762 parse_refclock precondition of sscanf_va_31 Unknown valid_read_string(s) +. conf.c 762 sscanf_va_31 precondition Unknown valid_read_string(s) +. conf.c 765 parse_refclock precondition of sscanf_va_30 Unknown valid_read_string(s) +. conf.c 765 sscanf_va_30 precondition Unknown valid_read_string(s) +. conf.c 768 parse_refclock precondition of sscanf_va_29 Unknown valid_read_string(s) +. conf.c 768 sscanf_va_29 precondition Unknown valid_read_string(s) +. conf.c 774 parse_refclock precondition of sscanf_va_28 Unknown valid_read_string(s) +. conf.c 774 sscanf_va_28 precondition Unknown valid_read_string(s) +. conf.c 777 parse_refclock precondition of sscanf_va_27 Unknown valid_read_string(s) +. conf.c 777 sscanf_va_27 precondition Unknown valid_read_string(s) +. conf.c 780 parse_refclock precondition of sscanf_va_26 Unknown valid_read_string(s) +. conf.c 780 sscanf_va_26 precondition Unknown valid_read_string(s) +. conf.c 787 parse_refclock precondition of sscanf_va_25 Unknown valid_read_string(s) +. conf.c 787 sscanf_va_25 precondition Unknown valid_read_string(s) +. conf.c 813 parse_refclock mem_access Unknown \valid(&refclock->driver_name) +. conf.c 814 parse_refclock mem_access Unknown \valid(&refclock->driver_parameter) +. conf.c 815 parse_refclock mem_access Unknown \valid(&refclock->driver_poll) +. conf.c 816 parse_refclock mem_access Unknown \valid(&refclock->poll) +. conf.c 817 parse_refclock mem_access Unknown \valid(&refclock->filter_length) +. conf.c 818 parse_refclock mem_access Unknown \valid(&refclock->pps_forced) +. conf.c 819 parse_refclock mem_access Unknown \valid(&refclock->pps_rate) +. conf.c 820 parse_refclock mem_access Unknown \valid(&refclock->min_samples) +. conf.c 821 parse_refclock mem_access Unknown \valid(&refclock->max_samples) +. conf.c 822 parse_refclock mem_access Unknown \valid(&refclock->sel_options) +. conf.c 823 parse_refclock mem_access Unknown \valid(&refclock->stratum) +. conf.c 824 parse_refclock mem_access Unknown \valid(&refclock->tai) +. conf.c 825 parse_refclock mem_access Unknown \valid(&refclock->offset) +. conf.c 826 parse_refclock mem_access Unknown \valid(&refclock->delay) +. conf.c 827 parse_refclock mem_access Unknown \valid(&refclock->precision) +. conf.c 828 parse_refclock mem_access Unknown \valid(&refclock->max_dispersion) +. conf.c 829 parse_refclock mem_access Unknown \valid(&refclock->pulse_width) +. conf.c 830 parse_refclock mem_access Unknown \valid(&refclock->ref_id) +. conf.c 831 parse_refclock mem_access Unknown \valid(&refclock->max_lock_age) +. conf.c 832 parse_refclock mem_access Unknown \valid(&refclock->lock_ref_id) +. conf.c 896 parse_initstepslew precondition of sscanf_va_40 Unknown valid_read_string(s) +. conf.c 896 sscanf_va_40 precondition Unknown valid_read_string(s) +. conf.c 937 parse_clientloglimit precondition of sscanf_va_41 Unknown valid_read_string(s) +. conf.c 937 sscanf_va_41 precondition Unknown valid_read_string(s) +. conf.c 948 parse_fallbackdrift precondition of sscanf_va_42 Unknown valid_read_string(s) +. conf.c 948 sscanf_va_42 precondition Unknown valid_read_string(s) +. conf.c 959 parse_makestep precondition of sscanf_va_43 Unknown valid_read_string(s) +. conf.c 959 sscanf_va_43 precondition Unknown valid_read_string(s) +. conf.c 976 parse_maxchange precondition of sscanf_va_44 Unknown valid_read_string(s) +. conf.c 976 sscanf_va_44 precondition Unknown valid_read_string(s) +. conf.c 992 parse_mailonchange precondition of sscanf_va_45 Unknown valid_read_string(s) +. conf.c 992 sscanf_va_45 precondition Unknown valid_read_string(s) +. conf.c 1021 parse_allow_deny mem_access Unknown \valid(&new_node->allow) +. conf.c 1022 parse_allow_deny mem_access Unknown \valid(&new_node->all) +. conf.c 1023 parse_allow_deny mem_access Unknown \valid(&new_node->ip.family) +. conf.c 1024 parse_allow_deny mem_access Unknown \valid(&new_node->subnet_bits) +. conf.c 1027 parse_allow_deny precondition of strchr Unknown valid_string_s: valid_read_string(s) +. conf.c 1033 parse_allow_deny precondition of sscanf_va_46 Unknown valid_read_string(s) +. conf.c 1033 sscanf_va_46 precondition Unknown valid_read_string(s) +. conf.c 1036 parse_allow_deny user assertion Unknown n ≤ 4 +. conf.c 1038 parse_allow_deny mem_access Unknown \valid(&new_node->allow) +. conf.c 1039 parse_allow_deny mem_access Unknown \valid(&new_node->all) +. conf.c 1042 parse_allow_deny mem_access Unknown \valid(&new_node->ip) +. conf.c 1043 parse_allow_deny initialization Unknown \initialized(&ip_addr.family) +. conf.c 1046 parse_allow_deny mem_access Unknown \valid(&new_node->subnet_bits) +. conf.c 1048 parse_allow_deny mem_access Unknown \valid(&new_node->ip.family) +. conf.c 1050 parse_allow_deny initialization Unknown \initialized(&a) +. conf.c 1051 parse_allow_deny initialization Unknown \initialized(&b) +. conf.c 1052 parse_allow_deny initialization Unknown \initialized(&c) +. conf.c 1053 parse_allow_deny initialization Unknown \initialized(&d) +. conf.c 1057 parse_allow_deny mem_access Unknown \valid(&new_node->ip.addr.in4) +. conf.c 1058 parse_allow_deny mem_access Unknown \valid(&new_node->subnet_bits) +. conf.c 1061 parse_allow_deny mem_access Unknown \valid(&new_node->ip.addr.in4) +. conf.c 1062 parse_allow_deny mem_access Unknown \valid(&new_node->subnet_bits) +. conf.c 1065 parse_allow_deny mem_access Unknown \valid(&new_node->ip.addr.in4) +. conf.c 1066 parse_allow_deny mem_access Unknown \valid(&new_node->subnet_bits) +. conf.c 1069 parse_allow_deny mem_access Unknown \valid(&new_node->ip.addr.in4) +. conf.c 1070 parse_allow_deny mem_access Unknown \valid(&new_node->subnet_bits) +. conf.c 1079 parse_allow_deny precondition of sscanf_va_47 Unknown valid_read_string(s) +. conf.c 1079 sscanf_va_47 precondition Unknown valid_read_string(s) +. conf.c 1081 parse_allow_deny mem_access Unknown \valid(&new_node->subnet_bits) +. conf.c 1090 parse_allow_deny mem_access Unknown \valid(&new_node->allow) +. conf.c 1091 parse_allow_deny mem_access Unknown \valid(&new_node->all) +. conf.c 1092 parse_allow_deny mem_access Unknown \valid(&new_node->ip) +. conf.c 1093 parse_allow_deny initialization Unknown \initialized(&ip_addr.family) +. conf.c 1096 parse_allow_deny mem_access Unknown \valid(&new_node->subnet_bits) +. conf.c 1113 parse_bindacqaddress initialization Unknown \initialized(&ip.family) +. conf.c 1131 parse_bindaddress initialization Unknown \initialized(&ip.family) +. conf.c 1156 parse_bindcmdaddress initialization Unknown \initialized(&ip.family) +. conf.c 1180 parse_broadcast precondition of sscanf_va_48 Unknown valid_read_string(s) +. conf.c 1180 sscanf_va_48 precondition Unknown valid_read_string(s) +. conf.c 1197 parse_broadcast precondition of sscanf_va_49 Unknown valid_read_string(s) +. conf.c 1197 sscanf_va_49 precondition Unknown valid_read_string(s) +. conf.c 1207 parse_broadcast mem_access Unknown \valid(&destination->addr) +. conf.c 1208 parse_broadcast mem_access Unknown \valid(&destination->port) +. conf.c 1209 parse_broadcast mem_access Unknown \valid(&destination->interval) +. conf.c 1220 parse_smoothtime precondition of sscanf_va_50 Unknown valid_read_string(s) +. conf.c 1220 sscanf_va_50 precondition Unknown valid_read_string(s) +. conf.c 1259 parse_tempcomp precondition of sscanf_va_51 Unknown valid_read_string(s) +. conf.c 1259 sscanf_va_51 precondition Unknown valid_read_string(s) +. conf.c 1265 parse_tempcomp precondition of sscanf_va_52 Unknown valid_read_string(s) +. conf.c 1265 sscanf_va_52 precondition Unknown valid_read_string(s) +. conf.c 1295 parse_hwtimestamp mem_access Unknown \valid(&iface->name) +. conf.c 1296 parse_hwtimestamp mem_access Unknown \valid(&iface->minpoll) +. conf.c 1297 parse_hwtimestamp mem_access Unknown \valid(&iface->min_samples) +. conf.c 1298 parse_hwtimestamp mem_access Unknown \valid(&iface->max_samples) +. conf.c 1299 parse_hwtimestamp mem_access Unknown \valid(&iface->nocrossts) +. conf.c 1300 parse_hwtimestamp mem_access Unknown \valid(&iface->rxfilter) +. conf.c 1301 parse_hwtimestamp mem_access Unknown \valid(&iface->precision) +. conf.c 1302 parse_hwtimestamp mem_access Unknown \valid(&iface->tx_comp) +. conf.c 1303 parse_hwtimestamp mem_access Unknown \valid(&iface->rx_comp) +. conf.c 1305 parse_hwtimestamp mem_access Unknown \valid_read(p) +. conf.c 1309 parse_hwtimestamp precondition of sscanf_va_59 Unknown \valid(param0) +. conf.c 1309 parse_hwtimestamp precondition of sscanf_va_59 Unknown valid_read_string(s) +. conf.c 1309 sscanf_va_59 precondition Unknown \valid(param0) +. conf.c 1309 sscanf_va_59 precondition Unknown valid_read_string(s) +. conf.c 1312 parse_hwtimestamp precondition of sscanf_va_58 Unknown \valid(param0) +. conf.c 1312 parse_hwtimestamp precondition of sscanf_va_58 Unknown valid_read_string(s) +. conf.c 1312 sscanf_va_58 precondition Unknown \valid(param0) +. conf.c 1312 sscanf_va_58 precondition Unknown valid_read_string(s) +. conf.c 1315 parse_hwtimestamp precondition of sscanf_va_57 Unknown \valid(param0) +. conf.c 1315 parse_hwtimestamp precondition of sscanf_va_57 Unknown valid_read_string(s) +. conf.c 1315 sscanf_va_57 precondition Unknown \valid(param0) +. conf.c 1315 sscanf_va_57 precondition Unknown valid_read_string(s) +. conf.c 1318 parse_hwtimestamp precondition of sscanf_va_56 Unknown \valid(param0) +. conf.c 1318 parse_hwtimestamp precondition of sscanf_va_56 Unknown valid_read_string(s) +. conf.c 1318 sscanf_va_56 precondition Unknown \valid(param0) +. conf.c 1318 sscanf_va_56 precondition Unknown valid_read_string(s) +. conf.c 1321 parse_hwtimestamp precondition of sscanf_va_55 Unknown \valid(param0) +. conf.c 1321 parse_hwtimestamp precondition of sscanf_va_55 Unknown valid_read_string(s) +. conf.c 1321 sscanf_va_55 precondition Unknown \valid(param0) +. conf.c 1321 sscanf_va_55 precondition Unknown valid_read_string(s) +. conf.c 1324 parse_hwtimestamp precondition of sscanf_va_54 Unknown \valid(param0) +. conf.c 1324 parse_hwtimestamp precondition of sscanf_va_54 Unknown valid_read_string(s) +. conf.c 1324 sscanf_va_54 precondition Unknown \valid(param0) +. conf.c 1324 sscanf_va_54 precondition Unknown valid_read_string(s) +. conf.c 1327 parse_hwtimestamp precondition of sscanf_va_53 Unknown valid_read_string(s) +. conf.c 1327 sscanf_va_53 precondition Unknown valid_read_string(s) +. conf.c 1795 CNF_SetupAccessRestrictions initialization Unknown \initialized(&node->all) +. conf.c 1795 CNF_SetupAccessRestrictions initialization Unknown \initialized(&node->allow) +. conf.c 1795 CNF_SetupAccessRestrictions initialization Unknown \initialized(&node->subnet_bits) +. conf.c 1795 CNF_SetupAccessRestrictions mem_access Unknown \valid_read(&node->all) +. conf.c 1795 CNF_SetupAccessRestrictions mem_access Unknown \valid_read(&node->allow) +. conf.c 1795 CNF_SetupAccessRestrictions mem_access Unknown \valid_read(&node->subnet_bits) +. conf.c 1803 CNF_SetupAccessRestrictions initialization Unknown \initialized(&node->all) +. conf.c 1803 CNF_SetupAccessRestrictions initialization Unknown \initialized(&node->allow) +. conf.c 1803 CNF_SetupAccessRestrictions initialization Unknown \initialized(&node->subnet_bits) +. conf.c 1803 CNF_SetupAccessRestrictions mem_access Unknown \valid_read(&node->all) +. conf.c 1803 CNF_SetupAccessRestrictions mem_access Unknown \valid_read(&node->allow) +. conf.c 1803 CNF_SetupAccessRestrictions mem_access Unknown \valid_read(&node->subnet_bits) +. fc_stubs.c 13 qsort precondition of memcpy Unknown separation: \separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1)) +. fc_stubs.c 13 qsort precondition of memcpy Unknown valid_dest: valid_or_empty(dest, n) +. fc_stubs.c 13 qsort precondition of memcpy Unknown valid_src: valid_read_or_empty(src, n) +. keys.c 67 free_keys dangling_pointer Unknown ¬\dangling(&((Key *)tmp)->val) +. keys.c 67 free_keys initialization Unknown \initialized(&((Key *)tmp)->val) +. keys.c 67 free_keys mem_access Unknown \valid_read(&((Key *)tmp)->val) +. keys.c 67 free_keys precondition of free Unknown freeable: p ≡ \null ∨ \freeable(p) +. keys.c 126 determine_hash_delay float_to_int Unknown -2147483649 < 1.0625e9 * min_diff +. keys.c 126 determine_hash_delay float_to_int Unknown 1.0625e9 * min_diff < 2147483648 +. keys.c 139 decode_password precondition of strlen Unknown valid_string_s: valid_read_string(s) +. keys.c 143 decode_password precondition of memmove Unknown valid_dest: valid_or_empty(dest, n) +. keys.c 143 decode_password precondition of memmove Unknown valid_src: valid_read_or_empty(src, n) +. keys.c 150 decode_password initialization Unknown \initialized(key + j) +. keys.c 150 decode_password mem_access Unknown \valid_read(key + j) +. keys.c 150 decode_password initialization Unknown \initialized(key + (int)(j + 1)) +. keys.c 150 decode_password mem_access Unknown \valid_read(key + (int)(j + 1)) +. keys.c 151 decode_password mem_access Unknown \valid(key + i) +. keys.c 153 decode_password ptr_comparison Unknown \pointer_comparable((void *)p, (void *)(&buf[2])) +. keys.c 204 KEY_Reload precondition of fopen Unknown valid_filename: valid_read_string(filename) +. keys.c 214 KEY_Reload initialization Unknown \initialized((char *)line) +. keys.c 222 KEY_Reload initialization Unknown \initialized(&hashname) +. keys.c 224 KEY_Reload initialization Unknown \initialized(&key_id) +. keys.c 228 KEY_Reload initialization Unknown \initialized(&keyval) +. keys.c 230 KEY_Reload initialization Unknown \initialized(&key_id) +. keys.c 234 KEY_Reload initialization Unknown \initialized(&key_id) +. keys.c 236 KEY_Reload precondition of memcpy Unknown valid_dest: valid_or_empty(dest, n) +. keys.c 236 KEY_Reload precondition of memcpy Unknown valid_src: valid_read_or_empty(src, n) +. keys.c 249 KEY_Reload initialization Unknown \initialized(&tmp_5->id) +. keys.c 249 KEY_Reload initialization Unknown \initialized(&tmp_6->id) +. keys.c 249 KEY_Reload mem_access Unknown \valid_read(&tmp_5->id) +. keys.c 249 KEY_Reload mem_access Unknown \valid_read(&tmp_6->id) +. keys.c 250 KEY_Reload initialization Unknown \initialized(&tmp_4->id) +. keys.c 250 KEY_Reload mem_access Unknown \valid_read(&tmp_4->id) +. keys.c 257 KEY_Reload initialization Unknown \initialized(&tmp_9->id) +. keys.c 257 KEY_Reload mem_access Unknown \valid(&tmp_8->auth_delay) +. keys.c 257 KEY_Reload mem_access Unknown \valid_read(&tmp_9->id) +. keys.c 272 lookup_key ptr_comparison Unknown \pointer_comparable((void *)0, (void *)where) +. keys.c 275 lookup_key differing_blocks Unknown \base_addr(where) ≡ \base_addr(keys_ptr) +. keys.c 308 KEY_KeyKnown ptr_comparison Unknown \pointer_comparable((void *)tmp, (void *)0) +. keys.c 320 KEY_GetAuthDelay ptr_comparison Unknown \pointer_comparable((void *)0, (void *)key) +. keys.c 323 KEY_GetAuthDelay initialization Unknown \initialized(&key->auth_delay) +. keys.c 323 KEY_GetAuthDelay mem_access Unknown \valid_read(&key->auth_delay) +. keys.c 336 KEY_GetAuthLength ptr_comparison Unknown \pointer_comparable((void *)0, (void *)key) +. keys.c 339 KEY_GetAuthLength initialization Unknown \initialized(&key->hash_id) +. keys.c 339 KEY_GetAuthLength mem_access Unknown \valid_read(&key->hash_id) +. keys.c 351 KEY_CheckKeyLength ptr_comparison Unknown \pointer_comparable((void *)0, (void *)key) +. keys.c 354 KEY_CheckKeyLength initialization Unknown \initialized(&key->len) +. keys.c 354 KEY_CheckKeyLength mem_access Unknown \valid_read(&key->len) +. keys.c 392 KEY_GenerateAuth ptr_comparison Unknown \pointer_comparable((void *)0, (void *)key) +. keys.c 395 KEY_GenerateAuth initialization Unknown \initialized(&key->hash_id) +. keys.c 395 KEY_GenerateAuth initialization Unknown \initialized(&key->len) +. keys.c 395 KEY_GenerateAuth initialization Unknown \initialized(&key->val) +. keys.c 395 KEY_GenerateAuth mem_access Unknown \valid_read(&key->hash_id) +. keys.c 395 KEY_GenerateAuth mem_access Unknown \valid_read(&key->len) +. keys.c 395 KEY_GenerateAuth mem_access Unknown \valid_read(&key->val) +. local.c 126 calculate_sys_precision signed_overflow Unknown (long)(1000000000 * (long)(ts.tv_sec - old_ts.tv_sec)) + (long)(ts.tv_nsec - old_ts.tv_nsec) ≤ 9223372036854775807 +. local.c 126 calculate_sys_precision signed_overflow Unknown -9223372036854775808 ≤ (long)(1000000000 * (long)(ts.tv_sec - old_ts.tv_sec)) + (long)(ts.tv_nsec - old_ts.tv_nsec) +. local.c 126 calculate_sys_precision signed_overflow Unknown -9223372036854775808 ≤ 1000000000 * (long)(ts.tv_sec - old_ts.tv_sec) +. local.c 126 calculate_sys_precision signed_overflow Unknown 1000000000 * (long)(ts.tv_sec - old_ts.tv_sec) ≤ 9223372036854775807 +. local.c 126 calculate_sys_precision signed_overflow Unknown -9223372036854775808 ≤ ts.tv_sec - old_ts.tv_sec +. local.c 126 calculate_sys_precision signed_overflow Unknown ts.tv_sec - old_ts.tv_sec ≤ 9223372036854775807 +. local.c 126 calculate_sys_precision signed_overflow Unknown -9223372036854775808 ≤ ts.tv_nsec - old_ts.tv_nsec +. local.c 126 calculate_sys_precision signed_overflow Unknown ts.tv_nsec - old_ts.tv_nsec ≤ 9223372036854775807 +. local.c 143 calculate_sys_precision signed_overflow Unknown -2147483648 ≤ precision_log - 1 +. local.c 147 calculate_sys_precision precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. local.c 188 LCL_Finalise dangling_pointer Unknown ¬\dangling(&change_list.next) +. local.c 261 LCL_RemoveParameterChangeHandler dangling_pointer Unknown ¬\dangling(&ptr->next) +. local.c 268 LCL_RemoveParameterChangeHandler precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. local.c 271 LCL_RemoveParameterChangeHandler dangling_pointer Unknown ¬\dangling(&ptr->next) +. local.c 271 LCL_RemoveParameterChangeHandler dangling_pointer Unknown ¬\dangling(&ptr->prev) +. local.c 272 LCL_RemoveParameterChangeHandler dangling_pointer Unknown ¬\dangling(&ptr->prev) +. local.c 274 LCL_RemoveParameterChangeHandler precondition of free Unknown freeable: p ≡ \null ∨ \freeable(p) +. logging.h 80 LOG_Initialise assigns clause Unknown assigns \nothing; +. logging.h 83 LOG_Finalise assigns clause Unknown assigns \nothing; +. logging.h 92 LOG_Message assigns clause Unknown assigns \nothing; +. logging.h 100 LOG_SetDebugLevel assigns clause Unknown assigns \nothing; +. logging.h 103 LOG_OpenFileLog assigns clause Unknown assigns \nothing; +. logging.h 118 LOG_FileOpen assigns clause Unknown assigns \nothing; +. logging.h 118 LOG_FileOpen from clause Unknown assigns \result \from *(name + (0 ..)), *(banner + (0 ..)); +. logging.h 121 LOG_FileWrite assigns clause Unknown assigns \nothing; +. md5.c 157 MD5Update index_bound Unknown 0 ≤ tmp +. md5.c 157 MD5Update index_bound Unknown tmp < 64 +. md5.c 157 MD5Update signed_overflow Unknown -2147483648 ≤ mdi + 1 +. md5.c 157 MD5Update signed_overflow Unknown mdi + 1 ≤ 2147483647 +. md5.c 157 MD5Update initialization Unknown \initialized(tmp_0) +. md5.c 157 MD5Update mem_access Unknown \valid(&mdContext->in[tmp]) +. md5.c 157 MD5Update mem_access Unknown \valid_read(tmp_0) +. nameserv.c 127 DNS_Name2IPAddress mem_access Unknown \valid_read(host->h_addr_list + 0) +. ntp_core.c 364 do_time_checks precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. ntp_core.c 484 close_client_socket precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. ntp_core.c 645 NCR_DestroyInstance precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. ntp_core.c 746 adjust_poll signed_overflow Unknown inst->local_poll + (int)inst->poll_score ≤ 2147483647 +. ntp_core.c 746 adjust_poll float_to_int Unknown inst->poll_score < 2147483648 +. ntp_core.c 746 adjust_poll is_nan_or_infinite Unknown \is_finite(inst->poll_score) +. ntp_core.c 751 adjust_poll signed_overflow Unknown -2147483648 ≤ inst->local_poll + (int)\sub_double(inst->poll_score, (double)1.0) +. ntp_core.c 751 adjust_poll float_to_int Unknown -2147483649 < inst->poll_score - 1.0 +. ntp_core.c 751 adjust_poll is_nan_or_infinite Unknown \is_finite(\sub_double(inst->poll_score, (double)1.0)) +. ntp_core.c 784 get_poll_adj precondition of log Unknown arg_positive: x > 0 +. ntp_core.c 784 get_poll_adj precondition of log Unknown finite_arg: \is_finite(x) +. ntp_core.c 859 get_transmit_delay signed_overflow Unknown inst->remote_stratum - tmp ≤ 2147483647 +. ntp_core.c 1037 transmit_packet mem_access Unknown \valid_read(remote_ntp_rx) +. ntp_core.c 1078 transmit_packet signed_overflow Unknown -9223372036854775808 ≤ local_transmit.tv_nsec + (long)tmp_10 +. ntp_core.c 1078 transmit_packet signed_overflow Unknown local_transmit.tv_nsec + (long)tmp_10 ≤ 9223372036854775807 +. ntp_core.c 1164 transmit_timeout shift Unknown 0 ≤ (int)(inst->local_poll - inst->minpoll) < 32 +. ntp_core.c 1420 check_delay_ratio initialization Unknown \initialized(&last_sample_ago) +. ntp_core.c 1420 check_delay_ratio initialization Unknown \initialized(&min_delay) +. ntp_core.c 1420 check_delay_ratio initialization Unknown \initialized(&skew) +. ntp_core.c 1447 check_delay_dev_ratio initialization Unknown \initialized(&last_sample_ago) +. ntp_core.c 1447 check_delay_dev_ratio initialization Unknown \initialized(&skew) +. ntp_core.c 1447 check_delay_dev_ratio initialization Unknown \initialized(&std_dev) +. ntp_core.c 1449 check_delay_dev_ratio initialization Unknown \initialized(&min_delay) +. ntp_core.c 1454 check_delay_dev_ratio initialization Unknown \initialized(&predicted_offset) +. ntp_core.c 1459 check_delay_dev_ratio precondition of fabs Unknown finite_arg: \is_finite(x) +. ntp_core.c 1489 process_sample signed_overflow Unknown (int)(8 / 2) * filtered_samples ≤ 2147483647 +. ntp_core.c 1489 process_sample signed_overflow Unknown -2147483648 ≤ (int)(8 / 2) * filtered_samples +. ntp_core.c 1504 process_sample initialization Unknown \initialized(&sample->offset) +. ntp_core.c 1504 process_sample precondition of fabs Unknown finite_arg: \is_finite(x) +. ntp_core.c 1509 process_sample initialization Unknown \initialized(&sample->peer_delay) +. ntp_core.c 1509 process_sample initialization Unknown \initialized(&sample->peer_dispersion) +. ntp_core.c 1883 receive_packet precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. ntp_io.c 161 prepare_socket initialization Unknown \initialized(&bind_address.addr.in4) +. reference.c 202 REF_Initialise precondition of fopen Unknown valid_filename: valid_read_string(filename) +. reference.c 232 REF_Initialise precondition of fabs Unknown finite_arg: \is_finite(x) +. reference.c 265 REF_Initialise signed_overflow Unknown -2147483648 ≤ fb_drift_max_0 - fb_drift_min_0 +. reference.c 266 REF_Initialise precondition of memset Unknown valid_s: valid_or_empty(s, n) +. reference.c 341 update_drift_file precondition of strlen Unknown valid_string_s: valid_read_string(s) +. reference.c 350 update_drift_file precondition of fopen Unknown valid_filename: valid_read_string(filename) +. reference.c 370 update_drift_file precondition of stat Unknown valid_pathname: valid_read_string(pathname) +. reference.c 371 update_drift_file initialization Unknown \initialized(&buf.st_gid) +. reference.c 371 update_drift_file initialization Unknown \initialized(&buf.st_uid) +. reference.c 371 update_drift_file precondition of chown Unknown valid_string_path: valid_read_string(path) +. reference.c 372 update_drift_file initialization Unknown \initialized(&buf.st_mode) +. reference.c 380 update_drift_file precondition of rename Unknown valid_new_name: valid_read_string(new_name) +. reference.c 380 update_drift_file precondition of rename Unknown valid_old_name: valid_read_string(old_name) +. reference.c 381 update_drift_file precondition of unlink Unknown valid_string_path: valid_read_string(path) +. reference.c 415 update_fb_drifts signed_overflow Unknown (int)(fb_drift_max_0 - fb_drift_min_0) + 1 ≤ 2147483647 +. reference.c 415 update_fb_drifts signed_overflow Unknown -2147483648 ≤ fb_drift_max_0 - fb_drift_min_0 +. reference.c 415 update_fb_drifts signed_overflow Unknown fb_drift_max_0 - fb_drift_min_0 ≤ 2147483647 +. reference.c 416 update_fb_drifts signed_overflow Unknown 1 << (int)(i + fb_drift_min_0) ≤ 2147483647 +. reference.c 416 update_fb_drifts shift Unknown 0 ≤ (int)(i + fb_drift_min_0) < 32 +. reference.c 416 update_fb_drifts signed_overflow Unknown i + fb_drift_min_0 ≤ 2147483647 +. reference.c 417 update_fb_drifts initialization Unknown \initialized(&(fb_drifts + i)->secs) +. reference.c 417 update_fb_drifts mem_access Unknown \valid_read(&(fb_drifts + i)->secs) +. reference.c 420 update_fb_drifts initialization Unknown \initialized(&(fb_drifts + i)->freq) +. reference.c 420 update_fb_drifts mem_access Unknown \valid(&(fb_drifts + i)->freq) +. reference.c 422 update_fb_drifts initialization Unknown \initialized(&(fb_drifts + i)->secs) +. reference.c 422 update_fb_drifts mem_access Unknown \valid(&(fb_drifts + i)->secs) +. reference.c 427 update_fb_drifts initialization Unknown \initialized(&(fb_drifts + i)->freq) +. reference.c 427 update_fb_drifts mem_access Unknown \valid(&(fb_drifts + i)->freq) +. reference.c 427 update_fb_drifts precondition of exp Unknown finite_domain: x ≤ 0x1.62e42fefa39efp+9 +. reference.c 466 schedule_fb_drift signed_overflow Unknown 1 << i ≤ 2147483647 +. reference.c 466 schedule_fb_drift shift Unknown 0 ≤ i < 32 +. reference.c 468 schedule_fb_drift initialization Unknown \initialized(&(fb_drifts + (int)(i - fb_drift_min_0))->secs) +. reference.c 468 schedule_fb_drift mem_access Unknown \valid_read(&(fb_drifts + (int)(i - fb_drift_min_0))->secs) +. reference.c 468 schedule_fb_drift signed_overflow Unknown i - fb_drift_min_0 ≤ 2147483647 +. reference.c 478 schedule_fb_drift initialization Unknown \initialized(&(fb_drifts + (int)(c - fb_drift_min_0))->freq) +. reference.c 478 schedule_fb_drift mem_access Unknown \valid_read(&(fb_drifts + (int)(c - fb_drift_min_0))->freq) +. reference.c 478 schedule_fb_drift signed_overflow Unknown c - fb_drift_min_0 ≤ 2147483647 +. reference.c 516 maybe_log_offset precondition of fabs Unknown finite_arg: \is_finite(x) +. reference.c 526 maybe_log_offset precondition of popen Unknown valid_command: valid_read_string(command) +. reference.c 533 fprintf_va_3 precondition Unknown valid_read_string(param0) +. reference.c 533 maybe_log_offset precondition of fprintf_va_3 Unknown valid_read_string(param0) +. reference.c 534 fprintf_va_4 precondition Unknown valid_read_string(param0) +. reference.c 534 maybe_log_offset precondition of fprintf_va_4 Unknown valid_read_string(param0) +. reference.c 541 maybe_log_offset precondition of fputs Unknown valid_string_s: valid_read_string(s) +. reference.c 551 maybe_log_offset precondition of pclose Unknown open_pipe: is_open_pipe(stream) +. reference.c 570 is_step_limit_reached precondition of fabs Unknown finite_arg: \is_finite(x) +. reference.c 586 is_offset_ok precondition of fabs Unknown finite_arg: \is_finite(x) +. reference.c 659 get_tz_leap signed_overflow Unknown (long)(t - when) + 10 ≤ 9223372036854775807 +. reference.c 659 get_tz_leap signed_overflow Unknown -9223372036854775808 ≤ t - when +. reference.c 659 get_tz_leap signed_overflow Unknown t - when ≤ 9223372036854775807 +. reference.c 757 set_leap_timeout signed_overflow Unknown (long)((long)(now / (long)((int)(24 * 3600))) + 1) * (long)((int)(24 * 3600)) ≤ 9223372036854775807 +. reference.c 835 get_root_dispersion precondition of fabs Unknown finite_arg: \is_finite(x) +. reference.c 941 get_clock_estimates precondition of fabs Unknown finite_arg: \is_finite(x) +. reference.c 954 get_clock_estimates precondition of sqrt Unknown arg_positive: x ≥ -0. +. reference.c 954 get_clock_estimates precondition of sqrt Unknown finite_arg: \is_finite(x) +. reference.c 1011 REF_SetReference signed_overflow Unknown stratum + 1 ≤ 2147483647 +. reference.c 1212 REF_GetReferenceParams signed_overflow Unknown -9223372036854775808 ≤ ref_time->tv_sec - 1 +. reference.c 1324 REF_IsLeapSecondClose signed_overflow Unknown -now.tv_sec ≤ 9223372036854775807 +. reference.c 1325 REF_IsLeapSecondClose signed_overflow Unknown t + 5 ≤ 9223372036854775807 +. reference.c 1328 REF_IsLeapSecondClose signed_overflow Unknown -now_raw.tv_sec ≤ 9223372036854775807 +. reference.c 1329 REF_IsLeapSecondClose signed_overflow Unknown t + 5 ≤ 9223372036854775807 +. regress.c 123 RGR_GetTCoef index_bound Unknown 0 ≤ (int)(dof - 1) +. regress.c 183 n_runs_from_residuals initialization Unknown \initialized(resid + (int)(i - 1)) +. regress.c 183 n_runs_from_residuals mem_access Unknown \valid_read(resid + (int)(i - 1)) +. regress.c 183 n_runs_from_residuals initialization Unknown \initialized(resid + i) +. regress.c 183 n_runs_from_residuals mem_access Unknown \valid_read(resid + i) +. regress.c 184 n_runs_from_residuals initialization Unknown \initialized(resid + i) +. regress.c 184 n_runs_from_residuals mem_access Unknown \valid_read(resid + i) +. regress.c 242 RGR_FindBestRegression precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. regress.c 243 RGR_FindBestRegression precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. regress.c 243 RGR_FindBestRegression signed_overflow Unknown -2147483648 ≤ n * 2 +. regress.c 254 RGR_FindBestRegression initialization Unknown \initialized(w + i) +. regress.c 254 RGR_FindBestRegression initialization Unknown \initialized(x + i) +. regress.c 254 RGR_FindBestRegression mem_access Unknown \valid_read(x + i) +. regress.c 262 RGR_FindBestRegression initialization Unknown \initialized(x + i) +. regress.c 262 RGR_FindBestRegression mem_access Unknown \valid_read(x + i) +. regress.c 263 RGR_FindBestRegression initialization Unknown \initialized(w + i) +. regress.c 263 RGR_FindBestRegression initialization Unknown \initialized(y + i) +. regress.c 263 RGR_FindBestRegression mem_access Unknown \valid_read(y + i) +. regress.c 272 RGR_FindBestRegression signed_overflow Unknown n - (int)((int)(n - start) * 2) ≤ 2147483647 +. regress.c 272 RGR_FindBestRegression signed_overflow Unknown -2147483648 ≤ (int)(n - start) * 2 +. regress.c 273 RGR_FindBestRegression signed_overflow Unknown -m ≤ 2147483647 +. regress.c 277 RGR_FindBestRegression index_bound Unknown (int)(i - resid_start) < (int)(64 * 2) +. regress.c 277 RGR_FindBestRegression index_bound Unknown 0 ≤ (int)(i - resid_start) +. regress.c 277 RGR_FindBestRegression signed_overflow Unknown -2147483648 ≤ i - resid_start +. regress.c 277 RGR_FindBestRegression initialization Unknown \initialized(x + i) +. regress.c 277 RGR_FindBestRegression initialization Unknown \initialized(y + i) +. regress.c 277 RGR_FindBestRegression mem_access Unknown \valid_read(x + i) +. regress.c 277 RGR_FindBestRegression mem_access Unknown \valid_read(y + i) +. regress.c 283 RGR_FindBestRegression index_bound Unknown (int)(n - resid_start) < 130 +. regress.c 283 RGR_FindBestRegression index_bound Unknown 0 ≤ (int)(n - resid_start) +. regress.c 288 RGR_FindBestRegression signed_overflow Unknown start - resid_start ≤ 2147483647 +. regress.c 304 RGR_FindBestRegression initialization Unknown \initialized(&resid[(int)(i - resid_start)]) +. regress.c 304 RGR_FindBestRegression initialization Unknown \initialized(w + i) +. regress.c 304 RGR_FindBestRegression index_bound Unknown (int)(i - resid_start) < (int)(64 * 2) +. regress.c 304 RGR_FindBestRegression index_bound Unknown 0 ≤ (int)(i - resid_start) +. regress.c 309 RGR_FindBestRegression precondition of sqrt Unknown arg_positive: x ≥ -0. +. regress.c 309 RGR_FindBestRegression precondition of sqrt Unknown finite_arg: \is_finite(x) +. regress.c 311 RGR_FindBestRegression precondition of sqrt Unknown arg_positive: x ≥ -0. +. regress.c 311 RGR_FindBestRegression precondition of sqrt Unknown finite_arg: \is_finite(x) +. regress.c 353 find_ordered_entry_with_flags initialization Unknown \initialized(flags + index_0) +. regress.c 354 find_ordered_entry_with_flags initialization Unknown \initialized(x + index_0) +. regress.c 359 find_ordered_entry_with_flags initialization Unknown \initialized(flags + u) +. regress.c 360 find_ordered_entry_with_flags initialization Unknown \initialized(flags + u) +. regress.c 362 find_ordered_entry_with_flags initialization Unknown \initialized(flags + v) +. regress.c 363 find_ordered_entry_with_flags initialization Unknown \initialized(flags + v) +. regress.c 363 find_ordered_entry_with_flags mem_access Unknown \valid_read(flags + v) +. regress.c 367 find_ordered_entry_with_flags initialization Unknown \initialized(x + u) +. regress.c 367 find_ordered_entry_with_flags initialization Unknown \initialized(x + v) +. regress.c 367 find_ordered_entry_with_flags mem_access Unknown \valid_read(x + u) +. regress.c 367 find_ordered_entry_with_flags mem_access Unknown \valid_read(x + v) +. regress.c 371 find_ordered_entry_with_flags initialization Unknown \initialized(x + index_0) +. regress.c 374 find_ordered_entry_with_flags initialization Unknown \initialized(x + u) +. regress.c 374 find_ordered_entry_with_flags initialization Unknown \initialized(x + pivind) +. regress.c 374 find_ordered_entry_with_flags mem_access Unknown \valid_read(x + pivind) +. regress.c 375 find_ordered_entry_with_flags initialization Unknown \initialized(x + u) +. regress.c 379 find_ordered_entry_with_flags initialization Unknown \initialized(x + l) +. regress.c 380 find_ordered_entry_with_flags initialization Unknown \initialized(x + r) +. regress.c 380 find_ordered_entry_with_flags mem_access Unknown \valid_read(x + r) +. regress.c 382 find_ordered_entry_with_flags initialization Unknown \initialized(x + l) +. regress.c 386 find_ordered_entry_with_flags initialization Unknown \initialized(x + u) +. regress.c 678 RGR_MultipleRegress initialization Unknown \initialized(x1 + i) +. regress.c 679 RGR_MultipleRegress initialization Unknown \initialized(x2 + i) +. regress.c 683 RGR_MultipleRegress initialization Unknown \initialized(y + i) +. regress.c 698 RGR_MultipleRegress precondition of fabs Unknown finite_arg: \is_finite(x) +. regress.c 698 RGR_MultipleRegress precondition of fabs Unknown finite_arg: \is_finite(x) +. samplefilt.h 35 SPF_CreateInstance assigns clause Unknown assigns \nothing; +. samplefilt.h 35 SPF_CreateInstance from clause Unknown assigns \result \from min_samples, max_samples, max_dispersion, combine_ratio; +. samplefilt.h 37 SPF_DestroyInstance assigns clause Unknown assigns *filter; +. samplefilt.h 37 SPF_DestroyInstance from clause Unknown assigns *filter \from *filter; +. samplefilt.h 39 SPF_AccumulateSample assigns clause Unknown assigns \result, *filter, *sample; +. samplefilt.h 39 SPF_AccumulateSample from clause Unknown assigns *filter \from *filter, *sample; +. samplefilt.h 39 SPF_AccumulateSample from clause Unknown assigns *sample \from *filter, *sample; +. samplefilt.h 39 SPF_AccumulateSample from clause Unknown assigns \result \from *filter, *sample; +. samplefilt.h 41 SPF_GetNumberOfSamples assigns clause Unknown assigns \result, *filter; +. samplefilt.h 41 SPF_GetNumberOfSamples from clause Unknown assigns *filter \from *filter; +. samplefilt.h 41 SPF_GetNumberOfSamples from clause Unknown assigns \result \from *filter; +. samplefilt.h 43 SPF_DropSamples assigns clause Unknown assigns *filter; +. samplefilt.h 43 SPF_DropSamples from clause Unknown assigns *filter \from *filter; +. samplefilt.h 44 SPF_GetFilteredSample assigns clause Unknown assigns \result, *filter, *sample; +. samplefilt.h 44 SPF_GetFilteredSample from clause Unknown assigns *filter \from *filter, *sample; +. samplefilt.h 44 SPF_GetFilteredSample from clause Unknown assigns *sample \from *filter, *sample; +. samplefilt.h 44 SPF_GetFilteredSample from clause Unknown assigns \result \from *filter, *sample; +. sched.c 171 SCH_AddFileHandler mem_access Unknown \valid(&ptr->handler) +. sched.c 172 SCH_AddFileHandler mem_access Unknown \valid(&ptr->arg) +. sched.c 173 SCH_AddFileHandler mem_access Unknown \valid(&ptr->events) +. sched.c 181 SCH_AddFileHandler initialization Unknown \initialized(&ptr->handler) +. sched.c 181 SCH_AddFileHandler mem_access Unknown \valid_read(&ptr->handler) +. sched.c 181 SCH_AddFileHandler precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. sched.c 181 SCH_AddFileHandler ptr_comparison Unknown \pointer_comparable((void (*)())0, (void (*)())ptr->handler) +. sched.c 183 SCH_AddFileHandler mem_access Unknown \valid(&ptr->handler) +. sched.c 184 SCH_AddFileHandler mem_access Unknown \valid(&ptr->arg) +. sched.c 185 SCH_AddFileHandler mem_access Unknown \valid(&ptr->events) +. sched.c 204 SCH_RemoveFileHandler initialization Unknown \initialized(&ptr->handler) +. sched.c 204 SCH_RemoveFileHandler mem_access Unknown \valid_read(&ptr->handler) +. sched.c 204 SCH_RemoveFileHandler precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. sched.c 204 SCH_RemoveFileHandler ptr_comparison Unknown \pointer_comparable((void (*)())ptr->handler, (void (*)())0) +. sched.c 206 SCH_RemoveFileHandler mem_access Unknown \valid(&ptr->handler) +. sched.c 207 SCH_RemoveFileHandler mem_access Unknown \valid(&ptr->arg) +. sched.c 208 SCH_RemoveFileHandler mem_access Unknown \valid(&ptr->events) +. sched.c 213 SCH_RemoveFileHandler initialization Unknown \initialized(&ptr->handler) +. sched.c 213 SCH_RemoveFileHandler mem_access Unknown \valid_read(&ptr->handler) +. sched.c 213 SCH_RemoveFileHandler ptr_comparison Unknown \pointer_comparable((void (*)())0, (void (*)())ptr->handler) +. sched.c 476 SCH_RemoveTimeout precondition of __FC_assert Invalid or unreachable nonnull_c: c ≢ 0 +. sources.c 516 combine_sources initialization Unknown \initialized(&(*(sources + selected_source_index))->sel_info.root_distance) +. sources.c 522 combine_sources initialization Unknown \initialized(sel_sources + i) +. sources.c 533 combine_sources initialization Unknown \initialized(&(*(sources + index_0))->sel_info.root_distance) +. sources.c 534 combine_sources precondition of fabs Unknown finite_arg: \is_finite(x) +. sources.c 554 combine_sources initialization Unknown \initialized(&(*(sources + index_0))->sel_info.root_distance) +. sources.c 574 combine_sources precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. sources.c 576 combine_sources precondition of sqrt Unknown arg_positive: x ≥ -0. +. sources.c 576 combine_sources precondition of sqrt Unknown finite_arg: \is_finite(x) +. sources.c 578 combine_sources precondition of sqrt Unknown arg_positive: x ≥ -0. +. sources.c 578 combine_sources precondition of sqrt Unknown finite_arg: \is_finite(x) +. sources.c 579 combine_sources precondition of sqrt Unknown arg_positive: x ≥ -0. +. sources.c 579 combine_sources precondition of sqrt Unknown finite_arg: \is_finite(x) +. sources.c 634 SRC_SelectSource dangling_pointer Unknown ¬\dangling(sources + i) +. sources.c 634 SRC_SelectSource precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. sources.c 663 SRC_SelectSource initialization Unknown \initialized(&first_sample_ago) +. sources.c 663 SRC_SelectSource initialization Unknown \initialized(&si->last_sample_ago) +. sources.c 666 SRC_SelectSource initialization Unknown \initialized(&si->root_distance) +. sources.c 667 SRC_SelectSource initialization Unknown \initialized(&si->lo_limit) +. sources.c 668 SRC_SelectSource initialization Unknown \initialized(&si->hi_limit) +. sources.c 672 SRC_SelectSource initialization Unknown \initialized(&si->root_distance) +. sources.c 678 SRC_SelectSource initialization Unknown \initialized(&si->std_dev) +. sources.c 708 SRC_SelectSource initialization Unknown \initialized(&si->last_sample_ago) +. sources.c 730 SRC_SelectSource initialization Unknown \initialized(&si->stratum) +. sources.c 768 SRC_SelectSource initialization Unknown \initialized(&si->lo_limit) +. sources.c 772 SRC_SelectSource initialization Unknown \initialized(&si->hi_limit) +. sources.c 838 SRC_SelectSource initialization Unknown \initialized(&(sort_list + i)->tag) +. sources.c 841 SRC_SelectSource dangling_pointer Unknown ¬\dangling(sources + (sort_list + i)->index) +. sources.c 841 SRC_SelectSource initialization Unknown \initialized(&(sort_list + i)->index) +. sources.c 847 SRC_SelectSource initialization Unknown \initialized(&(sort_list + i)->offset) +. sources.c 852 SRC_SelectSource initialization Unknown \initialized(&(sort_list + i)->offset) +. sources.c 853 SRC_SelectSource dangling_pointer Unknown ¬\dangling(sources + (sort_list + i)->index) +. sources.c 853 SRC_SelectSource initialization Unknown \initialized(&(sort_list + i)->index) +. sources.c 896 SRC_SelectSource initialization Unknown \initialized(&(*(sources + i))->sel_info.lo_limit) +. sources.c 897 SRC_SelectSource initialization Unknown \initialized(&(*(sources + i))->sel_info.hi_limit) +. sources.c 898 SRC_SelectSource initialization Unknown \initialized(&(*(sources + i))->sel_info.lo_limit) +. sources.c 899 SRC_SelectSource initialization Unknown \initialized(&(*(sources + i))->sel_info.hi_limit) +. sources.c 906 SRC_SelectSource initialization Unknown \initialized(&(*(sources + i))->sel_info.hi_limit) +. sources.c 928 SRC_SelectSource initialization Unknown \initialized(sel_sources + i) +. sources.c 929 SRC_SelectSource dangling_pointer Unknown ¬\dangling(sources + index_0) +. sources.c 932 SRC_SelectSource dangling_pointer Unknown ¬\dangling(sources + index_0) +. sources.c 932 SRC_SelectSource initialization Unknown \initialized(&(*(sources + index_0))->sel_info.leap) +. sources.c 949 SRC_SelectSource initialization Unknown \initialized(sel_sources + i) +. sources.c 955 SRC_SelectSource initialization Unknown \initialized(sel_sources + i) +. sources.c 960 SRC_SelectSource precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. sources.c 970 SRC_SelectSource initialization Unknown \initialized(&(*(sources + index_0))->sel_info.stratum) +. sources.c 973 SRC_SelectSource initialization Unknown \initialized(sel_sources + i) +. sources.c 974 SRC_SelectSource initialization Unknown \initialized(&(*(sources + index_0))->sel_info.stratum) +. sources.c 986 SRC_SelectSource initialization Unknown \initialized(&(*(sources + selected_source_index))->sel_info.root_distance) +. sources.c 986 SRC_SelectSource initialization Unknown \initialized(&(*(sources + selected_source_index))->sel_info.stratum) +. sources.c 987 SRC_SelectSource signed_overflow Unknown (*(sources + selected_source_index))->sel_info.stratum - min_stratum ≤ 2147483647 +. sources.c 987 SRC_SelectSource signed_overflow Unknown -2147483648 ≤ (*(sources + selected_source_index))->sel_info.stratum - min_stratum +. sources.c 999 SRC_SelectSource initialization Unknown \initialized(&(*(sources + i))->sel_info.root_distance) +. sources.c 999 SRC_SelectSource initialization Unknown \initialized(&(*(sources + i))->sel_info.stratum) +. sources.c 1000 SRC_SelectSource signed_overflow Unknown (*(sources + i))->sel_info.stratum - min_stratum ≤ 2147483647 +. sources.c 1000 SRC_SelectSource signed_overflow Unknown -2147483648 ≤ (*(sources + i))->sel_info.stratum - min_stratum +. sources.c 1033 SRC_SelectSource precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. sources.c 1071 SRC_SelectSource initialization Unknown \initialized(sel_sources + i) +. sources.c 1094 SRC_SelectSource initialization Unknown \initialized(&(*(sources + selected_source_index))->sel_info.stratum) +. sourcestats.c 280 prune_register initialization Unknown \initialized(&inst->n_samples) +. sourcestats.c 280 prune_register precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. sourcestats.c 281 prune_register signed_overflow Unknown -2147483648 ≤ inst->n_samples - new_oldest +. sourcestats.c 282 prune_register initialization Unknown \initialized(&inst->runs_samples) +. sourcestats.c 282 prune_register signed_overflow Unknown inst->runs_samples + new_oldest ≤ 2147483647 +. sourcestats.c 286 prune_register signed_overflow Unknown -2147483648 ≤ inst->n_samples + inst->runs_samples +. sourcestats.c 299 SST_AccumulateSample initialization Unknown \initialized(&inst->n_samples) +. sourcestats.c 300 SST_AccumulateSample initialization Unknown \initialized(&inst->max_samples) +. sourcestats.c 305 SST_AccumulateSample initialization Unknown \initialized(&inst->n_samples) +. sourcestats.c 306 SST_AccumulateSample initialization Unknown \initialized(&inst->last_sample) +. sourcestats.c 307 SST_AccumulateSample dangling_pointer Unknown ¬\dangling(&inst->ip_addr) +. sourcestats.c 307 SST_AccumulateSample initialization Unknown \initialized(&inst->ip_addr) +. sourcestats.c 312 SST_AccumulateSample initialization Unknown \initialized(&inst->last_sample) +. sourcestats.c 319 SST_AccumulateSample initialization Unknown \initialized(&sample->offset) +. sourcestats.c 321 SST_AccumulateSample initialization Unknown \initialized(&sample->peer_delay) +. sourcestats.c 322 SST_AccumulateSample initialization Unknown \initialized(&sample->peer_dispersion) +. sourcestats.c 323 SST_AccumulateSample initialization Unknown \initialized(&sample->root_delay) +. sourcestats.c 324 SST_AccumulateSample initialization Unknown \initialized(&sample->root_dispersion) +. sourcestats.c 325 SST_AccumulateSample initialization Unknown \initialized(&sample->stratum) +. sourcestats.c 326 SST_AccumulateSample initialization Unknown \initialized(&sample->leap) +. sourcestats.c 328 SST_AccumulateSample initialization Unknown \initialized(&inst->fixed_min_delay) +. sourcestats.c 331 SST_AccumulateSample initialization Unknown \initialized(&inst->n_samples) +. sourcestats.c 331 SST_AccumulateSample initialization Unknown \initialized(&inst->min_delay_sample) +. sourcestats.c 331 SST_AccumulateSample initialization Unknown \initialized(&inst->peer_delays[inst->min_delay_sample]) +. sourcestats.c 344 get_runsbuf_index initialization Unknown \initialized(&inst->last_sample) +. sourcestats.c 344 get_runsbuf_index initialization Unknown \initialized(&inst->n_samples) +. sourcestats.c 344 get_runsbuf_index signed_overflow Unknown (int)((int)((int)(inst->last_sample + (int)((int)(2 * 64) * 2)) - inst->n_samples) + i) + 1 ≤ 2147483647 +. sourcestats.c 344 get_runsbuf_index signed_overflow Unknown (int)((int)(inst->last_sample + (int)((int)(2 * 64) * 2)) - inst->n_samples) + i ≤ 2147483647 +. sourcestats.c 344 get_runsbuf_index signed_overflow Unknown (int)(inst->last_sample + (int)((int)(2 * 64) * 2)) - inst->n_samples ≤ 2147483647 +. sourcestats.c 354 get_buf_index initialization Unknown \initialized(&inst->last_sample) +. sourcestats.c 354 get_buf_index initialization Unknown \initialized(&inst->n_samples) +. sourcestats.c 354 get_buf_index signed_overflow Unknown (int)((int)((int)(inst->last_sample + (int)(64 * 2)) - inst->n_samples) + i) + 1 ≤ 2147483647 +. sourcestats.c 354 get_buf_index signed_overflow Unknown (int)((int)(inst->last_sample + (int)(64 * 2)) - inst->n_samples) + i ≤ 2147483647 +. sourcestats.c 354 get_buf_index signed_overflow Unknown (int)(inst->last_sample + (int)(64 * 2)) - inst->n_samples ≤ 2147483647 +. sourcestats.c 369 convert_to_intervals initialization Unknown \initialized(&inst->last_sample) +. sourcestats.c 370 convert_to_intervals initialization Unknown \initialized(&inst->runs_samples) +. sourcestats.c 370 convert_to_intervals signed_overflow Unknown -inst->runs_samples ≤ 2147483647 +. sourcestats.c 370 convert_to_intervals initialization Unknown \initialized(&inst->n_samples) +. sourcestats.c 372 convert_to_intervals mem_access Unknown \valid(times_back + i) +. sourcestats.c 388 find_best_sample_index initialization Unknown \initialized(&inst->n_samples) +. sourcestats.c 397 find_best_sample_index initialization Unknown \initialized(times_back + i) +. sourcestats.c 397 find_best_sample_index mem_access Unknown \valid_read(times_back + i) +. sourcestats.c 398 find_best_sample_index precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. sourcestats.c 400 find_best_sample_index initialization Unknown \initialized(&inst->root_delays[j]) +. sourcestats.c 400 find_best_sample_index initialization Unknown \initialized(&inst->root_dispersions[j]) +. sourcestats.c 400 find_best_sample_index initialization Unknown \initialized(&inst->skew) +. sourcestats.c 407 find_best_sample_index precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. sourcestats.c 418 find_min_delay_sample initialization Unknown \initialized(&inst->runs_samples) +. sourcestats.c 418 find_min_delay_sample signed_overflow Unknown -inst->runs_samples ≤ 2147483647 +. sourcestats.c 420 find_min_delay_sample signed_overflow Unknown (int)(-inst->runs_samples) + 1 ≤ 2147483647 +. sourcestats.c 420 find_min_delay_sample initialization Unknown \initialized(&inst->n_samples) +. sourcestats.c 422 find_min_delay_sample initialization Unknown \initialized(&inst->peer_delays[index_0]) +. sourcestats.c 422 find_min_delay_sample initialization Unknown \initialized(&inst->peer_delays[inst->min_delay_sample]) +. sourcestats.c 444 estimate_asymmetry initialization Unknown \initialized(&a) +. sourcestats.c 444 estimate_asymmetry initialization Unknown \initialized(asymmetry_run) +. sourcestats.c 472 correct_asymmetry initialization Unknown \initialized(&inst->fixed_asymmetry) +. sourcestats.c 476 correct_asymmetry initialization Unknown \initialized(&inst->n_samples) +. sourcestats.c 476 correct_asymmetry initialization Unknown \initialized(&inst->runs_samples) +. sourcestats.c 476 correct_asymmetry signed_overflow Unknown -2147483648 ≤ inst->runs_samples + inst->n_samples +. sourcestats.c 476 correct_asymmetry signed_overflow Unknown inst->runs_samples + inst->n_samples ≤ 2147483647 +. sourcestats.c 479 correct_asymmetry index_bound Unknown i < (int)(64 * 2) +. sourcestats.c 479 correct_asymmetry initialization Unknown \initialized(&inst->peer_delays[tmp]) +. sourcestats.c 479 correct_asymmetry signed_overflow Unknown i - inst->runs_samples ≤ 2147483647 +. sourcestats.c 482 correct_asymmetry precondition of fabs Unknown finite_arg: \is_finite(x) +. sourcestats.c 492 correct_asymmetry initialization Unknown \initialized(&delays[i]) +. sourcestats.c 492 correct_asymmetry initialization Unknown \initialized(&inst->asymmetry) +. sourcestats.c 492 correct_asymmetry initialization Unknown \initialized(offsets + i) +. sourcestats.c 527 SST_DoNewRegression initialization Unknown \initialized(&inst->runs_samples) +. sourcestats.c 529 SST_DoNewRegression initialization Unknown \initialized(&inst->n_samples) +. sourcestats.c 530 SST_DoNewRegression signed_overflow Unknown -inst->runs_samples ≤ 2147483647 +. sourcestats.c 531 SST_DoNewRegression index_bound Unknown (int)(i + inst->runs_samples) < (int)(64 * 2) +. sourcestats.c 531 SST_DoNewRegression index_bound Unknown 0 ≤ (int)(i + inst->runs_samples) +. sourcestats.c 531 SST_DoNewRegression signed_overflow Unknown -2147483648 ≤ i + inst->runs_samples +. sourcestats.c 531 SST_DoNewRegression signed_overflow Unknown i + inst->runs_samples ≤ 2147483647 +. sourcestats.c 531 SST_DoNewRegression initialization Unknown \initialized(&inst->offsets[tmp]) +. sourcestats.c 536 SST_DoNewRegression initialization Unknown \initialized(&inst->peer_delays[tmp_0]) +. sourcestats.c 536 SST_DoNewRegression initialization Unknown \initialized(&inst->peer_dispersions[j]) +. sourcestats.c 554 SST_DoNewRegression initialization Unknown \initialized(&peer_distances[i]) +. sourcestats.c 562 SST_DoNewRegression initialization Unknown \initialized(&inst->min_samples) +. sourcestats.c 572 SST_DoNewRegression initialization Unknown \initialized(&inst->skew) +. sourcestats.c 573 SST_DoNewRegression initialization Unknown \initialized(&inst->estimated_frequency) +. sourcestats.c 575 SST_DoNewRegression initialization Unknown \initialized(&est_slope) +. sourcestats.c 576 SST_DoNewRegression initialization Unknown \initialized(&est_slope_sd) +. sourcestats.c 577 SST_DoNewRegression initialization Unknown \initialized(°rees_of_freedom) +. sourcestats.c 578 SST_DoNewRegression initialization Unknown \initialized(&est_intercept) +. sourcestats.c 579 SST_DoNewRegression initialization Unknown \initialized(&inst->last_sample) +. sourcestats.c 580 SST_DoNewRegression initialization Unknown \initialized(&est_intercept_sd) +. sourcestats.c 581 SST_DoNewRegression precondition of sqrt Unknown arg_positive: x ≥ -0. +. sourcestats.c 581 SST_DoNewRegression precondition of sqrt Unknown finite_arg: \is_finite(x) +. sourcestats.c 581 SST_DoNewRegression precondition of sqrt Unknown arg_positive: x ≥ -0. +. sourcestats.c 581 SST_DoNewRegression precondition of sqrt Unknown finite_arg: \is_finite(x) +. sourcestats.c 582 SST_DoNewRegression initialization Unknown \initialized(&nruns) +. sourcestats.c 585 SST_DoNewRegression precondition of fabs Unknown finite_arg: \is_finite(x) +. sourcestats.c 593 SST_DoNewRegression initialization Unknown \initialized(&best_start) +. sourcestats.c 593 SST_DoNewRegression initialization Unknown \initialized(&inst->asymmetry) +. sourcestats.c 594 SST_DoNewRegression initialization Unknown \initialized(&inst->offset_time.tv_sec) +. sourcestats.c 595 SST_DoNewRegression dangling_pointer Unknown ¬\dangling(&inst->ip_addr) +. sourcestats.c 595 SST_DoNewRegression initialization Unknown \initialized(&inst->ip_addr) +. sourcestats.c 603 SST_DoNewRegression signed_overflow Unknown inst->runs_samples + best_start ≤ 2147483647 +. sourcestats.c 626 SST_GetFrequencyRange initialization Unknown \initialized(&inst->estimated_frequency) +. sourcestats.c 627 SST_GetFrequencyRange initialization Unknown \initialized(&inst->skew) +. sourcestats.c 656 SST_GetSelectionData initialization Unknown \initialized(&inst->n_samples) +. sourcestats.c 661 SST_GetSelectionData initialization Unknown \initialized(&inst->best_single_sample) +. sourcestats.c 664 SST_GetSelectionData initialization Unknown \initialized(&inst->stratum) +. sourcestats.c 665 SST_GetSelectionData initialization Unknown \initialized(&inst->leap) +. sourcestats.c 666 SST_GetSelectionData initialization Unknown \initialized(&inst->std_dev) +. sourcestats.c 669 SST_GetSelectionData initialization Unknown \initialized(&inst->estimated_frequency) +. sourcestats.c 669 SST_GetSelectionData initialization Unknown \initialized(&inst->offsets[i]) +. sourcestats.c 670 SST_GetSelectionData initialization Unknown \initialized(&inst->root_delays[j]) +. sourcestats.c 670 SST_GetSelectionData initialization Unknown \initialized(&inst->root_dispersions[j]) +. sourcestats.c 670 SST_GetSelectionData initialization Unknown \initialized(&inst->skew) +. sourcestats.c 692 SST_GetSelectionData signed_overflow Unknown -2147483648 ≤ inst->n_samples - 1 +. sourcestats.c 695 SST_GetSelectionData initialization Unknown \initialized(&inst->regression_ok) +. sourcestats.c 713 SST_GetTrackingData initialization Unknown \initialized(&inst->n_samples) +. sourcestats.c 713 SST_GetTrackingData precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. sourcestats.c 715 SST_GetTrackingData initialization Unknown \initialized(&inst->best_single_sample) +. sourcestats.c 719 SST_GetTrackingData initialization Unknown \initialized(&inst->estimated_offset) +. sourcestats.c 720 SST_GetTrackingData initialization Unknown \initialized(&inst->estimated_offset_sd) +. sourcestats.c 721 SST_GetTrackingData initialization Unknown \initialized(&inst->estimated_frequency) +. sourcestats.c 722 SST_GetTrackingData initialization Unknown \initialized(&inst->estimated_frequency_sd) +. sourcestats.c 723 SST_GetTrackingData initialization Unknown \initialized(&inst->skew) +. sourcestats.c 724 SST_GetTrackingData initialization Unknown \initialized(&inst->root_delays[j]) +. sourcestats.c 727 SST_GetTrackingData initialization Unknown \initialized(&inst->root_dispersions[j]) +. sourcestats.c 744 SST_SlewSamples initialization Unknown \initialized(&inst->n_samples) +. sourcestats.c 747 SST_SlewSamples initialization Unknown \initialized(&inst->runs_samples) +. sourcestats.c 747 SST_SlewSamples signed_overflow Unknown -inst->runs_samples ≤ 2147483647 +. sourcestats.c 752 SST_SlewSamples initialization Unknown \initialized(&inst->offsets[i]) +. sourcestats.c 757 SST_SlewSamples initialization Unknown \initialized(&inst->estimated_offset) +. sourcestats.c 758 SST_SlewSamples initialization Unknown \initialized(&inst->estimated_frequency) +. sourcestats.c 792 SST_PredictOffset initialization Unknown \initialized(&inst->n_samples) +. sourcestats.c 797 SST_PredictOffset initialization Unknown \initialized(&inst->last_sample) +. sourcestats.c 797 SST_PredictOffset initialization Unknown \initialized(&inst->offsets[inst->last_sample]) +. sourcestats.c 803 SST_PredictOffset initialization Unknown \initialized(&inst->estimated_frequency) +. sourcestats.c 803 SST_PredictOffset initialization Unknown \initialized(&inst->estimated_offset) +. sourcestats.c 813 SST_MinRoundTripDelay initialization Unknown \initialized(&inst->fixed_min_delay) +. sourcestats.c 816 SST_MinRoundTripDelay initialization Unknown \initialized(&inst->n_samples) +. sourcestats.c 819 SST_MinRoundTripDelay initialization Unknown \initialized(&inst->min_delay_sample) +. sourcestats.c 819 SST_MinRoundTripDelay initialization Unknown \initialized(&inst->peer_delays[inst->min_delay_sample]) +. sourcestats.c 829 SST_GetDelayTestData initialization Unknown \initialized(&inst->n_samples) +. sourcestats.c 833 SST_GetDelayTestData initialization Unknown \initialized(&inst->estimated_frequency) +. sourcestats.c 833 SST_GetDelayTestData initialization Unknown \initialized(&inst->estimated_offset) +. sourcestats.c 836 SST_GetDelayTestData initialization Unknown \initialized(&inst->skew) +. sourcestats.c 837 SST_GetDelayTestData initialization Unknown \initialized(&inst->std_dev) +. sourcestats.c 986 SST_Samples initialization Unknown \initialized(&inst->n_samples) +. sourcestats.c 1037 SST_GetJitterAsymmetry initialization Unknown \initialized(&inst->asymmetry) +. util.c 97 UTI_NormaliseTimespec initialization Unknown \initialized(&ts->tv_nsec) +. util.c 98 UTI_NormaliseTimespec initialization Unknown \initialized(&ts->tv_sec) +. util.c 98 UTI_NormaliseTimespec signed_overflow Unknown -9223372036854775808 ≤ ts->tv_sec + (long)(ts->tv_nsec / 1000000000) +. util.c 98 UTI_NormaliseTimespec signed_overflow Unknown ts->tv_sec + (long)(ts->tv_nsec / 1000000000) ≤ 9223372036854775807 +. util.c 98 UTI_NormaliseTimespec signed_overflow Unknown -9223372036854775808 ≤ ts->tv_nsec / 1000000000 +. util.c 98 UTI_NormaliseTimespec signed_overflow Unknown ts->tv_nsec / 1000000000 ≤ 9223372036854775807 +. util.c 99 UTI_NormaliseTimespec signed_overflow Unknown -9223372036854775808 ≤ ts->tv_nsec % 1000000000 +. util.c 99 UTI_NormaliseTimespec signed_overflow Unknown ts->tv_nsec % 1000000000 ≤ 9223372036854775807 +. util.c 103 UTI_NormaliseTimespec signed_overflow Unknown -9223372036854775808 ≤ ts->tv_sec - 1 +. util.c 103 UTI_NormaliseTimespec signed_overflow Unknown ts->tv_sec - 1 ≤ 9223372036854775807 +. util.c 104 UTI_NormaliseTimespec signed_overflow Unknown -9223372036854775808 ≤ ts->tv_nsec + 1000000000 +. util.c 104 UTI_NormaliseTimespec signed_overflow Unknown ts->tv_nsec + 1000000000 ≤ 9223372036854775807 +. util.c 154 UTI_CompareTimespecs initialization Unknown \initialized(&a->tv_sec) +. util.c 154 UTI_CompareTimespecs initialization Unknown \initialized(&b->tv_sec) +. util.c 158 UTI_CompareTimespecs initialization Unknown \initialized(&a->tv_nsec) +. util.c 158 UTI_CompareTimespecs initialization Unknown \initialized(&b->tv_nsec) +. util.c 181 UTI_DiffTimespecsToDouble initialization Unknown \initialized(&a->tv_nsec) +. util.c 181 UTI_DiffTimespecsToDouble initialization Unknown \initialized(&a->tv_sec) +. util.c 181 UTI_DiffTimespecsToDouble initialization Unknown \initialized(&b->tv_nsec) +. util.c 181 UTI_DiffTimespecsToDouble initialization Unknown \initialized(&b->tv_sec) +. util.c 181 UTI_DiffTimespecsToDouble signed_overflow Unknown -9223372036854775808 ≤ a->tv_nsec - b->tv_nsec +. util.c 181 UTI_DiffTimespecsToDouble signed_overflow Unknown a->tv_nsec - b->tv_nsec ≤ 9223372036854775807 +. util.c 191 UTI_AddDoubleToTimespec float_to_int Unknown -9223372036854775809 < increment +. util.c 191 UTI_AddDoubleToTimespec float_to_int Unknown increment < 9223372036854775808 +. util.c 191 UTI_AddDoubleToTimespec is_nan_or_infinite Unknown \is_finite(increment) +. util.c 192 UTI_AddDoubleToTimespec initialization Unknown \initialized(&start->tv_sec) +. util.c 192 UTI_AddDoubleToTimespec signed_overflow Unknown -9223372036854775808 ≤ start->tv_sec + int_part +. util.c 192 UTI_AddDoubleToTimespec signed_overflow Unknown start->tv_sec + int_part ≤ 9223372036854775807 +. util.c 193 UTI_AddDoubleToTimespec float_to_int Unknown (double)start->tv_nsec + \mul_double((double)1.0e9, \sub_double(increment, (double)int_part)) < 9223372036854775808 +. util.c 193 UTI_AddDoubleToTimespec float_to_int Unknown -9223372036854775809 < (double)start->tv_nsec + \mul_double((double)1.0e9, \sub_double(increment, (double)int_part)) +. util.c 193 UTI_AddDoubleToTimespec initialization Unknown \initialized(&start->tv_nsec) +. util.c 291 UTI_IPToString initialization Unknown \initialized(&addr->family) +. util.c 291 UTI_IPToString mem_access Unknown \valid_read(&addr->family) +. util.c 296 UTI_IPToString initialization Unknown \initialized(&addr->addr.in4) +. util.c 296 UTI_IPToString mem_access Unknown \valid_read(&addr->addr.in4) +. util.c 310 UTI_IPToString initialization Unknown \initialized(ip6 + (unsigned long)((unsigned long)(2 * a) + 1)) +. util.c 310 UTI_IPToString initialization Unknown \initialized(ip6 + (unsigned long)(2 * a)) +. util.c 310 UTI_IPToString mem_access Unknown \valid_read(ip6 + (unsigned long)((unsigned long)(2 * a) + 1)) +. util.c 310 UTI_IPToString mem_access Unknown \valid_read(ip6 + (unsigned long)(2 * a)) +. util.c 310 UTI_IPToString precondition of snprintf_va_10 Unknown \valid(s + (0 .. n - 1)) ∨ \valid(s + (0 .. format_length(format) - 1)) +. util.c 310 snprintf_va_10 precondition Unknown \valid(s + (0 .. n - 1)) ∨ \valid(s + (0 .. format_length(format) - 1)) +. util.c 345 UTI_StringToIP precondition of sscanf_va_63 Unknown valid_read_string(s) +. util.c 345 sscanf_va_63 precondition Unknown valid_read_string(s) +. util.c 680 UTI_DoubleToNtp32 is_nan_or_infinite Unknown \is_finite(x) +. util.c 764 UTI_TimespecToNtp64 float_to_int Unknown -1 < 4.294967296 * (double)nsec +. util.c 764 UTI_TimespecToNtp64 float_to_int Unknown 4.294967296 * (double)nsec < 4294967296 +. util.c 764 UTI_TimespecToNtp64 is_nan_or_infinite Unknown \is_finite(\mul_double((double)4.294967296, (double)nsec)) +. util.c 1213 UTI_GetRandomBytesUrandom precondition of fread Unknown valid_ptr_block: \valid((char *)ptr + (0 .. nmemb * size - 1)) +FRAMAC_SHARE/libc __fc_inet.h 358 inet_addr precondition Unknown valid_arg: valid_read_string(arg) +FRAMAC_SHARE/libc assert.h 31 __FC_assert precondition Invalid or unreachable nonnull_c: c ≢ 0 +FRAMAC_SHARE/libc math.h 325 exp precondition Unknown finite_domain: x ≤ 0x1.62e42fefa39efp+9 +FRAMAC_SHARE/libc math.h 362 log precondition Unknown finite_arg: \is_finite(x) +FRAMAC_SHARE/libc math.h 363 log precondition Unknown arg_positive: x > 0 +FRAMAC_SHARE/libc math.h 449 fabs precondition Unknown finite_arg: \is_finite(x) +FRAMAC_SHARE/libc math.h 493 sqrt precondition Unknown finite_arg: \is_finite(x) +FRAMAC_SHARE/libc math.h 494 sqrt precondition Unknown arg_positive: x ≥ -0. +FRAMAC_SHARE/libc netdb.c 113 gethostbyname mem_access Unknown \valid_read(cp) +FRAMAC_SHARE/libc netdb.c 116 gethostbyname mem_access Unknown \valid_read(cp) +FRAMAC_SHARE/libc netdb.c 119 gethostbyname precondition of inet_addr Unknown valid_arg: valid_read_string(arg) +FRAMAC_SHARE/libc netdb.c 145 gethostbyname precondition of inet_addr Unknown valid_arg: valid_read_string(arg) +FRAMAC_SHARE/libc stdio.h 83 rename precondition Unknown valid_old_name: valid_read_string(old_name) +FRAMAC_SHARE/libc stdio.h 84 rename precondition Unknown valid_new_name: valid_read_string(new_name) +FRAMAC_SHARE/libc stdio.h 150 fopen precondition Unknown valid_filename: valid_read_string(filename) +FRAMAC_SHARE/libc stdio.h 288 fputs precondition Unknown valid_string_s: valid_read_string(s) +FRAMAC_SHARE/libc stdio.h 351 fread precondition Unknown valid_ptr_block: \valid((char *)ptr + (0 .. nmemb * size - 1)) +FRAMAC_SHARE/libc stdio.h 548 popen precondition Unknown valid_command: valid_read_string(command) +FRAMAC_SHARE/libc stdio.h 563 pclose precondition Unknown open_pipe: is_open_pipe(stream) +FRAMAC_SHARE/libc stdlib.h 405 free precondition Unknown freeable: p ≡ \null ∨ \freeable(p) +FRAMAC_SHARE/libc string.c 130 strcmp initialization Unknown \initialized(s1 + i) +FRAMAC_SHARE/libc string.c 130 strcmp mem_access Unknown \valid_read(s1 + i) +FRAMAC_SHARE/libc string.c 130 strcmp mem_access Unknown \valid_read(s2 + i) +FRAMAC_SHARE/libc string.c 133 strcmp initialization Unknown \initialized((unsigned char *)s1 + i) +FRAMAC_SHARE/libc string.c 133 strcmp mem_access Unknown \valid_read((unsigned char *)s1 + i) +FRAMAC_SHARE/libc string.c 139 strncmp initialization Unknown \initialized(s1 + i) +FRAMAC_SHARE/libc string.c 139 strncmp mem_access Unknown \valid_read(s1 + i) +FRAMAC_SHARE/libc string.c 140 strncmp initialization Unknown \initialized((unsigned char *)s1 + i) +FRAMAC_SHARE/libc string.c 140 strncmp mem_access Unknown \valid_read((unsigned char *)s1 + i) +FRAMAC_SHARE/libc string.c 170 strcasecmp initialization Unknown \initialized(s1 + i) +FRAMAC_SHARE/libc string.c 170 strcasecmp mem_access Unknown \valid_read(s1 + i) +FRAMAC_SHARE/libc string.c 170 strcasecmp mem_access Unknown \valid_read(s2 + i) +FRAMAC_SHARE/libc string.c 174 strcasecmp mem_access Unknown \valid_read(s2 + i) +FRAMAC_SHARE/libc string.c 182 strcat precondition of strlen Unknown valid_string_s: valid_read_string(s) +FRAMAC_SHARE/libc string.c 183 strcat mem_access Unknown \valid_read(src + i) +FRAMAC_SHARE/libc string.c 184 strcat mem_access Unknown \valid(dest + (unsigned long)(n + i)) +FRAMAC_SHARE/libc string.c 186 strcat mem_access Unknown \valid(dest + (unsigned long)(n + i)) +FRAMAC_SHARE/libc string.c 207 strcpy initialization Unknown \initialized(src + i) +FRAMAC_SHARE/libc string.c 207 strcpy mem_access Unknown \valid_read(src + i) +FRAMAC_SHARE/libc string.c 208 strcpy mem_access Unknown \valid(dest + i) +FRAMAC_SHARE/libc string.c 209 strcpy mem_access Unknown \valid(dest + i) +FRAMAC_SHARE/libc string.c 217 strncpy mem_access Unknown \valid_read(src + i) +FRAMAC_SHARE/libc string.c 292 strdup precondition of strlen Unknown valid_string_s: valid_read_string(s) +FRAMAC_SHARE/libc string.c 298 strdup precondition of memcpy Unknown valid_dest: valid_or_empty(dest, n) +FRAMAC_SHARE/libc string.c 298 strdup precondition of memcpy Unknown valid_src: valid_read_or_empty(src, n) +FRAMAC_SHARE/libc string.h 92 memcpy precondition Unknown valid_dest: valid_or_empty(dest, n) +FRAMAC_SHARE/libc string.h 93 memcpy precondition Unknown valid_src: valid_read_or_empty(src, n) +FRAMAC_SHARE/libc string.h 95 memcpy precondition Unknown separation: \separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1)) +FRAMAC_SHARE/libc string.h 104 memmove precondition Unknown valid_dest: valid_or_empty(dest, n) +FRAMAC_SHARE/libc string.h 105 memmove precondition Unknown valid_src: valid_read_or_empty(src, n) +FRAMAC_SHARE/libc string.h 115 memset precondition Unknown valid_s: valid_or_empty(s, n) +FRAMAC_SHARE/libc string.h 125 strlen precondition Unknown valid_string_s: valid_read_string(s) +FRAMAC_SHARE/libc string.h 157 strchr precondition Unknown valid_string_s: valid_read_string(s) +FRAMAC_SHARE/libc unistd.h 774 chown precondition Unknown valid_string_path: valid_read_string(path) +FRAMAC_SHARE/libc unistd.h 1116 unlink precondition Unknown valid_string_path: valid_read_string(path) +FRAMAC_SHARE/libc/sys stat.h 32 chmod assigns clause Unknown assigns \nothing; +FRAMAC_SHARE/libc/sys stat.h 32 chmod from clause Unknown assigns \result \from \nothing; +FRAMAC_SHARE/libc/sys stat.h 84 stat precondition Unknown valid_pathname: valid_read_string(pathname) +test/unit ntp_core.c 179 send_response precondition of __FC_assert Invalid or unreachable nonnull_c: c ≢ 0 +test/unit ntp_core.c 186 send_response precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +test/unit ntp_core.c 192 send_response precondition of __FC_assert Invalid or unreachable nonnull_c: c ≢ 0 +test/unit ntp_core.c 424 test_unit shift Unknown 0 ≤ inst1->local_poll < 32 +test/unit ntp_core.c 446 test_unit precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +test/unit ntp_core.c 464 test_unit signed_overflow Unknown 1 << (int)(source.params.minpoll - 1) ≤ 2147483647 +test/unit ntp_core.c 464 test_unit shift Unknown 0 ≤ (int)(source.params.minpoll - 1) < 32 +test/unit ntp_core.c 464 test_unit signed_overflow Unknown -2147483648 ≤ source.params.minpoll - 1 +test/unit ntp_core.c 468 test_unit precondition of __FC_assert Unknown nonnull_c: c ≢ 0 diff --git a/chrony/.frama-c/chrony-ntp-core.eva/metrics.log b/chrony/.frama-c/chrony-ntp-core.eva/metrics.log new file mode 100644 index 0000000000000000000000000000000000000000..44421768f56520fcc334a09259ed0c99a93374e5 --- /dev/null +++ b/chrony/.frama-c/chrony-ntp-core.eva/metrics.log @@ -0,0 +1,396 @@ +[metrics] Eva coverage statistics +======================= +Syntactically reachable functions = 385 (out of 542) +Semantically reached functions = 333 +Coverage estimation = 86.5% + +Unreached functions (52) = + <clientlog.c>: CLG_GetNtpTimestamps; CLG_LimitNTPResponseRate; compare_ts; + expand_hashtable; get_index; get_ts_from_timespec; limit_response_random; + update_record; + <conf.c>: CNF_GetInitStepThreshold; CNF_ReadFile; + <keys.c>: check_ntp_auth; compare_keys_by_id; KEY_CheckAuth; + <local.c>: LCL_AccumulateOffset; LCL_IsFirstParameterChangeHandler; + LCL_NotifyLeap; LCL_SetSystemLeap; + <ntp_core.c>: is_zero_data; + <ntp_io.c>: connect_socket; NIO_IsServerConnectable; + prepare_separate_client_socket; process_message; read_from_socket; + <ntp_sources.h>: NSR_GetLocalRefid; NSR_ProcessRx; + <reference.c>: fb_drift_timeout; leap_end_timeout; leap_start_timeout; + REF_GetLeapMode; REF_GetSkew; + <sched.c>: allocate_tqe; get_new_tqe_id; release_tqe; + SCH_AddTimeoutByDelay; + <smooth.c>: get_smoothing; SMT_Activate; SMT_GetOffset; SMT_Leap; + SMT_Reset; update_smoothing; update_stages; + <sources.c>: add_dispersion; compare_sort_elements; + <sourcestats.c>: SST_AddDispersion; + <stubs.c>: NSD_GetAuthDelay; NSD_SignAndSendPacket; + <util.c>: UTI_CompareIPs; UTI_IPAndPortToSockaddr; UTI_IPToHash; + UTI_RefidToString; UTI_SockaddrToIPAndPort; UTI_TimevalToTimespec; +[metrics] References to non-analyzed functions +------------------------------------ +Function check_packet_auth calls KEY_CheckAuth (at ntp_core.c:1353) +Function check_packet_auth calls is_zero_data (at ntp_core.c:1393) +Function check_packet_auth calls is_zero_data (at ntp_core.c:1395) +Function CLG_GetClientIndex calls get_index (at clientlog.c:455) +Function CLG_LogNTPAccess calls update_record (at clientlog.c:473) +Function CLG_LogNTPAccess calls get_index (at clientlog.c:482) +Function get_record calls UTI_IPToHash (at clientlog.c:176) +Function get_record calls UTI_CompareIPs (at clientlog.c:181) +Function get_record calls compare_ts (at clientlog.c:187) +Function get_record calls compare_ts (at clientlog.c:190) +Function get_record calls expand_hashtable (at clientlog.c:204) +Function handle_slew_0 calls LCL_IsFirstParameterChangeHandler (at sched.c:587) +Function KEY_Reload references compare_keys_by_id (at keys.c:245) +Function LCL_ApplyStepOffset calls SMT_Reset (at local.c:554) +Function lookup_key references compare_keys_by_id (at keys.c:271) +Function NCR_GetInstance calls NIO_IsServerConnectable (at ntp_core.c:618) +Function NCR_ProcessRxUnknown calls CLG_LimitNTPResponseRate (at ntp_core.c:2142) +Function NCR_ProcessRxUnknown calls CLG_GetNtpTimestamps (at ntp_core.c:2176) +Function NCR_ProcessTxUnknown calls SMT_GetOffset (at ntp_core.c:2281) +Function NCR_ProcessTxUnknown calls CLG_GetNtpTimestamps (at ntp_core.c:2283) +Function NCR_SetConnectivity calls NIO_IsServerConnectable (at ntp_core.c:2322) +Function parse_include calls CNF_ReadFile (at conf.c:1377) +Function prepare_socket references read_from_socket (at ntp_io.c:273) +Function SCH_AddTimeout calls allocate_tqe (at sched.c:315) +Function SCH_AddTimeout calls get_new_tqe_id (at sched.c:317) +Function SCH_RemoveTimeout calls release_tqe (at sched.c:469) +Function schedule_fb_drift references fb_drift_timeout (at reference.c:486) +Function set_leap_timeout references leap_start_timeout (at reference.c:766) +Function source_to_string calls UTI_RefidToString (at sources.c:474) +Function special_mode_sync calls CNF_GetInitStepThreshold (at reference.c:881) +Function special_mode_sync calls LCL_AccumulateOffset (at reference.c:889) +Function SRC_Finalise references add_dispersion (at sources.c:203) +Function SRC_Initialise references add_dispersion (at sources.c:195) +Function SRC_SelectSource calls NSR_GetLocalRefid (at sources.c:746) +Function SRC_SelectSource references compare_sort_elements (at sources.c:803) +Function SST_AccumulateSample calls UTI_RefidToString (at sourcestats.c:307) +Function SST_DoNewRegression calls UTI_RefidToString (at sourcestats.c:595) +Function transmit_packet calls SMT_GetOffset (at ntp_core.c:990) +Function transmit_packet calls REF_GetLeapMode (at ntp_core.c:994) +Function transmit_packet calls NSD_GetAuthDelay (at ntp_core.c:1079) +Function transmit_packet calls NSD_SignAndSendPacket (at ntp_core.c:1102) +Function update_leap_status calls LCL_SetSystemLeap (at reference.c:807) +Function write_log calls UTI_RefidToString (at reference.c:860) +[metrics] Statements analyzed by Eva +-------------------------- +7608 stmts in analyzed functions, 6650 stmts analyzed (87.4%) +ADF_Allow: 2 stmts out of 2 (100.0%) +ADF_AllowAll: 2 stmts out of 2 (100.0%) +ADF_CreateTable: 6 stmts out of 6 (100.0%) +ADF_Deny: 2 stmts out of 2 (100.0%) +ADF_DenyAll: 2 stmts out of 2 (100.0%) +ADF_DestroyTable: 4 stmts out of 4 (100.0%) +ARR_AppendElement: 3 stmts out of 3 (100.0%) +ARR_CreateInstance: 7 stmts out of 7 (100.0%) +ARR_DestroyInstance: 3 stmts out of 3 (100.0%) +ARR_GetElement: 3 stmts out of 3 (100.0%) +ARR_GetElements: 7 stmts out of 7 (100.0%) +ARR_GetNewElement: 4 stmts out of 4 (100.0%) +ARR_GetSize: 2 stmts out of 2 (100.0%) +ARR_SetSize: 3 stmts out of 3 (100.0%) +CLG_GetNtpMinPoll: 1 stmts out of 1 (100.0%) +CNF_AllowLocalReference: 11 stmts out of 11 (100.0%) +CNF_Finalise: 43 stmts out of 43 (100.0%) +CNF_GetAcquisitionPort: 1 stmts out of 1 (100.0%) +CNF_GetCombineLimit: 1 stmts out of 1 (100.0%) +CNF_GetCorrectionTimeRatio: 1 stmts out of 1 (100.0%) +CNF_GetDriftFile: 1 stmts out of 1 (100.0%) +CNF_GetFallbackDrifts: 3 stmts out of 3 (100.0%) +CNF_GetHwTsInterface: 10 stmts out of 10 (100.0%) +CNF_GetKeysFile: 1 stmts out of 1 (100.0%) +CNF_GetLeapSecMode: 1 stmts out of 1 (100.0%) +CNF_GetLeapSecTimezone: 1 stmts out of 1 (100.0%) +CNF_GetLogChange: 1 stmts out of 1 (100.0%) +CNF_GetLogMeasurements: 2 stmts out of 2 (100.0%) +CNF_GetLogTracking: 1 stmts out of 1 (100.0%) +CNF_GetMailOnChange: 8 stmts out of 8 (100.0%) +CNF_GetMakeStep: 3 stmts out of 3 (100.0%) +CNF_GetMaxChange: 4 stmts out of 4 (100.0%) +CNF_GetMaxClockError: 1 stmts out of 1 (100.0%) +CNF_GetMaxDistance: 1 stmts out of 1 (100.0%) +CNF_GetMaxDrift: 1 stmts out of 1 (100.0%) +CNF_GetMaxJitter: 1 stmts out of 1 (100.0%) +CNF_GetMaxSamples: 1 stmts out of 1 (100.0%) +CNF_GetMaxUpdateSkew: 1 stmts out of 1 (100.0%) +CNF_GetMinSamples: 1 stmts out of 1 (100.0%) +CNF_GetMinSources: 1 stmts out of 1 (100.0%) +CNF_GetNTPPort: 1 stmts out of 1 (100.0%) +CNF_GetReselectDistance: 1 stmts out of 1 (100.0%) +CNF_GetStratumWeight: 1 stmts out of 1 (100.0%) +CNF_ParseLine: 219 stmts out of 219 (100.0%) +CNF_SetupAccessRestrictions: 45 stmts out of 45 (100.0%) +CPS_NormalizeLine: 35 stmts out of 35 (100.0%) +CPS_ParseKey: 24 stmts out of 24 (100.0%) +CPS_ParseLocal: 41 stmts out of 41 (100.0%) +CPS_ParseNTPSourceAdd: 201 stmts out of 201 (100.0%) +CPS_SplitWord: 30 stmts out of 30 (100.0%) +HSH_Finalise: 1 stmts out of 1 (100.0%) +HSH_GetHashId: 7 stmts out of 7 (100.0%) +KEY_CheckKeyLength: 7 stmts out of 7 (100.0%) +KEY_Finalise: 3 stmts out of 3 (100.0%) +KEY_GetAuthDelay: 7 stmts out of 7 (100.0%) +KEY_GetAuthLength: 8 stmts out of 8 (100.0%) +KEY_Initialise: 4 stmts out of 4 (100.0%) +KEY_KeyKnown: 3 stmts out of 3 (100.0%) +KEY_Reload: 88 stmts out of 88 (100.0%) +LCL_AccumulateFrequencyAndOffset: 14 stmts out of 14 (100.0%) +LCL_CookTime: 3 stmts out of 3 (100.0%) +LCL_GetMaxClockError: 1 stmts out of 1 (100.0%) +LCL_GetOffsetCorrection: 2 stmts out of 2 (100.0%) +LCL_GetSysPrecisionAsQuantum: 1 stmts out of 1 (100.0%) +LCL_Initialise: 28 stmts out of 28 (100.0%) +LCL_RemoveParameterChangeHandler: 17 stmts out of 17 (100.0%) +MD5Init: 10 stmts out of 10 (100.0%) +MD5Update: 31 stmts out of 31 (100.0%) +Malloc: 8 stmts out of 8 (100.0%) +Malloc2: 3 stmts out of 3 (100.0%) +NCR_DestroyInstance: 9 stmts out of 9 (100.0%) +NCR_Initialise: 11 stmts out of 11 (100.0%) +NCR_ProcessTxKnown: 12 stmts out of 12 (100.0%) +NCR_ResetInstance: 20 stmts out of 20 (100.0%) +NCR_StartInstance: 4 stmts out of 4 (100.0%) +NIO_Finalise: 10 stmts out of 10 (100.0%) +REF_Finalise: 9 stmts out of 9 (100.0%) +REF_GetMode: 1 stmts out of 1 (100.0%) +REF_GetOrphanStratum: 14 stmts out of 14 (100.0%) +REF_GetOurStratum: 3 stmts out of 3 (100.0%) +REF_IsLeapSecondClose: 21 stmts out of 21 (100.0%) +REF_SetUnsynchronised: 23 stmts out of 23 (100.0%) +RGR_GetTCoef: 8 stmts out of 8 (100.0%) +RGR_MultipleRegress: 43 stmts out of 43 (100.0%) +Realloc: 8 stmts out of 8 (100.0%) +Realloc2: 5 stmts out of 5 (100.0%) +SCH_Finalise: 3 stmts out of 3 (100.0%) +SCH_Initialise: 11 stmts out of 11 (100.0%) +SCH_RemoveFileHandler: 15 stmts out of 15 (100.0%) +SMT_IsEnabled: 1 stmts out of 1 (100.0%) +SRC_AccumulateSample: 11 stmts out of 11 (100.0%) +SRC_DestroyInstance: 18 stmts out of 18 (100.0%) +SRC_Finalise: 7 stmts out of 7 (100.0%) +SRC_GetSourcestats: 3 stmts out of 3 (100.0%) +SRC_Initialise: 15 stmts out of 15 (100.0%) +SRC_IsReachable: 2 stmts out of 2 (100.0%) +SRC_IsSyncPeer: 8 stmts out of 8 (100.0%) +SRC_ReselectSource: 3 stmts out of 3 (100.0%) +SRC_ResetInstance: 9 stmts out of 9 (100.0%) +SRC_SetActive: 2 stmts out of 2 (100.0%) +SRC_SetRefid: 4 stmts out of 4 (100.0%) +SRC_UnsetActive: 2 stmts out of 2 (100.0%) +SST_CreateInstance: 8 stmts out of 8 (100.0%) +SST_DeleteInstance: 2 stmts out of 2 (100.0%) +SST_GetDelayTestData: 11 stmts out of 11 (100.0%) +SST_GetFrequencyRange: 8 stmts out of 8 (100.0%) +SST_GetJitterAsymmetry: 2 stmts out of 2 (100.0%) +SST_GetSelectionData: 21 stmts out of 21 (100.0%) +SST_GetTrackingData: 13 stmts out of 13 (100.0%) +SST_MinRoundTripDelay: 10 stmts out of 10 (100.0%) +SST_PredictOffset: 13 stmts out of 13 (100.0%) +SST_ResetInstance: 18 stmts out of 18 (100.0%) +SST_Samples: 2 stmts out of 2 (100.0%) +SST_SetRefid: 3 stmts out of 3 (100.0%) +SST_SlewSamples: 21 stmts out of 21 (100.0%) +Strdup: 8 stmts out of 8 (100.0%) +TST_GetRandomDouble: 5 stmts out of 5 (100.0%) +TST_RegisterDummyDrivers: 2 stmts out of 2 (100.0%) +TST_ResumeLogging: 2 stmts out of 2 (100.0%) +TST_SuspendLogging: 2 stmts out of 2 (100.0%) +UTI_AddDoubleToTimespec: 5 stmts out of 5 (100.0%) +UTI_AdjustTimespec: 4 stmts out of 4 (100.0%) +UTI_AverageDiffTimespecs: 3 stmts out of 3 (100.0%) +UTI_CompareNtp64: 25 stmts out of 25 (100.0%) +UTI_CompareTimespecs: 18 stmts out of 18 (100.0%) +UTI_DiffTimespecsToDouble: 2 stmts out of 2 (100.0%) +UTI_DoubleToNtp32: 10 stmts out of 10 (100.0%) +UTI_FdSetCloexec: 12 stmts out of 12 (100.0%) +UTI_GetRandomBytes: 2 stmts out of 2 (100.0%) +UTI_GetRandomBytesUrandom: 20 stmts out of 20 (100.0%) +UTI_IPToString: 24 stmts out of 24 (100.0%) +UTI_IsEqualAnyNtp64: 20 stmts out of 20 (100.0%) +UTI_IsTimeOffsetSane: 25 stmts out of 25 (100.0%) +UTI_IsZeroNtp64: 6 stmts out of 6 (100.0%) +UTI_IsZeroTimespec: 6 stmts out of 6 (100.0%) +UTI_NormaliseTimespec: 10 stmts out of 10 (100.0%) +UTI_Ntp32ToDouble: 3 stmts out of 3 (100.0%) +UTI_Ntp64ToTimespec: 10 stmts out of 10 (100.0%) +UTI_StringToIP: 12 stmts out of 12 (100.0%) +UTI_TimeToLogForm: 8 stmts out of 8 (100.0%) +UTI_TimespecToDouble: 2 stmts out of 2 (100.0%) +UTI_TimespecToNtp64: 17 stmts out of 17 (100.0%) +UTI_ZeroNtp64: 6 stmts out of 6 (100.0%) +UTI_ZeroTimespec: 3 stmts out of 3 (100.0%) +accrue_offset: 1 stmts out of 1 (100.0%) +add_timeout_in_class: 2 stmts out of 2 (100.0%) +advance_time: 2 stmts out of 2 (100.0%) +apply_step_offset: 2 stmts out of 2 (100.0%) +calculate_sys_precision: 25 stmts out of 25 (100.0%) +check_delay_dev_ratio: 23 stmts out of 23 (100.0%) +check_delay_ratio: 18 stmts out of 18 (100.0%) +check_offset: 11 stmts out of 11 (100.0%) +check_packet_format: 17 stmts out of 17 (100.0%) +clamp_freq: 25 stmts out of 25 (100.0%) +close_node: 11 stmts out of 11 (100.0%) +close_socket: 6 stmts out of 6 (100.0%) +convert_to_intervals: 13 stmts out of 13 (100.0%) +correct_asymmetry: 27 stmts out of 27 (100.0%) +decode_password: 39 stmts out of 39 (100.0%) +determine_hash_delay: 17 stmts out of 17 (100.0%) +do_size_checks: 14 stmts out of 14 (100.0%) +do_time_checks: 24 stmts out of 24 (100.0%) +eva_main: 13 stmts out of 13 (100.0%) +find_best_sample_index: 21 stmts out of 21 (100.0%) +find_median: 14 stmts out of 14 (100.0%) +find_min_delay_sample: 11 stmts out of 11 (100.0%) +find_ordered_entry_with_flags: 76 stmts out of 76 (100.0%) +free_keys: 13 stmts out of 13 (100.0%) +get_array_size: 8 stmts out of 8 (100.0%) +get_buf_index: 2 stmts out of 2 (100.0%) +get_key: 5 stmts out of 5 (100.0%) +get_key_by_id: 17 stmts out of 17 (100.0%) +get_number_of_args: 13 stmts out of 13 (100.0%) +get_poll_adj: 11 stmts out of 11 (100.0%) +get_random_key_id: 9 stmts out of 9 (100.0%) +get_root_dispersion: 14 stmts out of 14 (100.0%) +get_runsbuf_index: 2 stmts out of 2 (100.0%) +get_subnet: 4 stmts out of 4 (100.0%) +invoke_parameter_change_handlers: 8 stmts out of 8 (100.0%) +is_leap_second_day: 17 stmts out of 17 (100.0%) +is_offset_ok: 32 stmts out of 32 (100.0%) +is_step_limit_reached: 11 stmts out of 11 (100.0%) +lcl_RegisterSystemDrivers: 9 stmts out of 9 (100.0%) +log_selection_message: 9 stmts out of 9 (100.0%) +lookup_key: 18 stmts out of 18 (100.0%) +main: 41 stmts out of 41 (100.0%) +mark_ok_sources: 10 stmts out of 10 (100.0%) +maybe_log_offset: 29 stmts out of 29 (100.0%) +n_runs_from_residuals: 19 stmts out of 19 (100.0%) +open_node: 12 stmts out of 12 (100.0%) +parse_clientloglimit: 5 stmts out of 5 (100.0%) +parse_fallbackdrift: 5 stmts out of 5 (100.0%) +parse_leapsecmode: 14 stmts out of 14 (100.0%) +parse_local: 5 stmts out of 5 (100.0%) +parse_mailonchange: 10 stmts out of 10 (100.0%) +parse_maxchange: 6 stmts out of 6 (100.0%) +parse_null: 3 stmts out of 3 (100.0%) +parse_smoothtime: 16 stmts out of 16 (100.0%) +parse_string: 5 stmts out of 5 (100.0%) +prepare_buffers: 19 stmts out of 19 (100.0%) +process_replay: 11 stmts out of 11 (100.0%) +process_request: 16 stmts out of 16 (100.0%) +process_sample: 27 stmts out of 27 (100.0%) +prune_register: 11 stmts out of 11 (100.0%) +read_frequency: 2 stmts out of 2 (100.0%) +realloc_array: 15 stmts out of 15 (100.0%) +schedule_fb_drift: 28 stmts out of 28 (100.0%) +set_frequency: 2 stmts out of 2 (100.0%) +set_subnet: 57 stmts out of 57 (100.0%) +split_ip6: 7 stmts out of 7 (100.0%) +start_initial_timeout: 13 stmts out of 13 (100.0%) +update_fb_drifts: 25 stmts out of 25 (100.0%) +update_tx_timestamp: 25 stmts out of 25 (100.0%) +zero_local_timestamp: 4 stmts out of 4 (100.0%) +SST_DoNewRegression: 136 stmts out of 137 (99.3%) +prepare_socket: 83 stmts out of 84 (98.8%) +RGR_FindBestRegression: 82 stmts out of 83 (98.8%) +combine_sources: 71 stmts out of 72 (98.6%) +transmit_timeout: 134 stmts out of 136 (98.5%) +NIO_Initialise: 57 stmts out of 58 (98.3%) +write_log: 43 stmts out of 44 (97.7%) +test_unit: 247 stmts out of 253 (97.6%) +parse_hwtimestamp: 75 stmts out of 77 (97.4%) +REF_GetReferenceParams: 36 stmts out of 37 (97.3%) +estimate_asymmetry: 36 stmts out of 37 (97.3%) +receive_packet: 450 stmts out of 464 (97.0%) +parse_log: 29 stmts out of 30 (96.7%) +MD5Final: 28 stmts out of 29 (96.6%) +update_drift_file: 55 stmts out of 57 (96.5%) +get_clock_estimates: 24 stmts out of 25 (96.0%) +parse_allow_deny: 70 stmts out of 73 (95.9%) +REF_Initialise: 93 stmts out of 97 (95.9%) +check_ip_in_node: 23 stmts out of 24 (95.8%) +parse_refclock: 166 stmts out of 174 (95.4%) +is_any_allowed: 20 stmts out of 21 (95.2%) +NCR_ProcessRxKnown: 57 stmts out of 60 (95.0%) +SST_AccumulateSample: 38 stmts out of 40 (95.0%) +NCR_AddAccessRestriction: 36 stmts out of 38 (94.7%) +SRC_SelectSource: 358 stmts out of 378 (94.7%) +NCR_GetInstance: 143 stmts out of 151 (94.7%) +get_tz_leap: 44 stmts out of 47 (93.6%) +REF_SetReference: 84 stmts out of 90 (93.3%) +check_number_of_args: 27 stmts out of 29 (93.1%) +restart_timeout: 25 stmts out of 27 (92.6%) +ADF_IsAllowed: 11 stmts out of 12 (91.7%) +UTI_Log2ToDouble: 11 stmts out of 12 (91.7%) +close_client_socket: 11 stmts out of 12 (91.7%) +parse_ratelimit: 22 stmts out of 24 (91.7%) +take_offline: 11 stmts out of 12 (91.7%) +send_request: 19 stmts out of 21 (90.5%) +HSH_Hash: 9 stmts out of 10 (90.0%) +LCL_SetAbsoluteFrequency: 9 stmts out of 10 (90.0%) +get_separation: 17 stmts out of 19 (89.5%) +LCL_Finalise: 8 stmts out of 9 (88.9%) +UTI_GetNtp64Fuzz: 16 stmts out of 18 (88.9%) +update_leap_status: 32 stmts out of 36 (88.9%) +LCL_AddParameterChangeHandler: 15 stmts out of 17 (88.2%) +LCL_RemoveDispersionNotifyHandler: 15 stmts out of 17 (88.2%) +KEY_GenerateAuth: 7 stmts out of 8 (87.5%) +TST_GetRandomAddress: 35 stmts out of 40 (87.5%) +set_leap_timeout: 13 stmts out of 15 (86.7%) +SCH_GetLastEventTime: 6 stmts out of 7 (85.7%) +parse_bindcmdaddress: 12 stmts out of 14 (85.7%) +SCH_AddFileHandler: 23 stmts out of 27 (85.2%) +command_parse_error: 17 stmts out of 20 (85.0%) +other_parse_error: 17 stmts out of 20 (85.0%) +SRC_CreateNewInstance: 22 stmts out of 26 (84.6%) +LCL_ApplyStepOffset: 16 stmts out of 19 (84.2%) +parse_initstepslew: 21 stmts out of 25 (84.0%) +get_transmit_delay: 31 stmts out of 37 (83.8%) +slew_sources: 10 stmts out of 12 (83.3%) +process_response: 56 stmts out of 68 (82.4%) +adjust_poll: 18 stmts out of 22 (81.8%) +parse_broadcast: 25 stmts out of 31 (80.6%) +parse_source: 8 stmts out of 10 (80.0%) +parse_tempcomp: 23 stmts out of 29 (79.3%) +transmit_packet: 116 stmts out of 147 (78.9%) +NCR_InitiateSampleBurst: 11 stmts out of 14 (78.6%) +RGR_FindMedian: 7 stmts out of 9 (77.8%) +parse_bindacqaddress: 7 stmts out of 9 (77.8%) +parse_bindaddress: 7 stmts out of 9 (77.8%) +parse_makestep: 7 stmts out of 9 (77.8%) +CNF_Initialise: 17 stmts out of 22 (77.3%) +ADF_IsAnyAllowed: 10 stmts out of 13 (76.9%) +set_subnet_: 20 stmts out of 26 (76.9%) +CLG_GetClientIndex: 6 stmts out of 8 (75.0%) +LCL_CanSystemLeap: 3 stmts out of 4 (75.0%) +LCL_ReadAbsoluteFrequency: 3 stmts out of 4 (75.0%) +end_ref_mode: 3 stmts out of 4 (75.0%) +offset_convert: 3 stmts out of 4 (75.0%) +NCR_Finalise: 14 stmts out of 19 (73.7%) +UTI_IPToRefid: 16 stmts out of 22 (72.7%) +LCL_AddDispersionNotifyHandler: 12 stmts out of 17 (70.6%) +DNS_Name2IPAddress: 28 stmts out of 42 (66.7%) +LCL_SetSyncStatus: 2 stmts out of 3 (66.7%) +TST_Fail: 2 stmts out of 3 (66.7%) +get_transmit_poll: 6 stmts out of 9 (66.7%) +parse_double: 6 stmts out of 9 (66.7%) +parse_int: 6 stmts out of 9 (66.7%) +send_response: 80 stmts out of 121 (66.1%) +handle_slew: 8 stmts out of 13 (61.5%) +NCR_ProcessRxUnknown: 43 stmts out of 73 (58.9%) +SCH_RemoveTimeout: 10 stmts out of 19 (52.6%) +CNF_GetBindAcquisitionAddress: 3 stmts out of 6 (50.0%) +CNF_GetBindAddress: 3 stmts out of 6 (50.0%) +NCR_ProcessTxUnknown: 12 stmts out of 24 (50.0%) +source_to_string: 6 stmts out of 12 (50.0%) +NCR_SetConnectivity: 20 stmts out of 47 (42.6%) +check_packet_auth: 19 stmts out of 55 (34.5%) +CLG_LogNTPAccess: 7 stmts out of 21 (33.3%) +LCL_ReadRawTime: 3 stmts out of 9 (33.3%) +generate_ntp_auth: 1 stmts out of 3 (33.3%) +UTI_SockaddrFamilyToString: 4 stmts out of 17 (23.5%) +handle_slew_0: 3 stmts out of 20 (15.0%) +get_record: 6 stmts out of 81 (7.4%) +special_mode_sync: 3 stmts out of 57 (5.3%) +SCH_AddTimeout: 0 stmts out of 23 (0.0%) +Transform: 0 stmts out of 265 (0.0%) +parse_include: 0 stmts out of 19 (0.0%) diff --git a/chrony/.frama-c/chrony-ntp-core.eva/nonterm.log b/chrony/.frama-c/chrony-ntp-core.eva/nonterm.log new file mode 100644 index 0000000000000000000000000000000000000000..3b52682b026d24740ea7e79cb46db64da2072480 --- /dev/null +++ b/chrony/.frama-c/chrony-ntp-core.eva/nonterm.log @@ -0,0 +1,272 @@ +test/unit/test.c:33:[nonterm] warning: unreachable implicit return +addrfilt.c:347:[nonterm] warning: non-terminating function call +stack 1: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 2: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 3: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 4: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 5: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 6: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 7: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: test/unit/ntp_core.c:119 <- + process_request :: test/unit/ntp_core.c:422 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 8: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 9: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 10: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 11: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 12: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 13: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 14: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:273:[nonterm] warning: unreachable implicit return +conf.c:283:[nonterm] warning: unreachable implicit return +md5.c:155:[nonterm] warning: non-terminating loop +stack 1: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: keys.c:115 <- + determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 2: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: ntp_core.c:1090 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 3: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: test/unit/ntp_core.c:190 <- + send_response :: test/unit/ntp_core.c:379 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 4: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: ntp_core.c:1090 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:421 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 5: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: ntp_core.c:1090 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:444 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 6: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: ntp_core.c:1090 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:466 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +md5.c:157:[nonterm] warning: non-terminating statement +stack 1: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: keys.c:115 <- + determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 2: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: ntp_core.c:1090 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 3: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: test/unit/ntp_core.c:190 <- + send_response :: test/unit/ntp_core.c:379 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 4: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: ntp_core.c:1090 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:421 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 5: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: ntp_core.c:1090 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:444 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 6: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: ntp_core.c:1090 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:466 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:364:[nonterm] warning: unreachable return +sched.c:476:[nonterm] warning: non-terminating function call +stack 1: SCH_RemoveTimeout :: reference.c:409 <- + update_fb_drifts :: reference.c:1090 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 2: SCH_RemoveTimeout :: reference.c:747 <- + set_leap_timeout :: reference.c:812 <- + update_leap_status :: reference.c:1147 <- + REF_SetUnsynchronised :: sources.c:868 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +test/unit/ntp_core.c:179:[nonterm] warning: non-terminating function call +stack: send_response :: test/unit/ntp_core.c:379 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +test/unit/ntp_core.c:192:[nonterm] warning: non-terminating function call +stack: send_response :: test/unit/ntp_core.c:379 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main diff --git a/chrony/.frama-c/chrony-ntp-core.eva/warnings.log b/chrony/.frama-c/chrony-ntp-core.eva/warnings.log new file mode 100644 index 0000000000000000000000000000000000000000..e5a277878c3b7f5f5ff8c75f48ecdba5f97dce21 --- /dev/null +++ b/chrony/.frama-c/chrony-ntp-core.eva/warnings.log @@ -0,0 +1,17407 @@ +test/unit/test.c:53:[kernel:annot:missing-spec] warning: Neither code nor specification for function LOG_SetDebugLevel, generating default assigns from the prototype +test/unit/test.c:68:[kernel:annot:missing-spec] warning: Neither code nor specification for function LOG_Initialise, generating default assigns from the prototype +memory.c:40:[kernel:annot:missing-spec] warning: Neither code nor specification for function LOG_Message, generating default assigns from the prototype +cmdparse.c:216:[eva:alarm] warning: out of bounds write. assert \valid(tmp); + (tmp from q++) +stack: CPS_NormalizeLine :: conf.c:434 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:225:[eva:alarm] warning: out of bounds write. assert \valid(tmp_2); + (tmp_2 from q++) +stack: CPS_NormalizeLine :: conf.c:434 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:213:[eva:alarm] warning: out of bounds read. assert \valid_read(p); +stack: CPS_NormalizeLine :: conf.c:434 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:230:[eva:alarm] warning: pointer comparison. assert \pointer_comparable((void *)q, (void *)line); +stack: CPS_NormalizeLine :: conf.c:434 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:230:[eva:alarm] warning: out of bounds read. assert \valid_read(q + (int)(-1)); +stack: CPS_NormalizeLine :: conf.c:434 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:233:[eva:alarm] warning: out of bounds write. assert \valid(q); +stack: CPS_NormalizeLine :: conf.c:434 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:244:[eva:alarm] warning: out of bounds read. assert \valid_read(q); +stack: CPS_SplitWord :: conf.c:442 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:248:[eva:alarm] warning: out of bounds read. assert \valid_read(q); +stack: CPS_SplitWord :: conf.c:442 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:252:[eva:alarm] warning: out of bounds read. assert \valid_read(q); +stack: CPS_SplitWord :: conf.c:442 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:170:[eva:alarm] warning: out of bounds read. assert \valid_read(s1 + i); +stack: strcasecmp :: conf.c:444 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:170:[eva:alarm] warning: out of bounds read. assert \valid_read(s2 + i); +stack: strcasecmp :: conf.c:444 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:174:[eva:alarm] warning: out of bounds read. assert \valid_read(s2 + i); +stack: strcasecmp :: conf.c:444 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:298:[eva:alarm] warning: out of bounds read. assert \valid_read(line); +stack: get_number_of_args :: conf.c:313 <- + check_number_of_args :: conf.c:589 <- + parse_string :: conf.c:573 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:300:[eva:alarm] warning: out of bounds read. assert \valid_read(line); +stack: get_number_of_args :: conf.c:313 <- + check_number_of_args :: conf.c:589 <- + parse_string :: conf.c:573 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:573 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:573 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:573 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:249:[eva:alarm] warning: out of bounds write. assert \valid(tmp_0); + (tmp_0 from p++) +stack: CPS_SplitWord :: conf.c:1249 <- + parse_tempcomp :: conf.c:571 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:255:[eva:alarm] warning: out of bounds write. assert \valid(p); +stack: CPS_SplitWord :: conf.c:1249 <- + parse_tempcomp :: conf.c:571 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1259:[eva:alarm] warning: function sscanf_va_51: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_51 :: conf.c:1259 <- + parse_tempcomp :: conf.c:571 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:1263 <- + parse_tempcomp :: conf.c:571 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:1263 <- + parse_tempcomp :: conf.c:571 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:1263 <- + parse_tempcomp :: conf.c:571 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1265:[eva:alarm] warning: function sscanf_va_52: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_52 :: conf.c:1265 <- + parse_tempcomp :: conf.c:571 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:1274 <- + parse_tempcomp :: conf.c:571 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:1274 <- + parse_tempcomp :: conf.c:571 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:1274 <- + parse_tempcomp :: conf.c:571 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_23 :: conf.c:614 <- + parse_double :: conf.c:569 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1220:[eva:alarm] warning: function sscanf_va_50: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_50 :: conf.c:1220 <- + parse_smoothtime :: conf.c:567 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:171:[eva:alarm] warning: out of bounds read. assert \valid_read(s1 + i); +stack: strcasecmp :: conf.c:1229 <- + parse_smoothtime :: conf.c:567 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:174:[eva:alarm] warning: out of bounds read. assert \valid_read(s1 + i); +stack: strcasecmp :: conf.c:1229 <- + parse_smoothtime :: conf.c:567 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:175:[eva:alarm] warning: out of bounds read. assert \valid_read(s1 + i); +stack: strcasecmp :: conf.c:1229 <- + parse_smoothtime :: conf.c:567 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:156:[eva:alarm] warning: function sscanf_va_1: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_1 :: cmdparse.c:156 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:153:[eva:alarm] warning: function sscanf_va_2: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_2 :: cmdparse.c:153 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:150:[eva:alarm] warning: function sscanf_va_3: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_3 :: cmdparse.c:150 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:147:[eva:alarm] warning: function sscanf_va_4: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_4 :: cmdparse.c:147 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:144:[eva:alarm] warning: function sscanf_va_5: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_5 :: cmdparse.c:144 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:141:[eva:alarm] warning: function sscanf_va_6: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_6 :: cmdparse.c:141 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:138:[eva:alarm] warning: function sscanf_va_7: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_7 :: cmdparse.c:138 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:135:[eva:alarm] warning: function sscanf_va_8: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_8 :: cmdparse.c:135 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:132:[eva:alarm] warning: function sscanf_va_9: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_9 :: cmdparse.c:132 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:129:[eva:alarm] warning: function sscanf_va_10: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_10 :: cmdparse.c:129 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:126:[eva:alarm] warning: function sscanf_va_11: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_11 :: cmdparse.c:126 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:123:[eva:alarm] warning: function sscanf_va_12: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_12 :: cmdparse.c:123 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:120:[eva:alarm] warning: function sscanf_va_13: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_13 :: cmdparse.c:120 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:117:[eva:alarm] warning: function sscanf_va_14: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_14 :: cmdparse.c:117 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:114:[eva:alarm] warning: function sscanf_va_15: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_15 :: cmdparse.c:114 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:111:[eva:alarm] warning: function sscanf_va_16: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_16 :: cmdparse.c:111 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:108:[eva:alarm] warning: function sscanf_va_17: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_17 :: cmdparse.c:108 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:104:[eva:alarm] warning: function sscanf_va_18: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_18 :: cmdparse.c:104 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:82:[eva:alarm] warning: out of bounds read. assert \valid_read(line); +stack: CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:645:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&source.params.name); +stack: parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:645 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:645 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:645 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:601:[eva:alarm] warning: function sscanf_va_22: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_22 :: conf.c:601 <- + parse_int :: conf.c:563 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:557 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:557 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:557 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:555 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:555 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:555 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_23 :: conf.c:614 <- + parse_double :: conf.c:553 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_23 :: conf.c:614 <- + parse_double :: conf.c:551 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:723 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:723 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:723 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:727 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:727 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:727 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:787:[eva:alarm] warning: function sscanf_va_25: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_25 :: conf.c:787 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:780:[eva:alarm] warning: function sscanf_va_26: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_26 :: conf.c:780 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:777:[eva:alarm] warning: function sscanf_va_27: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_27 :: conf.c:777 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:774:[eva:alarm] warning: function sscanf_va_28: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_28 :: conf.c:774 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:768:[eva:alarm] warning: function sscanf_va_29: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_29 :: conf.c:768 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:765:[eva:alarm] warning: function sscanf_va_30: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_30 :: conf.c:765 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:762:[eva:alarm] warning: function sscanf_va_31: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_31 :: conf.c:762 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:759:[eva:alarm] warning: function sscanf_va_32: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_32 :: conf.c:759 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:756:[eva:alarm] warning: function sscanf_va_33: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_33 :: conf.c:756 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:753:[eva:alarm] warning: function sscanf_va_34: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_34 :: conf.c:753 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:749:[eva:alarm] warning: function sscanf_va_35: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_35 :: conf.c:749 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:745:[eva:alarm] warning: function sscanf_va_36: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_36 :: conf.c:745 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:741:[eva:alarm] warning: function sscanf_va_37: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_37 :: conf.c:741 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:737:[eva:alarm] warning: function sscanf_va_38: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_38 :: conf.c:737 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:739:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized((unsigned char *)ref); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:739:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ref[1]); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:739:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ref[2]); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:739:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ref[3]); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:733:[eva:alarm] warning: function sscanf_va_39: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_39 :: conf.c:733 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:735:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized((unsigned char *)ref); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:735:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ref[1]); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:735:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ref[2]); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:735:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ref[3]); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:729:[eva:alarm] warning: out of bounds read. assert \valid_read(cmd); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:662:[eva:alarm] warning: function sscanf_va_24: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_24 :: conf.c:662 <- + parse_ratelimit :: conf.c:546 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:659:[eva:alarm] warning: out of bounds read. assert \valid_read(line); +stack: parse_ratelimit :: conf.c:546 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:601:[eva:alarm] warning: function sscanf_va_22: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_22 :: conf.c:601 <- + parse_int :: conf.c:544 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:156:[eva:alarm] warning: function sscanf_va_1: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_1 :: cmdparse.c:156 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:153:[eva:alarm] warning: function sscanf_va_2: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_2 :: cmdparse.c:153 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:150:[eva:alarm] warning: function sscanf_va_3: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_3 :: cmdparse.c:150 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:147:[eva:alarm] warning: function sscanf_va_4: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_4 :: cmdparse.c:147 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:144:[eva:alarm] warning: function sscanf_va_5: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_5 :: cmdparse.c:144 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:141:[eva:alarm] warning: function sscanf_va_6: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_6 :: cmdparse.c:141 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:138:[eva:alarm] warning: function sscanf_va_7: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_7 :: cmdparse.c:138 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:135:[eva:alarm] warning: function sscanf_va_8: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_8 :: cmdparse.c:135 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:132:[eva:alarm] warning: function sscanf_va_9: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_9 :: cmdparse.c:132 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:129:[eva:alarm] warning: function sscanf_va_10: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_10 :: cmdparse.c:129 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:126:[eva:alarm] warning: function sscanf_va_11: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_11 :: cmdparse.c:126 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:123:[eva:alarm] warning: function sscanf_va_12: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_12 :: cmdparse.c:123 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:120:[eva:alarm] warning: function sscanf_va_13: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_13 :: cmdparse.c:120 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:117:[eva:alarm] warning: function sscanf_va_14: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_14 :: cmdparse.c:117 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:114:[eva:alarm] warning: function sscanf_va_15: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_15 :: cmdparse.c:114 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:111:[eva:alarm] warning: function sscanf_va_16: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_16 :: cmdparse.c:111 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:108:[eva:alarm] warning: function sscanf_va_17: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_17 :: cmdparse.c:108 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:104:[eva:alarm] warning: function sscanf_va_18: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_18 :: cmdparse.c:104 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:645 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:645 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:645 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:540 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:540 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:540 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:156:[eva:alarm] warning: function sscanf_va_1: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_1 :: cmdparse.c:156 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:153:[eva:alarm] warning: function sscanf_va_2: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_2 :: cmdparse.c:153 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:150:[eva:alarm] warning: function sscanf_va_3: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_3 :: cmdparse.c:150 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:147:[eva:alarm] warning: function sscanf_va_4: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_4 :: cmdparse.c:147 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:144:[eva:alarm] warning: function sscanf_va_5: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_5 :: cmdparse.c:144 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:141:[eva:alarm] warning: function sscanf_va_6: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_6 :: cmdparse.c:141 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:138:[eva:alarm] warning: function sscanf_va_7: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_7 :: cmdparse.c:138 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:135:[eva:alarm] warning: function sscanf_va_8: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_8 :: cmdparse.c:135 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:132:[eva:alarm] warning: function sscanf_va_9: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_9 :: cmdparse.c:132 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:129:[eva:alarm] warning: function sscanf_va_10: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_10 :: cmdparse.c:129 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:126:[eva:alarm] warning: function sscanf_va_11: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_11 :: cmdparse.c:126 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:123:[eva:alarm] warning: function sscanf_va_12: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_12 :: cmdparse.c:123 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:120:[eva:alarm] warning: function sscanf_va_13: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_13 :: cmdparse.c:120 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:117:[eva:alarm] warning: function sscanf_va_14: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_14 :: cmdparse.c:117 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:114:[eva:alarm] warning: function sscanf_va_15: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_15 :: cmdparse.c:114 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:111:[eva:alarm] warning: function sscanf_va_16: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_16 :: cmdparse.c:111 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:108:[eva:alarm] warning: function sscanf_va_17: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_17 :: cmdparse.c:108 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:104:[eva:alarm] warning: function sscanf_va_18: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_18 :: cmdparse.c:104 <- + CPS_ParseNTPSourceAdd :: conf.c:640 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:645 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:645 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:645 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:536 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:536 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:536 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:601:[eva:alarm] warning: function sscanf_va_22: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_22 :: conf.c:601 <- + parse_int :: conf.c:532 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:601:[eva:alarm] warning: function sscanf_va_22: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_22 :: conf.c:601 <- + parse_int :: conf.c:530 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_23 :: conf.c:614 <- + parse_double :: conf.c:528 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_23 :: conf.c:614 <- + parse_double :: conf.c:526 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:601:[eva:alarm] warning: function sscanf_va_22: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_22 :: conf.c:601 <- + parse_int :: conf.c:524 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_23 :: conf.c:614 <- + parse_double :: conf.c:522 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_23 :: conf.c:614 <- + parse_double :: conf.c:520 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_23 :: conf.c:614 <- + parse_double :: conf.c:518 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_23 :: conf.c:614 <- + parse_double :: conf.c:516 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:976:[eva:alarm] warning: function sscanf_va_44: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_44 :: conf.c:976 <- + parse_maxchange :: conf.c:514 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:959:[eva:alarm] warning: function sscanf_va_43: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_43 :: conf.c:959 <- + parse_makestep :: conf.c:510 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:992:[eva:alarm] warning: function sscanf_va_45: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_45 :: conf.c:992 <- + parse_mailonchange :: conf.c:508 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:993 <- + parse_mailonchange :: conf.c:508 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:993 <- + parse_mailonchange :: conf.c:508 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:993 <- + parse_mailonchange :: conf.c:508 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:506 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:506 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:506 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_23 :: conf.c:614 <- + parse_double :: conf.c:504 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:601:[eva:alarm] warning: function sscanf_va_22: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_22 :: conf.c:601 <- + parse_int :: conf.c:502 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:130:[eva:alarm] warning: out of bounds read. assert \valid_read(s1 + i); +stack: strcmp :: conf.c:845 <- + parse_log :: conf.c:500 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:130:[eva:alarm] warning: out of bounds read. assert \valid_read(s2 + i); +stack: strcmp :: conf.c:845 <- + parse_log :: conf.c:500 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:133:[eva:alarm] warning: out of bounds read. assert \valid_read((unsigned char *)s1 + i); +stack: strcmp :: conf.c:845 <- + parse_log :: conf.c:500 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:192:[eva:alarm] warning: function sscanf_va_19: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_19 :: cmdparse.c:192 <- + CPS_ParseLocal :: conf.c:875 <- + parse_local :: conf.c:496 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:185:[eva:alarm] warning: function sscanf_va_20: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_20 :: cmdparse.c:185 <- + CPS_ParseLocal :: conf.c:875 <- + parse_local :: conf.c:496 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:180:[eva:alarm] warning: out of bounds read. assert \valid_read(line); +stack: CPS_ParseLocal :: conf.c:875 <- + parse_local :: conf.c:496 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:494 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:494 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:494 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:490 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:490 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:490 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:896:[eva:alarm] warning: function sscanf_va_40: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_40 :: conf.c:896 <- + parse_initstepslew :: conf.c:488 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/netdb.c:113:[eva:alarm] warning: out of bounds read. assert \valid_read(cp); +stack: gethostbyname :: nameserv.c:121 <- + DNS_Name2IPAddress :: conf.c:905 <- + parse_initstepslew :: conf.c:488 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/netdb.c:116:[eva:alarm] warning: out of bounds read. assert \valid_read(cp); +stack: gethostbyname :: nameserv.c:121 <- + DNS_Name2IPAddress :: conf.c:905 <- + parse_initstepslew :: conf.c:488 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/netdb.c:119:[eva:alarm] warning: function inet_addr: precondition 'valid_arg' got status unknown. +stack: inet_addr :: FRAMAC_SHARE/libc/netdb.c:119 <- + gethostbyname :: nameserv.c:121 <- + DNS_Name2IPAddress :: conf.c:905 <- + parse_initstepslew :: conf.c:488 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:217:[eva:alarm] warning: out of bounds read. assert \valid_read(src + i); +stack: strncpy :: FRAMAC_SHARE/libc/netdb.c:123 <- + gethostbyname :: nameserv.c:121 <- + DNS_Name2IPAddress :: conf.c:905 <- + parse_initstepslew :: conf.c:488 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:218:[eva:alarm] warning: out of bounds read. assert \valid_read(src + i); +stack: strncpy :: FRAMAC_SHARE/libc/netdb.c:123 <- + gethostbyname :: nameserv.c:121 <- + DNS_Name2IPAddress :: conf.c:905 <- + parse_initstepslew :: conf.c:488 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/netdb.c:145:[eva:alarm] warning: function inet_addr: precondition 'valid_arg' got status unknown. +stack: inet_addr :: FRAMAC_SHARE/libc/netdb.c:145 <- + gethostbyname :: nameserv.c:121 <- + DNS_Name2IPAddress :: conf.c:905 <- + parse_initstepslew :: conf.c:488 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +nameserv.c:127:[eva:alarm] warning: out of bounds read. assert \valid_read(host->h_addr_list + 0); +stack: DNS_Name2IPAddress :: conf.c:905 <- + parse_initstepslew :: conf.c:488 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_3' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: array.c:115 <- + ARR_AppendElement :: conf.c:906 <- + parse_initstepslew :: conf.c:488 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:94 <- + ARR_GetElement :: array.c:88 <- + ARR_GetNewElement :: array.c:115 <- + ARR_AppendElement :: conf.c:906 <- + parse_initstepslew :: conf.c:488 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:116:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: array.c:116 <- + ARR_AppendElement :: conf.c:906 <- + parse_initstepslew :: conf.c:488 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: array.c:115 <- + ARR_AppendElement :: conf.c:906 <- + parse_initstepslew :: conf.c:488 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:1295 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:1295 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:1295 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1327:[eva:alarm] warning: function sscanf_va_53: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_53 :: conf.c:1327 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:170:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(s1 + i); +stack: strcasecmp :: conf.c:1329 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:171:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(s1 + i); +stack: strcasecmp :: conf.c:1329 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:174:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(s1 + i); +stack: strcasecmp :: conf.c:1329 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:175:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(s1 + i); +stack: strcasecmp :: conf.c:1329 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1324:[eva:alarm] warning: function sscanf_va_54: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_54 :: conf.c:1324 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1321:[eva:alarm] warning: function sscanf_va_55: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_55 :: conf.c:1321 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1318:[eva:alarm] warning: function sscanf_va_56: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_56 :: conf.c:1318 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1315:[eva:alarm] warning: function sscanf_va_57: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_57 :: conf.c:1315 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1312:[eva:alarm] warning: function sscanf_va_58: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_58 :: conf.c:1312 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1309:[eva:alarm] warning: function sscanf_va_59: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_59 :: conf.c:1309 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1305:[eva:alarm] warning: out of bounds read. assert \valid_read(p); +stack: parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:482 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:482 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:482 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:948:[eva:alarm] warning: function sscanf_va_42: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_42 :: conf.c:948 <- + parse_fallbackdrift :: conf.c:480 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:476 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:476 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:476 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:474 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:474 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:474 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:139:[eva:alarm] warning: out of bounds read. assert \valid_read(s1 + i); +stack: strncmp :: conf.c:1013 <- + parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:140:[eva:alarm] warning: out of bounds read. assert \valid_read((unsigned char *)s1 + i); +stack: strncmp :: conf.c:1013 <- + parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1027:[eva:alarm] warning: function strchr: precondition 'valid_string_s' got status unknown. +stack: strchr :: conf.c:1027 <- + parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:345:[eva:alarm] warning: function sscanf_va_63: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_63 :: util.c:345 <- + UTI_StringToIP :: conf.c:1032 <- + parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1033:[eva:alarm] warning: function sscanf_va_46: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_46 :: conf.c:1033 <- + parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1036:[eva:alarm] warning: assertion got status unknown. +conf.c:1043:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ip_addr.family); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1050:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&a); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1051:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&b); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1052:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&c); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1053:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&d); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1079:[eva:alarm] warning: function sscanf_va_47: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_47 :: conf.c:1079 <- + parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1093:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ip_addr.family); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_23 :: conf.c:614 <- + parse_double :: conf.c:470 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_23 :: conf.c:614 <- + parse_double :: conf.c:468 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:662:[eva:alarm] warning: function sscanf_va_24: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_24 :: conf.c:662 <- + parse_ratelimit :: conf.c:465 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:601:[eva:alarm] warning: function sscanf_va_22: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_22 :: conf.c:601 <- + parse_int :: conf.c:463 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1027:[eva:alarm] warning: function strchr: precondition 'valid_string_s' got status unknown. +stack: strchr :: conf.c:1027 <- + parse_allow_deny :: conf.c:461 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1033:[eva:alarm] warning: function sscanf_va_46: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_46 :: conf.c:1033 <- + parse_allow_deny :: conf.c:461 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1079:[eva:alarm] warning: function sscanf_va_47: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_47 :: conf.c:1079 <- + parse_allow_deny :: conf.c:461 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1027:[eva:alarm] warning: function strchr: precondition 'valid_string_s' got status unknown. +stack: strchr :: conf.c:1027 <- + parse_allow_deny :: conf.c:459 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1033:[eva:alarm] warning: function sscanf_va_46: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_46 :: conf.c:1033 <- + parse_allow_deny :: conf.c:459 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1079:[eva:alarm] warning: function sscanf_va_47: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_47 :: conf.c:1079 <- + parse_allow_deny :: conf.c:459 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:937:[eva:alarm] warning: function sscanf_va_41: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_41 :: conf.c:937 <- + parse_clientloglimit :: conf.c:457 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1180:[eva:alarm] warning: function sscanf_va_48: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_48 :: conf.c:1180 <- + parse_broadcast :: conf.c:455 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:345:[eva:alarm] warning: function sscanf_va_63: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_63 :: util.c:345 <- + UTI_StringToIP :: conf.c:1188 <- + parse_broadcast :: conf.c:455 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1197:[eva:alarm] warning: function sscanf_va_49: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_49 :: conf.c:1197 <- + parse_broadcast :: conf.c:455 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:1151 <- + parse_bindcmdaddress :: conf.c:453 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:1151 <- + parse_bindcmdaddress :: conf.c:453 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:1151 <- + parse_bindcmdaddress :: conf.c:453 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:130:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(s1 + i); +stack: strcmp :: conf.c:1153 <- + parse_bindcmdaddress :: conf.c:453 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:133:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized((unsigned char *)s1 + i); +stack: strcmp :: conf.c:1153 <- + parse_bindcmdaddress :: conf.c:453 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:345:[eva:alarm] warning: function sscanf_va_63: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_63 :: util.c:345 <- + UTI_StringToIP :: conf.c:1155 <- + parse_bindcmdaddress :: conf.c:453 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1156:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ip.family); +stack: parse_bindcmdaddress :: conf.c:453 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:345:[eva:alarm] warning: function sscanf_va_63: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_63 :: util.c:345 <- + UTI_StringToIP :: conf.c:1130 <- + parse_bindaddress :: conf.c:451 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1131:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ip.family); +stack: parse_bindaddress :: conf.c:451 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:345:[eva:alarm] warning: function sscanf_va_63: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_63 :: util.c:345 <- + UTI_StringToIP :: conf.c:1112 <- + parse_bindacqaddress :: conf.c:449 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1113:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ip.family); +stack: parse_bindacqaddress :: conf.c:449 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1027:[eva:alarm] warning: function strchr: precondition 'valid_string_s' got status unknown. +stack: strchr :: conf.c:1027 <- + parse_allow_deny :: conf.c:447 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1033:[eva:alarm] warning: function sscanf_va_46: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_46 :: conf.c:1033 <- + parse_allow_deny :: conf.c:447 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1079:[eva:alarm] warning: function sscanf_va_47: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_47 :: conf.c:1079 <- + parse_allow_deny :: conf.c:447 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:601:[eva:alarm] warning: function sscanf_va_22: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_22 :: conf.c:601 <- + parse_int :: conf.c:445 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_6' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:573 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_7' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:1263 <- + parse_tempcomp :: conf.c:571 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_8' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:1274 <- + parse_tempcomp :: conf.c:571 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_9' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:645 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: array.c:115 <- + ARR_AppendElement :: conf.c:646 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:94 <- + ARR_GetElement :: array.c:88 <- + ARR_GetNewElement :: array.c:115 <- + ARR_AppendElement :: conf.c:646 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:116:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: array.c:116 <- + ARR_AppendElement :: conf.c:646 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_10' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:557 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_11' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:555 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_12' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:723 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_13' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:727 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_0' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:812 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:94 <- + ARR_GetElement :: array.c:88 <- + ARR_GetNewElement :: conf.c:812 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:813:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->driver_name); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:814:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->driver_parameter); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:815:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->driver_poll); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:816:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->poll); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:817:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->filter_length); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:818:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->pps_forced); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:819:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->pps_rate); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:820:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->min_samples); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:821:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->max_samples); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:822:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->sel_options); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:823:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->stratum); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:824:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->tai); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:825:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->offset); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:826:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->delay); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:827:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->precision); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:828:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->max_dispersion); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:829:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->pulse_width); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:830:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->ref_id); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:831:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->max_lock_age); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:832:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->lock_ref_id); +stack: parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_14' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:645 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_1' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: array.c:115 <- + ARR_AppendElement :: conf.c:646 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:116:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: array.c:116 <- + ARR_AppendElement :: conf.c:646 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_15' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:540 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_16' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:645 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_2' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: array.c:115 <- + ARR_AppendElement :: conf.c:646 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:116:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: array.c:116 <- + ARR_AppendElement :: conf.c:646 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_17' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:536 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_18' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:993 <- + parse_mailonchange :: conf.c:508 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_19' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:506 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_20' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:494 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_21' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:490 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_4' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1294 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:94 <- + ARR_GetElement :: array.c:88 <- + ARR_GetNewElement :: conf.c:1294 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_22' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:1295 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1295:[eva:alarm] warning: out of bounds write. assert \valid(&iface->name); +stack: parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1296:[eva:alarm] warning: out of bounds write. assert \valid(&iface->minpoll); +stack: parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1297:[eva:alarm] warning: out of bounds write. assert \valid(&iface->min_samples); +stack: parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1298:[eva:alarm] warning: out of bounds write. assert \valid(&iface->max_samples); +stack: parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1299:[eva:alarm] warning: out of bounds write. assert \valid(&iface->nocrossts); +stack: parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1300:[eva:alarm] warning: out of bounds write. assert \valid(&iface->rxfilter); +stack: parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1301:[eva:alarm] warning: out of bounds write. assert \valid(&iface->precision); +stack: parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1302:[eva:alarm] warning: out of bounds write. assert \valid(&iface->tx_comp); +stack: parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1303:[eva:alarm] warning: out of bounds write. assert \valid(&iface->rx_comp); +stack: parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1339:[eva:alarm] warning: out of bounds write. assert \valid(&iface->nocrossts); +stack: parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1334:[eva:alarm] warning: out of bounds write. assert \valid(&iface->rxfilter); +stack: parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1332:[eva:alarm] warning: out of bounds write. assert \valid(&iface->rxfilter); +stack: parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1330:[eva:alarm] warning: out of bounds write. assert \valid(&iface->rxfilter); +stack: parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1324:[eva:alarm] warning: function sscanf_va_54: precondition \valid(param0) got status unknown. +stack: sscanf_va_54 :: conf.c:1324 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1321:[eva:alarm] warning: function sscanf_va_55: precondition \valid(param0) got status unknown. +stack: sscanf_va_55 :: conf.c:1321 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1318:[eva:alarm] warning: function sscanf_va_56: precondition \valid(param0) got status unknown. +stack: sscanf_va_56 :: conf.c:1318 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1315:[eva:alarm] warning: function sscanf_va_57: precondition \valid(param0) got status unknown. +stack: sscanf_va_57 :: conf.c:1315 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1312:[eva:alarm] warning: function sscanf_va_58: precondition \valid(param0) got status unknown. +stack: sscanf_va_58 :: conf.c:1312 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1309:[eva:alarm] warning: function sscanf_va_59: precondition \valid(param0) got status unknown. +stack: sscanf_va_59 :: conf.c:1309 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_23' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:482 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_24' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:476 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_25' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:474 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_5' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1020 <- + parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:94 <- + ARR_GetElement :: array.c:88 <- + ARR_GetNewElement :: conf.c:1020 <- + parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1021:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->allow); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1022:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->all); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1023:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->ip.family); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1024:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->subnet_bits); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_6' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1037 <- + parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1038:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->allow); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1039:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->all); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1042:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->ip); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1046:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->subnet_bits); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1048:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->ip.family); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1057:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->ip.addr.in4); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1058:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->subnet_bits); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1061:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->ip.addr.in4); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1062:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->subnet_bits); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1065:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->ip.addr.in4); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1066:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->subnet_bits); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1069:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->ip.addr.in4); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1070:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->subnet_bits); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1081:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->subnet_bits); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_7' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1089 <- + parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1090:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->allow); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1091:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->all); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1092:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->ip); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1096:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->subnet_bits); +stack: parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_8' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1020 <- + parse_allow_deny :: conf.c:461 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:94 <- + ARR_GetElement :: array.c:88 <- + ARR_GetNewElement :: conf.c:1020 <- + parse_allow_deny :: conf.c:461 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_9' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1037 <- + parse_allow_deny :: conf.c:461 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_10' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1089 <- + parse_allow_deny :: conf.c:461 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_11' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1020 <- + parse_allow_deny :: conf.c:459 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_12' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1037 <- + parse_allow_deny :: conf.c:459 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_13' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1089 <- + parse_allow_deny :: conf.c:459 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_14' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1206 <- + parse_broadcast :: conf.c:455 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:94 <- + ARR_GetElement :: array.c:88 <- + ARR_GetNewElement :: conf.c:1206 <- + parse_broadcast :: conf.c:455 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1207:[eva:alarm] warning: out of bounds write. assert \valid(&destination->addr); +stack: parse_broadcast :: conf.c:455 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1208:[eva:alarm] warning: out of bounds write. assert \valid(&destination->port); +stack: parse_broadcast :: conf.c:455 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1209:[eva:alarm] warning: out of bounds write. assert \valid(&destination->interval); +stack: parse_broadcast :: conf.c:455 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_26' as weak +stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <- + strdup :: memory.c:88 <- + Strdup :: conf.c:591 <- + parse_string :: conf.c:1151 <- + parse_bindcmdaddress :: conf.c:453 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_15' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1020 <- + parse_allow_deny :: conf.c:447 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_16' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1037 <- + parse_allow_deny :: conf.c:447 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_17' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1089 <- + parse_allow_deny :: conf.c:447 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: array.c:115 <- + ARR_AppendElement :: conf.c:646 <- + parse_source :: conf.c:565 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:812 <- + parse_refclock :: conf.c:549 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: array.c:115 <- + ARR_AppendElement :: conf.c:646 <- + parse_source :: conf.c:542 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: array.c:115 <- + ARR_AppendElement :: conf.c:646 <- + parse_source :: conf.c:538 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_18' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:122 <- + ARR_SetSize :: conf.c:893 <- + parse_initstepslew :: conf.c:488 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1294 <- + parse_hwtimestamp :: conf.c:484 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1020 <- + parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1037 <- + parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1089 <- + parse_allow_deny :: conf.c:472 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1020 <- + parse_allow_deny :: conf.c:461 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1037 <- + parse_allow_deny :: conf.c:461 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1089 <- + parse_allow_deny :: conf.c:461 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1020 <- + parse_allow_deny :: conf.c:459 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1037 <- + parse_allow_deny :: conf.c:459 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1089 <- + parse_allow_deny :: conf.c:459 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1206 <- + parse_broadcast :: conf.c:455 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1020 <- + parse_allow_deny :: conf.c:447 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1037 <- + parse_allow_deny :: conf.c:447 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: conf.c:1089 <- + parse_allow_deny :: conf.c:447 <- + CNF_ParseLine :: test/unit/ntp_core.c:317 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +local.c:126:[eva:alarm] warning: signed overflow. assert -9223372036854775808 ≤ ts.tv_sec - old_ts.tv_sec; +stack: calculate_sys_precision :: local.c:173 <- + LCL_Initialise :: test/unit/ntp_core.c:319 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +local.c:126:[eva:alarm] warning: signed overflow. assert ts.tv_sec - old_ts.tv_sec ≤ 9223372036854775807; +stack: calculate_sys_precision :: local.c:173 <- + LCL_Initialise :: test/unit/ntp_core.c:319 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +local.c:126:[eva:alarm] warning: signed overflow. assert -9223372036854775808 ≤ ts.tv_nsec - old_ts.tv_nsec; +stack: calculate_sys_precision :: local.c:173 <- + LCL_Initialise :: test/unit/ntp_core.c:319 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +local.c:126:[eva:alarm] warning: signed overflow. assert ts.tv_nsec - old_ts.tv_nsec ≤ 9223372036854775807; +stack: calculate_sys_precision :: local.c:173 <- + LCL_Initialise :: test/unit/ntp_core.c:319 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +local.c:126:[eva:alarm] warning: signed overflow. +assert +-9223372036854775808 ≤ 1000000000 * (long)(ts.tv_sec - old_ts.tv_sec); +stack: calculate_sys_precision :: local.c:173 <- + LCL_Initialise :: test/unit/ntp_core.c:319 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +local.c:126:[eva:alarm] warning: signed overflow. +assert +1000000000 * (long)(ts.tv_sec - old_ts.tv_sec) ≤ 9223372036854775807; +stack: calculate_sys_precision :: local.c:173 <- + LCL_Initialise :: test/unit/ntp_core.c:319 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +local.c:126:[eva:alarm] warning: signed overflow. +assert +-9223372036854775808 ≤ +(long)(1000000000 * (long)(ts.tv_sec - old_ts.tv_sec)) + +(long)(ts.tv_nsec - old_ts.tv_nsec); +stack: calculate_sys_precision :: local.c:173 <- + LCL_Initialise :: test/unit/ntp_core.c:319 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +local.c:126:[eva:alarm] warning: signed overflow. +assert +(long)(1000000000 * (long)(ts.tv_sec - old_ts.tv_sec)) + +(long)(ts.tv_nsec - old_ts.tv_nsec) ≤ 9223372036854775807; +stack: calculate_sys_precision :: local.c:173 <- + LCL_Initialise :: test/unit/ntp_core.c:319 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +local.c:143:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ precision_log - 1; +stack: calculate_sys_precision :: local.c:173 <- + LCL_Initialise :: test/unit/ntp_core.c:319 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +local.c:147:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: local.c:147 <- + calculate_sys_precision :: local.c:173 <- + LCL_Initialise :: test/unit/ntp_core.c:319 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:94 <- + ARR_GetElement :: conf.c:2041 <- + CNF_GetHwTsInterface :: ntp_io.c:373 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_io.c:161:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&bind_address.addr.in4); +stack: prepare_socket :: ntp_io.c:406 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_21' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: sched.c:170 <- + SCH_AddFileHandler :: ntp_io.c:273 <- + prepare_socket :: ntp_io.c:406 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:94 <- + ARR_GetElement :: array.c:88 <- + ARR_GetNewElement :: sched.c:170 <- + SCH_AddFileHandler :: ntp_io.c:273 <- + prepare_socket :: ntp_io.c:406 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:171:[eva:alarm] warning: out of bounds write. assert \valid(&ptr->handler); +stack: SCH_AddFileHandler :: ntp_io.c:273 <- + prepare_socket :: ntp_io.c:406 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:172:[eva:alarm] warning: out of bounds write. assert \valid(&ptr->arg); +stack: SCH_AddFileHandler :: ntp_io.c:273 <- + prepare_socket :: ntp_io.c:406 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:173:[eva:alarm] warning: out of bounds write. assert \valid(&ptr->events); +stack: SCH_AddFileHandler :: ntp_io.c:273 <- + prepare_socket :: ntp_io.c:406 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: sched.c:170 <- + SCH_AddFileHandler :: ntp_io.c:273 <- + prepare_socket :: ntp_io.c:406 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:94 <- + ARR_GetElement :: sched.c:176 <- + SCH_AddFileHandler :: ntp_io.c:273 <- + prepare_socket :: ntp_io.c:406 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:181:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ptr->handler); +stack: SCH_AddFileHandler :: ntp_io.c:273 <- + prepare_socket :: ntp_io.c:406 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:181:[eva:alarm] warning: out of bounds read. assert \valid_read(&ptr->handler); +stack: SCH_AddFileHandler :: ntp_io.c:273 <- + prepare_socket :: ntp_io.c:406 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:183:[eva:alarm] warning: out of bounds write. assert \valid(&ptr->handler); +stack: SCH_AddFileHandler :: ntp_io.c:273 <- + prepare_socket :: ntp_io.c:406 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:184:[eva:alarm] warning: out of bounds write. assert \valid(&ptr->arg); +stack: SCH_AddFileHandler :: ntp_io.c:273 <- + prepare_socket :: ntp_io.c:406 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:185:[eva:alarm] warning: out of bounds write. assert \valid(&ptr->events); +stack: SCH_AddFileHandler :: ntp_io.c:273 <- + prepare_socket :: ntp_io.c:406 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: sched.c:170 <- + SCH_AddFileHandler :: ntp_io.c:273 <- + prepare_socket :: ntp_io.c:409 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:94 <- + ARR_GetElement :: array.c:88 <- + ARR_GetNewElement :: sched.c:170 <- + SCH_AddFileHandler :: ntp_io.c:273 <- + prepare_socket :: ntp_io.c:409 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_22' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: sched.c:170 <- + SCH_AddFileHandler :: ntp_io.c:273 <- + prepare_socket :: ntp_io.c:409 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:94 <- + ARR_GetElement :: sched.c:176 <- + SCH_AddFileHandler :: ntp_io.c:273 <- + prepare_socket :: ntp_io.c:409 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:181:[eva:alarm] warning: pointer comparison. +assert \pointer_comparable((void (*)())0, (void (*)())ptr->handler); +stack: SCH_AddFileHandler :: ntp_io.c:273 <- + prepare_socket :: ntp_io.c:409 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:181:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sched.c:181 <- + SCH_AddFileHandler :: ntp_io.c:273 <- + prepare_socket :: ntp_io.c:409 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_23' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: sched.c:170 <- + SCH_AddFileHandler :: ntp_io.c:273 <- + prepare_socket :: ntp_io.c:409 <- + NIO_Initialise :: test/unit/ntp_core.c:323 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:364:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:364 <- + do_time_checks :: ntp_core.c:392 <- + NCR_Initialise :: test/unit/ntp_core.c:324 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:394:[kernel:annot:missing-spec] warning: Neither code nor specification for function LOG_FileOpen, generating default assigns from the prototype +reference.c:202:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown. +stack: fopen :: reference.c:202 <- + REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:193:[eva:alarm] warning: overflow in conversion from floating-point to integer. +assert +(double)start->tv_nsec + +\mul_double((double)1.0e9, \sub_double(increment, (double)int_part)) < +9223372036854775808; +stack: UTI_AddDoubleToTimespec :: local.c:391 <- + LCL_CookTime :: local.c:472 <- + LCL_SetAbsoluteFrequency :: reference.c:212 <- + REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:98:[eva:alarm] warning: signed overflow. +assert +-9223372036854775808 ≤ ts->tv_sec + (long)(ts->tv_nsec / 1000000000); +stack: UTI_NormaliseTimespec :: util.c:194 <- + UTI_AddDoubleToTimespec :: local.c:391 <- + LCL_CookTime :: local.c:472 <- + LCL_SetAbsoluteFrequency :: reference.c:212 <- + REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:98:[eva:alarm] warning: signed overflow. +assert ts->tv_sec + (long)(ts->tv_nsec / 1000000000) ≤ 9223372036854775807; +stack: UTI_NormaliseTimespec :: util.c:194 <- + UTI_AddDoubleToTimespec :: local.c:391 <- + LCL_CookTime :: local.c:472 <- + LCL_SetAbsoluteFrequency :: reference.c:212 <- + REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:103:[eva:alarm] warning: signed overflow. assert -9223372036854775808 ≤ ts->tv_sec - 1; +stack: UTI_NormaliseTimespec :: util.c:194 <- + UTI_AddDoubleToTimespec :: local.c:391 <- + LCL_CookTime :: local.c:472 <- + LCL_SetAbsoluteFrequency :: reference.c:212 <- + REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:181:[eva:alarm] warning: signed overflow. assert a->tv_nsec - b->tv_nsec ≤ 9223372036854775807; +stack: UTI_DiffTimespecsToDouble :: util.c:632 <- + UTI_AdjustTimespec :: sched.c:602 <- + handle_slew_0 :: local.c:295 <- + invoke_parameter_change_handlers :: local.c:475 <- + LCL_SetAbsoluteFrequency :: reference.c:212 <- + REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:232:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: reference.c:232 <- + REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:207:[eva:alarm] warning: out of bounds read. assert \valid_read(src + i); +stack: strcpy :: reference.c:651 <- + get_tz_leap :: reference.c:248 <- + REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:208:[eva:alarm] warning: out of bounds read. assert \valid_read(src + i); +stack: strcpy :: reference.c:651 <- + get_tz_leap :: reference.c:248 <- + REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:659:[eva:alarm] warning: signed overflow. assert -9223372036854775808 ≤ t - when; +stack: get_tz_leap :: reference.c:248 <- + REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:265:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ fb_drift_max_0 - fb_drift_min_0; +stack: REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:266:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ fb_drift_max_0 - fb_drift_min_0; +stack: REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:266:[eva:alarm] warning: function memset: precondition 'valid_s' got status unknown. +stack: memset :: reference.c:266 <- + REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:466:[eva:alarm] warning: invalid RHS operand for shift. assert 0 ≤ i < 32; +stack: schedule_fb_drift :: reference.c:1144 <- + REF_SetUnsynchronised :: reference.c:278 <- + REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:466:[eva:alarm] warning: signed overflow. assert 1 << i ≤ 2147483647; +stack: schedule_fb_drift :: reference.c:1144 <- + REF_SetUnsynchronised :: reference.c:278 <- + REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:468:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(fb_drifts + (int)(i - fb_drift_min_0))->secs); +stack: schedule_fb_drift :: reference.c:1144 <- + REF_SetUnsynchronised :: reference.c:278 <- + REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:468:[eva:alarm] warning: out of bounds read. +assert \valid_read(&(fb_drifts + (int)(i - fb_drift_min_0))->secs); +stack: schedule_fb_drift :: reference.c:1144 <- + REF_SetUnsynchronised :: reference.c:278 <- + REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:468:[eva:alarm] warning: signed overflow. assert i - fb_drift_min_0 ≤ 2147483647; +stack: schedule_fb_drift :: reference.c:1144 <- + REF_SetUnsynchronised :: reference.c:278 <- + REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:191:[eva:alarm] warning: overflow in conversion from floating-point to integer. +assert increment < 9223372036854775808; +stack: UTI_AddDoubleToTimespec :: reference.c:485 <- + schedule_fb_drift :: reference.c:1144 <- + REF_SetUnsynchronised :: reference.c:278 <- + REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:192:[eva:alarm] warning: signed overflow. assert -9223372036854775808 ≤ start->tv_sec + int_part; +stack: UTI_AddDoubleToTimespec :: reference.c:485 <- + schedule_fb_drift :: reference.c:1144 <- + REF_SetUnsynchronised :: reference.c:278 <- + REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:192:[eva:alarm] warning: signed overflow. assert start->tv_sec + int_part ≤ 9223372036854775807; +stack: UTI_AddDoubleToTimespec :: reference.c:485 <- + schedule_fb_drift :: reference.c:1144 <- + REF_SetUnsynchronised :: reference.c:278 <- + REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:193:[eva:alarm] warning: overflow in conversion from floating-point to integer. +assert +-9223372036854775809 < +(double)start->tv_nsec + +\mul_double((double)1.0e9, \sub_double(increment, (double)int_part)); +stack: UTI_AddDoubleToTimespec :: reference.c:485 <- + schedule_fb_drift :: reference.c:1144 <- + REF_SetUnsynchronised :: reference.c:278 <- + REF_Initialise :: test/unit/ntp_core.c:325 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:856:[kernel:annot:missing-spec] warning: Neither code nor specification for function LOG_FileWrite, generating default assigns from the prototype +test/unit/test.c:81:[kernel:annot:missing-spec] warning: Neither code nor specification for function LOG_OpenFileLog, generating default assigns from the prototype +keys.c:204:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown. +stack: fopen :: keys.c:204 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:213:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(p); +stack: CPS_NormalizeLine :: keys.c:213 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:214:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(p); +stack: CPS_NormalizeLine :: keys.c:213 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:222:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(p); +stack: CPS_NormalizeLine :: keys.c:213 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:225:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(p); +stack: CPS_NormalizeLine :: keys.c:213 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:230:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(q + (int)(-1)); +stack: CPS_NormalizeLine :: keys.c:213 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:214:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized((char *)line); +stack: KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:244:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(q); +stack: CPS_SplitWord :: cmdparse.c:269 <- + CPS_ParseKey :: keys.c:217 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:244:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(q); +stack: CPS_SplitWord :: cmdparse.c:269 <- + CPS_ParseKey :: keys.c:217 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:248:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(q); +stack: CPS_SplitWord :: cmdparse.c:269 <- + CPS_ParseKey :: keys.c:217 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:248:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(q); +stack: CPS_SplitWord :: cmdparse.c:269 <- + CPS_ParseKey :: keys.c:217 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:249:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(tmp_1); +(tmp_1 from q++) +stack: CPS_SplitWord :: cmdparse.c:269 <- + CPS_ParseKey :: keys.c:217 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:252:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(q); +stack: CPS_SplitWord :: cmdparse.c:269 <- + CPS_ParseKey :: keys.c:217 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:252:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(q); +stack: CPS_SplitWord :: cmdparse.c:269 <- + CPS_ParseKey :: keys.c:217 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:274:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(s2); +stack: CPS_ParseKey :: keys.c:217 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:274:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(s4); +stack: CPS_ParseKey :: keys.c:217 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:277:[eva:alarm] warning: function sscanf_va_21: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_21 :: cmdparse.c:277 <- + CPS_ParseKey :: keys.c:217 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:280:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(s3); +stack: CPS_ParseKey :: keys.c:217 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:222:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&hashname); +stack: KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:224:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&key_id); +stack: KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:228:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&keyval); +stack: KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:139:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: keys.c:139 <- + decode_password :: keys.c:228 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:139:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(s1 + i); +stack: strncmp :: keys.c:142 <- + decode_password :: keys.c:228 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:140:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized((unsigned char *)s1 + i); +stack: strncmp :: keys.c:142 <- + decode_password :: keys.c:228 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:150:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(key + j); +stack: decode_password :: keys.c:228 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:150:[eva:alarm] warning: out of bounds read. assert \valid_read(key + j); +stack: decode_password :: keys.c:228 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:150:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(key + (int)(j + 1)); +stack: decode_password :: keys.c:228 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:150:[eva:alarm] warning: out of bounds read. assert \valid_read(key + (int)(j + 1)); +stack: decode_password :: keys.c:228 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:153:[eva:alarm] warning: pointer comparison. assert \pointer_comparable((void *)p, (void *)(&buf[2])); +stack: decode_password :: keys.c:228 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:151:[eva:alarm] warning: out of bounds write. assert \valid(key + i); +stack: decode_password :: keys.c:228 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:143:[eva:alarm] warning: function memmove: precondition 'valid_dest' got status unknown. +stack: memmove :: keys.c:143 <- + decode_password :: keys.c:228 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:143:[eva:alarm] warning: function memmove: precondition 'valid_src' got status unknown. +stack: memmove :: keys.c:143 <- + decode_password :: keys.c:228 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:230:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&key_id); +stack: KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:234:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&key_id); +stack: KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:236:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: keys.c:236 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:236:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: keys.c:236 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_KEY_Reload_l235' as weak +stack: malloc :: memory.c:38 <- + Malloc :: memory.c:74 <- + Malloc2 :: keys.c:235 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_24' as weak +stack: realloc :: memory.c:50 <- + Realloc :: memory.c:80 <- + Realloc2 :: array.c:80 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: array.c:115 <- + ARR_AppendElement :: keys.c:237 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:94 <- + ARR_GetElement :: array.c:88 <- + ARR_GetNewElement :: array.c:115 <- + ARR_AppendElement :: keys.c:237 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:116:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: array.c:116 <- + ARR_AppendElement :: keys.c:237 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:69 <- + realloc_array :: array.c:87 <- + ARR_GetNewElement :: array.c:115 <- + ARR_AppendElement :: keys.c:237 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:103:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:103 <- + ARR_GetElements :: keys.c:245 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +fc_stubs.c:13:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown. +stack: memcpy :: fc_stubs.c:13 <- + qsort :: keys.c:245 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +fc_stubs.c:13:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown. +stack: memcpy :: fc_stubs.c:13 <- + qsort :: keys.c:245 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +fc_stubs.c:13:[eva:alarm] warning: function memcpy: precondition 'separation' got status unknown. +stack: memcpy :: fc_stubs.c:13 <- + qsort :: keys.c:245 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:249:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&tmp_5->id); +(tmp_5 from get_key(i - (unsigned int)1)) +stack: KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:249:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&tmp_6->id); +(tmp_6 from get_key(i)) +stack: KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:249:[eva:alarm] warning: out of bounds read. +assert \valid_read(&tmp_5->id); +(tmp_5 from get_key(i - (unsigned int)1)) +stack: KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:249:[eva:alarm] warning: out of bounds read. assert \valid_read(&tmp_6->id); + (tmp_6 from get_key(i)) +stack: KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:250:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&tmp_4->id); +(tmp_4 from get_key(i - (unsigned int)1)) +stack: KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:250:[eva:alarm] warning: out of bounds read. +assert \valid_read(&tmp_4->id); +(tmp_4 from get_key(i - (unsigned int)1)) +stack: KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:257:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&tmp_9->id); +(tmp_9 from get_key(i)) +stack: KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:257:[eva:alarm] warning: out of bounds read. assert \valid_read(&tmp_9->id); + (tmp_9 from get_key(i)) +stack: KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:272:[eva:alarm] warning: pointer comparison. assert \pointer_comparable((void *)0, (void *)where); +stack: lookup_key :: keys.c:290 <- + get_key_by_id :: keys.c:390 <- + KEY_GenerateAuth :: keys.c:115 <- + determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:275:[eva:alarm] warning: pointer subtraction. assert \base_addr(where) ≡ \base_addr(keys_ptr); +stack: lookup_key :: keys.c:290 <- + get_key_by_id :: keys.c:390 <- + KEY_GenerateAuth :: keys.c:115 <- + determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:392:[eva:alarm] warning: pointer comparison. assert \pointer_comparable((void *)0, (void *)key); +stack: KEY_GenerateAuth :: keys.c:115 <- + determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:395:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&key->len); +stack: KEY_GenerateAuth :: keys.c:115 <- + determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:395:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&key->val); +stack: KEY_GenerateAuth :: keys.c:115 <- + determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:395:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&key->hash_id); +stack: KEY_GenerateAuth :: keys.c:115 <- + determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:395:[eva:alarm] warning: out of bounds read. assert \valid_read(&key->len); +stack: KEY_GenerateAuth :: keys.c:115 <- + determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:395:[eva:alarm] warning: out of bounds read. assert \valid_read(&key->val); +stack: KEY_GenerateAuth :: keys.c:115 <- + determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:395:[eva:alarm] warning: out of bounds read. assert \valid_read(&key->hash_id); +stack: KEY_GenerateAuth :: keys.c:115 <- + determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +md5.c:157:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(tmp_0); +(tmp_0 from inBuf++) +stack: MD5Update :: hash_intmd5.c:54 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: keys.c:115 <- + determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +md5.c:157:[eva:alarm] warning: out of bounds read. assert \valid_read(tmp_0); + (tmp_0 from inBuf++) +stack: MD5Update :: hash_intmd5.c:54 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: keys.c:115 <- + determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +md5.c:157:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ mdi + 1; +stack: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: keys.c:115 <- + determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +md5.c:157:[eva:alarm] warning: signed overflow. assert mdi + 1 ≤ 2147483647; +stack: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: keys.c:115 <- + determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +md5.c:157:[eva:alarm] warning: accessing out of bounds index. assert 0 ≤ tmp; + (tmp from mdi++) +stack: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: keys.c:115 <- + determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +md5.c:157:[eva:alarm] warning: accessing out of bounds index. assert tmp < 64; + (tmp from mdi++) +stack: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: keys.c:115 <- + determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +md5.c:157:[eva:alarm] warning: out of bounds write. assert \valid(&mdContext->in[tmp]); + (tmp from mdi++) +stack: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: keys.c:115 <- + determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +md5.c:157:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. +stack: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: keys.c:115 <- + determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:181:[eva:alarm] warning: signed overflow. assert -9223372036854775808 ≤ a->tv_nsec - b->tv_nsec; +stack: UTI_DiffTimespecsToDouble :: keys.c:119 <- + determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:126:[eva:alarm] warning: overflow in conversion from floating-point to integer. +assert -2147483649 < 1.0625e9 * min_diff; +stack: determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:126:[eva:alarm] warning: overflow in conversion from floating-point to integer. +assert 1.0625e9 * min_diff < 2147483648; +stack: determine_hash_delay :: keys.c:257 <- + KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:257:[eva:alarm] warning: out of bounds write. +assert \valid(&tmp_8->auth_delay); +(tmp_8 from get_key(i)) +stack: KEY_Reload :: keys.c:80 <- + KEY_Initialise :: test/unit/ntp_core.c:328 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:94 <- + ARR_GetElement :: conf.c:1794 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1795:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->all); +stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1795:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->allow); +stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1795:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->subnet_bits); +stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1795:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->all); +stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:242:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ip_addr->family); +stack: set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:82:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(addr + off); +stack: get_subnet :: addrfilt.c:177 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:178:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended); +stack: set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:135:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended); +stack: open_node :: addrfilt.c:179 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137' as weak +stack: malloc :: memory.c:38 <- + Malloc :: memory.c:74 <- + Malloc2 :: addrfilt.c:137 <- + open_node :: addrfilt.c:179 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:141:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended); +stack: open_node :: addrfilt.c:179 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:142:[eva:alarm] warning: out of bounds write. assert \valid(&child_node->state); +stack: open_node :: addrfilt.c:179 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:181:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended); +stack: set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:178:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->extended); +stack: set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:112:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended); +stack: close_node :: addrfilt.c:187 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:112:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->extended); +stack: close_node :: addrfilt.c:187 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:115:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended); +stack: close_node :: addrfilt.c:187 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:119:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended); +stack: close_node :: addrfilt.c:187 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:189:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&node); +stack: set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:198:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended); +stack: set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_0' as weak +stack: malloc :: memory.c:38 <- + Malloc :: memory.c:74 <- + Malloc2 :: addrfilt.c:137 <- + open_node :: addrfilt.c:199 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:201:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended); +stack: set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:198:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->extended); +stack: set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:210:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: addrfilt.c:210 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:212:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended); +stack: set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:212:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->extended); +stack: set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:218:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended); +stack: set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:222:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&this_node); +stack: set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:218:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&node); +stack: set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:218:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&node->extended); +stack: set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:112:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&node->extended); +stack: close_node :: addrfilt.c:220 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:115:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&node->extended); +stack: close_node :: addrfilt.c:220 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:119:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&node->extended); +stack: close_node :: addrfilt.c:220 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_2' as weak +stack: malloc :: memory.c:38 <- + Malloc :: memory.c:74 <- + Malloc2 :: addrfilt.c:137 <- + open_node :: addrfilt.c:179 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:267 <- + ADF_Allow :: ntp_core.c:2520 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:189:[eva:alarm] warning: out of bounds write. assert \valid(&node->state); +stack: set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:267 <- + ADF_Allow :: ntp_core.c:2520 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_3' as weak +stack: malloc :: memory.c:38 <- + Malloc :: memory.c:74 <- + Malloc2 :: addrfilt.c:137 <- + open_node :: addrfilt.c:199 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:267 <- + ADF_Allow :: ntp_core.c:2520 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:210:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: addrfilt.c:210 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:267 <- + ADF_Allow :: ntp_core.c:2520 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:222:[eva:alarm] warning: out of bounds write. assert \valid(&this_node->state); +stack: set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:267 <- + ADF_Allow :: ntp_core.c:2520 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_5' as weak +stack: malloc :: memory.c:38 <- + Malloc :: memory.c:74 <- + Malloc2 :: addrfilt.c:137 <- + open_node :: addrfilt.c:179 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:298 <- + ADF_DenyAll :: ntp_core.c:2524 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_6' as weak +stack: malloc :: memory.c:38 <- + Malloc :: memory.c:74 <- + Malloc2 :: addrfilt.c:137 <- + open_node :: addrfilt.c:199 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:298 <- + ADF_DenyAll :: ntp_core.c:2524 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:210:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: addrfilt.c:210 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:298 <- + ADF_DenyAll :: ntp_core.c:2524 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_8' as weak +stack: malloc :: memory.c:38 <- + Malloc :: memory.c:74 <- + Malloc2 :: addrfilt.c:137 <- + open_node :: addrfilt.c:179 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:288 <- + ADF_Deny :: ntp_core.c:2526 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_9' as weak +stack: malloc :: memory.c:38 <- + Malloc :: memory.c:74 <- + Malloc2 :: addrfilt.c:137 <- + open_node :: addrfilt.c:199 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:288 <- + ADF_Deny :: ntp_core.c:2526 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:210:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: addrfilt.c:210 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:288 <- + ADF_Deny :: ntp_core.c:2526 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:389:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&node->extended); +stack: is_any_allowed :: addrfilt.c:414 <- + ADF_IsAnyAllowed :: ntp_core.c:2538 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:291:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&addr->family); +stack: UTI_IPToString :: conf.c:1797 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:296:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&addr->addr.in4); +stack: UTI_IPToString :: conf.c:1797 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1797:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->subnet_bits); +stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1795:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->allow); +stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1795:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->subnet_bits); +stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:242:[eva:alarm] warning: out of bounds read. assert \valid_read(&ip_addr->family); +stack: set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:82:[eva:alarm] warning: out of bounds read. assert \valid_read(addr + off); +stack: get_subnet :: addrfilt.c:177 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:178:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&node->extended); +stack: set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:135:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&node->extended); +stack: open_node :: addrfilt.c:179 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:141:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&node->extended); +stack: open_node :: addrfilt.c:179 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:181:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&node->extended); +stack: set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:198:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&node->extended); +stack: set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:201:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&node->extended); +stack: set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:212:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&node->extended); +stack: set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_1' as weak +stack: malloc :: memory.c:38 <- + Malloc :: memory.c:74 <- + Malloc2 :: addrfilt.c:137 <- + open_node :: addrfilt.c:213 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:278 <- + ADF_AllowAll :: ntp_core.c:2518 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_4' as weak +stack: malloc :: memory.c:38 <- + Malloc :: memory.c:74 <- + Malloc2 :: addrfilt.c:137 <- + open_node :: addrfilt.c:213 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:267 <- + ADF_Allow :: ntp_core.c:2520 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_7' as weak +stack: malloc :: memory.c:38 <- + Malloc :: memory.c:74 <- + Malloc2 :: addrfilt.c:137 <- + open_node :: addrfilt.c:213 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:298 <- + ADF_DenyAll :: ntp_core.c:2524 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_10' as weak +stack: malloc :: memory.c:38 <- + Malloc :: memory.c:74 <- + Malloc2 :: addrfilt.c:137 <- + open_node :: addrfilt.c:213 <- + set_subnet :: addrfilt.c:244 <- + set_subnet_ :: addrfilt.c:288 <- + ADF_Deny :: ntp_core.c:2526 <- + NCR_AddAccessRestriction :: conf.c:1795 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:291:[eva:alarm] warning: out of bounds read. assert \valid_read(&addr->family); +stack: UTI_IPToString :: conf.c:1797 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:296:[eva:alarm] warning: out of bounds read. assert \valid_read(&addr->addr.in4); +stack: UTI_IPToString :: conf.c:1797 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1797:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->subnet_bits); +stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:94 <- + ARR_GetElement :: conf.c:1802 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1803:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->all); +stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1803:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->allow); +stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1803:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->subnet_bits); +stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1803:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->all); +stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1803:[kernel:annot:missing-spec] warning: Neither code nor specification for function CAM_AddAccessRestriction, generating default assigns from the prototype +util.c:310:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(ip6 + (unsigned long)(2 * a)); +stack: UTI_IPToString :: conf.c:1805 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(ip6 + (unsigned long)((unsigned long)(2 * a) + 1)); +stack: UTI_IPToString :: conf.c:1805 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1805:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->subnet_bits); +stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1803:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->allow); +stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1803:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->subnet_bits); +stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: out of bounds read. assert \valid_read(ip6 + (unsigned long)(2 * a)); +stack: UTI_IPToString :: conf.c:1805 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: out of bounds read. +assert \valid_read(ip6 + (unsigned long)((unsigned long)(2 * a) + 1)); +stack: UTI_IPToString :: conf.c:1805 <- + CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:1805:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->subnet_bits); +stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:156:[eva:alarm] warning: function sscanf_va_1: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_1 :: cmdparse.c:156 <- + CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:153:[eva:alarm] warning: function sscanf_va_2: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_2 :: cmdparse.c:153 <- + CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:150:[eva:alarm] warning: function sscanf_va_3: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_3 :: cmdparse.c:150 <- + CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:147:[eva:alarm] warning: function sscanf_va_4: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_4 :: cmdparse.c:147 <- + CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:144:[eva:alarm] warning: function sscanf_va_5: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_5 :: cmdparse.c:144 <- + CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:141:[eva:alarm] warning: function sscanf_va_6: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_6 :: cmdparse.c:141 <- + CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:138:[eva:alarm] warning: function sscanf_va_7: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_7 :: cmdparse.c:138 <- + CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:135:[eva:alarm] warning: function sscanf_va_8: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_8 :: cmdparse.c:135 <- + CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:132:[eva:alarm] warning: function sscanf_va_9: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_9 :: cmdparse.c:132 <- + CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:129:[eva:alarm] warning: function sscanf_va_10: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_10 :: cmdparse.c:129 <- + CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:126:[eva:alarm] warning: function sscanf_va_11: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_11 :: cmdparse.c:126 <- + CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:123:[eva:alarm] warning: function sscanf_va_12: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_12 :: cmdparse.c:123 <- + CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:120:[eva:alarm] warning: function sscanf_va_13: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_13 :: cmdparse.c:120 <- + CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:117:[eva:alarm] warning: function sscanf_va_14: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_14 :: cmdparse.c:117 <- + CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:114:[eva:alarm] warning: function sscanf_va_15: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_15 :: cmdparse.c:114 <- + CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:111:[eva:alarm] warning: function sscanf_va_16: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_16 :: cmdparse.c:111 <- + CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:108:[eva:alarm] warning: function sscanf_va_17: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_17 :: cmdparse.c:108 <- + CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +cmdparse.c:104:[eva:alarm] warning: function sscanf_va_18: precondition valid_read_string(s) got status unknown. +stack: sscanf_va_18 :: cmdparse.c:104 <- + CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:308:[eva:alarm] warning: pointer comparison. +assert \pointer_comparable((void *)tmp, (void *)0); +(tmp from get_key_by_id(key_id)) +stack: KEY_KeyKnown :: test/unit/ntp_core.c:73 <- + get_random_key_id :: test/unit/ntp_core.c:345 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:351:[eva:alarm] warning: pointer comparison. assert \pointer_comparable((void *)0, (void *)key); +stack: KEY_CheckKeyLength :: ntp_core.c:585 <- + NCR_GetInstance :: test/unit/ntp_core.c:354 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:354:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&key->len); +stack: KEY_CheckKeyLength :: ntp_core.c:585 <- + NCR_GetInstance :: test/unit/ntp_core.c:354 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:354:[eva:alarm] warning: out of bounds read. assert \valid_read(&key->len); +stack: KEY_CheckKeyLength :: ntp_core.c:585 <- + NCR_GetInstance :: test/unit/ntp_core.c:354 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:336:[eva:alarm] warning: pointer comparison. assert \pointer_comparable((void *)0, (void *)key); +stack: KEY_GetAuthLength :: ntp_core.c:593 <- + NCR_GetInstance :: test/unit/ntp_core.c:354 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:339:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&key->hash_id); +stack: KEY_GetAuthLength :: ntp_core.c:593 <- + NCR_GetInstance :: test/unit/ntp_core.c:354 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:339:[eva:alarm] warning: out of bounds read. assert \valid_read(&key->hash_id); +stack: KEY_GetAuthLength :: ntp_core.c:593 <- + NCR_GetInstance :: test/unit/ntp_core.c:354 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:608:[kernel:annot:missing-spec] warning: Neither code nor specification for function SPF_CreateInstance, generating default assigns from the prototype +ntp_core.c:697:[kernel:annot:missing-spec] warning: Neither code nor specification for function SPF_DropSamples, generating default assigns from the prototype +reference.c:1212:[eva:alarm] warning: signed overflow. assert -9223372036854775808 ≤ ref_time->tv_sec - 1; +stack: REF_GetReferenceParams :: reference.c:1250 <- + REF_GetOurStratum :: ntp_core.c:859 <- + get_transmit_delay :: ntp_core.c:471 <- + start_initial_timeout :: ntp_core.c:666 <- + NCR_StartInstance :: test/unit/ntp_core.c:355 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:859:[eva:alarm] warning: signed overflow. +assert inst->remote_stratum - tmp ≤ 2147483647; +(tmp from REF_GetOurStratum()) +stack: get_transmit_delay :: ntp_core.c:471 <- + start_initial_timeout :: ntp_core.c:666 <- + NCR_StartInstance :: test/unit/ntp_core.c:355 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:508 <- + take_offline :: ntp_core.c:1156 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1164:[eva:alarm] warning: invalid RHS operand for shift. +assert 0 ≤ (int)(inst->local_poll - inst->minpoll) < 32; +stack: transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1164:[eva:alarm] warning: invalid RHS operand for shift. +assert 0 ≤ (int)(inst->local_poll - inst->minpoll) < 32; +stack: transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:1180 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:764:[eva:alarm] warning: overflow in conversion from floating-point to integer. +assert 4.294967296 * (double)nsec < 4294967296; +stack: UTI_TimespecToNtp64 :: ntp_core.c:1031 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:1213:[eva:alarm] warning: function fread: precondition 'valid_ptr_block' got status unknown. +stack: fread :: util.c:1213 <- + UTI_GetRandomBytesUrandom :: util.c:1258 <- + UTI_GetRandomBytes :: util.c:650 <- + UTI_GetNtp64Fuzz :: ntp_core.c:1041 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:1213:[eva:alarm] warning: function fread: precondition 'valid_ptr_block' got status unknown. +stack: fread :: util.c:1213 <- + UTI_GetRandomBytesUrandom :: util.c:1258 <- + UTI_GetRandomBytes :: util.c:650 <- + UTI_GetNtp64Fuzz :: ntp_core.c:1061 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:320:[eva:alarm] warning: pointer comparison. assert \pointer_comparable((void *)0, (void *)key); +stack: KEY_GetAuthDelay :: ntp_core.c:1079 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:323:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&key->auth_delay); +stack: KEY_GetAuthDelay :: ntp_core.c:1079 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:323:[eva:alarm] warning: out of bounds read. assert \valid_read(&key->auth_delay); +stack: KEY_GetAuthDelay :: ntp_core.c:1079 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1078:[eva:alarm] warning: signed overflow. +assert -9223372036854775808 ≤ local_transmit.tv_nsec + (long)tmp_10; +(tmp_10 from +auth_mode == +AUTH_SYMMETRIC?KEY_GetAuthDelay(key_id):NSD_GetAuthDelay(key_id)) +stack: transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1078:[eva:alarm] warning: signed overflow. +assert local_transmit.tv_nsec + (long)tmp_10 ≤ 9223372036854775807; +(tmp_10 from +auth_mode == +AUTH_SYMMETRIC?KEY_GetAuthDelay(key_id):NSD_GetAuthDelay(key_id)) +stack: transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:98:[eva:alarm] warning: signed overflow. assert -9223372036854775808 ≤ ts->tv_nsec / 1000000000; +stack: UTI_NormaliseTimespec :: ntp_core.c:1080 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:98:[eva:alarm] warning: signed overflow. assert ts->tv_nsec / 1000000000 ≤ 9223372036854775807; +stack: UTI_NormaliseTimespec :: ntp_core.c:1080 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:99:[eva:alarm] warning: signed overflow. assert -9223372036854775808 ≤ ts->tv_nsec % 1000000000; +stack: UTI_NormaliseTimespec :: ntp_core.c:1080 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:99:[eva:alarm] warning: signed overflow. assert ts->tv_nsec % 1000000000 ≤ 9223372036854775807; +stack: UTI_NormaliseTimespec :: ntp_core.c:1080 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:103:[eva:alarm] warning: signed overflow. assert ts->tv_sec - 1 ≤ 9223372036854775807; +stack: UTI_NormaliseTimespec :: ntp_core.c:1080 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:104:[eva:alarm] warning: signed overflow. assert -9223372036854775808 ≤ ts->tv_nsec + 1000000000; +stack: UTI_NormaliseTimespec :: ntp_core.c:1080 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:104:[eva:alarm] warning: signed overflow. assert ts->tv_nsec + 1000000000 ≤ 9223372036854775807; +stack: UTI_NormaliseTimespec :: ntp_core.c:1080 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:763:[eva:garbled-mix] warning: The specification of function htonl has generated a garbled mix for assigns clause assigns clause \result. +util.c:764:[eva:alarm] warning: non-finite double value. +assert \is_finite(\mul_double((double)4.294967296, (double)nsec)); +stack: UTI_TimespecToNtp64 :: ntp_core.c:1081 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:764:[eva:alarm] warning: overflow in conversion from floating-point to integer. +assert -1 < 4.294967296 * (double)nsec; +stack: UTI_TimespecToNtp64 :: ntp_core.c:1081 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:764:[eva:garbled-mix] warning: The specification of function htonl has generated a garbled mix for assigns clause assigns clause \result. +md5.c:157:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. +stack: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: ntp_core.c:1090 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:508 <- + take_offline :: ntp_core.c:2351 <- + NCR_SetConnectivity :: ntp_core.c:1256 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +test/unit/ntp_core.c:179:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: test/unit/ntp_core.c:179 <- + send_response :: test/unit/ntp_core.c:379 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +test/unit/ntp_core.c:186:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: test/unit/ntp_core.c:186 <- + send_response :: test/unit/ntp_core.c:379 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +md5.c:157:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. +stack: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: test/unit/ntp_core.c:190 <- + send_response :: test/unit/ntp_core.c:379 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +test/unit/ntp_core.c:192:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: test/unit/ntp_core.c:192 <- + send_response :: test/unit/ntp_core.c:379 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1480:[kernel:annot:missing-spec] warning: Neither code nor specification for function SPF_AccumulateSample, generating default assigns from the prototype +ntp_core.c:1482:[kernel:annot:missing-spec] warning: Neither code nor specification for function SPF_GetNumberOfSamples, generating default assigns from the prototype +ntp_core.c:1484:[kernel:annot:missing-spec] warning: Neither code nor specification for function SPF_GetFilteredSample, generating default assigns from the prototype +util.c:181:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&b->tv_sec); +stack: UTI_DiffTimespecsToDouble :: ntp_core.c:1487 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:181:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&b->tv_nsec); +stack: UTI_DiffTimespecsToDouble :: ntp_core.c:1487 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1489:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ (int)(8 / 2) * filtered_samples; +stack: process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1489:[eva:alarm] warning: signed overflow. assert (int)(8 / 2) * filtered_samples ≤ 2147483647; +stack: process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1504:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&sample->offset); +stack: process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1504 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:319:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&sample->offset); +stack: SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:321:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&sample->peer_delay); +stack: SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:322:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&sample->peer_dispersion); +stack: SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:323:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&sample->root_delay); +stack: SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:324:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&sample->root_dispersion); +stack: SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:325:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&sample->stratum); +stack: SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:326:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&sample->leap); +stack: SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:181:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&a->tv_sec); +stack: UTI_DiffTimespecsToDouble :: sourcestats.c:372 <- + convert_to_intervals :: sourcestats.c:527 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:181:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&a->tv_nsec); +stack: UTI_DiffTimespecsToDouble :: sourcestats.c:372 <- + convert_to_intervals :: sourcestats.c:527 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:367:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + v); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:367:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + u); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:554:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&peer_distances[i]); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:482 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:492:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&delays[i]); +stack: correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:492:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(offsets + i); +stack: correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:397:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(times_back + i); +stack: find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:398 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:407 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1509:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&sample->peer_dispersion); +stack: process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1509:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&sample->peer_delay); +stack: process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:746:[eva:alarm] warning: non-finite double value. assert \is_finite(inst->poll_score); +stack: adjust_poll :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:746:[eva:alarm] warning: overflow in conversion from floating-point to integer. +assert inst->poll_score < 2147483648; +stack: adjust_poll :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:746:[eva:alarm] warning: signed overflow. +assert inst->local_poll + (int)inst->poll_score ≤ 2147483647; +stack: adjust_poll :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:751:[eva:alarm] warning: non-finite double value. +assert \is_finite(\sub_double(inst->poll_score, (double)1.0)); +stack: adjust_poll :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:751:[eva:alarm] warning: overflow in conversion from floating-point to integer. +assert -2147483649 < inst->poll_score - 1.0; +stack: adjust_poll :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:751:[eva:alarm] warning: signed overflow. +assert +-2147483648 ≤ +inst->local_poll + (int)\sub_double(inst->poll_score, (double)1.0); +stack: adjust_poll :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:752:[eva:alarm] warning: overflow in conversion from floating-point to integer. +assert -2147483649 < inst->poll_score - 1.0; +stack: adjust_poll :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:508 <- + take_offline :: ntp_core.c:1846 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:1859 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:1883 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:329:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&node->extended); +stack: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:326:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->state); +stack: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:327:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->state); +stack: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:329:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended); +stack: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:331:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended); +stack: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:331:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&node->extended); +stack: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:326:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->state); +stack: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:332:[eva:alarm] warning: signed overflow. assert bits_consumed + 4 ≤ 2147483647; +stack: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:326:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&node->state); +stack: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:327:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&node->state); +stack: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:329:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->extended); +stack: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:329:[eva:alarm] warning: pointer comparison. +assert \pointer_comparable((void *)0, (void *)node->extended); +stack: check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: addrfilt.c:347 <- + check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:66:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&ip->addr.in6[(int)((int)(i * 4) + 0)]); +stack: split_ip6 :: addrfilt.c:367 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:66:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&ip->addr.in6[(int)((int)(i * 4) + 1)]); +stack: split_ip6 :: addrfilt.c:367 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:66:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&ip->addr.in6[(int)((int)(i * 4) + 2)]); +stack: split_ip6 :: addrfilt.c:367 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:66:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&ip->addr.in6[(int)((int)(i * 4) + 3)]); +stack: split_ip6 :: addrfilt.c:367 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:1213:[eva:alarm] warning: function fread: precondition 'valid_ptr_block' got status unknown. +stack: fread :: util.c:1213 <- + UTI_GetRandomBytesUrandom :: util.c:1258 <- + UTI_GetRandomBytes :: util.c:650 <- + UTI_GetNtp64Fuzz :: ntp_core.c:1041 <- + transmit_packet :: ntp_core.c:2196 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:1213:[eva:alarm] warning: function fread: precondition 'valid_ptr_block' got status unknown. +stack: fread :: util.c:1213 <- + UTI_GetRandomBytesUrandom :: util.c:1258 <- + UTI_GetRandomBytes :: util.c:650 <- + UTI_GetNtp64Fuzz :: ntp_core.c:1061 <- + transmit_packet :: ntp_core.c:2196 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:797:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->offsets[inst->last_sample]); +stack: SST_PredictOffset :: ntp_core.c:1502 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1504 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:154:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&a->tv_sec); +stack: UTI_CompareTimespecs :: sourcestats.c:306 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:154:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&b->tv_sec); +stack: UTI_CompareTimespecs :: sourcestats.c:306 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:156:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&b->tv_sec); +stack: UTI_CompareTimespecs :: sourcestats.c:306 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:158:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&a->tv_nsec); +stack: UTI_CompareTimespecs :: sourcestats.c:306 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:158:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&b->tv_nsec); +stack: UTI_CompareTimespecs :: sourcestats.c:306 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:160:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&b->tv_nsec); +stack: UTI_CompareTimespecs :: sourcestats.c:306 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:331:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->peer_delays[inst->min_delay_sample]); +stack: SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:531:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->offsets[tmp]); +(tmp from get_runsbuf_index(inst, i)) +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:536:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->peer_delays[tmp_0]); +(tmp_0 from get_runsbuf_index(inst, i)) +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:536:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->peer_dispersions[j]); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:353:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(flags + index_0); +stack: find_ordered_entry_with_flags :: regress.c:427 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:555:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&peer_distances[i]); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:819:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->peer_delays[inst->min_delay_sample]); +stack: SST_MinRoundTripDelay :: sourcestats.c:475 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:479:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->peer_delays[tmp]); +(tmp from get_runsbuf_index(inst, i - inst->runs_samples)) +stack: correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:482 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:398 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:400:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->root_dispersions[j]); +stack: find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:400:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->root_delays[j]); +stack: find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:407 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:669:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->offsets[i]); +stack: SST_GetSelectionData :: sources.c:648 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:670:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->root_delays[j]); +stack: SST_GetSelectionData :: sources.c:648 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:670:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->root_dispersions[j]); +stack: SST_GetSelectionData :: sources.c:648 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:508 <- + take_offline :: ntp_core.c:1846 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:1859 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:1883 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: addrfilt.c:347 <- + check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1504 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:422:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->peer_delays[index_0]); +stack: find_min_delay_sample :: sourcestats.c:288 <- + prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:422:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->peer_delays[inst->min_delay_sample]); +stack: find_min_delay_sample :: sourcestats.c:288 <- + prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:156:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&a->tv_sec); +stack: UTI_CompareTimespecs :: sourcestats.c:306 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:160:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&a->tv_nsec); +stack: UTI_CompareTimespecs :: sourcestats.c:306 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:372:[eva:alarm] warning: out of bounds write. assert \valid(times_back + i); +stack: convert_to_intervals :: sourcestats.c:527 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:531:[eva:alarm] warning: accessing out of bounds index. assert 0 ≤ (int)(i + inst->runs_samples); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:359:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(flags + u); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:362:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(flags + v); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:363:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(flags + v); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:374:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + u); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:374:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + pivind); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:380:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + r); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:380:[eva:alarm] warning: out of bounds read. assert \valid_read(x + r); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:382:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + r); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:386:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + r); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:368:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + v); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:368:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + u); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:371:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + index_0); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:482 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:678:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x1 + i); +stack: RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:679:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x2 + i); +stack: RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:683:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:680:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x1 + i); +stack: RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:681:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x1 + i); +stack: RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:681:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x2 + i); +stack: RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:682:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x2 + i); +stack: RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:683:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x1 + i); +stack: RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:684:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x2 + i); +stack: RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:684:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:685:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: regress.c:698 <- + RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: regress.c:698 <- + RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:444:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&a); +stack: estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:254:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:254:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:255:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:262:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:263:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:263:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:264:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:264:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:265:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:277:[eva:alarm] warning: accessing out of bounds index. assert 0 ≤ (int)(i - resid_start); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:277:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:277:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:277:[eva:alarm] warning: out of bounds read. assert \valid_read(y + i); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:277:[eva:alarm] warning: out of bounds read. assert \valid_read(x + i); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:183:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(resid + (int)(i - 1)); +stack: n_runs_from_residuals :: regress.c:281 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:183:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(resid + i); +stack: n_runs_from_residuals :: regress.c:281 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:184:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(resid + i); +stack: n_runs_from_residuals :: regress.c:281 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:184:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(resid + (int)(i - 1)); +stack: n_runs_from_residuals :: regress.c:281 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:304:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:304:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&resid[(int)(i - resid_start)]); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:575:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&est_slope); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:576:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&est_slope_sd); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:577:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(°rees_of_freedom); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:578:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&est_intercept); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:580:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&est_intercept_sd); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:582:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&nruns); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:585 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:594:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->offset_time.tv_sec); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:593:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&best_start); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:398 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:407 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:708:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&si->last_sample_ago); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:730:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&si->stratum); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:768:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&si->lo_limit); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:772:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&si->hi_limit); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +fc_stubs.c:13:[eva:alarm] warning: function memcpy: precondition 'separation' got status unknown. +stack: memcpy :: fc_stubs.c:13 <- + qsort :: sources.c:803 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:838:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(sort_list + i)->tag); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:841:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(sort_list + i)->index); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:847:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(sort_list + i)->offset); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:852:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(sort_list + i)->offset); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:853:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(sort_list + i)->index); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:896:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(*(sources + i))->sel_info.lo_limit); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:897:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(*(sources + i))->sel_info.hi_limit); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:898:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(*(sources + i))->sel_info.lo_limit); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:899:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(*(sources + i))->sel_info.hi_limit); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:906:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(*(sources + i))->sel_info.hi_limit); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:928:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(sel_sources + i); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:932:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(*(sources + index_0))->sel_info.leap); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:960 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:970:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(*(sources + index_0))->sel_info.stratum); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:999:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(*(sources + i))->sel_info.root_distance); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:999:[eva:alarm] warning: signed overflow. +assert -2147483648 ≤ (*(sources + i))->sel_info.stratum - min_stratum; +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:999:[eva:alarm] warning: signed overflow. +assert (*(sources + i))->sel_info.stratum - min_stratum ≤ 2147483647; +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:1033 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:724:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->root_delays[j]); +stack: SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:727:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->root_dispersions[j]); +stack: SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:941:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: reference.c:941 <- + get_clock_estimates :: reference.c:1002 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:954:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: reference.c:954 <- + get_clock_estimates :: reference.c:1002 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:954:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: reference.c:954 <- + get_clock_estimates :: reference.c:1002 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:586:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: reference.c:586 <- + is_offset_ok :: reference.c:1005 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:1011:[eva:alarm] warning: signed overflow. assert stratum + 1 ≤ 2147483647; +stack: REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:570:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: reference.c:570 <- + is_step_limit_reached :: reference.c:1042 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:191:[eva:alarm] warning: non-finite double value. assert \is_finite(increment); +stack: UTI_AddDoubleToTimespec :: util.c:634 <- + UTI_AdjustTimespec :: sched.c:602 <- + handle_slew_0 :: local.c:295 <- + invoke_parameter_change_handlers :: local.c:626 <- + LCL_AccumulateFrequencyAndOffset :: reference.c:1052 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:191:[eva:alarm] warning: overflow in conversion from floating-point to integer. +assert -9223372036854775809 < increment; +stack: UTI_AddDoubleToTimespec :: util.c:634 <- + UTI_AdjustTimespec :: sched.c:602 <- + handle_slew_0 :: local.c:295 <- + invoke_parameter_change_handlers :: local.c:626 <- + LCL_AccumulateFrequencyAndOffset :: reference.c:1052 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:192:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&start->tv_sec); +stack: UTI_AddDoubleToTimespec :: util.c:634 <- + UTI_AdjustTimespec :: sourcestats.c:751 <- + SST_SlewSamples :: sources.c:1142 <- + slew_sources :: local.c:295 <- + invoke_parameter_change_handlers :: local.c:626 <- + LCL_AccumulateFrequencyAndOffset :: reference.c:1052 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:193:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&start->tv_nsec); +stack: UTI_AddDoubleToTimespec :: util.c:634 <- + UTI_AdjustTimespec :: sourcestats.c:751 <- + SST_SlewSamples :: sources.c:1142 <- + slew_sources :: local.c:295 <- + invoke_parameter_change_handlers :: local.c:626 <- + LCL_AccumulateFrequencyAndOffset :: reference.c:1052 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:97:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ts->tv_nsec); +stack: UTI_NormaliseTimespec :: util.c:194 <- + UTI_AddDoubleToTimespec :: util.c:634 <- + UTI_AdjustTimespec :: sourcestats.c:751 <- + SST_SlewSamples :: sources.c:1142 <- + slew_sources :: local.c:295 <- + invoke_parameter_change_handlers :: local.c:626 <- + LCL_AccumulateFrequencyAndOffset :: reference.c:1052 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:98:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ts->tv_sec); +stack: UTI_NormaliseTimespec :: util.c:194 <- + UTI_AddDoubleToTimespec :: util.c:634 <- + UTI_AdjustTimespec :: sourcestats.c:751 <- + SST_SlewSamples :: sources.c:1142 <- + slew_sources :: local.c:295 <- + invoke_parameter_change_handlers :: local.c:626 <- + LCL_AccumulateFrequencyAndOffset :: reference.c:1052 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:752:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->offsets[i]); +stack: SST_SlewSamples :: sources.c:1142 <- + slew_sources :: local.c:295 <- + invoke_parameter_change_handlers :: local.c:626 <- + LCL_AccumulateFrequencyAndOffset :: reference.c:1052 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:659:[eva:alarm] warning: signed overflow. assert t - when ≤ 9223372036854775807; +stack: get_tz_leap :: reference.c:781 <- + update_leap_status :: reference.c:1054 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:659:[eva:alarm] warning: signed overflow. assert (long)(t - when) + 10 ≤ 9223372036854775807; +stack: get_tz_leap :: reference.c:781 <- + update_leap_status :: reference.c:1054 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:757:[eva:alarm] warning: signed overflow. +assert +(long)((long)(now / (long)((int)(24 * 3600))) + 1) * (long)((int)(24 * 3600)) +≤ 9223372036854775807; +stack: set_leap_timeout :: reference.c:812 <- + update_leap_status :: reference.c:1054 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:516:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: reference.c:516 <- + maybe_log_offset :: reference.c:1055 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:526:[eva:alarm] warning: function popen: precondition 'valid_command' got status unknown. +stack: popen :: reference.c:526 <- + maybe_log_offset :: reference.c:1055 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:533:[eva:alarm] warning: function fprintf_va_3: precondition valid_read_string(param0) got status unknown. +stack: fprintf_va_3 :: reference.c:533 <- + maybe_log_offset :: reference.c:1055 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:534:[eva:alarm] warning: function fprintf_va_4: precondition valid_read_string(param0) got status unknown. +stack: fprintf_va_4 :: reference.c:534 <- + maybe_log_offset :: reference.c:1055 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:541:[eva:alarm] warning: function fputs: precondition 'valid_string_s' got status unknown. +stack: fputs :: reference.c:541 <- + maybe_log_offset :: reference.c:1055 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:551:[eva:alarm] warning: function pclose: precondition 'open_pipe' got status unknown. +stack: pclose :: reference.c:551 <- + maybe_log_offset :: reference.c:1055 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:835:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: reference.c:835 <- + get_root_dispersion :: reference.c:1063 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:835:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: reference.c:835 <- + get_root_dispersion :: reference.c:853 <- + write_log :: reference.c:1076 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: reference.c:860 <- + write_log :: reference.c:1076 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:476:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: sched.c:476 <- + SCH_RemoveTimeout :: reference.c:409 <- + update_fb_drifts :: reference.c:1090 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:478:[eva:alarm] warning: signed overflow. assert c - fb_drift_min_0 ≤ 2147483647; +stack: schedule_fb_drift :: reference.c:1091 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:478:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(fb_drifts + (int)(c - fb_drift_min_0))->freq); +stack: schedule_fb_drift :: reference.c:1091 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:478:[eva:alarm] warning: out of bounds read. +assert \valid_read(&(fb_drifts + (int)(c - fb_drift_min_0))->freq); +stack: schedule_fb_drift :: reference.c:1091 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:508 <- + take_offline :: ntp_core.c:1846 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:1859 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:835:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: reference.c:835 <- + get_root_dispersion :: reference.c:1179 <- + REF_GetReferenceParams :: reference.c:1250 <- + REF_GetOurStratum :: ntp_core.c:859 <- + get_transmit_delay :: ntp_core.c:1867 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:1883 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:1921 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: addrfilt.c:347 <- + check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1504 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:1324:[eva:alarm] warning: signed overflow. assert -now.tv_sec ≤ 9223372036854775807; +stack: REF_IsLeapSecondClose :: sources.c:344 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:1325:[eva:alarm] warning: signed overflow. assert t + 5 ≤ 9223372036854775807; +stack: REF_IsLeapSecondClose :: sources.c:344 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:1328:[eva:alarm] warning: signed overflow. assert -now_raw.tv_sec ≤ 9223372036854775807; +stack: REF_IsLeapSecondClose :: sources.c:344 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:1329:[eva:alarm] warning: signed overflow. assert t + 5 ≤ 9223372036854775807; +stack: REF_IsLeapSecondClose :: sources.c:344 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:307 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:379:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + l); +stack: find_ordered_entry_with_flags :: regress.c:427 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:382:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + l); +stack: find_ordered_entry_with_flags :: regress.c:427 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:375:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + u); +stack: find_ordered_entry_with_flags :: regress.c:427 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:386:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + u); +stack: find_ordered_entry_with_flags :: regress.c:427 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:354:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + index_0); +stack: find_ordered_entry_with_flags :: regress.c:428 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:360:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(flags + u); +stack: find_ordered_entry_with_flags :: regress.c:428 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:367:[eva:alarm] warning: out of bounds read. assert \valid_read(x + v); +stack: find_ordered_entry_with_flags :: regress.c:428 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:482 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: regress.c:698 <- + RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: regress.c:698 <- + RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:585 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:398 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:407 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:634 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:664:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->stratum); +stack: SST_GetSelectionData :: sources.c:648 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:663:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&first_sample_ago); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:663:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&si->last_sample_ago); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:666:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&si->root_distance); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:667:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&si->lo_limit); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:668:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&si->hi_limit); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:672:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&si->root_distance); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:678:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&si->std_dev); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +fc_stubs.c:13:[eva:alarm] warning: function memcpy: precondition 'separation' got status unknown. +stack: memcpy :: fc_stubs.c:13 <- + qsort :: sources.c:803 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:476:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: sched.c:476 <- + SCH_RemoveTimeout :: reference.c:747 <- + set_leap_timeout :: reference.c:812 <- + update_leap_status :: reference.c:1147 <- + REF_SetUnsynchronised :: sources.c:868 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:835:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: reference.c:835 <- + get_root_dispersion :: reference.c:1156 <- + REF_SetUnsynchronised :: sources.c:868 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:960 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:986:[eva:alarm] warning: accessing uninitialized left-value. +assert +\initialized(&(*(sources + selected_source_index))->sel_info.root_distance); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:986:[eva:alarm] warning: signed overflow. +assert +-2147483648 ≤ +(*(sources + selected_source_index))->sel_info.stratum - min_stratum; +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:986:[eva:alarm] warning: signed overflow. +assert +(*(sources + selected_source_index))->sel_info.stratum - min_stratum ≤ +2147483647; +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:1033 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sources.c:472 <- + source_to_string :: sources.c:1052 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:713 <- + SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:941:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: reference.c:941 <- + get_clock_estimates :: reference.c:1002 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:954:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: reference.c:954 <- + get_clock_estimates :: reference.c:1002 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:954:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: reference.c:954 <- + get_clock_estimates :: reference.c:1002 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: reference.c:860 <- + write_log :: reference.c:1076 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: reference.c:341 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:207:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(src + i); +stack: strcpy :: reference.c:347 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:208:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(src + i); +stack: strcpy :: reference.c:347 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:208:[eva:alarm] warning: out of bounds write. assert \valid(dest + i); +stack: strcpy :: reference.c:347 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:209:[eva:alarm] warning: out of bounds write. assert \valid(dest + i); +stack: strcpy :: reference.c:347 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <- + strcat :: reference.c:348 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:184:[eva:alarm] warning: out of bounds write. assert \valid(dest + (unsigned long)(n + i)); +stack: strcat :: reference.c:348 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:183:[eva:alarm] warning: out of bounds read. assert \valid_read(src + i); +stack: strcat :: reference.c:348 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:186:[eva:alarm] warning: out of bounds write. assert \valid(dest + (unsigned long)(n + i)); +stack: strcat :: reference.c:348 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown. +stack: fopen :: reference.c:350 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown. +stack: stat :: reference.c:370 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:371:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&buf.st_gid); +stack: update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:371:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&buf.st_uid); +stack: update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown. +stack: chown :: reference.c:371 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:372:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&buf.st_mode); +stack: update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:372:[kernel:annot:missing-spec] warning: Neither code nor specification for function chmod, generating default assigns from the prototype +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown. +stack: unlink :: reference.c:381 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:415:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ fb_drift_max_0 - fb_drift_min_0; +stack: update_fb_drifts :: reference.c:1090 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:415:[eva:alarm] warning: signed overflow. assert fb_drift_max_0 - fb_drift_min_0 ≤ 2147483647; +stack: update_fb_drifts :: reference.c:1090 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:415:[eva:alarm] warning: signed overflow. +assert (int)(fb_drift_max_0 - fb_drift_min_0) + 1 ≤ 2147483647; +stack: update_fb_drifts :: reference.c:1090 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:416:[eva:alarm] warning: invalid RHS operand for shift. assert 0 ≤ (int)(i + fb_drift_min_0) < 32; +stack: update_fb_drifts :: reference.c:1090 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:416:[eva:alarm] warning: signed overflow. assert 1 << (int)(i + fb_drift_min_0) ≤ 2147483647; +stack: update_fb_drifts :: reference.c:1090 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:417:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(fb_drifts + i)->secs); +stack: update_fb_drifts :: reference.c:1090 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:417:[eva:alarm] warning: out of bounds read. assert \valid_read(&(fb_drifts + i)->secs); +stack: update_fb_drifts :: reference.c:1090 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:420:[eva:alarm] warning: out of bounds write. assert \valid(&(fb_drifts + i)->freq); +stack: update_fb_drifts :: reference.c:1090 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:420:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(fb_drifts + i)->freq); +stack: update_fb_drifts :: reference.c:1090 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:420:[eva:alarm] warning: out of bounds read. assert \valid_read(&(fb_drifts + i)->secs); +stack: update_fb_drifts :: reference.c:1090 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:422:[eva:alarm] warning: out of bounds write. assert \valid(&(fb_drifts + i)->secs); +stack: update_fb_drifts :: reference.c:1090 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:416:[eva:alarm] warning: signed overflow. assert i + fb_drift_min_0 ≤ 2147483647; +stack: update_fb_drifts :: reference.c:1090 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:420:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(fb_drifts + i)->secs); +stack: update_fb_drifts :: reference.c:1090 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:422:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(fb_drifts + i)->secs); +stack: update_fb_drifts :: reference.c:1090 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:427:[eva:alarm] warning: function exp: precondition 'finite_domain' got status unknown. +stack: exp :: reference.c:427 <- + update_fb_drifts :: reference.c:1090 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:427:[eva:alarm] warning: out of bounds write. assert \valid(&(fb_drifts + i)->freq); +stack: update_fb_drifts :: reference.c:1090 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:427:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(fb_drifts + i)->freq); +stack: update_fb_drifts :: reference.c:1090 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:508 <- + take_offline :: ntp_core.c:1846 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:1859 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:1883 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:1921 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: addrfilt.c:347 <- + check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:835:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: reference.c:835 <- + get_root_dispersion :: reference.c:1179 <- + REF_GetReferenceParams :: ntp_core.c:982 <- + transmit_packet :: ntp_core.c:2196 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:680:[eva:alarm] warning: non-finite double value. assert \is_finite(x); +stack: UTI_DoubleToNtp32 :: ntp_core.c:1024 <- + transmit_packet :: ntp_core.c:2196 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1504 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:307 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:367:[eva:alarm] warning: out of bounds read. assert \valid_read(x + u); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:482 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: regress.c:698 <- + RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: regress.c:698 <- + RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:183:[eva:alarm] warning: out of bounds read. assert \valid_read(resid + (int)(i - 1)); +stack: n_runs_from_residuals :: regress.c:288 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:184:[eva:alarm] warning: out of bounds read. assert \valid_read(resid + (int)(i - 1)); +stack: n_runs_from_residuals :: regress.c:288 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:183:[eva:alarm] warning: out of bounds read. assert \valid_read(resid + i); +stack: n_runs_from_residuals :: regress.c:288 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:184:[eva:alarm] warning: out of bounds read. assert \valid_read(resid + i); +stack: n_runs_from_residuals :: regress.c:288 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:304:[eva:alarm] warning: accessing out of bounds index. assert 0 ≤ (int)(i - resid_start); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:123:[eva:alarm] warning: accessing out of bounds index. assert 0 ≤ (int)(dof - 1); +stack: RGR_GetTCoef :: sourcestats.c:577 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:585 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:398 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:407 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:634 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:960 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:1033 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sources.c:472 <- + source_to_string :: sources.c:1052 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:713 <- + SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: reference.c:341 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <- + strcat :: reference.c:348 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown. +stack: fopen :: reference.c:350 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown. +stack: stat :: reference.c:370 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown. +stack: chown :: reference.c:371 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown. +stack: unlink :: reference.c:381 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:427:[eva:alarm] warning: function exp: precondition 'finite_domain' got status unknown. +stack: exp :: reference.c:427 <- + update_fb_drifts :: reference.c:1090 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:508 <- + take_offline :: ntp_core.c:1846 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:1859 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:1883 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:1921 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: addrfilt.c:347 <- + check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1504 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:307 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:363:[eva:alarm] warning: out of bounds read. assert \valid_read(flags + v); +stack: find_ordered_entry_with_flags :: regress.c:428 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:374:[eva:alarm] warning: out of bounds read. assert \valid_read(x + pivind); +stack: find_ordered_entry_with_flags :: regress.c:428 <- + find_median :: regress.c:442 <- + RGR_FindMedian :: sourcestats.c:546 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:482 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: regress.c:698 <- + RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: regress.c:698 <- + RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:242 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:254:[eva:alarm] warning: out of bounds read. assert \valid_read(x + i); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:262:[eva:alarm] warning: out of bounds read. assert \valid_read(x + i); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:263:[eva:alarm] warning: out of bounds read. assert \valid_read(y + i); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:264:[eva:alarm] warning: out of bounds read. assert \valid_read(y + i); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:283:[eva:alarm] warning: accessing out of bounds index. assert 0 ≤ (int)(n - resid_start); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:272:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ (int)(n - start) * 2; +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:272:[eva:alarm] warning: signed overflow. assert n - (int)((int)(n - start) * 2) ≤ 2147483647; +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:277:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ i - resid_start; +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:585 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:286:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ inst->n_samples + inst->runs_samples; +stack: prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:344:[eva:alarm] warning: signed overflow. +assert +(int)((int)(inst->last_sample + (int)((int)(2 * 64) * 2)) - inst->n_samples) ++ i ≤ 2147483647; +stack: get_runsbuf_index :: sourcestats.c:418 <- + find_min_delay_sample :: sourcestats.c:288 <- + prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:344:[eva:alarm] warning: signed overflow. +assert +(int)((int)((int)(inst->last_sample + (int)((int)(2 * 64) * 2)) - + inst->n_samples) + + i) ++ 1 ≤ 2147483647; +stack: get_runsbuf_index :: sourcestats.c:418 <- + find_min_delay_sample :: sourcestats.c:288 <- + prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:397:[eva:alarm] warning: out of bounds read. assert \valid_read(times_back + i); +stack: find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:398 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:407 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:634 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:960 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:1033 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sources.c:472 <- + source_to_string :: sources.c:1052 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:713 <- + SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: reference.c:341 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <- + strcat :: reference.c:348 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown. +stack: fopen :: reference.c:350 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown. +stack: stat :: reference.c:370 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown. +stack: chown :: reference.c:371 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown. +stack: unlink :: reference.c:381 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:508 <- + take_offline :: ntp_core.c:1846 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:1859 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:1883 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:1921 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: addrfilt.c:347 <- + check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:508 <- + take_offline :: ntp_core.c:1156 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:1180 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1037:[eva:alarm] warning: out of bounds read. assert \valid_read(remote_ntp_rx); +stack: transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:2319 <- + NCR_SetConnectivity :: ntp_core.c:1256 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:377 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1420:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&last_sample_ago); +stack: check_delay_ratio :: ntp_core.c:1712 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1420:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&min_delay); +stack: check_delay_ratio :: ntp_core.c:1712 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1420:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&skew); +stack: check_delay_ratio :: ntp_core.c:1712 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1447:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&last_sample_ago); +stack: check_delay_dev_ratio :: ntp_core.c:1719 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1447:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&skew); +stack: check_delay_dev_ratio :: ntp_core.c:1719 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1447:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&std_dev); +stack: check_delay_dev_ratio :: ntp_core.c:1719 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1449:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&min_delay); +stack: check_delay_dev_ratio :: ntp_core.c:1719 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1454:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&predicted_offset); +stack: check_delay_dev_ratio :: ntp_core.c:1719 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1459 <- + check_delay_dev_ratio :: ntp_core.c:1719 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:307 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:476:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ inst->runs_samples + inst->n_samples; +stack: correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: regress.c:698 <- + RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: regress.c:698 <- + RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:242 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:243:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ n * 2; +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:243 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:585 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:281:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ inst->n_samples - new_oldest; +stack: prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:418:[eva:alarm] warning: signed overflow. assert -inst->runs_samples ≤ 2147483647; +stack: find_min_delay_sample :: sourcestats.c:288 <- + prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:344:[eva:alarm] warning: signed overflow. +assert +(int)(inst->last_sample + (int)((int)(2 * 64) * 2)) - inst->n_samples ≤ +2147483647; +stack: get_runsbuf_index :: sourcestats.c:418 <- + find_min_delay_sample :: sourcestats.c:288 <- + prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:634 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:960 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:1033 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sources.c:472 <- + source_to_string :: sources.c:1052 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:713 <- + SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: reference.c:341 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <- + strcat :: reference.c:348 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown. +stack: fopen :: reference.c:350 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown. +stack: stat :: reference.c:370 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown. +stack: chown :: reference.c:371 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown. +stack: unlink :: reference.c:381 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:1921 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1459 <- + check_delay_dev_ratio :: ntp_core.c:1719 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:307 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: regress.c:698 <- + RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: regress.c:698 <- + RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:242 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:243 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:585 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:634 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:960 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:1033 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sources.c:472 <- + source_to_string :: sources.c:1052 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:713 <- + SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: reference.c:341 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <- + strcat :: reference.c:348 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown. +stack: fopen :: reference.c:350 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown. +stack: stat :: reference.c:370 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown. +stack: chown :: reference.c:371 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown. +stack: unlink :: reference.c:381 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:1921 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1459 <- + check_delay_dev_ratio :: ntp_core.c:1719 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:307 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:242 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:243 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:634 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sources.c:472 <- + source_to_string :: sources.c:1052 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:713 <- + SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: reference.c:341 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <- + strcat :: reference.c:348 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown. +stack: fopen :: reference.c:350 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown. +stack: stat :: reference.c:370 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown. +stack: chown :: reference.c:371 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown. +stack: unlink :: reference.c:381 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1459 <- + check_delay_dev_ratio :: ntp_core.c:1719 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:242 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:243 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1459 <- + check_delay_dev_ratio :: ntp_core.c:1719 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:242 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:243 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1459 <- + check_delay_dev_ratio :: ntp_core.c:1719 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:243 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:508 <- + take_offline :: ntp_core.c:642 <- + NCR_DestroyInstance :: test/unit/ntp_core.c:408 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:645:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:645 <- + NCR_DestroyInstance :: test/unit/ntp_core.c:408 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:648:[kernel:annot:missing-spec] warning: Neither code nor specification for function SPF_DestroyInstance, generating default assigns from the prototype +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:586 <- + NCR_GetInstance :: test/unit/ntp_core.c:410 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:508 <- + take_offline :: ntp_core.c:1156 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:421 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:1180 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:421 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:2319 <- + NCR_SetConnectivity :: ntp_core.c:1256 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:421 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:508 <- + take_offline :: ntp_core.c:2351 <- + NCR_SetConnectivity :: ntp_core.c:1256 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:421 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: addrfilt.c:347 <- + check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: test/unit/ntp_core.c:119 <- + process_request :: test/unit/ntp_core.c:422 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1504 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:482 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:398 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:407 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:508 <- + take_offline :: ntp_core.c:1846 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:1859 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:1871 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:1883 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:1921 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: addrfilt.c:347 <- + check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +test/unit/ntp_core.c:424:[eva:alarm] warning: invalid RHS operand for shift. assert 0 ≤ inst1->local_poll < 32; +stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:508 <- + take_offline :: ntp_core.c:1156 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:421 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:1180 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:421 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +md5.c:157:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. +stack: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: ntp_core.c:1090 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:421 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:307 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:484 <- + close_client_socket :: ntp_core.c:508 <- + take_offline :: ntp_core.c:642 <- + NCR_DestroyInstance :: test/unit/ntp_core.c:427 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:645:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:645 <- + NCR_DestroyInstance :: test/unit/ntp_core.c:427 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:586 <- + NCR_GetInstance :: test/unit/ntp_core.c:429 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:586 <- + NCR_GetInstance :: test/unit/ntp_core.c:431 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +md5.c:157:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. +stack: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: ntp_core.c:1090 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:444 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:2319 <- + NCR_SetConnectivity :: ntp_core.c:1256 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:444 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1504 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:482 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:398 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:407 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:1871 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:1883 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:1921 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: addrfilt.c:347 <- + check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1504 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:482 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:398 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:407 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:1871 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:1883 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:1921 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: addrfilt.c:347 <- + check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1504 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:307 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:482 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:398 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:407 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:1871 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:1883 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:1921 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: addrfilt.c:347 <- + check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +test/unit/ntp_core.c:464:[eva:alarm] warning: invalid RHS operand for shift. +assert 0 ≤ (int)(source.params.minpoll - 1) < 32; +stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main +test/unit/ntp_core.c:464:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ source.params.minpoll - 1; +stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main +test/unit/ntp_core.c:464:[eva:alarm] warning: signed overflow. assert 1 << (int)(source.params.minpoll - 1) ≤ 2147483647; +stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main +md5.c:157:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. +stack: MD5Update :: hash_intmd5.c:56 <- + HSH_Hash :: keys.c:364 <- + generate_ntp_auth :: keys.c:395 <- + KEY_GenerateAuth :: ntp_core.c:1090 <- + transmit_packet :: ntp_core.c:1228 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:466 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:2319 <- + NCR_SetConnectivity :: ntp_core.c:1256 <- + transmit_timeout :: test/unit/ntp_core.c:87 <- + send_request :: test/unit/ntp_core.c:466 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +test/unit/ntp_core.c:468:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: test/unit/ntp_core.c:468 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1504 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:307 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:482 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:398 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:407 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:1871 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:1883 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:1921 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: addrfilt.c:347 <- + check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1504 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:307 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:482 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:585 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:398 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:407 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:960 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:1033 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sources.c:472 <- + source_to_string :: sources.c:1052 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:713 <- + SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: reference.c:341 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <- + strcat :: reference.c:348 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown. +stack: fopen :: reference.c:350 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown. +stack: stat :: reference.c:370 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown. +stack: chown :: reference.c:371 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown. +stack: unlink :: reference.c:381 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:1883 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:1921 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: addrfilt.c:347 <- + check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1504 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:307 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:482 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:585 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:398 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:407 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:634 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +fc_stubs.c:13:[eva:alarm] warning: function memcpy: precondition 'separation' got status unknown. +stack: memcpy :: fc_stubs.c:13 <- + qsort :: sources.c:803 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:934:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(*(sources + index_0))->sel_info.leap); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:949:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(sel_sources + i); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:955:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(sel_sources + i); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:960 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:973:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(sel_sources + i); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:974:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(*(sources + index_0))->sel_info.stratum); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:986:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(*(sources + selected_source_index))->sel_info.stratum); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:999:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(*(sources + i))->sel_info.stratum); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:1033 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sources.c:472 <- + source_to_string :: sources.c:1052 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:1071:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(sel_sources + i); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:713 <- + SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:516:[eva:alarm] warning: accessing uninitialized left-value. +assert +\initialized(&(*(sources + selected_source_index))->sel_info.root_distance); +stack: combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:713 <- + SST_GetTrackingData :: sources.c:523 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:533:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(*(sources + index_0))->sel_info.root_distance); +stack: combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:534:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sources.c:534 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:554:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(*(sources + index_0))->sel_info.root_distance); +stack: combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:522:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(sel_sources + i); +stack: combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:574:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:574 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:576:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sources.c:576 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:576:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sources.c:576 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:578:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sources.c:578 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:578:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sources.c:578 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:579:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sources.c:579 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:579:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sources.c:579 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:1094:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&(*(sources + selected_source_index))->sel_info.stratum); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:941:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: reference.c:941 <- + get_clock_estimates :: reference.c:1002 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:954:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: reference.c:954 <- + get_clock_estimates :: reference.c:1002 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:954:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: reference.c:954 <- + get_clock_estimates :: reference.c:1002 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: reference.c:341 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <- + strcat :: reference.c:348 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown. +stack: fopen :: reference.c:350 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown. +stack: stat :: reference.c:370 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown. +stack: chown :: reference.c:371 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown. +stack: unlink :: reference.c:381 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown. +stack: log :: ntp_core.c:784 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:1871 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: ntp_core.c:1883 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:1921 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: addrfilt.c:347 <- + check_ip_in_node :: addrfilt.c:365 <- + ADF_IsAllowed :: ntp_core.c:2105 <- + NCR_ProcessRxUnknown :: ntp_core.c:2072 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +test/unit/ntp_core.c:485:[eva:alarm] warning: signed overflow. assert 1 << (int)(source.params.minpoll - 1) ≤ 2147483647; +stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main +test/unit/ntp_core.c:446:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: test/unit/ntp_core.c:446 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:307 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:585 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:634 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +fc_stubs.c:13:[eva:alarm] warning: function memcpy: precondition 'separation' got status unknown. +stack: memcpy :: fc_stubs.c:13 <- + qsort :: sources.c:803 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:960 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:1033 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sources.c:472 <- + source_to_string :: sources.c:1052 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:713 <- + SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:713 <- + SST_GetTrackingData :: sources.c:523 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:534:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sources.c:534 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:574:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:574 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:576:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sources.c:576 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:576:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sources.c:576 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:578:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sources.c:578 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:578:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sources.c:578 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:579:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sources.c:579 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:579:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sources.c:579 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: reference.c:341 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <- + strcat :: reference.c:348 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown. +stack: fopen :: reference.c:350 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown. +stack: stat :: reference.c:370 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown. +stack: chown :: reference.c:371 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown. +stack: unlink :: reference.c:381 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:307 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:585 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:634 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:960 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:1033 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sources.c:472 <- + source_to_string :: sources.c:1052 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:713 <- + SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:713 <- + SST_GetTrackingData :: sources.c:523 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:534:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sources.c:534 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:574:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:574 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:576:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sources.c:576 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:576:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sources.c:576 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:578:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sources.c:578 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:578:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sources.c:578 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:579:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sources.c:579 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:579:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sources.c:579 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: reference.c:341 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <- + strcat :: reference.c:348 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown. +stack: fopen :: reference.c:350 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown. +stack: stat :: reference.c:370 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown. +stack: chown :: reference.c:371 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown. +stack: unlink :: reference.c:381 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:585 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:634 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:960 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:1033 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sources.c:472 <- + source_to_string :: sources.c:1052 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:713 <- + SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:713 <- + SST_GetTrackingData :: sources.c:523 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:534:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sources.c:534 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:574:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:574 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:576:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sources.c:576 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:576:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sources.c:576 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:578:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sources.c:578 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:578:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sources.c:578 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:579:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sources.c:579 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:579:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sources.c:579 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: reference.c:341 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <- + strcat :: reference.c:348 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown. +stack: fopen :: reference.c:350 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown. +stack: stat :: reference.c:370 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown. +stack: chown :: reference.c:371 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown. +stack: unlink :: reference.c:381 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:242 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:242 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:585 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:634 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:960 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:1033 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sources.c:472 <- + source_to_string :: sources.c:1052 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:713 <- + SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:713 <- + SST_GetTrackingData :: sources.c:523 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:534:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sources.c:534 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:574:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:574 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:576:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sources.c:576 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:576:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sources.c:576 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:578:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sources.c:578 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:578:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sources.c:578 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:579:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sources.c:579 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:579:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sources.c:579 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: reference.c:341 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <- + strcat :: reference.c:348 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown. +stack: fopen :: reference.c:350 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown. +stack: stat :: reference.c:370 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown. +stack: chown :: reference.c:371 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown. +stack: unlink :: reference.c:381 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1459 <- + check_delay_dev_ratio :: ntp_core.c:1719 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:242 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:243 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:634 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:713 <- + SST_GetTrackingData :: sources.c:523 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:534:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sources.c:534 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:574:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:574 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:576:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sources.c:576 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:576:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sources.c:576 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:578:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sources.c:578 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:578:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sources.c:578 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:579:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sources.c:579 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:579:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sources.c:579 <- + combine_sources :: sources.c:1091 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:1871 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1459 <- + check_delay_dev_ratio :: ntp_core.c:1719 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:242 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:243 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1459 <- + check_delay_dev_ratio :: ntp_core.c:1719 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:242 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:243 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1459 <- + check_delay_dev_ratio :: ntp_core.c:1719 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:242 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:243 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1459 <- + check_delay_dev_ratio :: ntp_core.c:1719 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:243 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: ntp_core.c:1459 <- + check_delay_dev_ratio :: ntp_core.c:1719 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:243 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:634:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(sources + i); +stack: SRC_SelectSource :: sources.c:1110 <- + SRC_ReselectSource :: sources.c:284 <- + SRC_DestroyInstance :: ntp_core.c:653 <- + NCR_DestroyInstance :: test/unit/ntp_core.c:488 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:634 <- + SRC_SelectSource :: sources.c:1110 <- + SRC_ReselectSource :: sources.c:284 <- + SRC_DestroyInstance :: ntp_core.c:653 <- + NCR_DestroyInstance :: test/unit/ntp_core.c:488 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +fc_stubs.c:13:[eva:alarm] warning: function memcpy: precondition 'separation' got status unknown. +stack: memcpy :: fc_stubs.c:13 <- + qsort :: sources.c:803 <- + SRC_SelectSource :: sources.c:1110 <- + SRC_ReselectSource :: sources.c:284 <- + SRC_DestroyInstance :: ntp_core.c:653 <- + NCR_DestroyInstance :: test/unit/ntp_core.c:488 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:960 <- + SRC_SelectSource :: sources.c:1110 <- + SRC_ReselectSource :: sources.c:284 <- + SRC_DestroyInstance :: ntp_core.c:653 <- + NCR_DestroyInstance :: test/unit/ntp_core.c:488 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:1033 <- + SRC_SelectSource :: sources.c:1110 <- + SRC_ReselectSource :: sources.c:284 <- + SRC_DestroyInstance :: ntp_core.c:653 <- + NCR_DestroyInstance :: test/unit/ntp_core.c:488 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sources.c:472 <- + source_to_string :: sources.c:1052 <- + SRC_SelectSource :: sources.c:1110 <- + SRC_ReselectSource :: sources.c:284 <- + SRC_DestroyInstance :: ntp_core.c:653 <- + NCR_DestroyInstance :: test/unit/ntp_core.c:488 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:713 <- + SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: sources.c:1110 <- + SRC_ReselectSource :: sources.c:284 <- + SRC_DestroyInstance :: ntp_core.c:653 <- + NCR_DestroyInstance :: test/unit/ntp_core.c:488 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: reference.c:341 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: sources.c:1110 <- + SRC_ReselectSource :: sources.c:284 <- + SRC_DestroyInstance :: ntp_core.c:653 <- + NCR_DestroyInstance :: test/unit/ntp_core.c:488 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <- + strcat :: reference.c:348 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: sources.c:1110 <- + SRC_ReselectSource :: sources.c:284 <- + SRC_DestroyInstance :: ntp_core.c:653 <- + NCR_DestroyInstance :: test/unit/ntp_core.c:488 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown. +stack: fopen :: reference.c:350 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: sources.c:1110 <- + SRC_ReselectSource :: sources.c:284 <- + SRC_DestroyInstance :: ntp_core.c:653 <- + NCR_DestroyInstance :: test/unit/ntp_core.c:488 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown. +stack: stat :: reference.c:370 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: sources.c:1110 <- + SRC_ReselectSource :: sources.c:284 <- + SRC_DestroyInstance :: ntp_core.c:653 <- + NCR_DestroyInstance :: test/unit/ntp_core.c:488 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown. +stack: chown :: reference.c:371 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: sources.c:1110 <- + SRC_ReselectSource :: sources.c:284 <- + SRC_DestroyInstance :: ntp_core.c:653 <- + NCR_DestroyInstance :: test/unit/ntp_core.c:488 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: sources.c:1110 <- + SRC_ReselectSource :: sources.c:284 <- + SRC_DestroyInstance :: ntp_core.c:653 <- + NCR_DestroyInstance :: test/unit/ntp_core.c:488 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: sources.c:1110 <- + SRC_ReselectSource :: sources.c:284 <- + SRC_DestroyInstance :: ntp_core.c:653 <- + NCR_DestroyInstance :: test/unit/ntp_core.c:488 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown. +stack: unlink :: reference.c:381 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: sources.c:1110 <- + SRC_ReselectSource :: sources.c:284 <- + SRC_DestroyInstance :: ntp_core.c:653 <- + NCR_DestroyInstance :: test/unit/ntp_core.c:488 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: ntp_core.c:586 <- + NCR_GetInstance :: test/unit/ntp_core.c:354 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:841:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(sources + (sort_list + i)->index); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:853:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(sources + (sort_list + i)->index); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:929:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(sources + index_0); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:932:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(sources + index_0); +stack: SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_SST_CreateInstance_l215' as weak +stack: malloc :: memory.c:38 <- + Malloc :: sourcestats.c:215 <- + SST_CreateInstance :: sources.c:230 <- + SRC_CreateNewInstance :: ntp_core.c:601 <- + NCR_GetInstance :: test/unit/ntp_core.c:354 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:626:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->estimated_frequency); +stack: SST_GetFrequencyRange :: ntp_core.c:1678 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:627:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->skew); +stack: SST_GetFrequencyRange :: ntp_core.c:1678 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:829:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: SST_GetDelayTestData :: ntp_core.c:1416 <- + check_delay_ratio :: ntp_core.c:1712 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:833:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->estimated_offset); +stack: SST_GetDelayTestData :: ntp_core.c:1416 <- + check_delay_ratio :: ntp_core.c:1712 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:833:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->estimated_frequency); +stack: SST_GetDelayTestData :: ntp_core.c:1416 <- + check_delay_ratio :: ntp_core.c:1712 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:813:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->fixed_min_delay); +stack: SST_MinRoundTripDelay :: sourcestats.c:835 <- + SST_GetDelayTestData :: ntp_core.c:1416 <- + check_delay_ratio :: ntp_core.c:1712 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:814:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->fixed_min_delay); +stack: SST_MinRoundTripDelay :: sourcestats.c:835 <- + SST_GetDelayTestData :: ntp_core.c:1416 <- + check_delay_ratio :: ntp_core.c:1712 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:816:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: SST_MinRoundTripDelay :: sourcestats.c:835 <- + SST_GetDelayTestData :: ntp_core.c:1416 <- + check_delay_ratio :: ntp_core.c:1712 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:819:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->min_delay_sample); +stack: SST_MinRoundTripDelay :: sourcestats.c:835 <- + SST_GetDelayTestData :: ntp_core.c:1416 <- + check_delay_ratio :: ntp_core.c:1712 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:836:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->skew); +stack: SST_GetDelayTestData :: ntp_core.c:1416 <- + check_delay_ratio :: ntp_core.c:1712 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:837:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->std_dev); +stack: SST_GetDelayTestData :: ntp_core.c:1416 <- + check_delay_ratio :: ntp_core.c:1712 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:792:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: SST_PredictOffset :: ntp_core.c:1502 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:796:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: SST_PredictOffset :: ntp_core.c:1502 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:797:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->last_sample); +stack: SST_PredictOffset :: ntp_core.c:1502 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:803:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->estimated_offset); +stack: SST_PredictOffset :: ntp_core.c:1502 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:803:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->estimated_frequency); +stack: SST_PredictOffset :: ntp_core.c:1502 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:299:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:300:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->max_samples); +stack: SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:281:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:282:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples); +stack: prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:418:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples); +stack: find_min_delay_sample :: sourcestats.c:288 <- + prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:344:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->last_sample); +stack: get_runsbuf_index :: sourcestats.c:418 <- + find_min_delay_sample :: sourcestats.c:288 <- + prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:344:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: get_runsbuf_index :: sourcestats.c:418 <- + find_min_delay_sample :: sourcestats.c:288 <- + prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:420:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples); +stack: find_min_delay_sample :: sourcestats.c:288 <- + prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:420:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: find_min_delay_sample :: sourcestats.c:288 <- + prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:305:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:306:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->last_sample); +stack: SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:307:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->ip_addr); +stack: SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:307:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&inst->ip_addr); +stack: SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:312:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->last_sample); +stack: SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:328:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->fixed_min_delay); +stack: SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:331:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:331:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->min_delay_sample); +stack: SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:527:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:369:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->last_sample); +stack: convert_to_intervals :: sourcestats.c:527 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:370:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples); +stack: convert_to_intervals :: sourcestats.c:527 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:370:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: convert_to_intervals :: sourcestats.c:527 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:529:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:530:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:354:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->last_sample); +stack: get_buf_index :: sourcestats.c:535 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:354:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: get_buf_index :: sourcestats.c:535 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:472:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->fixed_asymmetry); +stack: correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:476:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples); +stack: correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:476:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:479:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples); +stack: correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:482:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->fixed_asymmetry); +stack: correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:483:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->fixed_asymmetry); +stack: correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:444:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(asymmetry_run); +stack: estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:492:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->asymmetry); +stack: correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:562:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->min_samples); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:562:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:572:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->skew); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:573:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->estimated_frequency); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:579:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->last_sample); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:595:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->ip_addr); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:595:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&inst->ip_addr); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:595 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:593:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->asymmetry); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:603:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:420:[eva:alarm] warning: signed overflow. assert -inst->runs_samples ≤ 2147483647; +stack: find_min_delay_sample :: sourcestats.c:288 <- + prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:420:[eva:alarm] warning: signed overflow. assert (int)(-inst->runs_samples) + 1 ≤ 2147483647; +stack: find_min_delay_sample :: sourcestats.c:288 <- + prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:388:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:394:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:354:[eva:alarm] warning: signed overflow. +assert +(int)(inst->last_sample + (int)(64 * 2)) - inst->n_samples ≤ 2147483647; +stack: get_buf_index :: sourcestats.c:395 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:354:[eva:alarm] warning: signed overflow. +assert +(int)((int)((int)(inst->last_sample + (int)(64 * 2)) - inst->n_samples) + i) ++ 1 ≤ 2147483647; +stack: get_buf_index :: sourcestats.c:395 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:400:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->skew); +stack: find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:354:[eva:alarm] warning: signed overflow. +assert +(int)((int)(inst->last_sample + (int)(64 * 2)) - inst->n_samples) + i ≤ +2147483647; +stack: get_buf_index :: sourcestats.c:395 <- + find_best_sample_index :: sourcestats.c:612 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:656:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: SST_GetSelectionData :: sources.c:648 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:661:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->best_single_sample); +stack: SST_GetSelectionData :: sources.c:648 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:662:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->best_single_sample); +stack: SST_GetSelectionData :: sources.c:648 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:665:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->leap); +stack: SST_GetSelectionData :: sources.c:648 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:666:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->std_dev); +stack: SST_GetSelectionData :: sources.c:648 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:669:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->estimated_frequency); +stack: SST_GetSelectionData :: sources.c:648 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:670:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->skew); +stack: SST_GetSelectionData :: sources.c:648 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:692:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: SST_GetSelectionData :: sources.c:648 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:692:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ inst->n_samples - 1; +stack: SST_GetSelectionData :: sources.c:648 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:695:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->regression_ok); +stack: SST_GetSelectionData :: sources.c:648 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:744:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: SST_SlewSamples :: sources.c:1142 <- + slew_sources :: local.c:295 <- + invoke_parameter_change_handlers :: local.c:475 <- + LCL_SetAbsoluteFrequency :: reference.c:478 <- + schedule_fb_drift :: reference.c:1144 <- + REF_SetUnsynchronised :: sources.c:868 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:747:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples); +stack: SST_SlewSamples :: sources.c:1142 <- + slew_sources :: local.c:295 <- + invoke_parameter_change_handlers :: local.c:475 <- + LCL_SetAbsoluteFrequency :: reference.c:478 <- + schedule_fb_drift :: reference.c:1144 <- + REF_SetUnsynchronised :: sources.c:868 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:747:[eva:alarm] warning: signed overflow. assert -inst->runs_samples ≤ 2147483647; +stack: SST_SlewSamples :: sources.c:1142 <- + slew_sources :: local.c:295 <- + invoke_parameter_change_handlers :: local.c:475 <- + LCL_SetAbsoluteFrequency :: reference.c:478 <- + schedule_fb_drift :: reference.c:1144 <- + REF_SetUnsynchronised :: sources.c:868 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:747:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: SST_SlewSamples :: sources.c:1142 <- + slew_sources :: local.c:295 <- + invoke_parameter_change_handlers :: local.c:475 <- + LCL_SetAbsoluteFrequency :: reference.c:478 <- + schedule_fb_drift :: reference.c:1144 <- + REF_SetUnsynchronised :: sources.c:868 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:757:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->estimated_offset); +stack: SST_SlewSamples :: sources.c:1142 <- + slew_sources :: local.c:295 <- + invoke_parameter_change_handlers :: local.c:475 <- + LCL_SetAbsoluteFrequency :: reference.c:478 <- + schedule_fb_drift :: reference.c:1144 <- + REF_SetUnsynchronised :: sources.c:868 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:758:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->estimated_frequency); +stack: SST_SlewSamples :: sources.c:1142 <- + slew_sources :: local.c:295 <- + invoke_parameter_change_handlers :: local.c:475 <- + LCL_SetAbsoluteFrequency :: reference.c:478 <- + schedule_fb_drift :: reference.c:1144 <- + REF_SetUnsynchronised :: sources.c:868 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:715:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->best_single_sample); +stack: SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:716:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->best_single_sample); +stack: SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:719:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->estimated_offset); +stack: SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:720:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->estimated_offset_sd); +stack: SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:721:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->estimated_frequency); +stack: SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:722:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&inst->estimated_frequency_sd); +stack: SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:723:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->skew); +stack: SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:941:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: reference.c:941 <- + get_clock_estimates :: reference.c:1002 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:954:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: reference.c:954 <- + get_clock_estimates :: reference.c:1002 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:954:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: reference.c:954 <- + get_clock_estimates :: reference.c:1002 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:986:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples); +stack: SST_Samples :: ntp_core.c:786 <- + get_poll_adj :: ntp_core.c:1509 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:1037:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->asymmetry); +stack: SST_GetJitterAsymmetry :: ntp_core.c:1905 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:381 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:370:[eva:alarm] warning: signed overflow. assert -inst->runs_samples ≤ 2147483647; +stack: convert_to_intervals :: sourcestats.c:527 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:530:[eva:alarm] warning: signed overflow. assert -inst->runs_samples ≤ 2147483647; +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:531:[eva:alarm] warning: accessing out of bounds index. +assert (int)(i + inst->runs_samples) < (int)(64 * 2); +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:531:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ i + inst->runs_samples; +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:479:[eva:alarm] warning: signed overflow. assert i - inst->runs_samples ≤ 2147483647; +stack: correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:479:[eva:alarm] warning: accessing out of bounds index. assert i < (int)(64 * 2); +stack: correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:273:[eva:alarm] warning: signed overflow. assert -m ≤ 2147483647; +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:288:[eva:alarm] warning: signed overflow. assert start - resid_start ≤ 2147483647; +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:595 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:603:[eva:alarm] warning: signed overflow. assert inst->runs_samples + best_start ≤ 2147483647; +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:282:[eva:alarm] warning: signed overflow. assert inst->runs_samples + new_oldest ≤ 2147483647; +stack: prune_register :: sourcestats.c:604 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:531:[eva:alarm] warning: signed overflow. assert i + inst->runs_samples ≤ 2147483647; +stack: SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:476:[eva:alarm] warning: signed overflow. assert inst->runs_samples + inst->n_samples ≤ 2147483647; +stack: correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:595 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:595 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:393 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:595 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:399 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:595 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:405 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:277:[eva:alarm] warning: accessing out of bounds index. assert (int)(i - resid_start) < (int)(64 * 2); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:304:[eva:alarm] warning: accessing out of bounds index. assert (int)(i - resid_start) < (int)(64 * 2); +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:386 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:283:[eva:alarm] warning: accessing out of bounds index. assert (int)(n - resid_start) < 130; +stack: RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:391 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_SST_CreateInstance_l215_0' as weak +stack: malloc :: memory.c:38 <- + Malloc :: sourcestats.c:215 <- + SST_CreateInstance :: sources.c:230 <- + SRC_CreateNewInstance :: ntp_core.c:601 <- + NCR_GetInstance :: test/unit/ntp_core.c:410 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: regress.c:698 <- + RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: regress.c:698 <- + RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:242 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:243 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: sourcestats.c:562 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: sourcestats.c:581 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: sourcestats.c:585 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:595 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:960 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:1033 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sources.c:472 <- + source_to_string :: sources.c:1052 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:713 <- + SST_GetTrackingData :: sources.c:1086 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: reference.c:341 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <- + strcat :: reference.c:348 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown. +stack: fopen :: reference.c:350 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown. +stack: stat :: reference.c:370 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown. +stack: chown :: reference.c:371 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown. +stack: unlink :: reference.c:381 <- + update_drift_file :: reference.c:1083 <- + REF_SetReference :: sources.c:1094 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sources.c:634 <- + SRC_SelectSource :: ntp_core.c:1507 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:423 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_SST_CreateInstance_l215_1' as weak +stack: malloc :: memory.c:38 <- + Malloc :: sourcestats.c:215 <- + SST_CreateInstance :: sources.c:230 <- + SRC_CreateNewInstance :: ntp_core.c:601 <- + NCR_GetInstance :: test/unit/ntp_core.c:429 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_SST_CreateInstance_l215_2' as weak +stack: malloc :: memory.c:38 <- + Malloc :: sourcestats.c:215 <- + SST_CreateInstance :: sources.c:230 <- + SRC_CreateNewInstance :: ntp_core.c:601 <- + NCR_GetInstance :: test/unit/ntp_core.c:431 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: regress.c:698 <- + RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: regress.c:698 <- + RGR_MultipleRegress :: sourcestats.c:443 <- + estimate_asymmetry :: sourcestats.c:485 <- + correct_asymmetry :: sourcestats.c:560 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:595 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:452 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:595 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:459 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:595 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:461 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:595 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:473 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:595 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:480 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sourcestats.c:280 <- + prune_register :: sourcestats.c:301 <- + SST_AccumulateSample :: sources.c:349 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨ + \valid(s + + (0 .. format_length(format) - 1)) got status unknown. +stack: snprintf_va_10 :: util.c:310 <- + UTI_IPToString :: sourcestats.c:595 <- + SST_DoNewRegression :: sources.c:350 <- + SRC_AccumulateSample :: ntp_core.c:1506 <- + process_sample :: ntp_core.c:1834 <- + receive_packet :: ntp_core.c:2070 <- + NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <- + process_response :: test/unit/ntp_core.c:292 <- + process_replay :: test/unit/ntp_core.c:482 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:94 <- + ARR_GetElement :: keys.c:67 <- + free_keys :: keys.c:88 <- + KEY_Finalise :: test/unit/ntp_core.c:492 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:67:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&((Key *)tmp)->val); +(tmp from ARR_GetElement(keys, i)) +stack: free_keys :: keys.c:88 <- + KEY_Finalise :: test/unit/ntp_core.c:492 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:67:[eva:alarm] warning: out of bounds read. +assert \valid_read(&((Key *)tmp)->val); +(tmp from ARR_GetElement(keys, i)) +stack: free_keys :: keys.c:88 <- + KEY_Finalise :: test/unit/ntp_core.c:492 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:67:[eva:alarm] warning: function free: precondition 'freeable' got status unknown. +stack: free :: keys.c:67 <- + free_keys :: keys.c:88 <- + KEY_Finalise :: test/unit/ntp_core.c:492 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +keys.c:67:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&((Key *)tmp)->val); +(tmp from ARR_GetElement(keys, i)) +stack: free_keys :: keys.c:88 <- + KEY_Finalise :: test/unit/ntp_core.c:492 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: reference.c:341 <- + update_drift_file :: reference.c:289 <- + REF_Finalise :: test/unit/ntp_core.c:493 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown. +stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <- + strcat :: reference.c:348 <- + update_drift_file :: reference.c:289 <- + REF_Finalise :: test/unit/ntp_core.c:493 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown. +stack: fopen :: reference.c:350 <- + update_drift_file :: reference.c:289 <- + REF_Finalise :: test/unit/ntp_core.c:493 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown. +stack: stat :: reference.c:370 <- + update_drift_file :: reference.c:289 <- + REF_Finalise :: test/unit/ntp_core.c:493 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown. +stack: chown :: reference.c:371 <- + update_drift_file :: reference.c:289 <- + REF_Finalise :: test/unit/ntp_core.c:493 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:289 <- + REF_Finalise :: test/unit/ntp_core.c:493 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown. +stack: rename :: reference.c:380 <- + update_drift_file :: reference.c:289 <- + REF_Finalise :: test/unit/ntp_core.c:493 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown. +stack: unlink :: reference.c:381 <- + update_drift_file :: reference.c:289 <- + REF_Finalise :: test/unit/ntp_core.c:493 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:94 <- + ARR_GetElement :: sched.c:201 <- + SCH_RemoveFileHandler :: ntp_io.c:328 <- + close_socket :: ntp_io.c:447 <- + NIO_Finalise :: test/unit/ntp_core.c:495 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:204:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ptr->handler); +stack: SCH_RemoveFileHandler :: ntp_io.c:328 <- + close_socket :: ntp_io.c:447 <- + NIO_Finalise :: test/unit/ntp_core.c:495 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:204:[eva:alarm] warning: out of bounds read. assert \valid_read(&ptr->handler); +stack: SCH_RemoveFileHandler :: ntp_io.c:328 <- + close_socket :: ntp_io.c:447 <- + NIO_Finalise :: test/unit/ntp_core.c:495 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:204:[eva:alarm] warning: pointer comparison. +assert \pointer_comparable((void (*)())ptr->handler, (void (*)())0); +stack: SCH_RemoveFileHandler :: ntp_io.c:328 <- + close_socket :: ntp_io.c:447 <- + NIO_Finalise :: test/unit/ntp_core.c:495 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:204:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: sched.c:204 <- + SCH_RemoveFileHandler :: ntp_io.c:328 <- + close_socket :: ntp_io.c:447 <- + NIO_Finalise :: test/unit/ntp_core.c:495 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:206:[eva:alarm] warning: out of bounds write. assert \valid(&ptr->handler); +stack: SCH_RemoveFileHandler :: ntp_io.c:328 <- + close_socket :: ntp_io.c:447 <- + NIO_Finalise :: test/unit/ntp_core.c:495 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:207:[eva:alarm] warning: out of bounds write. assert \valid(&ptr->arg); +stack: SCH_RemoveFileHandler :: ntp_io.c:328 <- + close_socket :: ntp_io.c:447 <- + NIO_Finalise :: test/unit/ntp_core.c:495 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:208:[eva:alarm] warning: out of bounds write. assert \valid(&ptr->events); +stack: SCH_RemoveFileHandler :: ntp_io.c:328 <- + close_socket :: ntp_io.c:447 <- + NIO_Finalise :: test/unit/ntp_core.c:495 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:94 <- + ARR_GetElement :: sched.c:212 <- + SCH_RemoveFileHandler :: ntp_io.c:328 <- + close_socket :: ntp_io.c:447 <- + NIO_Finalise :: test/unit/ntp_core.c:495 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:213:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ptr->handler); +stack: SCH_RemoveFileHandler :: ntp_io.c:328 <- + close_socket :: ntp_io.c:447 <- + NIO_Finalise :: test/unit/ntp_core.c:495 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:213:[eva:alarm] warning: out of bounds read. assert \valid_read(&ptr->handler); +stack: SCH_RemoveFileHandler :: ntp_io.c:328 <- + close_socket :: ntp_io.c:447 <- + NIO_Finalise :: test/unit/ntp_core.c:495 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +sched.c:213:[eva:alarm] warning: pointer comparison. +assert \pointer_comparable((void (*)())0, (void (*)())ptr->handler); +stack: SCH_RemoveFileHandler :: ntp_io.c:328 <- + close_socket :: ntp_io.c:447 <- + NIO_Finalise :: test/unit/ntp_core.c:495 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +local.c:268:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: local.c:268 <- + LCL_RemoveParameterChangeHandler :: local.c:189 <- + LCL_Finalise :: test/unit/ntp_core.c:498 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +local.c:274:[eva:alarm] warning: function free: precondition 'freeable' got status unknown. +stack: free :: local.c:274 <- + LCL_RemoveParameterChangeHandler :: local.c:189 <- + LCL_Finalise :: test/unit/ntp_core.c:498 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +local.c:188:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&change_list.next); +stack: LCL_Finalise :: test/unit/ntp_core.c:498 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +local.c:261:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&ptr->next); +stack: LCL_RemoveParameterChangeHandler :: local.c:189 <- + LCL_Finalise :: test/unit/ntp_core.c:498 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +local.c:271:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&ptr->next); +stack: LCL_RemoveParameterChangeHandler :: local.c:189 <- + LCL_Finalise :: test/unit/ntp_core.c:498 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +local.c:271:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&ptr->prev); +stack: LCL_RemoveParameterChangeHandler :: local.c:189 <- + LCL_Finalise :: test/unit/ntp_core.c:498 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +local.c:272:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&ptr->prev); +stack: LCL_RemoveParameterChangeHandler :: local.c:189 <- + LCL_Finalise :: test/unit/ntp_core.c:498 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +local.c:272:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&ptr->next); +stack: LCL_RemoveParameterChangeHandler :: local.c:189 <- + LCL_Finalise :: test/unit/ntp_core.c:498 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:364:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&((CNF_HwTsInterface *)tmp)->name); +(tmp from ARR_GetElement(hwts_interfaces, i)) +stack: CNF_Finalise :: test/unit/ntp_core.c:499 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:364:[eva:alarm] warning: out of bounds read. +assert \valid_read(&((CNF_HwTsInterface *)tmp)->name); +(tmp from ARR_GetElement(hwts_interfaces, i)) +stack: CNF_Finalise :: test/unit/ntp_core.c:499 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:94 <- + ARR_GetElement :: conf.c:364 <- + CNF_Finalise :: test/unit/ntp_core.c:499 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:364:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&((CNF_HwTsInterface *)tmp)->name); +(tmp from ARR_GetElement(hwts_interfaces, i)) +stack: CNF_Finalise :: test/unit/ntp_core.c:499 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: array.c:94 <- + ARR_GetElement :: conf.c:368 <- + CNF_Finalise :: test/unit/ntp_core.c:499 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:368:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&((NTP_Source *)tmp_1)->params.name); +(tmp_1 from ARR_GetElement(ntp_sources, i)) +stack: CNF_Finalise :: test/unit/ntp_core.c:499 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:368:[eva:alarm] warning: out of bounds read. +assert \valid_read(&((NTP_Source *)tmp_1)->params.name); +(tmp_1 from ARR_GetElement(ntp_sources, i)) +stack: CNF_Finalise :: test/unit/ntp_core.c:499 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +conf.c:368:[eva:alarm] warning: accessing left-value that contains escaping addresses. +assert ¬\dangling(&((NTP_Source *)tmp_1)->params.name); +(tmp_1 from ARR_GetElement(ntp_sources, i)) +stack: CNF_Finalise :: test/unit/ntp_core.c:499 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +test/unit/test.c:70:[eva:locals-escaping] warning: locals {conf} escaping the scope of test_unit through processed_command +test/unit/test.c:72:[kernel:annot:missing-spec] warning: Neither code nor specification for function LOG_Finalise, generating default assigns from the prototype +[eva:garbled-mix] warning: Garbled mix generated during analysis: +{{ garbled mix of &{read_from_socket} (origin: Merge {sched.c:185}) }} +{{ garbled mix of &{__malloc_w_KEY_Reload_l235} + (origin: Misaligned {array.c:116}) }} +{{ garbled mix of &{__realloc_w_realloc_array_l80_24} + (origin: Misaligned {keys.c:249}) }} +{{ garbled mix of &{__realloc_w_realloc_array_l80_24} + (origin: Misaligned {keys.c:250}) }} +{{ garbled mix of &{__realloc_w_realloc_array_l80_24} + (origin: Misaligned {keys.c:257}) }} +{{ garbled mix of &{__realloc_w_realloc_array_l80_24} + (origin: Misaligned {keys.c:115}) }} +{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229} + (origin: Misaligned {addrfilt.c:82}) }} +{{ garbled mix of &{__malloc_w_open_node_l137; __malloc_w_open_node_l137_0; + __malloc_w_open_node_l137_1; __malloc_w_open_node_l137_2; + __malloc_w_open_node_l137_3; __malloc_w_open_node_l137_4; + __malloc_w_open_node_l137_5; __malloc_w_open_node_l137_6; + __malloc_w_open_node_l137_7; __malloc_w_open_node_l137_8; + __malloc_w_open_node_l137_9; + __malloc_w_open_node_l137_10} + (origin: Arithmetic {addrfilt.c:331}) }} +{{ garbled mix of &{__malloc_w_open_node_l137; __malloc_w_open_node_l137_0; + __malloc_w_open_node_l137_1; __malloc_w_open_node_l137_2; + __malloc_w_open_node_l137_3; __malloc_w_open_node_l137_4; + __malloc_w_open_node_l137_5; __malloc_w_open_node_l137_6; + __malloc_w_open_node_l137_7; __malloc_w_open_node_l137_8; + __malloc_w_open_node_l137_9; + __malloc_w_open_node_l137_10} + (origin: Misaligned {addrfilt.c:326}) }} +{{ garbled mix of &{__malloc_NCR_GetInstance_l520} + (origin: Misaligned {addrfilt.c:326}) }} +{{ garbled mix of &{__malloc_w_SST_CreateInstance_l215} + (origin: Misaligned {addrfilt.c:326}) }} +{{ garbled mix of &{__malloc_w_open_node_l137; __malloc_w_open_node_l137_0; + __malloc_w_open_node_l137_1; __malloc_w_open_node_l137_2; + __malloc_w_open_node_l137_3; __malloc_w_open_node_l137_4; + __malloc_w_open_node_l137_5; __malloc_w_open_node_l137_6; + __malloc_w_open_node_l137_7; __malloc_w_open_node_l137_8; + __malloc_w_open_node_l137_9; + __malloc_w_open_node_l137_10} + (origin: Misaligned {addrfilt.c:327}) }} +{{ garbled mix of &{__malloc_NCR_GetInstance_l520} + (origin: Misaligned {addrfilt.c:327}) }} +{{ garbled mix of &{__malloc_w_SST_CreateInstance_l215} + (origin: Misaligned {addrfilt.c:327}) }} +{{ garbled mix of &{__malloc_w_open_node_l137; __malloc_w_open_node_l137_0; + __malloc_w_open_node_l137_1; __malloc_w_open_node_l137_2; + __malloc_w_open_node_l137_3; __malloc_w_open_node_l137_4; + __malloc_w_open_node_l137_5; __malloc_w_open_node_l137_6; + __malloc_w_open_node_l137_7; __malloc_w_open_node_l137_8; + __malloc_w_open_node_l137_9; + __malloc_w_open_node_l137_10} + (origin: Misaligned {addrfilt.c:329}) }} +{{ garbled mix of &{__malloc_NCR_GetInstance_l520} + (origin: Misaligned {addrfilt.c:329}) }} +{{ garbled mix of &{__malloc_w_open_node_l137; __malloc_w_open_node_l137_0; + __malloc_w_open_node_l137_1; __malloc_w_open_node_l137_2; + __malloc_w_open_node_l137_3; __malloc_w_open_node_l137_4; + __malloc_w_open_node_l137_5; __malloc_w_open_node_l137_6; + __malloc_w_open_node_l137_7; __malloc_w_open_node_l137_8; + __malloc_w_open_node_l137_9; + __malloc_w_open_node_l137_10} + (origin: Misaligned {addrfilt.c:331}) }} +{{ garbled mix of &{__malloc_NCR_GetInstance_l520} + (origin: Misaligned {addrfilt.c:331}) }} +{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229} + (origin: Misaligned {addrfilt.c:326}) }} +{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229} + (origin: Misaligned {addrfilt.c:327}) }} +{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229} + (origin: Misaligned {addrfilt.c:329}) }} +{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229} + (origin: Misaligned {addrfilt.c:331}) }} +{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_0} + (origin: Misaligned {addrfilt.c:82}) }} +{{ garbled mix of &{__malloc_NCR_GetInstance_l520_0} + (origin: Misaligned {addrfilt.c:326}) }} +{{ garbled mix of &{__malloc_w_SST_CreateInstance_l215_0} + (origin: Misaligned {addrfilt.c:326}) }} +{{ garbled mix of &{__malloc_NCR_GetInstance_l520_0} + (origin: Misaligned {addrfilt.c:327}) }} +{{ garbled mix of &{__malloc_w_SST_CreateInstance_l215_0} + (origin: Misaligned {addrfilt.c:327}) }} +{{ garbled mix of &{__malloc_NCR_GetInstance_l520_0} + (origin: Misaligned {addrfilt.c:329}) }} +{{ garbled mix of &{__malloc_NCR_GetInstance_l520_0} + (origin: Misaligned {addrfilt.c:331}) }} +{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_0} + (origin: Misaligned {addrfilt.c:326}) }} +{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_0} + (origin: Misaligned {addrfilt.c:327}) }} +{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_0} + (origin: Misaligned {addrfilt.c:329}) }} +{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_0} + (origin: Misaligned {addrfilt.c:331}) }} +{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_2} + (origin: Misaligned {addrfilt.c:82}) }} +{{ garbled mix of &{__malloc_NCR_GetInstance_l520_2} + (origin: Misaligned {addrfilt.c:326}) }} +{{ garbled mix of &{__malloc_w_SST_CreateInstance_l215_2} + (origin: Misaligned {addrfilt.c:326}) }} +{{ garbled mix of &{__malloc_NCR_GetInstance_l520_2} + (origin: Misaligned {addrfilt.c:327}) }} +{{ garbled mix of &{__malloc_w_SST_CreateInstance_l215_2} + (origin: Misaligned {addrfilt.c:327}) }} +{{ garbled mix of &{__malloc_NCR_GetInstance_l520_2} + (origin: Misaligned {addrfilt.c:329}) }} +{{ garbled mix of &{__malloc_NCR_GetInstance_l520_2} + (origin: Misaligned {addrfilt.c:331}) }} +{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_2} + (origin: Misaligned {addrfilt.c:326}) }} +{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_2} + (origin: Misaligned {addrfilt.c:327}) }} +{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_2} + (origin: Misaligned {addrfilt.c:329}) }} +{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_2} + (origin: Misaligned {addrfilt.c:331}) }} +{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_1} + (origin: Misaligned {addrfilt.c:82}) }} +{{ garbled mix of &{__malloc_NCR_GetInstance_l520_1} + (origin: Misaligned {addrfilt.c:326}) }} +{{ garbled mix of &{__malloc_w_SST_CreateInstance_l215_1} + (origin: Misaligned {addrfilt.c:326}) }} +{{ garbled mix of &{__malloc_NCR_GetInstance_l520_1} + (origin: Misaligned {addrfilt.c:327}) }} +{{ garbled mix of &{__malloc_w_SST_CreateInstance_l215_1} + (origin: Misaligned {addrfilt.c:327}) }} +{{ garbled mix of &{__malloc_NCR_GetInstance_l520_1} + (origin: Misaligned {addrfilt.c:329}) }} +{{ garbled mix of &{__malloc_NCR_GetInstance_l520_1} + (origin: Misaligned {addrfilt.c:331}) }} +{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_1} + (origin: Misaligned {addrfilt.c:326}) }} +{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_1} + (origin: Misaligned {addrfilt.c:327}) }} +{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_1} + (origin: Misaligned {addrfilt.c:329}) }} +{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_1} + (origin: Misaligned {addrfilt.c:331}) }} diff --git a/chrony/.frama-c/chrony-ntp-core.parse/framac.ast b/chrony/.frama-c/chrony-ntp-core.parse/framac.ast new file mode 100644 index 0000000000000000000000000000000000000000..f9b5056686fc09953dfb2a9feba8e0b0969b3605 --- /dev/null +++ b/chrony/.frama-c/chrony-ntp-core.parse/framac.ast @@ -0,0 +1,19177 @@ +/* Generated by Frama-C */ +#include "__fc_builtin.h" +#include "assert.h" +#include "ctype.h" +#include "errno.h" +#include "fcntl.h" +#include "glob.c" +#include "glob.h" +#include "grp.h" +#include "inttypes.h" +#include "math.h" +#include "netdb.c" +#include "netdb.h" +#include "netinet/in.h" +#include "pwd.h" +#include "resolv.h" +#include "signal.h" +#include "stdarg.h" +#include "stdint.h" +#include "stdio.c" +#include "stdio.h" +#include "stdlib.c" +#include "stdlib.h" +#include "string.c" +#include "string.h" +#include "strings.h" +#include "stropts.h" +#include "sys/resource.h" +#include "sys/select.h" +#include "sys/socket.h" +#include "sys/stat.h" +#include "sys/time.h" +#include "sys/types.h" +#include "sys/uio.h" +#include "sys/un.h" +#include "sys/wait.h" +#include "syslog.h" +#include "time.h" +#include "unistd.h" +enum __anonenum_LOG_Severity_1 { + LOGS_INFO = 0, + LOGS_WARN = 1, + LOGS_ERR = 2, + LOGS_FATAL = 3, + LOGS_DEBUG = 4 +}; +typedef enum __anonenum_LOG_Severity_1 LOG_Severity; +typedef int LOG_FileID; +union __anonunion_addr_3 { + uint32_t in4 ; + uint8_t in6[16] ; +}; +struct __anonstruct_IPAddr_2 { + union __anonunion_addr_3 addr ; + uint16_t family ; + uint16_t _pad ; +}; +typedef struct __anonstruct_IPAddr_2 IPAddr; +struct __anonstruct_NTP_Remote_Address_4 { + IPAddr ip_addr ; + unsigned short port ; +}; +typedef struct __anonstruct_NTP_Remote_Address_4 NTP_Remote_Address; +struct __anonstruct_NTP_Local_Address_5 { + IPAddr ip_addr ; + int if_index ; + int sock_fd ; +}; +typedef struct __anonstruct_NTP_Local_Address_5 NTP_Local_Address; +struct __anonstruct_NTP_int64_6 { + uint32_t hi ; + uint32_t lo ; +}; +typedef struct __anonstruct_NTP_int64_6 NTP_int64; +typedef uint32_t NTP_int32; +enum __anonenum_NTP_Leap_7 { + LEAP_Normal = 0, + LEAP_InsertSecond = 1, + LEAP_DeleteSecond = 2, + LEAP_Unsynchronised = 3 +}; +typedef enum __anonenum_NTP_Leap_7 NTP_Leap; +enum __anonenum_NTP_Mode_8 { + MODE_UNDEFINED = 0, + MODE_ACTIVE = 1, + MODE_PASSIVE = 2, + MODE_CLIENT = 3, + MODE_SERVER = 4, + MODE_BROADCAST = 5 +}; +typedef enum __anonenum_NTP_Mode_8 NTP_Mode; +struct __anonstruct_NTP_Packet_9 { + uint8_t lvm ; + uint8_t stratum ; + int8_t poll ; + int8_t precision ; + NTP_int32 root_delay ; + NTP_int32 root_dispersion ; + NTP_int32 reference_id ; + NTP_int64 reference_ts ; + NTP_int64 originate_ts ; + NTP_int64 receive_ts ; + NTP_int64 transmit_ts ; + NTP_int32 auth_keyid ; + uint8_t auth_data[(4 + 64) - 4] ; +}; +typedef struct __anonstruct_NTP_Packet_9 NTP_Packet; +struct __anonstruct_NTP_Receive_Buffer_10 { + NTP_Packet ntp_pkt ; + uint8_t extensions[1024] ; +}; +typedef struct __anonstruct_NTP_Receive_Buffer_10 NTP_Receive_Buffer; +struct __anonstruct_NTP_Sample_11 { + struct timespec time ; + double offset ; + double peer_delay ; + double peer_dispersion ; + double root_delay ; + double root_dispersion ; + int stratum ; + NTP_Leap leap ; +}; +typedef struct __anonstruct_NTP_Sample_11 NTP_Sample; +struct __anonstruct_Timespec_12 { + uint32_t tv_sec_high ; + uint32_t tv_sec_low ; + uint32_t tv_nsec ; +}; +typedef struct __anonstruct_Timespec_12 Timespec; +struct __anonstruct_Float_13 { + int32_t f ; +}; +typedef struct __anonstruct_Float_13 Float; +struct ADF_AuthTableInst; +typedef struct ADF_AuthTableInst *ADF_AuthTable; +enum __anonenum_ADF_Status_5 { + ADF_SUCCESS = 0, + ADF_BADSUBNET = 1 +}; +typedef enum __anonenum_ADF_Status_5 ADF_Status; +enum __anonenum_State_6 { + DENY = 0, + ALLOW = 1, + AS_PARENT = 2 +}; +typedef enum __anonenum_State_6 State; +struct _TableNode { + State state ; + struct _TableNode *extended ; +}; +typedef struct _TableNode TableNode; +struct ADF_AuthTableInst { + TableNode base4 ; + TableNode base6 ; +}; +struct ARR_Instance_Record; +typedef struct ARR_Instance_Record *ARR_Instance; +struct ARR_Instance_Record { + void *data ; + unsigned int elem_size ; + unsigned int used ; + unsigned int allocated ; +}; +enum __anonenum_mode_12 { + RPT_NTP_CLIENT = 0, + RPT_NTP_PEER = 1, + RPT_LOCAL_REFERENCE = 2 +}; +enum __anonenum_state_13 { + RPT_SYNC = 0, + RPT_UNREACH = 1, + RPT_FALSETICKER = 2, + RPT_JITTERY = 3, + RPT_CANDIDATE = 4, + RPT_OUTLIER = 5 +}; +struct __anonstruct_RPT_SourceReport_11 { + IPAddr ip_addr ; + int stratum ; + int poll ; + enum __anonenum_mode_12 mode ; + enum __anonenum_state_13 state ; + int sel_options ; + int reachability ; + unsigned long latest_meas_ago ; + double orig_latest_meas ; + double latest_meas ; + double latest_meas_err ; +}; +typedef struct __anonstruct_RPT_SourceReport_11 RPT_SourceReport; +struct __anonstruct_RPT_TrackingReport_14 { + uint32_t ref_id ; + IPAddr ip_addr ; + int stratum ; + NTP_Leap leap_status ; + struct timespec ref_time ; + double current_correction ; + double last_offset ; + double rms_offset ; + double freq_ppm ; + double resid_freq_ppm ; + double skew_ppm ; + double root_delay ; + double root_dispersion ; + double last_update_interval ; +}; +typedef struct __anonstruct_RPT_TrackingReport_14 RPT_TrackingReport; +struct __anonstruct_RPT_SourcestatsReport_15 { + uint32_t ref_id ; + IPAddr ip_addr ; + unsigned long n_samples ; + unsigned long n_runs ; + unsigned long span_seconds ; + double resid_freq_ppm ; + double skew_ppm ; + double sd ; + double est_offset ; + double est_offset_err ; +}; +typedef struct __anonstruct_RPT_SourcestatsReport_15 RPT_SourcestatsReport; +struct __anonstruct_RPT_ClientAccessByIndex_Report_17 { + IPAddr ip_addr ; + uint32_t ntp_hits ; + uint32_t cmd_hits ; + uint16_t ntp_drops ; + uint16_t cmd_drops ; + int8_t ntp_interval ; + int8_t cmd_interval ; + int8_t ntp_timeout_interval ; + uint32_t last_ntp_hit_ago ; + uint32_t last_cmd_hit_ago ; +}; +typedef struct __anonstruct_RPT_ClientAccessByIndex_Report_17 RPT_ClientAccessByIndex_Report; +struct __anonstruct_RPT_ServerStatsReport_18 { + uint32_t ntp_hits ; + uint32_t cmd_hits ; + uint32_t ntp_drops ; + uint32_t cmd_drops ; + uint32_t log_drops ; +}; +typedef struct __anonstruct_RPT_ServerStatsReport_18 RPT_ServerStatsReport; +struct __anonstruct_RPT_SmoothingReport_21 { + int active ; + int leap_only ; + double offset ; + double freq_ppm ; + double wander_ppm ; + double last_update_ago ; + double remaining_time ; +}; +typedef struct __anonstruct_RPT_SmoothingReport_21 RPT_SmoothingReport; +struct __anonstruct_RPT_NTPReport_22 { + IPAddr remote_addr ; + IPAddr local_addr ; + uint16_t remote_port ; + uint8_t leap ; + uint8_t version ; + uint8_t mode ; + uint8_t stratum ; + int8_t poll ; + int8_t precision ; + double root_delay ; + double root_dispersion ; + uint32_t ref_id ; + struct timespec ref_time ; + double offset ; + double peer_delay ; + double peer_dispersion ; + double response_time ; + double jitter_asymmetry ; + uint16_t tests ; + int interleaved ; + int authenticated ; + char tx_tss_char ; + char rx_tss_char ; + uint32_t total_tx_count ; + uint32_t total_rx_count ; + uint32_t total_valid_count ; +}; +typedef struct __anonstruct_RPT_NTPReport_22 RPT_NTPReport; +enum __anonenum_REF_LeapMode_23 { + REF_LeapModeSystem = 0, + REF_LeapModeSlew = 1, + REF_LeapModeStep = 2, + REF_LeapModeIgnore = 3 +}; +typedef enum __anonenum_REF_LeapMode_23 REF_LeapMode; +enum __anonenum_REF_Mode_24 { + REF_ModeNormal = 0, + REF_ModeInitStepSlew = 1, + REF_ModeUpdateOnce = 2, + REF_ModePrintOnce = 3, + REF_ModeIgnore = 4 +}; +typedef enum __anonenum_REF_Mode_24 REF_Mode; +enum __anonenum_CNF_HwTs_RxFilter_25 { + CNF_HWTS_RXFILTER_ANY = 0, + CNF_HWTS_RXFILTER_NONE = 1, + CNF_HWTS_RXFILTER_NTP = 2, + CNF_HWTS_RXFILTER_ALL = 3 +}; +typedef enum __anonenum_CNF_HwTs_RxFilter_25 CNF_HwTs_RxFilter; +struct __anonstruct_CNF_HwTsInterface_26 { + char *name ; + int minpoll ; + int min_samples ; + int max_samples ; + int nocrossts ; + CNF_HwTs_RxFilter rxfilter ; + double precision ; + double tx_comp ; + double rx_comp ; +}; +typedef struct __anonstruct_CNF_HwTsInterface_26 CNF_HwTsInterface; +struct __anonstruct_Record_80 { + IPAddr ip_addr ; + uint32_t last_ntp_hit ; + uint32_t last_cmd_hit ; + uint32_t ntp_hits ; + uint32_t cmd_hits ; + uint16_t ntp_drops ; + uint16_t cmd_drops ; + uint16_t ntp_tokens ; + uint16_t cmd_tokens ; + int8_t ntp_rate ; + int8_t cmd_rate ; + int8_t ntp_timeout_rate ; + uint8_t flags ; + NTP_int64 ntp_rx_ts ; + NTP_int64 ntp_tx_ts ; +}; +typedef struct __anonstruct_Record_80 Record; +typedef struct SST_Stats_Record *SST_Stats; +typedef struct SRC_Instance_Record *SRC_Instance; +enum __anonenum_SRC_Type_23 { + SRC_NTP = 0, + SRC_REFCLOCK = 1 +}; +typedef enum __anonenum_SRC_Type_23 SRC_Type; +enum __anonenum_SRC_Connectivity_24 { + SRC_OFFLINE = 0, + SRC_ONLINE = 1, + SRC_MAYBE_ONLINE = 2 +}; +typedef enum __anonenum_SRC_Connectivity_24 SRC_Connectivity; +struct __anonstruct_SourceParameters_25 { + int minpoll ; + int maxpoll ; + SRC_Connectivity connectivity ; + int auto_offline ; + int presend_minpoll ; + int burst ; + int iburst ; + int min_stratum ; + int poll_target ; + int version ; + int max_sources ; + int min_samples ; + int max_samples ; + int filter_length ; + int interleaved ; + int sel_options ; + uint32_t authkey ; + double max_delay ; + double max_delay_ratio ; + double max_delay_dev_ratio ; + double min_delay ; + double asymmetry ; + double offset ; +}; +typedef struct __anonstruct_SourceParameters_25 SourceParameters; +struct __anonstruct_CPS_NTP_Source_26 { + char *name ; + unsigned short port ; + SourceParameters params ; +}; +typedef struct __anonstruct_CPS_NTP_Source_26 CPS_NTP_Source; +enum __anonenum_DNS_Status_27 { + DNS_Success = 0, + DNS_TryAgain = 1, + DNS_Failure = 2 +}; +typedef enum __anonenum_DNS_Status_27 DNS_Status; +enum __anonenum_NTP_Source_Type_30 { + NTP_SERVER = 0, + NTP_PEER = 1 +}; +typedef enum __anonenum_NTP_Source_Type_30 NTP_Source_Type; +enum __anonenum_NTP_Timestamp_Source_31 { + NTP_TS_DAEMON = 0, + NTP_TS_KERNEL = 1, + NTP_TS_HARDWARE = 2 +}; +typedef enum __anonenum_NTP_Timestamp_Source_31 NTP_Timestamp_Source; +struct __anonstruct_NTP_Local_Timestamp_32 { + struct timespec ts ; + double err ; + NTP_Timestamp_Source source ; +}; +typedef struct __anonstruct_NTP_Local_Timestamp_32 NTP_Local_Timestamp; +typedef struct NCR_Instance_Record *NCR_Instance; +enum __anonenum_NSR_Status_33 { + NSR_Success = 0, + NSR_NoSuchSource = 1, + NSR_AlreadyInUse = 2, + NSR_TooManySources = 3, + NSR_InvalidAF = 4 +}; +typedef enum __anonenum_NSR_Status_33 NSR_Status; +struct __anonstruct_RefclockParameters_34 { + char *driver_name ; + char *driver_parameter ; + int driver_poll ; + int poll ; + int filter_length ; + int pps_forced ; + int pps_rate ; + int min_samples ; + int max_samples ; + int sel_options ; + int max_lock_age ; + int stratum ; + int tai ; + uint32_t ref_id ; + uint32_t lock_ref_id ; + double offset ; + double delay ; + double precision ; + double max_dispersion ; + double pulse_width ; +}; +typedef struct __anonstruct_RefclockParameters_34 RefclockParameters; +struct __anonstruct_NTP_Source_91 { + NTP_Source_Type type ; + int pool ; + CPS_NTP_Source params ; +}; +typedef struct __anonstruct_NTP_Source_91 NTP_Source; +struct _AllowDeny { + IPAddr ip ; + int subnet_bits ; + int all ; + int allow ; +}; +typedef struct _AllowDeny AllowDeny; +struct __anonstruct_NTP_Broadcast_Destination_92 { + IPAddr addr ; + unsigned short port ; + int interval ; +}; +typedef struct __anonstruct_NTP_Broadcast_Destination_92 NTP_Broadcast_Destination; +typedef uint32_t UINT4; +struct __anonstruct_MD5_CTX_63 { + UINT4 i[2] ; + UINT4 buf[4] ; + unsigned char in[64] ; + unsigned char digest[16] ; +}; +typedef struct __anonstruct_MD5_CTX_63 MD5_CTX; +enum __anonenum_LCL_ChangeType_83 { + LCL_ChangeAdjust = 0, + LCL_ChangeStep = 1, + LCL_ChangeUnknownStep = 2 +}; +typedef enum __anonenum_LCL_ChangeType_83 LCL_ChangeType; +struct __anonstruct_Key_85 { + uint32_t id ; + char *val ; + int len ; + int hash_id ; + int auth_delay ; +}; +typedef struct __anonstruct_Key_85 Key; +struct _ChangeListEntry { + struct _ChangeListEntry *next ; + struct _ChangeListEntry *prev ; + void (*handler)(struct timespec *raw, struct timespec *cooked, + double dfreq, double doffset, LCL_ChangeType change_type, + void *anything) ; + void *anything ; +}; +typedef struct _ChangeListEntry ChangeListEntry; +struct _DispersionNotifyListEntry { + struct _DispersionNotifyListEntry *next ; + struct _DispersionNotifyListEntry *prev ; + void (*handler)(double dispersion, void *anything) ; + void *anything ; +}; +typedef struct _DispersionNotifyListEntry DispersionNotifyListEntry; +typedef unsigned int SCH_TimeoutID; +enum __anonenum_SCH_TimeoutClass_30 { + SCH_ReservedTimeoutValue = 0, + SCH_NtpClientClass = 1, + SCH_NtpPeerClass = 2, + SCH_NtpBroadcastClass = 3, + SCH_NumberOfClasses = 4 +}; +typedef enum __anonenum_SCH_TimeoutClass_30 SCH_TimeoutClass; +typedef void *SCH_ArbitraryArgument; +union sockaddr_in46 { + struct sockaddr_in in4 ; + struct sockaddr u ; +}; +struct Message { + union sockaddr_in46 name ; + struct iovec iov ; + NTP_Receive_Buffer buf ; + struct cmsghdr cmsgbuf[(unsigned long)256 / sizeof(struct cmsghdr)] ; +}; +struct MessageHeader { + struct msghdr msg_hdr ; + unsigned int msg_len ; +}; +struct fb_drift { + double freq ; + double secs ; +}; +struct __anonstruct_FileHandlerEntry_66 { + void (*handler)(int fd, int event, SCH_ArbitraryArgument ) ; + SCH_ArbitraryArgument arg ; + int events ; +}; +typedef struct __anonstruct_FileHandlerEntry_66 FileHandlerEntry; +struct _TimerQueueEntry { + struct _TimerQueueEntry *next ; + struct _TimerQueueEntry *prev ; + struct timespec ts ; + SCH_TimeoutID id ; + SCH_TimeoutClass class ; + void (*handler)(SCH_ArbitraryArgument ) ; + SCH_ArbitraryArgument arg ; +}; +typedef struct _TimerQueueEntry TimerQueueEntry; +struct stage { + double wander ; + double length ; +}; +struct SelectInfo { + NTP_Leap leap ; + int stratum ; + int select_ok ; + double std_dev ; + double root_distance ; + double lo_limit ; + double hi_limit ; + double last_sample_ago ; +}; +enum __anonenum_SRC_Status_90 { + SRC_OK = 0, + SRC_UNSELECTABLE = 1, + SRC_BAD_STATS = 2, + SRC_BAD_DISTANCE = 3, + SRC_JITTERY = 4, + SRC_WAITS_STATS = 5, + SRC_STALE = 6, + SRC_ORPHAN = 7, + SRC_UNTRUSTED = 8, + SRC_FALSETICKER = 9, + SRC_WAITS_SOURCES = 10, + SRC_NONPREFERRED = 11, + SRC_WAITS_UPDATE = 12, + SRC_DISTANT = 13, + SRC_OUTLIER = 14, + SRC_UNSELECTED = 15, + SRC_SELECTED = 16 +}; +typedef enum __anonenum_SRC_Status_90 SRC_Status; +struct SRC_Instance_Record { + SST_Stats stats ; + int index ; + uint32_t ref_id ; + IPAddr *ip_addr ; + int active ; + int reachability ; + int reachability_size ; + int updates ; + int distant ; + SRC_Status status ; + SRC_Type type ; + int sel_options ; + double sel_score ; + struct SelectInfo sel_info ; +}; +enum __anonenum_tag_91 { + LOW = -1, + HIGH = 1 +}; +struct Sort_Element { + int index ; + double offset ; + enum __anonenum_tag_91 tag ; +}; +struct SST_Stats_Record { + uint32_t refid ; + IPAddr *ip_addr ; + int min_samples ; + int max_samples ; + double fixed_min_delay ; + double fixed_asymmetry ; + int n_samples ; + int runs_samples ; + int last_sample ; + int regression_ok ; + int best_single_sample ; + int min_delay_sample ; + double estimated_offset ; + double estimated_offset_sd ; + struct timespec offset_time ; + int nruns ; + int asymmetry_run ; + double asymmetry ; + double estimated_frequency ; + double estimated_frequency_sd ; + double skew ; + double std_dev ; + struct timespec sample_times[64 * 2] ; + double offsets[64 * 2] ; + double orig_offsets[64] ; + double peer_delays[64 * 2] ; + double peer_dispersions[64] ; + double root_delays[64] ; + double root_dispersions[64] ; + int stratum ; + NTP_Leap leap ; +}; +struct DNS_Async_Instance { + char const *name ; + void (*handler)(DNS_Status status, int n_addrs, IPAddr *ip_addrs, + void *anything) ; + void *arg ; + int pipe[2] ; +}; +struct SPF_Instance_Record; +typedef struct SPF_Instance_Record *SPF_Instance; +enum __anonenum_OperatingMode_90 { + MD_OFFLINE = 0, + MD_ONLINE = 1, + MD_BURST_WAS_OFFLINE = 2, + MD_BURST_WAS_ONLINE = 3 +}; +typedef enum __anonenum_OperatingMode_90 OperatingMode; +enum __anonenum_AuthenticationMode_91 { + AUTH_NONE = 0, + AUTH_SYMMETRIC = 1, + AUTH_MSSNTP = 2, + AUTH_MSSNTP_EXT = 3 +}; +typedef enum __anonenum_AuthenticationMode_91 AuthenticationMode; +struct NCR_Instance_Record { + NTP_Remote_Address remote_addr ; + NTP_Local_Address local_addr ; + NTP_Mode mode ; + int interleaved ; + OperatingMode opmode ; + SCH_TimeoutID rx_timeout_id ; + SCH_TimeoutID tx_timeout_id ; + int tx_suspended ; + int auto_burst ; + int auto_offline ; + int local_poll ; + int remote_poll ; + int remote_stratum ; + int presend_minpoll ; + int presend_done ; + int minpoll ; + int maxpoll ; + int min_stratum ; + int poll_target ; + int version ; + double poll_score ; + double max_delay ; + double max_delay_ratio ; + double max_delay_dev_ratio ; + double offset_correction ; + AuthenticationMode auth_mode ; + uint32_t auth_key_id ; + unsigned int tx_count ; + int valid_rx ; + int valid_timestamps ; + NTP_int64 remote_ntp_rx ; + NTP_int64 remote_ntp_tx ; + NTP_int64 local_ntp_rx ; + NTP_Local_Timestamp local_rx ; + NTP_int64 local_ntp_tx ; + NTP_Local_Timestamp local_tx ; + NTP_Local_Timestamp prev_local_tx ; + int prev_local_poll ; + unsigned int prev_tx_count ; + int updated_init_timestamps ; + NTP_int64 init_remote_ntp_tx ; + NTP_Local_Timestamp init_local_rx ; + SRC_Instance source ; + SPF_Instance filter ; + int burst_good_samples_to_go ; + int burst_total_samples_to_go ; + RPT_NTPReport report ; +}; +struct __anonstruct_BroadcastDestination_92 { + NTP_Remote_Address addr ; + NTP_Local_Address local_addr ; + int interval ; +}; +typedef struct __anonstruct_BroadcastDestination_92 BroadcastDestination; +extern void LOG_Initialise(void); + +extern void LOG_Finalise(void); + +extern void ( /* format attribute */ LOG_Message)(LOG_Severity severity, + char const *format, + void * const *__va_params); + +extern void LOG_SetDebugLevel(int level); + +extern void LOG_OpenFileLog(char const *log_file); + +extern LOG_FileID LOG_FileOpen(char const *name, char const *banner); + +extern void ( /* format attribute */ LOG_FileWrite)(LOG_FileID id, + char const *format, + void * const *__va_params); + +void lcl_InvokeDispersionNotifyHandlers(double dispersion); + +void lcl_RegisterSystemDrivers(double (*read_freq)(void), + double (*set_freq)(double freq_ppm), + void (*accrue_offset_0)(double offset, + double corr_rate), + int (*apply_step_offset_0)(double offset), + void (*offset_convert_0)(struct timespec *raw, + double *corr, + double *err), + void (*set_leap)(int leap, int tai_offset), + void (*set_sync_status)(int synchronised, + double est_error, + double max_error)); + +void test_unit(void); + +void TST_Fail(int line); + +void TST_SuspendLogging(void); + +void TST_ResumeLogging(void); + +double TST_GetRandomDouble(double min, double max); + +void TST_GetRandomAddress(IPAddr *ip, int family, int bits); + +void TST_SwapAddressBit(IPAddr *ip, unsigned int b); + +void TST_RegisterDummyDrivers(void); + +int HSH_GetHashId(char const *name); + +unsigned int HSH_Hash(int id, unsigned char const *in1, unsigned int in1_len, + unsigned char const *in2, unsigned int in2_len, + unsigned char *out, unsigned int out_len); + +void HSH_Finalise(void); + +void UTI_ZeroTimespec(struct timespec *ts); + +int UTI_IsZeroTimespec(struct timespec *ts); + +void UTI_TimevalToTimespec(struct timeval *tv, struct timespec *ts); + +void UTI_TimespecToTimeval(struct timespec *ts, struct timeval *tv); + +double UTI_TimespecToDouble(struct timespec *ts); + +void UTI_DoubleToTimespec(double d, struct timespec *ts); + +void UTI_NormaliseTimespec(struct timespec *ts); + +double UTI_TimevalToDouble(struct timeval *tv); + +void UTI_DoubleToTimeval(double a, struct timeval *b); + +void UTI_NormaliseTimeval(struct timeval *x); + +int UTI_CompareTimespecs(struct timespec *a, struct timespec *b); + +void UTI_DiffTimespecs(struct timespec *result, struct timespec *a, + struct timespec *b); + +double UTI_DiffTimespecsToDouble(struct timespec *a, struct timespec *b); + +void UTI_AddDoubleToTimespec(struct timespec *start, double increment, + struct timespec *end); + +void UTI_AverageDiffTimespecs(struct timespec *earlier, + struct timespec *later, + struct timespec *average, double *diff); + +void UTI_AddDiffToTimespec(struct timespec *a, struct timespec *b, + struct timespec *c, struct timespec *result); + +char *UTI_TimespecToString(struct timespec *ts); + +char *UTI_Ntp64ToString(NTP_int64 *ntp_ts); + +char *UTI_RefidToString(uint32_t ref_id); + +char *UTI_IPToString(IPAddr *addr); + +int UTI_StringToIP(char const *addr, IPAddr *ip); + +uint32_t UTI_IPToRefid(IPAddr *ip); + +uint32_t UTI_IPToHash(IPAddr *ip); + +void UTI_IPHostToNetwork(IPAddr *src, IPAddr *dest); + +void UTI_IPNetworkToHost(IPAddr *src, IPAddr *dest); + +int UTI_CompareIPs(IPAddr *a, IPAddr *b, IPAddr *mask); + +void UTI_SockaddrToIPAndPort(struct sockaddr *sa, IPAddr *ip, + unsigned short *port); + +int UTI_IPAndPortToSockaddr(IPAddr *ip, unsigned short port, + struct sockaddr *sa); + +char *UTI_SockaddrToString(struct sockaddr *sa); + +char const *UTI_SockaddrFamilyToString(int family); + +char *UTI_TimeToLogForm(time_t t); + +void UTI_AdjustTimespec(struct timespec *old_ts, struct timespec *when, + struct timespec *new_ts, double *delta_time, + double dfreq, double doffset); + +void UTI_GetNtp64Fuzz(NTP_int64 *ts, int precision); + +double UTI_Ntp32ToDouble(NTP_int32 x); + +NTP_int32 UTI_DoubleToNtp32(double x); + +void UTI_ZeroNtp64(NTP_int64 *ts); + +int UTI_IsZeroNtp64(NTP_int64 *ts); + +int UTI_CompareNtp64(NTP_int64 *a, NTP_int64 *b); + +int UTI_IsEqualAnyNtp64(NTP_int64 *a, NTP_int64 *b1, NTP_int64 *b2, + NTP_int64 *b3); + +void UTI_TimespecToNtp64(struct timespec *src, NTP_int64 *dest, + NTP_int64 *fuzz); + +void UTI_Ntp64ToTimespec(NTP_int64 *src, struct timespec *dest); + +int UTI_IsTimeOffsetSane(struct timespec *ts, double offset); + +double UTI_Log2ToDouble(int l); + +void UTI_TimespecNetworkToHost(Timespec *src, struct timespec *dest); + +void UTI_TimespecHostToNetwork(struct timespec *src, Timespec *dest); + +double UTI_FloatNetworkToHost(Float f); + +Float UTI_FloatHostToNetwork(double x); + +int UTI_FdSetCloexec(int fd); + +void UTI_SetQuitSignalsHandler(void (*handler)(int ), int ignore_sigpipe); + +char *UTI_PathToDir(char const *path); + +int UTI_CreateDirAndParents(char const *path, mode_t mode_0, uid_t uid, + gid_t gid); + +int UTI_CheckDirPermissions(char const *path, mode_t perm, uid_t uid, + gid_t gid); + +void UTI_DropRoot(uid_t uid, gid_t gid); + +void UTI_GetRandomBytesUrandom(void *buf, unsigned int len); + +void UTI_GetRandomBytes(void *buf, unsigned int len); + +/*@ requires valid_read_string(format); + assigns \result, __fc_stdout->__fc_FILE_data; + assigns \result + \from (indirect: __fc_stdout->__fc_FILE_id), + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); + assigns __fc_stdout->__fc_FILE_data + \from (indirect: __fc_stdout->__fc_FILE_id), + __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), + param0; + */ +int printf_va_1(char const * __restrict format, int param0); + +void TST_Fail(int line) +{ + printf_va_1("FAIL (on line %d)\n",line); + exit(1); + return; +} + +/*@ requires valid_read_string(format); + assigns \result, stream->__fc_FILE_data; + assigns \result + \from (indirect: stream->__fc_FILE_id), + (indirect: stream->__fc_FILE_data), + (indirect: *(format + (0 ..))); + assigns stream->__fc_FILE_data + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))); + */ +int fprintf_va_1(FILE * __restrict stream, char const * __restrict format); + +/*@ requires valid_read_string(format); + requires valid_read_string(param0); + assigns \result, __fc_stdout->__fc_FILE_data; + assigns \result + \from (indirect: __fc_stdout->__fc_FILE_id), + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: *(param0 + (0 ..))); + assigns __fc_stdout->__fc_FILE_data + \from (indirect: __fc_stdout->__fc_FILE_id), + __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), + *(param0 + (0 ..)); + */ +int printf_va_2(char const * __restrict format, char *param0); + +/*@ requires valid_read_string(format); + assigns \result, __fc_stdout->__fc_FILE_data; + assigns \result + \from (indirect: __fc_stdout->__fc_FILE_id), + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))); + assigns __fc_stdout->__fc_FILE_data + \from (indirect: __fc_stdout->__fc_FILE_id), + __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); + */ +int printf_va_3(char const * __restrict format); + +int main(int argc, char **argv) +{ + int __retres; + char *test_name; + char *s; + int i; + struct timeval tv; + long tmp_1; + int seed = 0; + test_name = *(argv + 0); + s = strrchr((char const *)test_name,'.'); + if (s) *s = (char)'\000'; + s = strrchr((char const *)test_name,'/'); + if (s) test_name = s + 1; + i = 1; + while (i < argc) { + { + int tmp_0; + tmp_0 = strcmp((char const *)*(argv + i),"-d"); + if (tmp_0) { + int tmp; + tmp = strcmp((char const *)*(argv + i),"-s"); + if (tmp) { + _LAND: { + fprintf_va_1(__fc_stderr,"Unknown option\n"); + exit(1); + } + } + else + if (i + 1 < argc) { + i ++; + ; + seed = atoi((char const *)*(argv + i)); + } + else goto _LAND; + } + else LOG_SetDebugLevel(2); + } + i ++; + } + gettimeofday(& tv,(void *)0); + if (seed) tmp_1 = (long)seed; + else tmp_1 = tv.tv_sec ^ (long)(tv.tv_usec << 10); + srandom((unsigned int)tmp_1); + printf_va_2("Testing %-30s ",test_name); + fflush(__fc_stdout); + LOG_Initialise(); + test_unit(); + LOG_Finalise(); + printf_va_3("PASS\n"); + __retres = 0; + return __retres; +} + +void TST_SuspendLogging(void) +{ + LOG_OpenFileLog("/dev/null"); + return; +} + +void TST_ResumeLogging(void) +{ + LOG_OpenFileLog((char const *)0); + return; +} + +double TST_GetRandomDouble(double min, double max) +{ + double __retres; + long tmp; + tmp = random(); + ; + __retres = min + ((double)tmp / (double)32767) * (max - min); + return __retres; +} + +void TST_GetRandomAddress(IPAddr *ip, int family, int bits) +{ + if (family != 1) + if (family != 2) { + long tmp; + tmp = random(); + if (tmp % (long)2) family = 1; else family = 2; + } + ip->family = (unsigned short)family; + if (family == 1) { + if (bits < 0) bits = 32; + __FC_assert((bits <= 32) != 0,"test/unit/test.c",106,"bits <= 32"); + if (bits > 16) { + long tmp_0; + long tmp_1; + tmp_0 = random(); + tmp_1 = random(); + ip->addr.in4 = ((unsigned int)tmp_0 % (1U << (bits - 16)) << 16) | + (unsigned int)tmp_1 % (1U << 16); + } + else { + long tmp_2; + tmp_2 = random(); + ip->addr.in4 = (unsigned int)tmp_2 % (1U << bits); + } + } + else { + int i; + int b; + if (bits < 0) bits = 128; + __FC_assert((bits <= 128) != 0,"test/unit/test.c",118,"bits <= 128"); + i = 0; + b = 120; + /*@ loop unroll 16; */ + while (i < 16) { + if (b >= bits) ip->addr.in6[i] = (unsigned char)0; + else { + long tmp_3; + int tmp_4; + tmp_3 = random(); + if (bits - b < 8) tmp_4 = bits - b; else tmp_4 = 8; + ip->addr.in6[i] = (unsigned char)(tmp_3 % (long)(1U << tmp_4)); + } + i ++; + b -= 8; + } + } + return; +} + +void TST_SwapAddressBit(IPAddr *ip, unsigned int b) +{ + if ((int)ip->family == 1) { + __FC_assert((b < (unsigned int)32) != 0,"test/unit/test.c",135,"b < 32"); + ip->addr.in4 ^= 1U << ((unsigned int)31 - b); + } + else + if ((int)ip->family == 2) { + __FC_assert((b < (unsigned int)128) != 0,"test/unit/test.c",138, + "b < 128"); + ip->addr.in6[b / (unsigned int)8] = (unsigned char)((unsigned int)ip->addr.in6[ + b / (unsigned int)8] ^ ( + 1U << ((unsigned int)7 - + b % (unsigned int)8))); + } + else __FC_assert(0 != 0,"test/unit/test.c",141,"0"); + return; +} + +static double read_frequency(void) +{ + double __retres; + __retres = 0.0; + return __retres; +} + +static double set_frequency(double freq_ppm) +{ + double __retres; + __retres = 0.0; + return __retres; +} + +static void accrue_offset(double offset, double corr_rate) +{ + return; +} + +static int apply_step_offset(double offset) +{ + int __retres; + __retres = 0; + return __retres; +} + +static void offset_convert(struct timespec *raw, double *corr, double *err) +{ + *corr = 0.0; + if (err) *err = 0.0; + return; +} + +void TST_RegisterDummyDrivers(void) +{ + lcl_RegisterSystemDrivers(& read_frequency,& set_frequency,& accrue_offset, + & apply_step_offset,& offset_convert, + (void (*)(int leap, int tai_offset))0, + (void (*)(int synchronised, double est_error, + double max_error))0); + return; +} + +ADF_AuthTable ADF_CreateTable(void); + +ADF_Status ADF_Allow(ADF_AuthTable table, IPAddr *ip, int subnet_bits); + +ADF_Status ADF_AllowAll(ADF_AuthTable table, IPAddr *ip, int subnet_bits); + +ADF_Status ADF_Deny(ADF_AuthTable table, IPAddr *ip, int subnet_bits); + +ADF_Status ADF_DenyAll(ADF_AuthTable table, IPAddr *ip, int subnet_bits); + +void ADF_DestroyTable(ADF_AuthTable table); + +int ADF_IsAllowed(ADF_AuthTable table, IPAddr *ip_addr); + +int ADF_IsAnyAllowed(ADF_AuthTable table, int family); + +void *Malloc(size_t size); + +void *Realloc(void *ptr, size_t size); + +void *Malloc2(size_t nmemb, size_t size); + +void *Realloc2(void *ptr, size_t nmemb, size_t size); + +char *Strdup(char const *s); + +static void split_ip6(IPAddr *ip, uint32_t *dst) +{ + int i; + i = 0; + /*@ loop unroll 4; */ + while (i < 4) { + *(dst + i) = ((((unsigned int)ip->addr.in6[i * 4 + 0] << 24) | (unsigned int)( + (int)ip->addr.in6[i * 4 + 1] << 16)) | (unsigned int)( + (int)ip->addr.in6[i * 4 + 2] << 8)) | (unsigned int)ip->addr.in6[ + i * 4 + 3]; + i ++; + } + return; +} + +__inline static uint32_t get_subnet(uint32_t *addr, unsigned int where) +{ + uint32_t __retres; + int off; + off = (int)(where / (unsigned int)32); + where %= (unsigned int)32; + __retres = (unsigned int)((unsigned long)(*(addr + off) >> ((unsigned int)( + 32 - 4) - where)) & ( + (1UL << 4) - (unsigned long)1)); + return __retres; +} + +ADF_AuthTable ADF_CreateTable(void) +{ + ADF_AuthTable result; + result = (ADF_AuthTable)Malloc(sizeof(struct ADF_AuthTableInst)); + result->base4.state = DENY; + result->base4.extended = (struct _TableNode *)0; + result->base6.state = DENY; + result->base6.extended = (struct _TableNode *)0; + return result; +} + +static void close_node(TableNode *node) +{ + int i; + TableNode *child_node; + if (node->extended != (struct _TableNode *)0) { + i = 0; + /*@ loop unroll 16; */ + while ((unsigned long)i < 1UL << 4) { + child_node = node->extended + i; + i ++; + } + free((void *)node->extended); + node->extended = (struct _TableNode *)0; + } + return; +} + +static void open_node(TableNode *node) +{ + int i; + TableNode *child_node; + if (node->extended == (struct _TableNode *)0) { + node->extended = (struct _TableNode *)Malloc2(1UL << 4, + sizeof(struct _TableNode)); + i = 0; + /*@ loop unroll 4; */ + while ((unsigned long)i < 1UL << 4) { + child_node = node->extended + i; + child_node->state = AS_PARENT; + child_node->extended = (struct _TableNode *)0; + i ++; + } + } + return; +} + +static ADF_Status set_subnet(TableNode *start_node, uint32_t *ip, int ip_len, + int subnet_bits, State new_state, + int delete_children) +{ + ADF_Status __retres; + int bits_to_go; + int bits_consumed; + uint32_t subnet; + TableNode *node; + bits_consumed = 0; + bits_to_go = subnet_bits; + node = start_node; + if (subnet_bits < 0) goto _LOR; + else + if (subnet_bits > 32 * ip_len) { + _LOR: { + __retres = ADF_BADSUBNET; + goto return_label; + } + } + else { + if ((bits_to_go & (4 - 1)) == 0) { + /*@ loop unroll 128; */ + while (bits_to_go > 0) { + subnet = get_subnet(ip,(unsigned int)bits_consumed); + if (! node->extended) open_node(node); + node = node->extended + subnet; + bits_to_go -= 4; + bits_consumed += 4; + } + if (delete_children) close_node(node); + node->state = new_state; + } + else { + int N; + int i; + int j; + TableNode *this_node; + uint32_t tmp; + /*@ loop unroll 124; */ + while (bits_to_go >= 4) { + subnet = get_subnet(ip,(unsigned int)bits_consumed); + if (! node->extended) open_node(node); + node = node->extended + subnet; + bits_to_go -= 4; + bits_consumed += 4; + } + N = 1 << (4 - bits_to_go); + tmp = get_subnet(ip,(unsigned int)bits_consumed); + subnet = tmp & (unsigned int)(~ (N - 1)); + __FC_assert(((unsigned long)(subnet + (uint32_t)N) <= 1UL << 4) != 0, + "addrfilt.c",210,"subnet + N <= TABLE_SIZE"); + if (! node->extended) open_node(node); + i = (int)subnet; + j = 0; + /*@ loop unroll 16; */ + while (j < N) { + this_node = node->extended + i; + if (delete_children) close_node(this_node); + this_node->state = new_state; + i ++; + j ++; + } + } + __retres = ADF_SUCCESS; + goto return_label; + } + return_label: return __retres; +} + +static ADF_Status set_subnet_(ADF_AuthTable table, IPAddr *ip_addr, + int subnet_bits, State new_state, + int delete_children) +{ + ADF_Status __retres; + uint32_t ip6[4]; + switch ((int)ip_addr->family) { + ADF_Status tmp; + ADF_Status tmp_0; + ADF_Status tmp_1; + case 1: + tmp = set_subnet(& table->base4,& ip_addr->addr.in4,1,subnet_bits, + new_state,delete_children); + __retres = tmp; + goto return_label; + case 2: split_ip6(ip_addr,ip6); + tmp_0 = set_subnet(& table->base6,ip6,4,subnet_bits,new_state, + delete_children); + __retres = tmp_0; + goto return_label; + case 0: ; + if (subnet_bits != 0) { + __retres = ADF_BADSUBNET; + goto return_label; + } + memset((void *)(ip6),0,sizeof(ip6)); + tmp_1 = set_subnet(& table->base4,ip6,1,0,new_state,delete_children); + if (tmp_1 == (unsigned int)ADF_SUCCESS) { + ADF_Status tmp_2; + tmp_2 = set_subnet(& table->base6,ip6,4,0,new_state,delete_children); + if (tmp_2 == (unsigned int)ADF_SUCCESS) { + __retres = ADF_SUCCESS; + goto return_label; + } + } + break; + } + __retres = ADF_BADSUBNET; + return_label: return __retres; +} + +ADF_Status ADF_Allow(ADF_AuthTable table, IPAddr *ip, int subnet_bits) +{ + ADF_Status tmp; + tmp = set_subnet_(table,ip,subnet_bits,ALLOW,0); + return tmp; +} + +ADF_Status ADF_AllowAll(ADF_AuthTable table, IPAddr *ip, int subnet_bits) +{ + ADF_Status tmp; + tmp = set_subnet_(table,ip,subnet_bits,ALLOW,1); + return tmp; +} + +ADF_Status ADF_Deny(ADF_AuthTable table, IPAddr *ip, int subnet_bits) +{ + ADF_Status tmp; + tmp = set_subnet_(table,ip,subnet_bits,DENY,0); + return tmp; +} + +ADF_Status ADF_DenyAll(ADF_AuthTable table, IPAddr *ip, int subnet_bits) +{ + ADF_Status tmp; + tmp = set_subnet_(table,ip,subnet_bits,DENY,1); + return tmp; +} + +void ADF_DestroyTable(ADF_AuthTable table) +{ + close_node(& table->base4); + close_node(& table->base6); + free((void *)table); + return; +} + +static int check_ip_in_node(TableNode *start_node, uint32_t *ip) +{ + uint32_t subnet; + TableNode *node; + int bits_consumed = 0; + int result = 0; + int finished = 0; + State state = DENY; + node = start_node; + while (1) { + if (node->state != (unsigned int)AS_PARENT) state = node->state; + if (node->extended) { + subnet = get_subnet(ip,(unsigned int)bits_consumed); + node = node->extended + subnet; + bits_consumed += 4; + } + else finished = 1; + if (! (! finished)) break; + } + switch (state) { + case (State)ALLOW: result = 1; + break; + case (State)DENY: result = 0; + break; + case (State)AS_PARENT: __FC_assert(0 != 0,"addrfilt.c",347,"0"); + break; + } + return result; +} + +int ADF_IsAllowed(ADF_AuthTable table, IPAddr *ip_addr) +{ + int __retres; + uint32_t ip6[4]; + switch ((int)ip_addr->family) { + int tmp; + int tmp_0; + case 1: tmp = check_ip_in_node(& table->base4,& ip_addr->addr.in4); + __retres = tmp; + goto return_label; + case 2: split_ip6(ip_addr,ip6); + tmp_0 = check_ip_in_node(& table->base6,ip6); + __retres = tmp_0; + goto return_label; + } + __retres = 0; + return_label: return __retres; +} + +int volatile nondet; +static int is_any_allowed(TableNode *node, State parent) +{ + int __retres; + State state; + int i; + if (node->state != (unsigned int)AS_PARENT) state = node->state; + else state = parent; + __FC_assert((state != (unsigned int)AS_PARENT) != 0,"addrfilt.c",387, + "state != AS_PARENT"); + if (node->extended) { + i = 0; + /*@ loop unroll 16; */ + while ((unsigned long)i < 1UL << 4) { + if (nondet) { + __retres = 1; + goto return_label; + } + i ++; + } + } + else + if (state == (unsigned int)ALLOW) { + __retres = 1; + goto return_label; + } + __retres = 0; + return_label: return __retres; +} + +int ADF_IsAnyAllowed(ADF_AuthTable table, int family) +{ + int __retres; + switch (family) { + int tmp; + int tmp_0; + case 1: tmp = is_any_allowed(& table->base4,AS_PARENT); + __retres = tmp; + goto return_label; + case 2: tmp_0 = is_any_allowed(& table->base6,AS_PARENT); + __retres = tmp_0; + goto return_label; + default: __retres = 0; + goto return_label; + } + return_label: return __retres; +} + +ARR_Instance ARR_CreateInstance(unsigned int elem_size); + +void ARR_DestroyInstance(ARR_Instance array); + +void *ARR_GetNewElement(ARR_Instance array); + +void *ARR_GetElement(ARR_Instance array, unsigned int index_0); + +void *ARR_GetElements(ARR_Instance array); + +void ARR_AppendElement(ARR_Instance array, void *element); + +void ARR_SetSize(ARR_Instance array, unsigned int size); + +unsigned int ARR_GetSize(ARR_Instance array); + +ARR_Instance ARR_CreateInstance(unsigned int elem_size) +{ + ARR_Instance array; + __FC_assert((elem_size > (unsigned int)0) != 0,"array.c",47, + "elem_size > 0"); + array = (ARR_Instance)Malloc(sizeof(struct ARR_Instance_Record)); + array->data = (void *)0; + array->elem_size = elem_size; + array->used = (unsigned int)0; + array->allocated = (unsigned int)0; + return array; +} + +void ARR_DestroyInstance(ARR_Instance array) +{ + free(array->data); + free((void *)array); + return; +} + +static void realloc_array(ARR_Instance array, unsigned int min_size) +{ + __FC_assert((min_size <= (unsigned int)2 * min_size) != 0,"array.c",69, + "min_size <= 2 * min_size"); + if (array->allocated >= min_size) + if (array->allocated <= (unsigned int)2 * min_size) goto return_label; + if (array->allocated < min_size) + while (array->allocated < min_size) + if (array->allocated) array->allocated = (unsigned int)2 * array->allocated; + else array->allocated = (unsigned int)1; + else array->allocated = min_size; + array->data = Realloc2(array->data,(unsigned long)array->allocated, + (unsigned long)array->elem_size); + return_label: return; +} + +void *ARR_GetNewElement(ARR_Instance array) +{ + void *tmp; + (array->used) ++; + realloc_array(array,array->used); + tmp = ARR_GetElement(array,array->used - (unsigned int)1); + return tmp; +} + +void *ARR_GetElement(ARR_Instance array, unsigned int index_0) +{ + void *__retres; + __FC_assert((index_0 < array->used) != 0,"array.c",94, + "index < array->used"); + __retres = (void *)((char *)array->data + (unsigned long)index_0 * (unsigned long)array->elem_size); + return __retres; +} + +void *ARR_GetElements(ARR_Instance array) +{ + void *__retres; + if (! array->data) { + __FC_assert(! array->used != 0,"array.c",103,"!array->used"); + __retres = (void *)array; + goto return_label; + } + __retres = array->data; + return_label: return __retres; +} + +void ARR_AppendElement(ARR_Instance array, void *element) +{ + void *e; + e = ARR_GetNewElement(array); + memcpy(e,(void const *)element,(unsigned long)array->elem_size); + return; +} + +void ARR_SetSize(ARR_Instance array, unsigned int size) +{ + realloc_array(array,size); + array->used = size; + return; +} + +unsigned int ARR_GetSize(ARR_Instance array) +{ + unsigned int __retres; + __retres = array->used; + return __retres; +} + +void CLG_Initialise(void); + +void CLG_Finalise(void); + +int CLG_GetClientIndex(IPAddr *client); + +int CLG_LogNTPAccess(IPAddr *client, struct timespec *now); + +int CLG_LogCommandAccess(IPAddr *client, struct timespec *now); + +int CLG_LimitNTPResponseRate(int index_0); + +int CLG_LimitCommandResponseRate(int index_0); + +void CLG_GetNtpTimestamps(int index_0, NTP_int64 **rx_ts, NTP_int64 **tx_ts); + +int CLG_GetNtpMinPoll(void); + +int CLG_GetNumberOfIndices(void); + +int CLG_GetClientAccessReportByIndex(int index_0, + RPT_ClientAccessByIndex_Report *report, + struct timespec *now); + +void CLG_GetServerStatsReport(RPT_ServerStatsReport *report); + +void REF_Initialise(void); + +void REF_Finalise(void); + +void REF_SetMode(REF_Mode new_mode); + +REF_Mode REF_GetMode(void); + +void REF_SetModeEndHandler(void (*handler)(int result)); + +REF_LeapMode REF_GetLeapMode(void); + +void REF_GetReferenceParams(struct timespec *local_time, + int *is_synchronised, NTP_Leap *leap_status, + int *stratum, uint32_t *ref_id, + struct timespec *ref_time, double *root_delay, + double *root_dispersion); + +void REF_SetReference(int stratum, NTP_Leap leap, int combined_sources, + uint32_t ref_id, IPAddr *ref_ip, + struct timespec *ref_time, double offset, + double offset_sd, double frequency, + double frequency_sd, double skew, double root_delay, + double root_dispersion); + +void REF_SetManualReference(struct timespec *ref_time, double offset, + double frequency, double skew); + +void REF_SetUnsynchronised(void); + +int REF_GetOurStratum(void); + +int REF_GetOrphanStratum(void); + +double REF_GetSkew(void); + +void REF_ModifyMaxupdateskew(double new_max_update_skew); + +void REF_ModifyMakestep(int limit, double threshold); + +void REF_EnableLocal(int stratum, double distance, int orphan); + +void REF_DisableLocal(void); + +int REF_IsLeapSecondClose(void); + +int REF_GetTaiOffset(struct timespec *ts); + +void REF_GetTrackingReport(RPT_TrackingReport *rep); + +void CNF_Initialise(int r, int client_only); + +void CNF_Finalise(void); + +char *CNF_GetRtcDevice(void); + +void CNF_ReadFile(char const *filename); + +void CNF_ParseLine(char const *filename, int number, char *line); + +void CNF_CreateDirs(uid_t uid, gid_t gid); + +void CNF_AddInitSources(void); + +void CNF_AddSources(void); + +void CNF_AddBroadcasts(void); + +void CNF_AddRefclocks(void); + +int CNF_GetAcquisitionPort(void); + +int CNF_GetNTPPort(void); + +char *CNF_GetDriftFile(void); + +char *CNF_GetLogDir(void); + +char *CNF_GetDumpDir(void); + +int CNF_GetLogBanner(void); + +int CNF_GetLogMeasurements(int *raw); + +int CNF_GetLogStatistics(void); + +int CNF_GetLogTracking(void); + +int CNF_GetLogRtc(void); + +int CNF_GetLogRefclocks(void); + +int CNF_GetLogTempComp(void); + +char *CNF_GetKeysFile(void); + +char *CNF_GetRtcFile(void); + +int CNF_GetManualEnabled(void); + +int CNF_GetCommandPort(void); + +int CNF_GetRtcOnUtc(void); + +int CNF_GetRtcSync(void); + +void CNF_GetMakeStep(int *limit, double *threshold); + +void CNF_GetMaxChange(int *delay, int *ignore, double *offset); + +double CNF_GetLogChange(void); + +void CNF_GetMailOnChange(int *enabled_0, double *threshold, char **user_0); + +int CNF_GetNoClientLog(void); + +unsigned long CNF_GetClientLogLimit(void); + +void CNF_GetFallbackDrifts(int *min, int *max); + +void CNF_GetBindAddress(int family, IPAddr *addr); + +void CNF_GetBindAcquisitionAddress(int family, IPAddr *addr); + +void CNF_GetBindCommandAddress(int family, IPAddr *addr); + +char *CNF_GetBindCommandPath(void); + +char *CNF_GetNtpSigndSocket(void); + +char *CNF_GetPidFile(void); + +REF_LeapMode CNF_GetLeapSecMode(void); + +char *CNF_GetLeapSecTimezone(void); + +double CNF_GetMaxUpdateSkew(void); + +double CNF_GetMaxClockError(void); + +double CNF_GetMaxDrift(void); + +double CNF_GetCorrectionTimeRatio(void); + +double CNF_GetMaxSlewRate(void); + +double CNF_GetMaxDistance(void); + +double CNF_GetMaxJitter(void); + +double CNF_GetReselectDistance(void); + +double CNF_GetStratumWeight(void); + +double CNF_GetCombineLimit(void); + +int CNF_AllowLocalReference(int *stratum, int *orphan, double *distance); + +void CNF_SetupAccessRestrictions(void); + +int CNF_GetSchedPriority(void); + +int CNF_GetLockMemory(void); + +int CNF_GetNTPRateLimit(int *interval, int *burst, int *leak); + +int CNF_GetCommandRateLimit(int *interval, int *burst, int *leak); + +void CNF_GetSmooth(double *max_freq_0, double *max_wander_0, int *leap_only); + +void CNF_GetTempComp(char **file, double *interval, char **point_file, + double *T0, double *k0, double *k1, double *k2); + +char *CNF_GetUser(void); + +int CNF_GetMaxSamples(void); + +int CNF_GetMinSamples(void); + +int CNF_GetMinSources(void); + +double CNF_GetRtcAutotrim(void); + +char *CNF_GetHwclockFile(void); + +int CNF_GetInitSources(void); + +double CNF_GetInitStepThreshold(void); + +int CNF_GetHwTsInterface(unsigned int index_0, CNF_HwTsInterface **iface); + +static ARR_Instance records; +static unsigned int slots; +static unsigned int max_slots; +static uint32_t ts_offset; +static uint16_t max_ntp_tokens; +static uint16_t max_cmd_tokens; +static uint16_t ntp_tokens_per_packet; +static uint16_t cmd_tokens_per_packet; +static int ntp_token_shift; +static int cmd_token_shift; +static int ntp_leak_rate; +static int cmd_leak_rate; +static int ntp_limit_interval; +static int active; +static uint32_t total_ntp_hits; +static uint32_t total_cmd_hits; +static uint32_t total_ntp_drops; +static uint32_t total_cmd_drops; +static uint32_t total_record_drops; +static int expand_hashtable(void); + +static int compare_ts(uint32_t x, uint32_t y) +{ + int __retres; + int tmp; + if (x == y) { + __retres = 0; + goto return_label; + } + if (y == (uint32_t)0) { + __retres = 1; + goto return_label; + } + if ((int)(x - y) > 0) tmp = 1; else tmp = -1; + __retres = tmp; + return_label: return __retres; +} + +static Record *get_record(IPAddr *ip) +{ + Record *__retres; + unsigned int first; + unsigned int i; + time_t last_hit; + Record *record; + Record *oldest_record; + uint32_t tmp_4; + uint32_t tmp_5; + uint16_t tmp_6; + int8_t tmp_7; + time_t oldest_hit = (long)0; + if (! active) { + __retres = (Record *)0; + goto return_label; + } + else + if ((int)ip->family != 1) + if ((int)ip->family != 2) { + __retres = (Record *)0; + goto return_label; + } + while (1) { + { + uint32_t tmp; + int tmp_3; + tmp = UTI_IPToHash(ip); + first = (tmp % slots) * (1U << 4); + i = (unsigned int)0; + oldest_record = (Record *)0; + while (i < 1U << 4) { + { + int tmp_0; + int tmp_1; + record = (Record *)ARR_GetElement(records,first + i); + tmp_0 = UTI_CompareIPs(ip,& record->ip_addr,(IPAddr *)0); + if (! tmp_0) { + __retres = record; + goto return_label; + } + if ((int)record->ip_addr.family == 0) break; + tmp_1 = compare_ts(record->last_ntp_hit,record->last_cmd_hit); + if (tmp_1 > 0) last_hit = (long)record->last_ntp_hit; + else last_hit = (long)record->last_cmd_hit; + if (! oldest_record) goto _LOR; + else { + int tmp_2; + tmp_2 = compare_ts((unsigned int)oldest_hit, + (unsigned int)last_hit); + if (tmp_2 > 0) goto _LOR; + else + if (oldest_hit == last_hit) + if (record->ntp_hits + record->cmd_hits < oldest_record->ntp_hits + oldest_record->cmd_hits) { + _LOR: { + oldest_record = record; + oldest_hit = last_hit; + } + } + } + } + i ++; + } + if ((int)record->ip_addr.family == 0) break; + tmp_3 = expand_hashtable(); + if (tmp_3) continue; + record = oldest_record; + total_record_drops += (uint32_t)1; + break; + } + } + record->ip_addr = *ip; + tmp_4 = (unsigned int)0; + record->last_cmd_hit = tmp_4; + record->last_ntp_hit = tmp_4; + tmp_5 = (unsigned int)0; + record->cmd_hits = tmp_5; + record->ntp_hits = tmp_5; + tmp_6 = (unsigned short)0; + record->cmd_drops = tmp_6; + record->ntp_drops = tmp_6; + record->ntp_tokens = max_ntp_tokens; + record->cmd_tokens = max_cmd_tokens; + tmp_7 = (signed char)(-128); + record->cmd_rate = tmp_7; + record->ntp_rate = tmp_7; + record->ntp_timeout_rate = (signed char)(-128); + record->flags = (unsigned char)0; + UTI_ZeroNtp64(& record->ntp_rx_ts); + UTI_ZeroNtp64(& record->ntp_tx_ts); + __retres = record; + return_label: return __retres; +} + +static int expand_hashtable(void) +{ + int __retres; + ARR_Instance old_records; + Record *old_record; + Record *new_record; + unsigned int i; + old_records = records; + if ((unsigned int)2 * slots > max_slots) { + __retres = 0; + goto return_label; + } + records = ARR_CreateInstance((unsigned int)sizeof(Record)); + if ((unsigned int)1 > (unsigned int)2 * slots) slots = (unsigned int)1; + else slots = (unsigned int)2 * slots; + __FC_assert((slots <= max_slots) != 0,"clientlog.c",245, + "slots <= max_slots"); + ARR_SetSize(records,slots * (1U << 4)); + i = (unsigned int)0; + while (i < slots * (1U << 4)) { + new_record = (Record *)ARR_GetElement(records,i); + new_record->ip_addr.family = (unsigned short)0; + i ++; + } + if (! old_records) { + __retres = 1; + goto return_label; + } + i = (unsigned int)0; + while (1) { + unsigned int tmp; + tmp = ARR_GetSize(old_records); + ; + if (! (i < tmp)) break; + old_record = (Record *)ARR_GetElement(old_records,i); + if ((int)old_record->ip_addr.family == 0) goto __Cont; + new_record = get_record(& old_record->ip_addr); + __FC_assert(new_record != (Record *)0,"clientlog.c",266,"new_record"); + *new_record = *old_record; + __Cont: i ++; + } + ARR_DestroyInstance(old_records); + __retres = 1; + return_label: return __retres; +} + +static void set_bucket_params(int interval, int burst, uint16_t *max_tokens, + uint16_t *tokens_per_packet, int *token_shift) +{ + int tmp; + int tmp_1; + if (interval < 12) tmp = interval; else tmp = 12; + if (-15 - 4 > tmp) interval = -15 - 4; + else { + int tmp_0; + if (interval < 12) tmp_0 = interval; else tmp_0 = 12; + interval = tmp_0; + } + if (burst < 255) tmp_1 = burst; else tmp_1 = 255; + if (1 > tmp_1) burst = 1; + else { + int tmp_2; + if (burst < 255) tmp_2 = burst; else tmp_2 = 255; + burst = tmp_2; + } + if (interval >= -4) { + *token_shift = 0; + while (*token_shift < interval + 4) { + if ((unsigned int)(burst << ((4 + interval) - *token_shift)) < 1U << 16) + break; + (*token_shift) ++; + } + } + else { + *token_shift = interval + 4; + *tokens_per_packet = (unsigned short)1; + if (1U << - *token_shift > (unsigned int)burst) burst = (int)(1U << - *token_shift); + else burst = burst; + } + *tokens_per_packet = (unsigned short)(1U << ((4 + interval) - *token_shift)); + *max_tokens = (unsigned short)((int)*tokens_per_packet * burst); + return; +} + +void CLG_Initialise(void) +{ + int interval; + int burst; + int leak_rate; + int tmp_3; + int tmp_6; + int tmp_8; + int tmp_7; + unsigned long tmp_9; + unsigned int tmp_10; + max_cmd_tokens = (unsigned short)0; + max_ntp_tokens = max_cmd_tokens; + cmd_tokens_per_packet = (unsigned short)0; + ntp_tokens_per_packet = cmd_tokens_per_packet; + cmd_token_shift = 0; + ntp_token_shift = cmd_token_shift; + cmd_leak_rate = 0; + ntp_leak_rate = cmd_leak_rate; + ntp_limit_interval = -15 - 4; + tmp_3 = CNF_GetNTPRateLimit(& interval,& burst,& leak_rate); + if (tmp_3) { + int tmp; + int tmp_1; + set_bucket_params(interval,burst,& max_ntp_tokens, + & ntp_tokens_per_packet,& ntp_token_shift); + if (leak_rate < 4) tmp = leak_rate; else tmp = 4; + if (1 > tmp) ntp_leak_rate = 1; + else { + int tmp_0; + if (leak_rate < 4) tmp_0 = leak_rate; else tmp_0 = 4; + ntp_leak_rate = tmp_0; + } + if (interval < 12) tmp_1 = interval; else tmp_1 = 12; + if (-15 - 4 > tmp_1) ntp_limit_interval = -15 - 4; + else { + int tmp_2; + if (interval < 12) tmp_2 = interval; else tmp_2 = 12; + ntp_limit_interval = tmp_2; + } + } + tmp_6 = CNF_GetCommandRateLimit(& interval,& burst,& leak_rate); + if (tmp_6) { + int tmp_4; + set_bucket_params(interval,burst,& max_cmd_tokens, + & cmd_tokens_per_packet,& cmd_token_shift); + if (leak_rate < 4) tmp_4 = leak_rate; else tmp_4 = 4; + if (1 > tmp_4) cmd_leak_rate = 1; + else { + int tmp_5; + if (leak_rate < 4) tmp_5 = leak_rate; else tmp_5 = 4; + cmd_leak_rate = tmp_5; + } + } + tmp_7 = CNF_GetNoClientLog(); + if (tmp_7) tmp_8 = 0; else tmp_8 = 1; + active = tmp_8; + if (! active) { + if (ntp_leak_rate) goto _LOR; + else + if (cmd_leak_rate) { + _LOR: + { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL, + "ratelimit cannot be used with noclientlog", + (void * const *)(__va_args)); + } + exit(1); + } + } + goto return_label; + } + tmp_9 = CNF_GetClientLogLimit(); + max_slots = (unsigned int)(tmp_9 / (((sizeof(Record) * (unsigned long)( + 1U << 4)) * (unsigned long)3) / (unsigned long)2)); + if (max_slots < 1U << (24 - 4)) tmp_10 = max_slots; + else tmp_10 = 1U << (24 - 4); + if ((unsigned int)1 > tmp_10) max_slots = (unsigned int)1; + else { + unsigned int tmp_11; + if (max_slots < 1U << (24 - 4)) tmp_11 = max_slots; + else tmp_11 = 1U << (24 - 4); + max_slots = tmp_11; + } + slots = (unsigned int)0; + records = (struct ARR_Instance_Record *)0; + expand_hashtable(); + UTI_GetRandomBytes((void *)(& ts_offset),(unsigned int)sizeof(ts_offset)); + ts_offset %= 1000000000U / (1U << 4); + return_label: return; +} + +void CLG_Finalise(void) +{ + if (! active) goto return_label; + ARR_DestroyInstance(records); + return_label: return; +} + +static uint32_t get_ts_from_timespec(struct timespec *ts) +{ + uint32_t __retres; + uint32_t sec = (unsigned int)ts->tv_sec; + uint32_t nsec = (unsigned int)ts->tv_nsec; + nsec += ts_offset; + if (nsec >= 1000000000U) { + nsec -= 1000000000U; + sec += (uint32_t)1; + } + __retres = (sec << 4) | (140740U * (nsec >> 15) >> (32 - 4)); + return __retres; +} + +static void update_record(struct timespec *now, uint32_t *last_hit, + uint32_t *hits, uint16_t *tokens, + uint32_t max_tokens, int token_shift, int8_t *rate) +{ + uint32_t interval; + uint32_t now_ts; + uint32_t prev_hit; + uint32_t new_tokens; + int interval2; + now_ts = get_ts_from_timespec(now); + prev_hit = *last_hit; + *last_hit = now_ts; + *hits += (uint32_t)1; + interval = now_ts - prev_hit; + if (prev_hit == (uint32_t)0) goto return_label; + else + if ((int)interval < 0) goto return_label; + if (token_shift >= 0) new_tokens = (now_ts >> token_shift) - (prev_hit >> token_shift); + else + if (now_ts - prev_hit > max_tokens) new_tokens = max_tokens; + else new_tokens = (now_ts - prev_hit) << - token_shift; + if ((uint32_t)*tokens + new_tokens < max_tokens) *tokens = (unsigned short)( + (uint32_t)*tokens + new_tokens); + else *tokens = (unsigned short)max_tokens; + if (interval) { + interval += interval >> 1; + interval2 = -4 * 4; + while (interval2 < - (-14 * 4)) { + if (interval <= (uint32_t)1) break; + interval >>= 1; + interval2 += 4; + } + } + else interval2 = -4 * (4 + 1); + if ((int)*rate == -128) *rate = (signed char)(- interval2); + else + if ((int)*rate < - interval2) *rate = (int8_t)((int)*rate + 1); + else + if ((int)*rate > - interval2) + if ((int)*rate > (4 * 5) / 2 - interval2) *rate = (signed char)( + (4 * 5) / 2 - interval2); + else *rate = (signed char)((((int)*rate - interval2) - 1) / 2); + return_label: return; +} + +static int get_index(Record *record) +{ + int __retres; + void *tmp; + tmp = ARR_GetElements(records); + ; + __retres = (int)(record - (Record *)tmp); + return __retres; +} + +int CLG_GetClientIndex(IPAddr *client) +{ + int __retres; + Record *record; + int tmp; + record = get_record(client); + if (record == (Record *)0) { + __retres = -1; + goto return_label; + } + tmp = get_index(record); + __retres = tmp; + return_label: return __retres; +} + +int CLG_LogNTPAccess(IPAddr *client, struct timespec *now) +{ + int __retres; + Record *record; + int8_t *tmp; + int tmp_0; + total_ntp_hits += (uint32_t)1; + record = get_record(client); + if (record == (Record *)0) { + __retres = -1; + goto return_label; + } + if ((int)record->flags & 0x1) tmp = & record->ntp_timeout_rate; + else tmp = & record->ntp_rate; + ; + ; + ; + ; + ; + ; + update_record(now,& record->last_ntp_hit,& record->ntp_hits, + & record->ntp_tokens,(unsigned int)max_ntp_tokens, + ntp_token_shift,tmp); + tmp_0 = get_index(record); + __retres = tmp_0; + return_label: return __retres; +} + +int CLG_LogCommandAccess(IPAddr *client, struct timespec *now) +{ + int __retres; + Record *record; + int tmp; + total_cmd_hits += (uint32_t)1; + record = get_record(client); + if (record == (Record *)0) { + __retres = -1; + goto return_label; + } + update_record(now,& record->last_cmd_hit,& record->cmd_hits, + & record->cmd_tokens,(unsigned int)max_cmd_tokens, + cmd_token_shift,& record->cmd_rate); + tmp = get_index(record); + __retres = tmp; + return_label: return __retres; +} + +static uint32_t limit_response_random_rnd; +static int limit_response_random(int leak_rate); + +static int limit_response_random_bits_left = 0; +static int limit_response_random(int leak_rate) +{ + int r; + if (limit_response_random_bits_left < leak_rate) { + UTI_GetRandomBytes((void *)(& limit_response_random_rnd), + (unsigned int)sizeof(limit_response_random_rnd)); + limit_response_random_bits_left = (int)((unsigned long)8 * sizeof(limit_response_random_rnd)); + } + if (limit_response_random_rnd % (1U << leak_rate)) r = 1; else r = 0; + limit_response_random_rnd >>= leak_rate; + limit_response_random_bits_left -= leak_rate; + return r; +} + +int CLG_LimitNTPResponseRate(int index_0) +{ + int __retres; + Record *record; + int drop; + if (! ntp_tokens_per_packet) { + __retres = 0; + goto return_label; + } + record = (Record *)ARR_GetElement(records,(unsigned int)index_0); + record->flags = (unsigned char)((int)record->flags & ~ 0x1); + if ((int)record->ntp_tokens >= (int)ntp_tokens_per_packet) { + record->ntp_tokens = (unsigned short)((int)record->ntp_tokens - (int)ntp_tokens_per_packet); + __retres = 0; + goto return_label; + } + drop = limit_response_random(ntp_leak_rate); + if ((int)record->ntp_timeout_rate != -128) + if ((int)record->ntp_timeout_rate > (int)record->ntp_rate + 4) drop = ! drop; + if (! drop) { + record->ntp_tokens = (unsigned short)0; + __retres = 0; + goto return_label; + } + record->flags = (unsigned char)((int)record->flags | 0x1); + record->ntp_drops = (uint16_t)((int)record->ntp_drops + 1); + total_ntp_drops += (uint32_t)1; + __retres = 1; + return_label: return __retres; +} + +int CLG_LimitCommandResponseRate(int index_0) +{ + int __retres; + Record *record; + int tmp; + if (! cmd_tokens_per_packet) { + __retres = 0; + goto return_label; + } + record = (Record *)ARR_GetElement(records,(unsigned int)index_0); + if ((int)record->cmd_tokens >= (int)cmd_tokens_per_packet) { + record->cmd_tokens = (unsigned short)((int)record->cmd_tokens - (int)cmd_tokens_per_packet); + __retres = 0; + goto return_label; + } + tmp = limit_response_random(cmd_leak_rate); + if (! tmp) { + record->cmd_tokens = (unsigned short)0; + __retres = 0; + goto return_label; + } + record->cmd_drops = (uint16_t)((int)record->cmd_drops + 1); + total_cmd_drops += (uint32_t)1; + __retres = 1; + return_label: return __retres; +} + +void CLG_GetNtpTimestamps(int index_0, NTP_int64 **rx_ts, NTP_int64 **tx_ts) +{ + Record *record; + record = (Record *)ARR_GetElement(records,(unsigned int)index_0); + *rx_ts = & record->ntp_rx_ts; + *tx_ts = & record->ntp_tx_ts; + return; +} + +int CLG_GetNtpMinPoll(void) +{ + return ntp_limit_interval; +} + +int CLG_GetNumberOfIndices(void) +{ + int __retres; + unsigned int tmp; + if (! active) { + __retres = -1; + goto return_label; + } + tmp = ARR_GetSize(records); + __retres = (int)tmp; + return_label: return __retres; +} + +static int get_interval(int rate) +{ + int __retres; + int tmp; + if (rate == -128) { + __retres = 127; + goto return_label; + } + if (rate > 0) tmp = 4 / 2; else tmp = -4 / 2; + rate += tmp; + __retres = rate / -4; + return_label: return __retres; +} + +static uint32_t get_last_ago(uint32_t x, uint32_t y) +{ + uint32_t __retres; + if (y == (uint32_t)0) { + __retres = (unsigned int)(-1); + goto return_label; + } + else + if ((int)(x - y) < 0) { + __retres = (unsigned int)(-1); + goto return_label; + } + __retres = (x - y) >> 4; + return_label: return __retres; +} + +int CLG_GetClientAccessReportByIndex(int index_0, + RPT_ClientAccessByIndex_Report *report, + struct timespec *now) +{ + int __retres; + Record *record; + uint32_t now_ts; + int tmp_0; + int tmp_1; + int tmp_2; + if (! active) { + __retres = 0; + goto return_label; + } + else + if (index_0 < 0) { + __retres = 0; + goto return_label; + } + else { + unsigned int tmp; + tmp = ARR_GetSize(records); + ; + if ((unsigned int)index_0 >= tmp) { + __retres = 0; + goto return_label; + } + } + record = (Record *)ARR_GetElement(records,(unsigned int)index_0); + if ((int)record->ip_addr.family == 0) { + __retres = 0; + goto return_label; + } + now_ts = get_ts_from_timespec(now); + report->ip_addr = record->ip_addr; + report->ntp_hits = record->ntp_hits; + report->cmd_hits = record->cmd_hits; + report->ntp_drops = record->ntp_drops; + report->cmd_drops = record->cmd_drops; + tmp_0 = get_interval((int)record->ntp_rate); + report->ntp_interval = (signed char)tmp_0; + tmp_1 = get_interval((int)record->cmd_rate); + report->cmd_interval = (signed char)tmp_1; + tmp_2 = get_interval((int)record->ntp_timeout_rate); + report->ntp_timeout_interval = (signed char)tmp_2; + report->last_ntp_hit_ago = get_last_ago(now_ts,record->last_ntp_hit); + report->last_cmd_hit_ago = get_last_ago(now_ts,record->last_cmd_hit); + __retres = 1; + return_label: return __retres; +} + +void CLG_GetServerStatsReport(RPT_ServerStatsReport *report) +{ + report->ntp_hits = total_ntp_hits; + report->cmd_hits = total_cmd_hits; + report->ntp_drops = total_ntp_drops; + report->cmd_drops = total_cmd_drops; + report->log_drops = total_record_drops; + return; +} + +void SST_Initialise(void); + +void SST_Finalise(void); + +SST_Stats SST_CreateInstance(uint32_t refid, IPAddr *addr, int min_samples_0, + int max_samples_0, double min_delay, + double asymmetry); + +void SST_DeleteInstance(SST_Stats inst); + +void SST_ResetInstance(SST_Stats inst); + +void SST_SetRefid(SST_Stats inst, uint32_t refid, IPAddr *addr); + +void SST_AccumulateSample(SST_Stats inst, NTP_Sample *sample); + +void SST_DoNewRegression(SST_Stats inst); + +void SST_GetFrequencyRange(SST_Stats inst, double *lo, double *hi); + +void SST_GetSelectionData(SST_Stats inst, struct timespec *now, int *stratum, + NTP_Leap *leap, double *offset_lo_limit, + double *offset_hi_limit, double *root_distance, + double *std_dev, double *first_sample_ago, + double *last_sample_ago, int *select_ok); + +void SST_GetTrackingData(SST_Stats inst, struct timespec *ref_time, + double *average_offset, double *offset_sd, + double *frequency, double *frequency_sd, + double *skew, double *root_delay, + double *root_dispersion); + +void SST_SlewSamples(SST_Stats inst, struct timespec *when, double dfreq, + double doffset); + +void SST_AddDispersion(SST_Stats inst, double dispersion); + +double SST_PredictOffset(SST_Stats inst, struct timespec *when); + +double SST_MinRoundTripDelay(SST_Stats inst); + +int SST_GetDelayTestData(SST_Stats inst, struct timespec *sample_time, + double *last_sample_ago, double *predicted_offset, + double *min_delay, double *skew, double *std_dev); + +void SST_SaveToFile(SST_Stats inst, FILE *out); + +int SST_LoadFromFile(SST_Stats inst, FILE *in); + +void SST_DoSourceReport(SST_Stats inst, RPT_SourceReport *report, + struct timespec *now); + +void SST_DoSourcestatsReport(SST_Stats inst, RPT_SourcestatsReport *report, + struct timespec *now); + +int SST_Samples(SST_Stats inst); + +double SST_GetJitterAsymmetry(SST_Stats inst); + +void SRC_Initialise(void); + +void SRC_Finalise(void); + +SRC_Instance SRC_CreateNewInstance(uint32_t ref_id, SRC_Type type, + int sel_options, IPAddr *addr, + int min_samples_0, int max_samples_0, + double min_delay, double asymmetry); + +void SRC_DestroyInstance(SRC_Instance instance); + +void SRC_ResetInstance(SRC_Instance instance); + +void SRC_SetRefid(SRC_Instance instance, uint32_t ref_id, IPAddr *addr); + +SST_Stats SRC_GetSourcestats(SRC_Instance instance); + +void SRC_AccumulateSample(SRC_Instance inst, NTP_Sample *sample); + +void SRC_SetActive(SRC_Instance inst); + +void SRC_UnsetActive(SRC_Instance inst); + +void SRC_UpdateReachability(SRC_Instance inst, int reachable); + +void SRC_ResetReachability(SRC_Instance inst); + +void SRC_SelectSource(SRC_Instance updated_inst); + +void SRC_ReselectSource(void); + +void SRC_SetReselectDistance(double distance); + +void SRC_DumpSources(void); + +void SRC_ReloadSources(void); + +void SRC_RemoveDumpFiles(void); + +int SRC_IsSyncPeer(SRC_Instance inst); + +int SRC_IsReachable(SRC_Instance inst); + +int SRC_ReadNumberOfSources(void); + +int SRC_ActiveSources(void); + +int SRC_ReportSource(int index_0, RPT_SourceReport *report, + struct timespec *now); + +int SRC_ReportSourcestats(int index_0, RPT_SourcestatsReport *report, + struct timespec *now); + +SRC_Type SRC_GetType(int index_0); + +int CPS_ParseNTPSourceAdd(char *line, CPS_NTP_Source *src); + +int CPS_ParseLocal(char *line, int *stratum, int *orphan, double *distance); + +void CPS_NormalizeLine(char *line); + +char *CPS_SplitWord(char *line); + +int CPS_ParseKey(char *line, uint32_t *id, char const **hash, char **key); + +void DNS_SetAddressFamily(int family); + +DNS_Status DNS_Name2IPAddress(char const *name, IPAddr *ip_addrs, + int max_addrs); + +int DNS_IPAddress2Name(IPAddr *ip_addr, char *name, int len); + +void DNS_Reload(void); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_1(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_2(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_3(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_4(char const * __restrict s, char const * __restrict format, + unsigned short *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_5(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_6(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_7(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_8(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_9(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_10(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_11(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_12(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_13(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_14(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_15(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_16(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_17(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_18(char const * __restrict s, char const * __restrict format, + unsigned int *param0, int *param1); + +int CPS_ParseNTPSourceAdd(char *line, CPS_NTP_Source *src) +{ + int __retres; + char *hostname; + char *cmd; + int n; + src->port = (unsigned short)123; + src->params.minpoll = 6; + src->params.maxpoll = 10; + src->params.connectivity = SRC_ONLINE; + src->params.auto_offline = 0; + src->params.presend_minpoll = 100; + src->params.burst = 0; + src->params.iburst = 0; + src->params.min_stratum = 0; + src->params.poll_target = 8; + src->params.version = 0; + src->params.max_sources = 4; + src->params.min_samples = -1; + src->params.max_samples = -1; + src->params.filter_length = 0; + src->params.interleaved = 0; + src->params.sel_options = 0; + src->params.authkey = (unsigned int)0; + src->params.max_delay = 3.0; + src->params.max_delay_ratio = 0.0; + src->params.max_delay_dev_ratio = 10.0; + src->params.min_delay = 0.0; + src->params.asymmetry = 1.0; + src->params.offset = 0.0; + hostname = line; + line = CPS_SplitWord(line); + if (! *hostname) { + __retres = 0; + goto return_label; + } + src->name = hostname; + while (*line) { + { + int tmp_43; + cmd = line; + line = CPS_SplitWord(line); + n = 0; + tmp_43 = strcasecmp((char const *)cmd,"auto_offline"); + if (tmp_43) { + int tmp_42; + tmp_42 = strcasecmp((char const *)cmd,"burst"); + if (tmp_42) { + int tmp_41; + tmp_41 = strcasecmp((char const *)cmd,"iburst"); + if (tmp_41) { + int tmp_40; + tmp_40 = strcasecmp((char const *)cmd,"offline"); + if (tmp_40) { + int tmp_39; + tmp_39 = strcasecmp((char const *)cmd,"noselect"); + if (tmp_39) { + int tmp_38; + tmp_38 = strcasecmp((char const *)cmd,"prefer"); + if (tmp_38) { + int tmp_37; + tmp_37 = strcasecmp((char const *)cmd,"require"); + if (tmp_37) { + int tmp_36; + tmp_36 = strcasecmp((char const *)cmd,"trust"); + if (tmp_36) { + int tmp_35; + tmp_35 = strcasecmp((char const *)cmd,"key"); + if (tmp_35) { + int tmp_34; + tmp_34 = strcasecmp((char const *)cmd,"asymmetry"); + if (tmp_34) { + int tmp_33; + tmp_33 = strcasecmp((char const *)cmd,"filter"); + if (tmp_33) { + int tmp_32; + tmp_32 = strcasecmp((char const *)cmd,"maxdelay"); + if (tmp_32) { + int tmp_31; + tmp_31 = strcasecmp((char const *)cmd, + "maxdelayratio"); + if (tmp_31) { + int tmp_30; + tmp_30 = strcasecmp((char const *)cmd, + "maxdelaydevratio"); + if (tmp_30) { + int tmp_29; + tmp_29 = strcasecmp((char const *)cmd, + "maxpoll"); + if (tmp_29) { + int tmp_28; + tmp_28 = strcasecmp((char const *)cmd, + "maxsamples"); + if (tmp_28) { + int tmp_27; + tmp_27 = strcasecmp((char const *)cmd, + "maxsources"); + if (tmp_27) { + int tmp_26; + tmp_26 = strcasecmp((char const *)cmd, + "mindelay"); + if (tmp_26) { + int tmp_25; + tmp_25 = strcasecmp((char const *)cmd, + "minpoll"); + if (tmp_25) { + int tmp_24; + tmp_24 = strcasecmp((char const *)cmd, + "minsamples"); + if (tmp_24) { + int tmp_23; + tmp_23 = strcasecmp((char const *)cmd, + "minstratum"); + if (tmp_23) { + int tmp_22; + tmp_22 = strcasecmp((char const *)cmd, + "offset"); + if (tmp_22) { + int tmp_21; + tmp_21 = strcasecmp + ((char const *)cmd,"port"); + if (tmp_21) { + int tmp_20; + tmp_20 = strcasecmp + ((char const *)cmd, + "polltarget"); + if (tmp_20) { + int tmp_19; + tmp_19 = strcasecmp + ((char const *)cmd, + "presend"); + if (tmp_19) { + int tmp_18; + tmp_18 = strcasecmp + ((char const *)cmd, + "version"); + if (tmp_18) { + int tmp_17; + tmp_17 = strcasecmp + ((char const *)cmd, + "xleave"); + if (tmp_17) { + __retres = 0; + goto return_label; + } + else src->params.interleaved = 1; + } + else { + int tmp_16; + tmp_16 = sscanf_va_1 + ((char const *)line, + "%d%n", + & src->params.version, + & n); + if (tmp_16 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_15; + tmp_15 = sscanf_va_2 + ((char const *)line, + "%d%n", + & src->params.presend_minpoll, + & n); + if (tmp_15 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_14; + tmp_14 = sscanf_va_3 + ((char const *)line, + "%d%n", + & src->params.poll_target, + & n); + if (tmp_14 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_13; + tmp_13 = sscanf_va_4 + ((char const *)line, + "%hu%n",& src->port,& n); + if (tmp_13 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_12; + tmp_12 = sscanf_va_5 + ((char const *)line, + "%lf%n", + & src->params.offset,& n); + if (tmp_12 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_11; + tmp_11 = sscanf_va_6((char const *)line, + "%d%n", + & src->params.min_stratum, + & n); + if (tmp_11 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_10; + tmp_10 = sscanf_va_7((char const *)line, + "%d%n", + & src->params.min_samples, + & n); + if (tmp_10 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_9; + tmp_9 = sscanf_va_8((char const *)line, + "%d%n", + & src->params.minpoll, + & n); + if (tmp_9 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_8; + tmp_8 = sscanf_va_9((char const *)line, + "%lf%n", + & src->params.min_delay, + & n); + if (tmp_8 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_7; + tmp_7 = sscanf_va_10((char const *)line, + "%d%n", + & src->params.max_sources, + & n); + if (tmp_7 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_6; + tmp_6 = sscanf_va_11((char const *)line, + "%d%n", + & src->params.max_samples, + & n); + if (tmp_6 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_5; + tmp_5 = sscanf_va_12((char const *)line, + "%d%n", + & src->params.maxpoll, + & n); + if (tmp_5 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_4; + tmp_4 = sscanf_va_13((char const *)line, + "%lf%n", + & src->params.max_delay_dev_ratio, + & n); + if (tmp_4 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_3; + tmp_3 = sscanf_va_14((char const *)line, + "%lf%n", + & src->params.max_delay_ratio, + & n); + if (tmp_3 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_2; + tmp_2 = sscanf_va_15((char const *)line, + "%lf%n", + & src->params.max_delay, + & n); + if (tmp_2 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_1; + tmp_1 = sscanf_va_16((char const *)line,"%d%n", + & src->params.filter_length, + & n); + if (tmp_1 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_0; + tmp_0 = sscanf_va_17((char const *)line,"%lf%n", + & src->params.asymmetry,& n); + if (tmp_0 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp; + tmp = sscanf_va_18((char const *)line,"%u%n", + (unsigned int *)(& src->params.authkey), + & n); + if (tmp != 1) { + __retres = 0; + goto return_label; + } + else + if (src->params.authkey == (uint32_t)0) { + __retres = 0; + goto return_label; + } + } + } + else src->params.sel_options |= 0x4; + } + else src->params.sel_options |= 0x8; + } + else src->params.sel_options |= 0x2; + } + else src->params.sel_options |= 0x1; + } + else src->params.connectivity = SRC_OFFLINE; + } + else src->params.iburst = 1; + } + else src->params.burst = 1; + } + else src->params.auto_offline = 1; + } + line += n; + } + __retres = 1; + return_label: return __retres; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_19(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_20(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +int CPS_ParseLocal(char *line, int *stratum, int *orphan, double *distance) +{ + int __retres; + int n; + char *cmd; + *stratum = 10; + *distance = 1.0; + *orphan = 0; + while (*line) { + int tmp_3; + cmd = line; + line = CPS_SplitWord(line); + tmp_3 = strcasecmp((char const *)cmd,"stratum"); + if (tmp_3) { + int tmp_2; + tmp_2 = strcasecmp((char const *)cmd,"orphan"); + if (tmp_2) { + int tmp_1; + tmp_1 = strcasecmp((char const *)cmd,"distance"); + if (tmp_1) { + __retres = 0; + goto return_label; + } + else { + int tmp_0; + tmp_0 = sscanf_va_19((char const *)line,"%lf%n",distance,& n); + if (tmp_0 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + *orphan = 1; + n = 0; + } + } + else { + int tmp; + tmp = sscanf_va_20((char const *)line,"%d%n",stratum,& n); + if (tmp != 1) { + __retres = 0; + goto return_label; + } + else + if (*stratum >= 16) { + __retres = 0; + goto return_label; + } + else + if (*stratum <= 0) { + __retres = 0; + goto return_label; + } + } + line += n; + } + __retres = 1; + return_label: return __retres; +} + +void CPS_NormalizeLine(char *line) +{ + char *p; + char *q; + int space = 1; + int first = 1; + q = line; + p = q; + while (*p) { + { + int tmp_0; + char *tmp_2; + tmp_0 = isspace((int)((unsigned char)*p)); + if (tmp_0) { + if (! space) { + char *tmp; + tmp = q; + q ++; + *tmp = (char)' '; + } + space = 1; + goto __Cont; + } + if (first) { + char *tmp_1; + tmp_1 = strchr("!;#%",(int)*p); + if (tmp_1) break; + } + tmp_2 = q; + q ++; + *tmp_2 = *p; + first = 0; + space = first; + } + __Cont: p ++; + } + if (q > line) + if ((int)*(q + -1) == ' ') q --; + *q = (char)'\000'; + return; +} + +char *CPS_SplitWord(char *line) +{ + char *p = line; + char *q = line; + while (1) { + if (*q) { + int tmp; + tmp = isspace((int)((unsigned char)*q)); + if (! tmp) break; + } + else break; + q ++; + } + while (1) { + char *tmp_0; + char *tmp_1; + if (*q) { + int tmp_2; + tmp_2 = isspace((int)((unsigned char)*q)); + if (tmp_2) break; + } + else break; + tmp_0 = p; + p ++; + tmp_1 = q; + q ++; + *tmp_0 = *tmp_1; + } + while (1) { + if (*q) { + int tmp_3; + tmp_3 = isspace((int)((unsigned char)*q)); + if (! tmp_3) break; + } + else break; + q ++; + } + *p = (char)'\000'; + return q; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_21(char const * __restrict s, char const * __restrict format, + unsigned int *param0); + +int CPS_ParseKey(char *line, uint32_t *id, char const **hash, char **key) +{ + int __retres; + char *s1; + char *s2; + char *s3; + char *s4; + int tmp; + s1 = line; + s2 = CPS_SplitWord(s1); + s3 = CPS_SplitWord(s2); + s4 = CPS_SplitWord(s3); + if (! *s2) { + __retres = 0; + goto return_label; + } + else + if (*s4) { + __retres = 0; + goto return_label; + } + tmp = sscanf_va_21((char const *)s1,"%u",(unsigned int *)id); + if (tmp != 1) { + __retres = 0; + goto return_label; + } + if (*s3) { + *hash = (char const *)s2; + *key = s3; + } + else { + *hash = "MD5"; + *key = s2; + } + __retres = 1; + return_label: return __retres; +} + +void NCR_Initialise(void); + +void NCR_Finalise(void); + +NCR_Instance NCR_GetInstance(NTP_Remote_Address *remote_addr, + NTP_Source_Type type, SourceParameters *params); + +void NCR_DestroyInstance(NCR_Instance instance); + +void NCR_StartInstance(NCR_Instance instance); + +void NCR_ResetInstance(NCR_Instance instance); + +void NCR_ResetPoll(NCR_Instance instance); + +void NCR_ChangeRemoteAddress(NCR_Instance inst, + NTP_Remote_Address *remote_addr); + +int NCR_ProcessRxKnown(NCR_Instance inst, NTP_Local_Address *local_addr, + NTP_Local_Timestamp *rx_ts, NTP_Packet *message, + int length); + +void NCR_ProcessRxUnknown(NTP_Remote_Address *remote_addr, + NTP_Local_Address *local_addr, + NTP_Local_Timestamp *rx_ts, NTP_Packet *message, + int length); + +void NCR_ProcessTxKnown(NCR_Instance inst, NTP_Local_Address *local_addr, + NTP_Local_Timestamp *tx_ts, NTP_Packet *message, + int length); + +void NCR_ProcessTxUnknown(NTP_Remote_Address *remote_addr, + NTP_Local_Address *local_addr, + NTP_Local_Timestamp *tx_ts, NTP_Packet *message, + int length); + +void NCR_SlewTimes(NCR_Instance inst, struct timespec *when, double dfreq, + double doffset); + +void NCR_SetConnectivity(NCR_Instance inst, SRC_Connectivity connectivity); + +void NCR_ModifyMinpoll(NCR_Instance inst, int new_minpoll); + +void NCR_ModifyMaxpoll(NCR_Instance inst, int new_maxpoll); + +void NCR_ModifyMaxdelay(NCR_Instance inst, double new_max_delay); + +void NCR_ModifyMaxdelayratio(NCR_Instance inst, double new_max_delay_ratio); + +void NCR_ModifyMaxdelaydevratio(NCR_Instance inst, + double new_max_delay_dev_ratio); + +void NCR_ModifyMinstratum(NCR_Instance inst, int new_min_stratum); + +void NCR_ModifyPolltarget(NCR_Instance inst, int new_poll_target); + +void NCR_InitiateSampleBurst(NCR_Instance inst, int n_good_samples, + int n_total_samples); + +void NCR_ReportSource(NCR_Instance inst, RPT_SourceReport *report, + struct timespec *now); + +void NCR_GetNTPReport(NCR_Instance inst, RPT_NTPReport *report); + +int NCR_AddAccessRestriction(IPAddr *ip_addr, int subnet_bits, int allow, + int all); + +int NCR_CheckAccessRestriction(IPAddr *ip_addr); + +void NCR_IncrementActivityCounters(NCR_Instance inst, int *online, + int *offline, int *burst_online, + int *burst_offline); + +NTP_Remote_Address *NCR_GetRemoteAddress(NCR_Instance inst); + +uint32_t NCR_GetLocalRefid(NCR_Instance inst); + +int NCR_IsSyncPeer(NCR_Instance inst); + +void NCR_AddBroadcastDestination(IPAddr *addr, unsigned short port, + int interval); + +extern NSR_Status NSR_AddSource(NTP_Remote_Address *remote_addr, + NTP_Source_Type type, + SourceParameters *params); + +extern void NSR_AddSourceByName(char *name, int port, int pool, + NTP_Source_Type type, + SourceParameters *params); + +extern void NSR_HandleBadSource(IPAddr *address); + +extern uint32_t NSR_GetLocalRefid(IPAddr *address); + +extern void NSR_ProcessRx(NTP_Remote_Address *remote_addr, + NTP_Local_Address *local_addr, + NTP_Local_Timestamp *rx_ts, NTP_Packet *message, + int length); + +extern int RCL_AddRefclock(RefclockParameters *params); + +extern int CAM_AddAccessRestriction(IPAddr *ip_addr, int subnet_bits, + int allow, int all); + +static int parse_string(char *line, char **result); + +static int parse_int(char *line, int *result); + +static int parse_double(char *line, double *result); + +static int parse_null(char *line); + +static void parse_allow_deny(char *line, ARR_Instance restrictions, int allow); + +static void parse_bindacqaddress(char *line); + +static void parse_bindaddress(char *line); + +static void parse_bindcmdaddress(char *line); + +static void parse_broadcast(char *line); + +static void parse_clientloglimit(char *line); + +static void parse_fallbackdrift(char *line); + +static void parse_hwtimestamp(char *line); + +static void parse_include(char *line); + +static void parse_initstepslew(char *line); + +static void parse_leapsecmode(char *line); + +static void parse_local(char *line); + +static void parse_log(char *line); + +static void parse_mailonchange(char *line); + +static void parse_makestep(char *line); + +static void parse_maxchange(char *line); + +static void parse_ratelimit(char *line, int *enabled_0, int *interval, + int *burst, int *leak); + +static void parse_refclock(char *line); + +static void parse_smoothtime(char *line); + +static void parse_source(char *line, NTP_Source_Type type, int pool); + +static void parse_tempcomp(char *line); + +static int restarted = 0; +static char *rtc_device; +static int acquisition_port = -1; +static int ntp_port = 123; +static char *keys_file = (char *)0; +static char *drift_file = (char *)0; +static char *rtc_file = (char *)0; +static double max_update_skew = 1000.0; +static double correction_time_ratio = 3.0; +static double max_clock_error = 1.0; +static double max_drift = 500000.0; +static double max_slew_rate = 1e6 / 12.0; +static double max_distance = 3.0; +static double max_jitter = 1.0; +static double reselect_distance = 1e-4; +static double stratum_weight = 1e-3; +static double combine_limit = 3.0; +static int cmd_port = 323; +static int raw_measurements = 0; +static int do_log_measurements = 0; +static int do_log_statistics = 0; +static int do_log_tracking = 0; +static int do_log_rtc = 0; +static int do_log_refclocks = 0; +static int do_log_tempcomp = 0; +static int log_banner = 32; +static char *logdir; +static char *dumpdir; +static int enable_local = 0; +static int local_stratum; +static int local_orphan; +static double local_distance; +static double init_slew_threshold; +static ARR_Instance init_sources; +static int enable_manual = 0; +static int rtc_on_utc = 0; +static char *hwclock_file; +static int rtc_sync = 0; +static int make_step_limit = 0; +static double make_step_threshold = 0.0; +static double rtc_autotrim_threshold = 0.0; +static int min_sources = 1; +static int max_offset_delay = -1; +static int max_offset_ignore; +static double max_offset; +static int max_samples = 0; +static int min_samples = 6; +static double log_change_threshold = 1.0; +static char *mail_user_on_change = (char *)0; +static double mail_change_threshold = 0.0; +static int no_client_log = 0; +static unsigned long client_log_limit = (unsigned long)524288; +static int fb_drift_min = 0; +static int fb_drift_max = 0; +static IPAddr bind_address4; +static IPAddr bind_address6; +static IPAddr bind_acq_address4; +static IPAddr bind_acq_address6; +static IPAddr bind_cmd_address4; +static IPAddr bind_cmd_address6; +static char *bind_cmd_path; +static char *ntp_signd_socket = (char *)0; +static char *pidfile; +static int ntp_ratelimit_enabled = 0; +static int ntp_ratelimit_interval = 3; +static int ntp_ratelimit_burst = 8; +static int ntp_ratelimit_leak = 2; +static int cmd_ratelimit_enabled = 0; +static int cmd_ratelimit_interval = -4; +static int cmd_ratelimit_burst = 8; +static int cmd_ratelimit_leak = 2; +static double smooth_max_freq = 0.0; +static double smooth_max_wander = 0.0; +static int smooth_leap_only = 0; +static char *tempcomp_sensor_file = (char *)0; +static char *tempcomp_point_file = (char *)0; +static double tempcomp_interval; +static double tempcomp_T0; +static double tempcomp_k0; +static double tempcomp_k1; +static double tempcomp_k2; +static int sched_priority = 0; +static int lock_memory = 0; +static REF_LeapMode leapsec_mode = REF_LeapModeSystem; +static char *leapsec_tz = (char *)0; +static char *user; +static ARR_Instance hwts_interfaces; +static ARR_Instance ntp_sources; +static ARR_Instance refclock_sources; +static ARR_Instance ntp_restrictions; +static ARR_Instance cmd_restrictions; +static ARR_Instance broadcasts; +static int line_number; +static char const *processed_file; +static char const *processed_command; +static void command_parse_error(void) +{ + char const *tmp; + char const *tmp_0; + if (processed_file) tmp = processed_file; else tmp = ""; + if (processed_file) tmp_0 = " in file "; else tmp_0 = ""; + ; + ; + { + char const *__va_arg0 = processed_command; + int __va_arg1 = line_number; + char const *__va_arg2 = tmp_0; + char const *__va_arg3 = tmp; + void *__va_args[4] = + {& __va_arg0, & __va_arg1, & __va_arg2, & __va_arg3}; + LOG_Message(LOGS_FATAL,"Could not parse %s directive at line %d%s%s", + (void * const *)(__va_args)); + } + exit(1); + return; +} + +static void other_parse_error(char const *message) +{ + char const *tmp; + char const *tmp_0; + if (processed_file) tmp = processed_file; else tmp = ""; + if (processed_file) tmp_0 = " in file "; else tmp_0 = ""; + ; + ; + { + char const *__va_arg0 = message; + int __va_arg1 = line_number; + char const *__va_arg2 = tmp_0; + char const *__va_arg3 = tmp; + void *__va_args[4] = + {& __va_arg0, & __va_arg1, & __va_arg2, & __va_arg3}; + LOG_Message(LOGS_FATAL,"%s at line %d%s%s",(void * const *)(__va_args)); + } + exit(1); + return; +} + +static int get_number_of_args(char *line) +{ + int num = 0; + if ((int)*line == ' ') line ++; + if (*line) num ++; + while (*line) { + if ((int)*line == ' ') num ++; + line ++; + } + return num; +} + +static void check_number_of_args(char *line, int num) +{ + int tmp; + tmp = get_number_of_args(line); + num -= tmp; + if (num) { + char const *tmp_0; + char const *tmp_1; + char const *tmp_2; + if (processed_file) tmp_0 = processed_file; else tmp_0 = ""; + if (processed_file) tmp_1 = " in file "; else tmp_1 = ""; + ; + ; + if (num > 0) tmp_2 = "Missing"; else tmp_2 = "Too many"; + { + char const *__va_arg0 = tmp_2; + char const *__va_arg1 = processed_command; + int __va_arg2 = line_number; + char const *__va_arg3 = tmp_1; + char const *__va_arg4 = tmp_0; + void *__va_args[5] = + {& __va_arg0, & __va_arg1, & __va_arg2, & __va_arg3, & __va_arg4}; + LOG_Message(LOGS_FATAL,"%s arguments for %s directive at line %d%s%s", + (void * const *)(__va_args)); + } + exit(1); + } + return; +} + +void CNF_Initialise(int r, int client_only) +{ + restarted = r; + hwts_interfaces = ARR_CreateInstance((unsigned int)sizeof(CNF_HwTsInterface)); + init_sources = ARR_CreateInstance((unsigned int)sizeof(IPAddr)); + ntp_sources = ARR_CreateInstance((unsigned int)sizeof(NTP_Source)); + refclock_sources = ARR_CreateInstance((unsigned int)sizeof(RefclockParameters)); + broadcasts = ARR_CreateInstance((unsigned int)sizeof(NTP_Broadcast_Destination)); + ntp_restrictions = ARR_CreateInstance((unsigned int)sizeof(AllowDeny)); + cmd_restrictions = ARR_CreateInstance((unsigned int)sizeof(AllowDeny)); + dumpdir = Strdup(""); + logdir = Strdup(""); + rtc_device = Strdup("/dev/rtc"); + hwclock_file = Strdup(""); + user = Strdup("root"); + if (client_only) { + ntp_port = 0; + cmd_port = ntp_port; + bind_cmd_path = Strdup(""); + pidfile = Strdup(""); + } + else { + bind_cmd_path = Strdup("/var/run/chrony/chronyd.sock"); + pidfile = Strdup("/var/run/chronyd.pid"); + } + return; +} + +void CNF_Finalise(void) +{ + unsigned int i; + i = (unsigned int)0; + while (1) { + unsigned int tmp_0; + void *tmp; + tmp_0 = ARR_GetSize(hwts_interfaces); + ; + if (! (i < tmp_0)) break; + tmp = ARR_GetElement(hwts_interfaces,i); + free((void *)((CNF_HwTsInterface *)tmp)->name); + i ++; + } + ARR_DestroyInstance(hwts_interfaces); + i = (unsigned int)0; + while (1) { + unsigned int tmp_2; + void *tmp_1; + tmp_2 = ARR_GetSize(ntp_sources); + ; + if (! (i < tmp_2)) break; + tmp_1 = ARR_GetElement(ntp_sources,i); + free((void *)((NTP_Source *)tmp_1)->params.name); + i ++; + } + ARR_DestroyInstance(init_sources); + ARR_DestroyInstance(ntp_sources); + ARR_DestroyInstance(refclock_sources); + ARR_DestroyInstance(broadcasts); + ARR_DestroyInstance(ntp_restrictions); + ARR_DestroyInstance(cmd_restrictions); + free((void *)drift_file); + free((void *)dumpdir); + free((void *)hwclock_file); + free((void *)keys_file); + free((void *)leapsec_tz); + free((void *)logdir); + free((void *)bind_cmd_path); + free((void *)ntp_signd_socket); + free((void *)pidfile); + free((void *)rtc_device); + free((void *)rtc_file); + free((void *)user); + free((void *)mail_user_on_change); + free((void *)tempcomp_sensor_file); + free((void *)tempcomp_point_file); + return; +} + +void CNF_ReadFile(char const *filename) +{ + FILE *in; + char line[2048]; + int i; + in = fopen(filename,"r"); + if (! in) { + { + char *tmp; + tmp = strerror(__fc_errno); + ; + { + char const *__va_arg0 = filename; + char *__va_arg1 = tmp; + void *__va_args[2] = {& __va_arg0, & __va_arg1}; + LOG_Message(LOGS_FATAL,"Could not open configuration file %s : %s", + (void * const *)(__va_args)); + } + exit(1); + } + goto return_label; + } + i = 1; + while (1) { + char *tmp_0; + tmp_0 = fgets(line,(int)sizeof(line),in); + if (! tmp_0) break; + CNF_ParseLine(filename,i,line); + i ++; + } + fclose(in); + return_label: return; +} + +void CNF_ParseLine(char const *filename, int number, char *line) +{ + char *p; + char *command; + int tmp_66; + processed_file = filename; + line_number = number; + CPS_NormalizeLine(line); + if (! *line) goto return_label; + command = line; + processed_command = (char const *)command; + p = CPS_SplitWord(line); + tmp_66 = strcasecmp((char const *)command,"acquisitionport"); + if (tmp_66) { + int tmp_65; + tmp_65 = strcasecmp((char const *)command,"allow"); + if (tmp_65) { + int tmp_64; + tmp_64 = strcasecmp((char const *)command,"bindacqaddress"); + if (tmp_64) { + int tmp_63; + tmp_63 = strcasecmp((char const *)command,"bindaddress"); + if (tmp_63) { + int tmp_62; + tmp_62 = strcasecmp((char const *)command,"bindcmdaddress"); + if (tmp_62) { + int tmp_61; + tmp_61 = strcasecmp((char const *)command,"broadcast"); + if (tmp_61) { + int tmp_60; + tmp_60 = strcasecmp((char const *)command,"clientloglimit"); + if (tmp_60) { + int tmp_59; + tmp_59 = strcasecmp((char const *)command,"cmdallow"); + if (tmp_59) { + int tmp_58; + tmp_58 = strcasecmp((char const *)command,"cmddeny"); + if (tmp_58) { + int tmp_57; + tmp_57 = strcasecmp((char const *)command,"cmdport"); + if (tmp_57) { + int tmp_56; + tmp_56 = strcasecmp((char const *)command, + "cmdratelimit"); + if (tmp_56) { + int tmp_55; + tmp_55 = strcasecmp((char const *)command, + "combinelimit"); + if (tmp_55) { + int tmp_54; + tmp_54 = strcasecmp((char const *)command, + "corrtimeratio"); + if (tmp_54) { + int tmp_53; + tmp_53 = strcasecmp((char const *)command,"deny"); + if (tmp_53) { + int tmp_52; + tmp_52 = strcasecmp((char const *)command, + "driftfile"); + if (tmp_52) { + int tmp_51; + tmp_51 = strcasecmp((char const *)command, + "dumpdir"); + if (tmp_51) { + int tmp_50; + tmp_50 = strcasecmp((char const *)command, + "dumponexit"); + if (tmp_50) { + int tmp_49; + tmp_49 = strcasecmp((char const *)command, + "fallbackdrift"); + if (tmp_49) { + int tmp_48; + tmp_48 = strcasecmp((char const *)command, + "hwclockfile"); + if (tmp_48) { + int tmp_47; + tmp_47 = strcasecmp((char const *)command, + "hwtimestamp"); + if (tmp_47) { + int tmp_46; + tmp_46 = strcasecmp((char const *)command, + "include"); + if (tmp_46) { + int tmp_45; + tmp_45 = strcasecmp((char const *)command, + "initstepslew"); + if (tmp_45) { + int tmp_44; + tmp_44 = strcasecmp((char const *)command, + "keyfile"); + if (tmp_44) { + int tmp_43; + tmp_43 = strcasecmp((char const *)command, + "leapsecmode"); + if (tmp_43) { + int tmp_42; + tmp_42 = strcasecmp + ((char const *)command, + "leapsectz"); + if (tmp_42) { + int tmp_41; + tmp_41 = strcasecmp + ((char const *)command, + "local"); + if (tmp_41) { + int tmp_40; + tmp_40 = strcasecmp + ((char const *)command, + "lock_all"); + if (tmp_40) { + int tmp_39; + tmp_39 = strcasecmp + ((char const *)command, + "log"); + if (tmp_39) { + int tmp_38; + tmp_38 = strcasecmp + ((char const *)command, + "logbanner"); + if (tmp_38) { + int tmp_37; + tmp_37 = strcasecmp + ((char const *)command, + "logchange"); + if (tmp_37) { + int tmp_36; + tmp_36 = strcasecmp + ((char const *)command, + "logdir"); + if (tmp_36) { + int tmp_35; + tmp_35 = strcasecmp + ((char const *)command, + "mailonchange"); + if (tmp_35) { + int tmp_34; + tmp_34 = strcasecmp + ((char const *)command, + "makestep"); + if (tmp_34) { + int tmp_33; + tmp_33 = strcasecmp + ((char const *)command, + "manual"); + if (tmp_33) { + int tmp_32; + tmp_32 = strcasecmp + ((char const *)command, + "maxchange"); + if (tmp_32) { + int tmp_31; + tmp_31 = strcasecmp + ((char const *)command, + "maxclockerror"); + if (tmp_31) { + int tmp_30; + tmp_30 = strcasecmp + ((char const *)command, + "maxdistance"); + if (tmp_30) { + int tmp_29; + tmp_29 = strcasecmp + ((char const *)command, + "maxdrift"); + if (tmp_29) { + int tmp_28; + tmp_28 = strcasecmp + ((char const *)command, + "maxjitter"); + if (tmp_28) { + int tmp_27; + tmp_27 = strcasecmp + ((char const *)command, + "maxsamples"); + if (tmp_27) { + int tmp_26; + tmp_26 = strcasecmp + ((char const *)command, + "maxslewrate"); + if (tmp_26) { + int tmp_25; + tmp_25 = strcasecmp + ((char const *)command, + "maxupdateskew"); + if (tmp_25) { + int tmp_24; + tmp_24 = strcasecmp + ((char const *)command, + "minsamples"); + if (tmp_24) { + int tmp_23; + tmp_23 = strcasecmp + ((char const *)command, + "minsources"); + if (tmp_23) { + int tmp_22; + tmp_22 = strcasecmp + ((char const *)command, + "noclientlog"); + if (tmp_22) { + int tmp_21; + tmp_21 = strcasecmp + ((char const *)command, + "ntpsigndsocket"); + if (tmp_21) { + int tmp_20; + tmp_20 = strcasecmp + ((char const *)command, + "peer"); + if (tmp_20) { + int tmp_19; + tmp_19 = strcasecmp + ((char const *)command, + "pidfile"); + if (tmp_19) { + int tmp_18; + tmp_18 = strcasecmp + ((char const *)command, + "pool"); + if (tmp_18) { + int tmp_17; + tmp_17 = strcasecmp + ((char const *)command, + "port"); + if (tmp_17) { + int tmp_16; + tmp_16 = strcasecmp + ((char const *)command, + "ratelimit"); + if (tmp_16) { + int tmp_15; + tmp_15 = strcasecmp + ((char const *)command, + "refclock"); + if (tmp_15) { + int tmp_14; + tmp_14 = strcasecmp + ((char const *)command, + "reselectdist"); + if (tmp_14) { + int tmp_13; + tmp_13 = strcasecmp + ((char const *)command, + "rtcautotrim"); + if (tmp_13) { + int tmp_12; + tmp_12 = strcasecmp + ((char const *)command, + "rtcdevice"); + if (tmp_12) { + int tmp_11; + tmp_11 = strcasecmp + ((char const *)command, + "rtcfile"); + if (tmp_11) { + int tmp_10; + tmp_10 = strcasecmp + ((char const *)command, + "rtconutc"); + if (tmp_10) { + int tmp_9; + tmp_9 = strcasecmp + ((char const *)command, + "rtcsync"); + if (tmp_9) { + int tmp_8; + tmp_8 = strcasecmp + ((char const *)command, + "sched_priority"); + if (tmp_8) { + int tmp_7; + tmp_7 = strcasecmp + ((char const *)command, + "server"); + if (tmp_7) { + int tmp_6; + tmp_6 = strcasecmp + ((char const *)command, + "smoothtime"); + if (tmp_6) { + int tmp_5; + tmp_5 = strcasecmp + ((char const *)command, + "stratumweight"); + if (tmp_5) { + int tmp_4; + tmp_4 = strcasecmp + ((char const *)command, + "tempcomp"); + if (tmp_4) { + int tmp_3; + tmp_3 = strcasecmp + ((char const *)command, + "user"); + if (tmp_3) { + int tmp; + tmp = strcasecmp + ((char const *)command, + "commandkey"); + if (tmp) { + int tmp_0; + tmp_0 = strcasecmp + ((char const *)command, + "generatecommandkey"); + if (tmp_0) { + int tmp_1; + tmp_1 = strcasecmp + ((char const *)command, + "linux_freq_scale"); + if (tmp_1) { + int tmp_2; + tmp_2 = strcasecmp + ((char const *)command, + "linux_hz"); + if (tmp_2) + other_parse_error + ("Invalid command"); + else { + _LOR: + { + char *__va_arg0 = + command; + void *__va_args[1] = + {& __va_arg0}; + LOG_Message + (LOGS_WARN, + "%s directive is no longer supported", + (void * const *)(__va_args)); + } + } + } + else + goto _LOR; + } + else + goto _LOR; + } + else + goto _LOR; + } + else + parse_string + (p, + & user); + } + else + parse_tempcomp + (p); + } + else + parse_double + (p, + & stratum_weight); + } + else + parse_smoothtime + (p); + } + else + parse_source + (p, + NTP_SERVER, + 0); + } + else + parse_int + (p, + & sched_priority); + } + else + rtc_sync = parse_null + (p); + } + else + rtc_on_utc = parse_null + (p); + } + else + parse_string + (p, + & rtc_file); + } + else + parse_string + (p, + & rtc_device); + } + else + parse_double + (p, + & rtc_autotrim_threshold); + } + else + parse_double + (p, + & reselect_distance); + } + else + parse_refclock + (p); + } + else + parse_ratelimit + (p, + & ntp_ratelimit_enabled, + & ntp_ratelimit_interval, + & ntp_ratelimit_burst, + & ntp_ratelimit_leak); + } + else + parse_int + (p, + & ntp_port); + } + else + parse_source + (p, + NTP_SERVER, + 1); + } + else + parse_string + (p, + & pidfile); + } + else + parse_source + (p, + NTP_PEER, + 0); + } + else + parse_string + (p, + & ntp_signd_socket); + } + else + no_client_log = parse_null + (p); + } + else + parse_int + (p, + & min_sources); + } + else + parse_int + (p, + & min_samples); + } + else + parse_double + (p, + & max_update_skew); + } + else + parse_double + (p, + & max_slew_rate); + } + else + parse_int + (p, + & max_samples); + } + else + parse_double + (p, + & max_jitter); + } + else + parse_double + (p, + & max_drift); + } + else + parse_double + (p, + & max_distance); + } + else + parse_double + (p, + & max_clock_error); + } + else + parse_maxchange + (p); + } + else + enable_manual = parse_null + (p); + } + else + parse_makestep + (p); + } + else + parse_mailonchange + (p); + } + else parse_string + (p, + & logdir); + } + else parse_double + (p, + & log_change_threshold); + } + else parse_int + (p, + & log_banner); + } + else parse_log(p); + } + else lock_memory = parse_null + (p); + } + else parse_local(p); + } + else parse_string(p, + & leapsec_tz); + } + else parse_leapsecmode(p); + } + else parse_string(p, + & keys_file); + } + else parse_initstepslew(p); + } + else parse_include(p); + } + else parse_hwtimestamp(p); + } + else parse_string(p,& hwclock_file); + } + else parse_fallbackdrift(p); + } + } + else parse_string(p,& dumpdir); + } + else parse_string(p,& drift_file); + } + else parse_allow_deny(p,ntp_restrictions,0); + } + else parse_double(p,& correction_time_ratio); + } + else parse_double(p,& combine_limit); + } + else parse_ratelimit(p,& cmd_ratelimit_enabled, + & cmd_ratelimit_interval, + & cmd_ratelimit_burst, + & cmd_ratelimit_leak); + } + else parse_int(p,& cmd_port); + } + else parse_allow_deny(p,cmd_restrictions,0); + } + else parse_allow_deny(p,cmd_restrictions,1); + } + else parse_clientloglimit(p); + } + else parse_broadcast(p); + } + else parse_bindcmdaddress(p); + } + else parse_bindaddress(p); + } + else parse_bindacqaddress(p); + } + else parse_allow_deny(p,ntp_restrictions,1); + } + else parse_int(p,& acquisition_port); + return_label: return; +} + +static int parse_string(char *line, char **result) +{ + int __retres; + check_number_of_args(line,1); + free((void *)*result); + *result = Strdup((char const *)line); + __retres = 1; + return __retres; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_22(char const * __restrict s, char const * __restrict format, + int *param0); + +static int parse_int(char *line, int *result) +{ + int __retres; + int tmp; + check_number_of_args(line,1); + tmp = sscanf_va_22((char const *)line,"%d",result); + if (tmp != 1) { + command_parse_error(); + __retres = 0; + goto return_label; + } + __retres = 1; + return_label: return __retres; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_23(char const * __restrict s, char const * __restrict format, + double *param0); + +static int parse_double(char *line, double *result) +{ + int __retres; + int tmp; + check_number_of_args(line,1); + tmp = sscanf_va_23((char const *)line,"%lf",result); + if (tmp != 1) { + command_parse_error(); + __retres = 0; + goto return_label; + } + __retres = 1; + return_label: return __retres; +} + +static int parse_null(char *line) +{ + int __retres; + check_number_of_args(line,0); + __retres = 1; + return __retres; +} + +static void parse_source(char *line, NTP_Source_Type type, int pool) +{ + NTP_Source source; + int tmp; + source.type = type; + source.pool = pool; + tmp = CPS_ParseNTPSourceAdd(line,& source.params); + if (! tmp) { + command_parse_error(); + goto return_label; + } + source.params.name = Strdup((char const *)source.params.name); + ARR_AppendElement(ntp_sources,(void *)(& source)); + return_label: return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_24(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +static void parse_ratelimit(char *line, int *enabled_0, int *interval, + int *burst, int *leak) +{ + int n; + int val; + char *opt; + *enabled_0 = 1; + while (*line) { + int tmp; + int tmp_2; + opt = line; + line = CPS_SplitWord(line); + tmp = sscanf_va_24((char const *)line,"%d%n",& val,& n); + if (tmp != 1) { + command_parse_error(); + goto return_label; + } + line += n; + tmp_2 = strcasecmp((char const *)opt,"interval"); + if (tmp_2) { + int tmp_1; + tmp_1 = strcasecmp((char const *)opt,"burst"); + if (tmp_1) { + int tmp_0; + tmp_0 = strcasecmp((char const *)opt,"leak"); + if (tmp_0) command_parse_error(); else *leak = val; + } + else *burst = val; + } + else *interval = val; + } + return_label: return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_25(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_26(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_27(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_28(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_29(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_30(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_31(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_32(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_33(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_34(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_35(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_36(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_37(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + ensures \initialized(param1); + assigns \result, *param1, *(param0 + (0 ..)); + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *(param0 + (0 ..)) + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_38(char const * __restrict s, char const * __restrict format, + char *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + ensures \initialized(param1); + assigns \result, *param1, *(param0 + (0 ..)); + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *(param0 + (0 ..)) + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_39(char const * __restrict s, char const * __restrict format, + char *param0, int *param1); + +static void parse_refclock(char *line) +{ + int n; + int poll; + int dpoll; + int filter_length; + int pps_rate; + int min_samples_0; + int max_samples_0; + int sel_options; + int max_lock_age; + int pps_forced; + int stratum; + int tai; + uint32_t ref_id; + uint32_t lock_ref_id; + double offset; + double delay; + double precision; + double max_dispersion; + double pulse_width; + char *p; + char *cmd; + char *name; + char *param; + unsigned char ref[5]; + RefclockParameters *refclock; + poll = 4; + dpoll = 0; + filter_length = 64; + pps_forced = 0; + pps_rate = 0; + min_samples_0 = -1; + max_samples_0 = -1; + sel_options = 0; + offset = 0.0; + delay = 1e-9; + precision = 0.0; + max_dispersion = 0.0; + pulse_width = 0.0; + ref_id = (unsigned int)0; + max_lock_age = 2; + lock_ref_id = (unsigned int)0; + stratum = 0; + tai = 0; + if (! *line) { + command_parse_error(); + goto return_label; + } + p = line; + line = CPS_SplitWord(line); + if (! *line) { + command_parse_error(); + goto return_label; + } + name = Strdup((char const *)p); + p = line; + line = CPS_SplitWord(line); + param = Strdup((char const *)p); + cmd = line; + while (*cmd) { + { + int tmp_34; + line = CPS_SplitWord(line); + tmp_34 = strcasecmp((char const *)cmd,"refid"); + if (tmp_34) { + int tmp_33; + tmp_33 = strcasecmp((char const *)cmd,"lock"); + if (tmp_33) { + int tmp_32; + tmp_32 = strcasecmp((char const *)cmd,"poll"); + if (tmp_32) { + int tmp_31; + tmp_31 = strcasecmp((char const *)cmd,"dpoll"); + if (tmp_31) { + int tmp_30; + tmp_30 = strcasecmp((char const *)cmd,"filter"); + if (tmp_30) { + int tmp_29; + tmp_29 = strcasecmp((char const *)cmd,"rate"); + if (tmp_29) { + int tmp_28; + tmp_28 = strcasecmp((char const *)cmd,"minsamples"); + if (tmp_28) { + int tmp_27; + tmp_27 = strcasecmp((char const *)cmd,"maxlockage"); + if (tmp_27) { + int tmp_26; + tmp_26 = strcasecmp((char const *)cmd,"maxsamples"); + if (tmp_26) { + int tmp_25; + tmp_25 = strcasecmp((char const *)cmd,"offset"); + if (tmp_25) { + int tmp_24; + tmp_24 = strcasecmp((char const *)cmd,"delay"); + if (tmp_24) { + int tmp_23; + tmp_23 = strcasecmp((char const *)cmd,"pps"); + if (tmp_23) { + int tmp_22; + tmp_22 = strcasecmp((char const *)cmd, + "precision"); + if (tmp_22) { + int tmp_21; + tmp_21 = strcasecmp((char const *)cmd, + "maxdispersion"); + if (tmp_21) { + int tmp_20; + tmp_20 = strcasecmp((char const *)cmd, + "stratum"); + if (tmp_20) { + int tmp_19; + tmp_19 = strcasecmp((char const *)cmd, + "tai"); + if (tmp_19) { + int tmp_18; + tmp_18 = strcasecmp((char const *)cmd, + "width"); + if (tmp_18) { + int tmp_17; + tmp_17 = strcasecmp((char const *)cmd, + "noselect"); + if (tmp_17) { + int tmp_16; + tmp_16 = strcasecmp((char const *)cmd, + "prefer"); + if (tmp_16) { + int tmp_15; + tmp_15 = strcasecmp((char const *)cmd, + "trust"); + if (tmp_15) { + int tmp_14; + tmp_14 = strcasecmp((char const *)cmd, + "require"); + if (tmp_14) { + other_parse_error("Invalid refclock option"); + goto return_label; + } + else { + n = 0; + sel_options |= 0x8; + } + } + else { + n = 0; + sel_options |= 0x4; + } + } + else { + n = 0; + sel_options |= 0x2; + } + } + else { + n = 0; + sel_options |= 0x1; + } + } + else { + int tmp_13; + tmp_13 = sscanf_va_25((char const *)line, + "%lf%n", + & pulse_width, + & n); + if (tmp_13 != 1) break; + } + } + else { + n = 0; + tai = 1; + } + } + else { + int tmp_12; + tmp_12 = sscanf_va_26((char const *)line, + "%d%n",& stratum, + & n); + if (tmp_12 != 1) break; + else + if (stratum >= 16) break; + else + if (stratum < 0) break; + } + } + else { + int tmp_11; + tmp_11 = sscanf_va_27((char const *)line, + "%lf%n", + & max_dispersion,& n); + if (tmp_11 != 1) break; + } + } + else { + int tmp_10; + tmp_10 = sscanf_va_28((char const *)line, + "%lf%n",& precision, + & n); + if (tmp_10 != 1) break; + } + } + else { + n = 0; + pps_forced = 1; + } + } + else { + int tmp_9; + tmp_9 = sscanf_va_29((char const *)line,"%lf%n", + & delay,& n); + if (tmp_9 != 1) break; + } + } + else { + int tmp_8; + tmp_8 = sscanf_va_30((char const *)line,"%lf%n", + & offset,& n); + if (tmp_8 != 1) break; + } + } + else { + int tmp_7; + tmp_7 = sscanf_va_31((char const *)line,"%d%n", + & max_samples_0,& n); + if (tmp_7 != 1) break; + } + } + else { + int tmp_6; + tmp_6 = sscanf_va_32((char const *)line,"%d%n", + & max_lock_age,& n); + if (tmp_6 != 1) break; + } + } + else { + int tmp_5; + tmp_5 = sscanf_va_33((char const *)line,"%d%n", + & min_samples_0,& n); + if (tmp_5 != 1) break; + } + } + else { + int tmp_4; + tmp_4 = sscanf_va_34((char const *)line,"%d%n",& pps_rate, + & n); + if (tmp_4 != 1) break; + } + } + else { + int tmp_3; + tmp_3 = sscanf_va_35((char const *)line,"%d%n", + & filter_length,& n); + if (tmp_3 != 1) break; + } + } + else { + int tmp_2; + tmp_2 = sscanf_va_36((char const *)line,"%d%n",& dpoll,& n); + if (tmp_2 != 1) break; + } + } + else { + int tmp_1; + tmp_1 = sscanf_va_37((char const *)line,"%d%n",& poll,& n); + if (tmp_1 != 1) break; + } + } + else { + int tmp_0; + tmp_0 = sscanf_va_38((char const *)line,"%4s%n",(char *)(ref),& n); + if (tmp_0 != 1) break; + lock_ref_id = ((((unsigned int)ref[0] << 24) | (unsigned int)( + (int)ref[1] << 16)) | (unsigned int)((int)ref[2] << 8)) | (unsigned int)ref[3]; + } + } + else { + int tmp; + tmp = sscanf_va_39((char const *)line,"%4s%n",(char *)(ref),& n); + if (tmp != 1) break; + ref_id = ((((unsigned int)ref[0] << 24) | (unsigned int)((int)ref[1] << 16)) | (unsigned int)( + (int)ref[2] << 8)) | (unsigned int)ref[3]; + } + } + line += n; + cmd = line; + } + if (*cmd) { + command_parse_error(); + goto return_label; + } + refclock = (RefclockParameters *)ARR_GetNewElement(refclock_sources); + refclock->driver_name = name; + refclock->driver_parameter = param; + refclock->driver_poll = dpoll; + refclock->poll = poll; + refclock->filter_length = filter_length; + refclock->pps_forced = pps_forced; + refclock->pps_rate = pps_rate; + refclock->min_samples = min_samples_0; + refclock->max_samples = max_samples_0; + refclock->sel_options = sel_options; + refclock->stratum = stratum; + refclock->tai = tai; + refclock->offset = offset; + refclock->delay = delay; + refclock->precision = precision; + refclock->max_dispersion = max_dispersion; + refclock->pulse_width = pulse_width; + refclock->ref_id = ref_id; + refclock->max_lock_age = max_lock_age; + refclock->lock_ref_id = lock_ref_id; + return_label: return; +} + +static void parse_log(char *line) +{ + char *log_name; + while (1) { + log_name = line; + line = CPS_SplitWord(line); + if (*log_name) { + int tmp_5; + tmp_5 = strcmp((char const *)log_name,"rawmeasurements"); + if (tmp_5) { + int tmp_4; + tmp_4 = strcmp((char const *)log_name,"measurements"); + if (tmp_4) { + int tmp_3; + tmp_3 = strcmp((char const *)log_name,"statistics"); + if (tmp_3) { + int tmp_2; + tmp_2 = strcmp((char const *)log_name,"tracking"); + if (tmp_2) { + int tmp_1; + tmp_1 = strcmp((char const *)log_name,"rtc"); + if (tmp_1) { + int tmp_0; + tmp_0 = strcmp((char const *)log_name,"refclocks"); + if (tmp_0) { + int tmp; + tmp = strcmp((char const *)log_name,"tempcomp"); + if (tmp) { + other_parse_error("Invalid log parameter"); + break; + } + else do_log_tempcomp = 1; + } + else do_log_refclocks = 1; + } + else do_log_rtc = 1; + } + else do_log_tracking = 1; + } + else do_log_statistics = 1; + } + else do_log_measurements = 1; + } + else { + do_log_measurements = 1; + raw_measurements = 1; + } + } + else break; + } + return; +} + +static void parse_local(char *line) +{ + int tmp; + tmp = CPS_ParseLocal(line,& local_stratum,& local_orphan,& local_distance); + if (! tmp) command_parse_error(); + enable_local = 1; + return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_40(char const * __restrict s, char const * __restrict format, + double *param0); + +static void parse_initstepslew(char *line) +{ + char *p; + char *hostname; + IPAddr ip_addr; + int tmp; + if (restarted) goto return_label; + ARR_SetSize(init_sources,(unsigned int)0); + p = CPS_SplitWord(line); + tmp = sscanf_va_40((char const *)line,"%lf",& init_slew_threshold); + if (tmp != 1) { + command_parse_error(); + goto return_label; + } + while (*p) { + hostname = p; + p = CPS_SplitWord(p); + if (*hostname) { + DNS_Status tmp_0; + tmp_0 = DNS_Name2IPAddress((char const *)hostname,& ip_addr,1); + if (tmp_0 == (unsigned int)DNS_Success) ARR_AppendElement(init_sources, + (void *)(& ip_addr)); + else { + { + char *__va_arg0 = hostname; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN, + "Could not resolve address of initstepslew server %s", + (void * const *)(__va_args)); + } + } + } + } + return_label: return; +} + +static void parse_leapsecmode(char *line) +{ + int tmp_2; + tmp_2 = strcasecmp((char const *)line,"system"); + if (tmp_2) { + int tmp_1; + tmp_1 = strcasecmp((char const *)line,"slew"); + if (tmp_1) { + int tmp_0; + tmp_0 = strcasecmp((char const *)line,"step"); + if (tmp_0) { + int tmp; + tmp = strcasecmp((char const *)line,"ignore"); + if (tmp) command_parse_error(); + else leapsec_mode = REF_LeapModeIgnore; + } + else leapsec_mode = REF_LeapModeStep; + } + else leapsec_mode = REF_LeapModeSlew; + } + else leapsec_mode = REF_LeapModeSystem; + return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_41(char const * __restrict s, char const * __restrict format, + unsigned long *param0); + +static void parse_clientloglimit(char *line) +{ + int tmp; + check_number_of_args(line,1); + tmp = sscanf_va_41((char const *)line,"%lu",& client_log_limit); + if (tmp != 1) command_parse_error(); + return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_42(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +static void parse_fallbackdrift(char *line) +{ + int tmp; + check_number_of_args(line,2); + tmp = sscanf_va_42((char const *)line,"%d %d",& fb_drift_min, + & fb_drift_max); + if (tmp != 2) command_parse_error(); + return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_43(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +static void parse_makestep(char *line) +{ + int tmp; + check_number_of_args(line,2); + tmp = sscanf_va_43((char const *)line,"%lf %d",& make_step_threshold, + & make_step_limit); + if (tmp != 2) { + make_step_limit = 0; + command_parse_error(); + } + if (restarted) + if (make_step_limit > 0) make_step_limit = 0; + return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param2); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param2); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param2, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param2 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_44(char const * __restrict s, char const * __restrict format, + double *param0, int *param1, int *param2); + +static void parse_maxchange(char *line) +{ + int tmp; + check_number_of_args(line,3); + tmp = sscanf_va_44((char const *)line,"%lf %d %d",& max_offset, + & max_offset_delay,& max_offset_ignore); + if (tmp != 3) { + max_offset_delay = -1; + command_parse_error(); + } + return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_45(char const * __restrict s, char const * __restrict format, + double *param0); + +static void parse_mailonchange(char *line) +{ + char *address; + int tmp; + check_number_of_args(line,2); + address = line; + line = CPS_SplitWord(line); + free((void *)mail_user_on_change); + tmp = sscanf_va_45((char const *)line,"%lf",& mail_change_threshold); + if (tmp == 1) mail_user_on_change = Strdup((char const *)address); + else { + mail_user_on_change = (char *)0; + command_parse_error(); + } + return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param3); + requires \valid(param2); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param3); + ensures \initialized(param2); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param3, *param2, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param3 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param2 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_46(char const * __restrict s, char const * __restrict format, + unsigned long *param0, unsigned long *param1, + unsigned long *param2, unsigned long *param3); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_47(char const * __restrict s, char const * __restrict format, + int *param0); + +static void parse_allow_deny(char *line, ARR_Instance restrictions, int allow) +{ + char *p; + unsigned long a; + unsigned long b; + unsigned long c; + unsigned long d; + unsigned long n; + IPAddr ip_addr; + int tmp; + int all = 0; + AllowDeny *new_node = (AllowDeny *)0; + p = line; + tmp = strncmp((char const *)p,"all",(unsigned long)3); + if (! tmp) { + all = 1; + p = CPS_SplitWord(line); + } + if (! *p) { + new_node = (AllowDeny *)ARR_GetNewElement(restrictions); + new_node->allow = allow; + new_node->all = all; + new_node->ip.family = (unsigned short)0; + new_node->subnet_bits = 0; + } + else { + char *slashpos; + int tmp_4; + slashpos = strchr((char const *)p,'/'); + if (slashpos) *slashpos = (char)0; + check_number_of_args(p,1); + n = (unsigned long)0; + tmp_4 = UTI_StringToIP((char const *)p,& ip_addr); + if (tmp_4) goto _LOR; + else { + int tmp_5; + tmp_5 = sscanf_va_46((char const *)p,"%lu.%lu.%lu.%lu",& a,& b,& c,& d); + n = (unsigned long)tmp_5; + if (n >= (unsigned long)1) { + _LOR: + { + /*@ assert n ≤ 4; */ ; + new_node = (AllowDeny *)ARR_GetNewElement(restrictions); + new_node->allow = allow; + new_node->all = all; + if (n == (unsigned long)0) { + new_node->ip = ip_addr; + if ((int)ip_addr.family == 2) new_node->subnet_bits = 128; + else new_node->subnet_bits = 32; + } + else { + new_node->ip.family = (unsigned short)1; + a &= (unsigned long)0xff; + b &= (unsigned long)0xff; + c &= (unsigned long)0xff; + d &= (unsigned long)0xff; + switch (n) { + case (unsigned long)1: + new_node->ip.addr.in4 = (unsigned int)(a << 24); + new_node->subnet_bits = 8; + break; + case (unsigned long)2: + new_node->ip.addr.in4 = (unsigned int)((a << 24) | (b << 16)); + new_node->subnet_bits = 16; + break; + case (unsigned long)3: + new_node->ip.addr.in4 = (unsigned int)(((a << 24) | (b << 16)) | ( + c << 8)); + new_node->subnet_bits = 24; + break; + case (unsigned long)4: + new_node->ip.addr.in4 = (unsigned int)((((a << 24) | (b << 16)) | ( + c << 8)) | d); + new_node->subnet_bits = 32; + break; + default: __FC_assert(0 != 0,"conf.c",1073,"0"); + } + } + if (slashpos) { + int specified_subnet_bits; + int n_0; + n_0 = sscanf_va_47((char const *)(slashpos + 1),"%d", + & specified_subnet_bits); + if (n_0 == 1) new_node->subnet_bits = specified_subnet_bits; + else command_parse_error(); + } + } + } + else + if (! slashpos) { + DNS_Status tmp_3; + tmp_3 = DNS_Name2IPAddress((char const *)p,& ip_addr,1); + if (tmp_3 == (unsigned int)DNS_Success) { + new_node = (AllowDeny *)ARR_GetNewElement(restrictions); + new_node->allow = allow; + new_node->all = all; + new_node->ip = ip_addr; + if ((int)ip_addr.family == 2) new_node->subnet_bits = 128; + else new_node->subnet_bits = 32; + } + else goto _LAND; + } + else _LAND: command_parse_error(); + } + } + return; +} + +static void parse_bindacqaddress(char *line) +{ + IPAddr ip; + int tmp; + check_number_of_args(line,1); + tmp = UTI_StringToIP((char const *)line,& ip); + if (tmp) { + if ((int)ip.family == 1) bind_acq_address4 = ip; + else + if ((int)ip.family == 2) bind_acq_address6 = ip; + } + else command_parse_error(); + return; +} + +static void parse_bindaddress(char *line) +{ + IPAddr ip; + int tmp; + check_number_of_args(line,1); + tmp = UTI_StringToIP((char const *)line,& ip); + if (tmp) { + if ((int)ip.family == 1) bind_address4 = ip; + else + if ((int)ip.family == 2) bind_address6 = ip; + } + else command_parse_error(); + return; +} + +static void parse_bindcmdaddress(char *line) +{ + IPAddr ip; + check_number_of_args(line,1); + if ((int)*(line + 0) == '/') { + int tmp; + parse_string(line,& bind_cmd_path); + tmp = strcmp((char const *)bind_cmd_path,"/"); + if (! tmp) *(bind_cmd_path + 0) = (char)'\000'; + } + else { + int tmp_0; + tmp_0 = UTI_StringToIP((char const *)line,& ip); + if (tmp_0) { + if ((int)ip.family == 1) bind_cmd_address4 = ip; + else + if ((int)ip.family == 2) bind_cmd_address6 = ip; + } + else command_parse_error(); + } + return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_48(char const * __restrict s, char const * __restrict format, + int *param0); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_49(char const * __restrict s, char const * __restrict format, + int *param0); + +static void parse_broadcast(char *line) +{ + NTP_Broadcast_Destination *destination; + int port; + int interval; + char *p; + IPAddr ip; + int tmp; + int tmp_0; + p = line; + line = CPS_SplitWord(line); + tmp = sscanf_va_48((char const *)p,"%d",& interval); + if (tmp != 1) { + command_parse_error(); + goto return_label; + } + p = line; + line = CPS_SplitWord(line); + tmp_0 = UTI_StringToIP((char const *)p,& ip); + if (! tmp_0) { + command_parse_error(); + goto return_label; + } + p = line; + line = CPS_SplitWord(line); + if (*p) { + int tmp_1; + tmp_1 = sscanf_va_49((char const *)p,"%d",& port); + if (tmp_1 != 1) goto _LOR; + else + if (*line) { + _LOR: { + command_parse_error(); + goto return_label; + } + } + } + else port = 123; + destination = (NTP_Broadcast_Destination *)ARR_GetNewElement(broadcasts); + destination->addr = ip; + destination->port = (unsigned short)port; + destination->interval = interval; + return_label: return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_50(char const * __restrict s, char const * __restrict format, + double *param0, double *param1); + +static void parse_smoothtime(char *line) +{ + int tmp; + int tmp_0; + char *tmp_1; + tmp = get_number_of_args(line); + if (tmp != 3) check_number_of_args(line,2); + tmp_0 = sscanf_va_50((char const *)line,"%lf %lf",& smooth_max_freq, + & smooth_max_wander); + if (tmp_0 != 2) { + smooth_max_freq = 0.0; + command_parse_error(); + } + tmp_1 = CPS_SplitWord(line); + line = CPS_SplitWord(tmp_1); + smooth_leap_only = 0; + if (*line) { + int tmp_2; + tmp_2 = strcasecmp((char const *)line,"leaponly"); + if (tmp_2) command_parse_error(); else smooth_leap_only = 1; + } + return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_51(char const * __restrict s, char const * __restrict format, + double *param0); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param4); + requires \valid(param3); + requires \valid(param2); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param4); + ensures \initialized(param3); + ensures \initialized(param2); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param4, *param3, *param2, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param4 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param3 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param2 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_52(char const * __restrict s, char const * __restrict format, + double *param0, double *param1, double *param2, + double *param3, double *param4); + +static void parse_tempcomp(char *line) +{ + char *p; + int point_form; + int tmp; + tmp = get_number_of_args(line); + point_form = tmp == 3; + if (! point_form) check_number_of_args(line,6); + p = line; + line = CPS_SplitWord(line); + if (! *p) { + command_parse_error(); + goto return_label; + } + free((void *)tempcomp_point_file); + if (point_form) { + int tmp_0; + char *tmp_1; + tmp_0 = sscanf_va_51((char const *)line,"%lf",& tempcomp_interval); + if (tmp_0 != 1) { + command_parse_error(); + goto return_label; + } + tmp_1 = CPS_SplitWord(line); + tempcomp_point_file = Strdup((char const *)tmp_1); + } + else { + int tmp_2; + tmp_2 = sscanf_va_52((char const *)line,"%lf %lf %lf %lf %lf", + & tempcomp_interval,& tempcomp_T0,& tempcomp_k0, + & tempcomp_k1,& tempcomp_k2); + if (tmp_2 != 5) { + command_parse_error(); + goto return_label; + } + tempcomp_point_file = (char *)0; + } + free((void *)tempcomp_sensor_file); + tempcomp_sensor_file = Strdup((char const *)p); + return_label: return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + ensures \initialized(param1); + assigns \result, *param1, *(param0 + (0 ..)); + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *(param0 + (0 ..)) + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_53(char const * __restrict s, char const * __restrict format, + char *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_54(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_55(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_56(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_57(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_58(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_59(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +static void parse_hwtimestamp(char *line) +{ + CNF_HwTsInterface *iface; + char *p; + char filter[5]; + int n; + if (! *line) { + command_parse_error(); + goto return_label; + } + p = line; + line = CPS_SplitWord(line); + iface = (CNF_HwTsInterface *)ARR_GetNewElement(hwts_interfaces); + iface->name = Strdup((char const *)p); + iface->minpoll = 0; + iface->min_samples = 2; + iface->max_samples = 16; + iface->nocrossts = 0; + iface->rxfilter = CNF_HWTS_RXFILTER_ANY; + iface->precision = 100.0e-9; + iface->tx_comp = 0.0; + iface->rx_comp = 0.0; + p = line; + while (*p) { + { + int tmp_16; + line = CPS_SplitWord(line); + tmp_16 = strcasecmp((char const *)p,"maxsamples"); + if (tmp_16) { + int tmp_15; + tmp_15 = strcasecmp((char const *)p,"minpoll"); + if (tmp_15) { + int tmp_14; + tmp_14 = strcasecmp((char const *)p,"minsamples"); + if (tmp_14) { + int tmp_13; + tmp_13 = strcasecmp((char const *)p,"precision"); + if (tmp_13) { + int tmp_12; + tmp_12 = strcasecmp((char const *)p,"rxcomp"); + if (tmp_12) { + int tmp_11; + tmp_11 = strcasecmp((char const *)p,"txcomp"); + if (tmp_11) { + int tmp_10; + tmp_10 = strcasecmp((char const *)p,"rxfilter"); + if (tmp_10) { + int tmp_9; + tmp_9 = strcasecmp((char const *)p,"nocrossts"); + if (tmp_9) break; + else { + n = 0; + iface->nocrossts = 1; + } + } + else { + int tmp_5; + int tmp_8; + tmp_5 = sscanf_va_53((char const *)line,"%4s%n",filter, + & n); + if (tmp_5 != 1) break; + tmp_8 = strcasecmp((char const *)(filter),"none"); + if (tmp_8) { + int tmp_7; + tmp_7 = strcasecmp((char const *)(filter),"ntp"); + if (tmp_7) { + int tmp_6; + tmp_6 = strcasecmp((char const *)(filter),"all"); + if (tmp_6) break; + else iface->rxfilter = CNF_HWTS_RXFILTER_ALL; + } + else iface->rxfilter = CNF_HWTS_RXFILTER_NTP; + } + else iface->rxfilter = CNF_HWTS_RXFILTER_NONE; + } + } + else { + int tmp_4; + tmp_4 = sscanf_va_54((char const *)line,"%lf%n", + & iface->tx_comp,& n); + if (tmp_4 != 1) break; + } + } + else { + int tmp_3; + tmp_3 = sscanf_va_55((char const *)line,"%lf%n", + & iface->rx_comp,& n); + if (tmp_3 != 1) break; + } + } + else { + int tmp_2; + tmp_2 = sscanf_va_56((char const *)line,"%lf%n", + & iface->precision,& n); + if (tmp_2 != 1) break; + } + } + else { + int tmp_1; + tmp_1 = sscanf_va_57((char const *)line,"%d%n", + & iface->min_samples,& n); + if (tmp_1 != 1) break; + } + } + else { + int tmp_0; + tmp_0 = sscanf_va_58((char const *)line,"%d%n",& iface->minpoll, + & n); + if (tmp_0 != 1) break; + } + } + else { + int tmp; + tmp = sscanf_va_59((char const *)line,"%d%n",& iface->max_samples, + & n); + if (tmp != 1) break; + } + } + line += n; + p = line; + } + if (*p) command_parse_error(); + return_label: return; +} + +/*@ assigns \nothing; */ +static void parse_include(char *line) +{ + glob_t gl; + size_t i; + int r; + check_number_of_args(line,1); + r = glob((char const *)line,1 << 0, + (int (*)(char const *epath, int eerrno))0,& gl); + if (r != 0) { + if (r != 3) { + { + char *__va_arg0 = line; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_FATAL,"Could not search for files matching %s", + (void * const *)(__va_args)); + } + exit(1); + } + goto return_label; + } + i = (unsigned long)0; + while (i < gl.gl_pathc) { + CNF_ReadFile((char const *)*(gl.gl_pathv + i)); + i += (size_t)1; + } + globfree(& gl); + return_label: return; +} + +void CNF_CreateDirs(uid_t uid, gid_t gid) +{ + char *dir; + if (*(bind_cmd_path + 0)) { + int tmp; + dir = UTI_PathToDir((char const *)bind_cmd_path); + UTI_CreateDirAndParents((char const *)dir,(unsigned int)0770,uid,gid); + tmp = UTI_CheckDirPermissions((char const *)dir,(unsigned int)0770,uid, + gid); + if (! tmp) { + { + char *__va_arg0 = bind_cmd_path; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN,"Disabled command socket %s", + (void * const *)(__va_args)); + } + *(bind_cmd_path + 0) = (char)'\000'; + } + free((void *)dir); + } + if (*(logdir + 0)) UTI_CreateDirAndParents((char const *)logdir, + (unsigned int)0755,uid,gid); + if (*(dumpdir + 0)) UTI_CreateDirAndParents((char const *)dumpdir, + (unsigned int)0755,uid,gid); + return; +} + +void CNF_AddInitSources(void) +{ + CPS_NTP_Source cps_source; + NTP_Remote_Address ntp_addr; + unsigned int i; + char dummy_hostname[2] = {(char)'H', (char)'\000'}; + i = (unsigned int)0; + while (1) { + unsigned int tmp_0; + tmp_0 = ARR_GetSize(init_sources); + ; + if (! (i < tmp_0)) break; + { + void *tmp; + CPS_ParseNTPSourceAdd(dummy_hostname,& cps_source); + tmp = ARR_GetElement(init_sources,i); + ntp_addr.ip_addr = *((IPAddr *)tmp); + ntp_addr.port = cps_source.port; + cps_source.params.iburst = 1; + cps_source.params.connectivity = SRC_OFFLINE; + NSR_AddSource(& ntp_addr,NTP_SERVER,& cps_source.params); + } + i ++; + } + ARR_SetSize(init_sources,(unsigned int)0); + return; +} + +void CNF_AddSources(void) +{ + NTP_Source *source; + unsigned int i; + i = (unsigned int)0; + while (1) { + unsigned int tmp_0; + tmp_0 = ARR_GetSize(ntp_sources); + ; + if (! (i < tmp_0)) break; + source = (NTP_Source *)ARR_GetElement(ntp_sources,i); + NSR_AddSourceByName(source->params.name,(int)source->params.port, + source->pool,source->type,& source->params.params); + free((void *)source->params.name); + i ++; + } + ARR_SetSize(ntp_sources,(unsigned int)0); + return; +} + +void CNF_AddRefclocks(void) +{ + unsigned int i; + i = (unsigned int)0; + while (1) { + unsigned int tmp_0; + tmp_0 = ARR_GetSize(refclock_sources); + ; + if (! (i < tmp_0)) break; + { + void *tmp; + tmp = ARR_GetElement(refclock_sources,i); + RCL_AddRefclock((RefclockParameters *)tmp); + } + i ++; + } + ARR_SetSize(refclock_sources,(unsigned int)0); + return; +} + +void CNF_AddBroadcasts(void) +{ + unsigned int i; + NTP_Broadcast_Destination *destination; + i = (unsigned int)0; + while (1) { + unsigned int tmp_0; + tmp_0 = ARR_GetSize(broadcasts); + ; + if (! (i < tmp_0)) break; + destination = (NTP_Broadcast_Destination *)ARR_GetElement(broadcasts,i); + NCR_AddBroadcastDestination(& destination->addr,destination->port, + destination->interval); + i ++; + } + ARR_SetSize(broadcasts,(unsigned int)0); + return; +} + +int CNF_GetNTPPort(void) +{ + return ntp_port; +} + +int CNF_GetAcquisitionPort(void) +{ + return acquisition_port; +} + +char *CNF_GetDriftFile(void) +{ + return drift_file; +} + +int CNF_GetLogBanner(void) +{ + return log_banner; +} + +char *CNF_GetLogDir(void) +{ + return logdir; +} + +char *CNF_GetDumpDir(void) +{ + return dumpdir; +} + +int CNF_GetLogMeasurements(int *raw) +{ + *raw = raw_measurements; + return do_log_measurements; +} + +int CNF_GetLogStatistics(void) +{ + return do_log_statistics; +} + +int CNF_GetLogTracking(void) +{ + return do_log_tracking; +} + +int CNF_GetLogRtc(void) +{ + return do_log_rtc; +} + +int CNF_GetLogRefclocks(void) +{ + return do_log_refclocks; +} + +int CNF_GetLogTempComp(void) +{ + return do_log_tempcomp; +} + +char *CNF_GetKeysFile(void) +{ + return keys_file; +} + +double CNF_GetRtcAutotrim(void) +{ + return rtc_autotrim_threshold; +} + +char *CNF_GetRtcFile(void) +{ + return rtc_file; +} + +char *CNF_GetRtcDevice(void) +{ + return rtc_device; +} + +double CNF_GetMaxUpdateSkew(void) +{ + return max_update_skew; +} + +double CNF_GetMaxDrift(void) +{ + return max_drift; +} + +double CNF_GetMaxClockError(void) +{ + return max_clock_error; +} + +double CNF_GetCorrectionTimeRatio(void) +{ + return correction_time_ratio; +} + +double CNF_GetMaxSlewRate(void) +{ + return max_slew_rate; +} + +double CNF_GetMaxDistance(void) +{ + return max_distance; +} + +double CNF_GetMaxJitter(void) +{ + return max_jitter; +} + +double CNF_GetReselectDistance(void) +{ + return reselect_distance; +} + +double CNF_GetStratumWeight(void) +{ + return stratum_weight; +} + +double CNF_GetCombineLimit(void) +{ + return combine_limit; +} + +int CNF_GetManualEnabled(void) +{ + return enable_manual; +} + +int CNF_GetCommandPort(void) +{ + return cmd_port; +} + +int CNF_AllowLocalReference(int *stratum, int *orphan, double *distance) +{ + int __retres; + if (enable_local) { + *stratum = local_stratum; + *orphan = local_orphan; + *distance = local_distance; + __retres = 1; + goto return_label; + } + else { + __retres = 0; + goto return_label; + } + return_label: return __retres; +} + +int CNF_GetRtcOnUtc(void) +{ + return rtc_on_utc; +} + +int CNF_GetRtcSync(void) +{ + return rtc_sync; +} + +void CNF_GetMakeStep(int *limit, double *threshold) +{ + *limit = make_step_limit; + *threshold = make_step_threshold; + return; +} + +void CNF_GetMaxChange(int *delay, int *ignore, double *offset) +{ + *delay = max_offset_delay; + *ignore = max_offset_ignore; + *offset = max_offset; + return; +} + +double CNF_GetLogChange(void) +{ + return log_change_threshold; +} + +void CNF_GetMailOnChange(int *enabled_0, double *threshold, char **user_0) +{ + if (mail_user_on_change) { + *enabled_0 = 1; + *threshold = mail_change_threshold; + *user_0 = mail_user_on_change; + } + else { + *enabled_0 = 0; + *threshold = 0.0; + *user_0 = (char *)0; + } + return; +} + +void CNF_SetupAccessRestrictions(void) +{ + AllowDeny *node; + int status; + unsigned int i; + i = (unsigned int)0; + while (1) { + unsigned int tmp_0; + tmp_0 = ARR_GetSize(ntp_restrictions); + ; + if (! (i < tmp_0)) break; + node = (AllowDeny *)ARR_GetElement(ntp_restrictions,i); + status = NCR_AddAccessRestriction(& node->ip,node->subnet_bits, + node->allow,node->all); + if (! status) { + char *tmp; + ; + tmp = UTI_IPToString(& node->ip); + { + char *__va_arg0 = tmp; + int __va_arg1 = node->subnet_bits; + void *__va_args[2] = {& __va_arg0, & __va_arg1}; + LOG_Message(LOGS_FATAL,"Bad subnet in %s/%d", + (void * const *)(__va_args)); + } + exit(1); + } + i ++; + } + i = (unsigned int)0; + while (1) { + unsigned int tmp_2; + tmp_2 = ARR_GetSize(cmd_restrictions); + ; + if (! (i < tmp_2)) break; + node = (AllowDeny *)ARR_GetElement(cmd_restrictions,i); + status = CAM_AddAccessRestriction(& node->ip,node->subnet_bits, + node->allow,node->all); + if (! status) { + char *tmp_1; + ; + tmp_1 = UTI_IPToString(& node->ip); + { + char *__va_arg0_12 = tmp_1; + int __va_arg1_14 = node->subnet_bits; + void *__va_args_16[2] = {& __va_arg0_12, & __va_arg1_14}; + LOG_Message(LOGS_FATAL,"Bad subnet in %s/%d", + (void * const *)(__va_args_16)); + } + exit(1); + } + i ++; + } + ARR_SetSize(ntp_restrictions,(unsigned int)0); + ARR_SetSize(cmd_restrictions,(unsigned int)0); + return; +} + +int CNF_GetNoClientLog(void) +{ + return no_client_log; +} + +unsigned long CNF_GetClientLogLimit(void) +{ + return client_log_limit; +} + +void CNF_GetFallbackDrifts(int *min, int *max) +{ + *min = fb_drift_min; + *max = fb_drift_max; + return; +} + +void CNF_GetBindAddress(int family, IPAddr *addr) +{ + if (family == 1) *addr = bind_address4; + else + if (family == 2) *addr = bind_address6; + else addr->family = (unsigned short)0; + return; +} + +void CNF_GetBindAcquisitionAddress(int family, IPAddr *addr) +{ + if (family == 1) *addr = bind_acq_address4; + else + if (family == 2) *addr = bind_acq_address6; + else addr->family = (unsigned short)0; + return; +} + +char *CNF_GetBindCommandPath(void) +{ + return bind_cmd_path; +} + +void CNF_GetBindCommandAddress(int family, IPAddr *addr) +{ + if (family == 1) *addr = bind_cmd_address4; + else + if (family == 2) *addr = bind_cmd_address6; + else addr->family = (unsigned short)0; + return; +} + +char *CNF_GetNtpSigndSocket(void) +{ + return ntp_signd_socket; +} + +char *CNF_GetPidFile(void) +{ + return pidfile; +} + +REF_LeapMode CNF_GetLeapSecMode(void) +{ + return leapsec_mode; +} + +char *CNF_GetLeapSecTimezone(void) +{ + return leapsec_tz; +} + +int CNF_GetSchedPriority(void) +{ + return sched_priority; +} + +int CNF_GetLockMemory(void) +{ + return lock_memory; +} + +int CNF_GetNTPRateLimit(int *interval, int *burst, int *leak) +{ + *interval = ntp_ratelimit_interval; + *burst = ntp_ratelimit_burst; + *leak = ntp_ratelimit_leak; + return ntp_ratelimit_enabled; +} + +int CNF_GetCommandRateLimit(int *interval, int *burst, int *leak) +{ + *interval = cmd_ratelimit_interval; + *burst = cmd_ratelimit_burst; + *leak = cmd_ratelimit_leak; + return cmd_ratelimit_enabled; +} + +void CNF_GetSmooth(double *max_freq_0, double *max_wander_0, int *leap_only) +{ + *max_freq_0 = smooth_max_freq; + *max_wander_0 = smooth_max_wander; + *leap_only = smooth_leap_only; + return; +} + +void CNF_GetTempComp(char **file, double *interval, char **point_file, + double *T0, double *k0, double *k1, double *k2) +{ + *file = tempcomp_sensor_file; + *point_file = tempcomp_point_file; + *interval = tempcomp_interval; + *T0 = tempcomp_T0; + *k0 = tempcomp_k0; + *k1 = tempcomp_k1; + *k2 = tempcomp_k2; + return; +} + +char *CNF_GetUser(void) +{ + return user; +} + +int CNF_GetMaxSamples(void) +{ + return max_samples; +} + +int CNF_GetMinSamples(void) +{ + return min_samples; +} + +int CNF_GetMinSources(void) +{ + return min_sources; +} + +char *CNF_GetHwclockFile(void) +{ + return hwclock_file; +} + +int CNF_GetInitSources(void) +{ + int __retres; + unsigned int tmp; + tmp = ARR_GetSize(init_sources); + __retres = (int)tmp; + return __retres; +} + +double CNF_GetInitStepThreshold(void) +{ + return init_slew_threshold; +} + +int CNF_GetHwTsInterface(unsigned int index_0, CNF_HwTsInterface **iface) +{ + int __retres; + unsigned int tmp; + tmp = ARR_GetSize(hwts_interfaces); + ; + if (index_0 >= tmp) { + __retres = 0; + goto return_label; + } + *iface = (CNF_HwTsInterface *)ARR_GetElement(hwts_interfaces,index_0); + __retres = 1; + return_label: return __retres; +} + +void MD5Init(MD5_CTX *mdContext) __attribute__((__FC_OLDSTYLEPROTO__)); + +void MD5Update(MD5_CTX *mdContext, unsigned char const *inBuf, + unsigned int inLen) __attribute__((__FC_OLDSTYLEPROTO__)); + +void MD5Final(MD5_CTX *mdContext) __attribute__((__FC_OLDSTYLEPROTO__)); + +static void Transform(UINT4 *buf, UINT4 *in) __attribute__((__FC_OLDSTYLEPROTO__)); + +static unsigned char const PADDING[64] = + {(unsigned char)0x80, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00}; +void MD5Init(MD5_CTX *mdContext) __attribute__((__FC_OLDSTYLEPROTO__)); +void MD5Init(MD5_CTX *mdContext) +{ + UINT4 tmp; + tmp = (unsigned int)0; + mdContext->i[1] = tmp; + mdContext->i[0] = tmp; + mdContext->buf[0] = (unsigned int)0x67452301; + mdContext->buf[1] = 0xefcdab89; + mdContext->buf[2] = 0x98badcfe; + mdContext->buf[3] = (unsigned int)0x10325476; + return; +} + +void MD5Update(MD5_CTX *mdContext, unsigned char const *inBuf, + unsigned int inLen) __attribute__((__FC_OLDSTYLEPROTO__)); +void MD5Update(MD5_CTX *mdContext, unsigned char const *inBuf, + unsigned int inLen) +{ + UINT4 in[16]; + int mdi; + unsigned int i; + unsigned int ii; + mdi = (int)((mdContext->i[0] >> 3) & (unsigned int)0x3F); + if (mdContext->i[0] + (inLen << 3) < mdContext->i[0]) mdContext->i[1] += (UINT4)1; + mdContext->i[0] += inLen << 3; + mdContext->i[1] += inLen >> 29; + while (1) { + unsigned int tmp_1; + tmp_1 = inLen; + inLen --; + ; + if (! tmp_1) break; + { + int tmp; + unsigned char const *tmp_0; + tmp = mdi; + mdi ++; + tmp_0 = inBuf; + inBuf ++; + mdContext->in[tmp] = *tmp_0; + if (mdi == 0x40) { + i = (unsigned int)0; + ii = (unsigned int)0; + /*@ loop unroll 16; */ + while (i < (unsigned int)16) { + in[i] = ((((unsigned int)mdContext->in[ii + (unsigned int)3] << 24) | ( + (unsigned int)mdContext->in[ii + (unsigned int)2] << 16)) | ( + (unsigned int)mdContext->in[ii + (unsigned int)1] << 8)) | (unsigned int)mdContext->in[ii]; + i ++; + ii += (unsigned int)4; + } + Transform(mdContext->buf,in); + mdi = 0; + } + } + } + return; +} + +void MD5Final(MD5_CTX *mdContext) __attribute__((__FC_OLDSTYLEPROTO__)); +void MD5Final(MD5_CTX *mdContext) +{ + UINT4 in[16]; + int mdi; + unsigned int i; + unsigned int ii; + unsigned int padLen; + in[14] = mdContext->i[0]; + in[15] = mdContext->i[1]; + mdi = (int)((mdContext->i[0] >> 3) & (unsigned int)0x3F); + if (mdi < 56) padLen = (unsigned int)(56 - mdi); + else padLen = (unsigned int)(120 - mdi); + MD5Update(mdContext,PADDING,padLen); + i = (unsigned int)0; + ii = (unsigned int)0; + /*@ loop unroll 14; */ + while (i < (unsigned int)14) { + in[i] = ((((unsigned int)mdContext->in[ii + (unsigned int)3] << 24) | ( + (unsigned int)mdContext->in[ii + (unsigned int)2] << 16)) | ( + (unsigned int)mdContext->in[ii + (unsigned int)1] << 8)) | (unsigned int)mdContext->in[ii]; + i ++; + ii += (unsigned int)4; + } + Transform(mdContext->buf,in); + i = (unsigned int)0; + ii = (unsigned int)0; + /*@ loop unroll 4; */ + while (i < (unsigned int)4) { + mdContext->digest[ii] = (unsigned char)(mdContext->buf[i] & (unsigned int)0xFF); + mdContext->digest[ii + (unsigned int)1] = (unsigned char)((mdContext->buf[i] >> 8) & (unsigned int)0xFF); + mdContext->digest[ii + (unsigned int)2] = (unsigned char)((mdContext->buf[i] >> 16) & (unsigned int)0xFF); + mdContext->digest[ii + (unsigned int)3] = (unsigned char)((mdContext->buf[i] >> 24) & (unsigned int)0xFF); + i ++; + ii += (unsigned int)4; + } + return; +} + +/*@ requires \initialized(in + (0 .. 15)); + assigns *(buf + (0 .. 3)); + assigns *(buf + (0 .. 3)) \from (indirect: in), *(in + (0 .. 15)); + */ +static void Transform(UINT4 *buf, UINT4 *in) __attribute__((__FC_OLDSTYLEPROTO__)); +static void Transform(UINT4 *buf, UINT4 *in) +{ + UINT4 a = *(buf + 0); + UINT4 b = *(buf + 1); + UINT4 c = *(buf + 2); + UINT4 d = *(buf + 3); + a += (((b & c) | (~ b & d)) + *(in + 0)) + 0xd76aa478; + a = (a << 7) | (a >> (32 - 7)); + a += b; + d += (((a & b) | (~ a & c)) + *(in + 1)) + 0xe8c7b756; + d = (d << 12) | (d >> (32 - 12)); + d += a; + c += (((d & a) | (~ d & b)) + *(in + 2)) + (unsigned int)0x242070db; + c = (c << 17) | (c >> (32 - 17)); + c += d; + b += (((c & d) | (~ c & a)) + *(in + 3)) + 0xc1bdceee; + b = (b << 22) | (b >> (32 - 22)); + b += c; + a += (((b & c) | (~ b & d)) + *(in + 4)) + 0xf57c0faf; + a = (a << 7) | (a >> (32 - 7)); + a += b; + d += (((a & b) | (~ a & c)) + *(in + 5)) + (unsigned int)0x4787c62a; + d = (d << 12) | (d >> (32 - 12)); + d += a; + c += (((d & a) | (~ d & b)) + *(in + 6)) + 0xa8304613; + c = (c << 17) | (c >> (32 - 17)); + c += d; + b += (((c & d) | (~ c & a)) + *(in + 7)) + 0xfd469501; + b = (b << 22) | (b >> (32 - 22)); + b += c; + a += (((b & c) | (~ b & d)) + *(in + 8)) + (unsigned int)0x698098d8; + a = (a << 7) | (a >> (32 - 7)); + a += b; + d += (((a & b) | (~ a & c)) + *(in + 9)) + 0x8b44f7af; + d = (d << 12) | (d >> (32 - 12)); + d += a; + c += (((d & a) | (~ d & b)) + *(in + 10)) + 0xffff5bb1; + c = (c << 17) | (c >> (32 - 17)); + c += d; + b += (((c & d) | (~ c & a)) + *(in + 11)) + 0x895cd7be; + b = (b << 22) | (b >> (32 - 22)); + b += c; + a += (((b & c) | (~ b & d)) + *(in + 12)) + (unsigned int)0x6b901122; + a = (a << 7) | (a >> (32 - 7)); + a += b; + d += (((a & b) | (~ a & c)) + *(in + 13)) + 0xfd987193; + d = (d << 12) | (d >> (32 - 12)); + d += a; + c += (((d & a) | (~ d & b)) + *(in + 14)) + 0xa679438e; + c = (c << 17) | (c >> (32 - 17)); + c += d; + b += (((c & d) | (~ c & a)) + *(in + 15)) + (unsigned int)0x49b40821; + b = (b << 22) | (b >> (32 - 22)); + b += c; + a += (((b & d) | (c & ~ d)) + *(in + 1)) + 0xf61e2562; + a = (a << 5) | (a >> (32 - 5)); + a += b; + d += (((a & c) | (b & ~ c)) + *(in + 6)) + 0xc040b340; + d = (d << 9) | (d >> (32 - 9)); + d += a; + c += (((d & b) | (a & ~ b)) + *(in + 11)) + (unsigned int)0x265e5a51; + c = (c << 14) | (c >> (32 - 14)); + c += d; + b += (((c & a) | (d & ~ a)) + *(in + 0)) + 0xe9b6c7aa; + b = (b << 20) | (b >> (32 - 20)); + b += c; + a += (((b & d) | (c & ~ d)) + *(in + 5)) + 0xd62f105d; + a = (a << 5) | (a >> (32 - 5)); + a += b; + d += (((a & c) | (b & ~ c)) + *(in + 10)) + (unsigned int)0x2441453; + d = (d << 9) | (d >> (32 - 9)); + d += a; + c += (((d & b) | (a & ~ b)) + *(in + 15)) + 0xd8a1e681; + c = (c << 14) | (c >> (32 - 14)); + c += d; + b += (((c & a) | (d & ~ a)) + *(in + 4)) + 0xe7d3fbc8; + b = (b << 20) | (b >> (32 - 20)); + b += c; + a += (((b & d) | (c & ~ d)) + *(in + 9)) + (unsigned int)0x21e1cde6; + a = (a << 5) | (a >> (32 - 5)); + a += b; + d += (((a & c) | (b & ~ c)) + *(in + 14)) + 0xc33707d6; + d = (d << 9) | (d >> (32 - 9)); + d += a; + c += (((d & b) | (a & ~ b)) + *(in + 3)) + 0xf4d50d87; + c = (c << 14) | (c >> (32 - 14)); + c += d; + b += (((c & a) | (d & ~ a)) + *(in + 8)) + (unsigned int)0x455a14ed; + b = (b << 20) | (b >> (32 - 20)); + b += c; + a += (((b & d) | (c & ~ d)) + *(in + 13)) + 0xa9e3e905; + a = (a << 5) | (a >> (32 - 5)); + a += b; + d += (((a & c) | (b & ~ c)) + *(in + 2)) + 0xfcefa3f8; + d = (d << 9) | (d >> (32 - 9)); + d += a; + c += (((d & b) | (a & ~ b)) + *(in + 7)) + (unsigned int)0x676f02d9; + c = (c << 14) | (c >> (32 - 14)); + c += d; + b += (((c & a) | (d & ~ a)) + *(in + 12)) + 0x8d2a4c8a; + b = (b << 20) | (b >> (32 - 20)); + b += c; + a += (((b ^ c) ^ d) + *(in + 5)) + 0xfffa3942; + a = (a << 4) | (a >> (32 - 4)); + a += b; + d += (((a ^ b) ^ c) + *(in + 8)) + 0x8771f681; + d = (d << 11) | (d >> (32 - 11)); + d += a; + c += (((d ^ a) ^ b) + *(in + 11)) + (unsigned int)0x6d9d6122; + c = (c << 16) | (c >> (32 - 16)); + c += d; + b += (((c ^ d) ^ a) + *(in + 14)) + 0xfde5380c; + b = (b << 23) | (b >> (32 - 23)); + b += c; + a += (((b ^ c) ^ d) + *(in + 1)) + 0xa4beea44; + a = (a << 4) | (a >> (32 - 4)); + a += b; + d += (((a ^ b) ^ c) + *(in + 4)) + (unsigned int)0x4bdecfa9; + d = (d << 11) | (d >> (32 - 11)); + d += a; + c += (((d ^ a) ^ b) + *(in + 7)) + 0xf6bb4b60; + c = (c << 16) | (c >> (32 - 16)); + c += d; + b += (((c ^ d) ^ a) + *(in + 10)) + 0xbebfbc70; + b = (b << 23) | (b >> (32 - 23)); + b += c; + a += (((b ^ c) ^ d) + *(in + 13)) + (unsigned int)0x289b7ec6; + a = (a << 4) | (a >> (32 - 4)); + a += b; + d += (((a ^ b) ^ c) + *(in + 0)) + 0xeaa127fa; + d = (d << 11) | (d >> (32 - 11)); + d += a; + c += (((d ^ a) ^ b) + *(in + 3)) + 0xd4ef3085; + c = (c << 16) | (c >> (32 - 16)); + c += d; + b += (((c ^ d) ^ a) + *(in + 6)) + (unsigned int)0x4881d05; + b = (b << 23) | (b >> (32 - 23)); + b += c; + a += (((b ^ c) ^ d) + *(in + 9)) + 0xd9d4d039; + a = (a << 4) | (a >> (32 - 4)); + a += b; + d += (((a ^ b) ^ c) + *(in + 12)) + 0xe6db99e5; + d = (d << 11) | (d >> (32 - 11)); + d += a; + c += (((d ^ a) ^ b) + *(in + 15)) + (unsigned int)0x1fa27cf8; + c = (c << 16) | (c >> (32 - 16)); + c += d; + b += (((c ^ d) ^ a) + *(in + 2)) + 0xc4ac5665; + b = (b << 23) | (b >> (32 - 23)); + b += c; + a += ((c ^ (b | ~ d)) + *(in + 0)) + 0xf4292244; + a = (a << 6) | (a >> (32 - 6)); + a += b; + d += ((b ^ (a | ~ c)) + *(in + 7)) + (unsigned int)0x432aff97; + d = (d << 10) | (d >> (32 - 10)); + d += a; + c += ((a ^ (d | ~ b)) + *(in + 14)) + 0xab9423a7; + c = (c << 15) | (c >> (32 - 15)); + c += d; + b += ((d ^ (c | ~ a)) + *(in + 5)) + 0xfc93a039; + b = (b << 21) | (b >> (32 - 21)); + b += c; + a += ((c ^ (b | ~ d)) + *(in + 12)) + (unsigned int)0x655b59c3; + a = (a << 6) | (a >> (32 - 6)); + a += b; + d += ((b ^ (a | ~ c)) + *(in + 3)) + 0x8f0ccc92; + d = (d << 10) | (d >> (32 - 10)); + d += a; + c += ((a ^ (d | ~ b)) + *(in + 10)) + 0xffeff47d; + c = (c << 15) | (c >> (32 - 15)); + c += d; + b += ((d ^ (c | ~ a)) + *(in + 1)) + 0x85845dd1; + b = (b << 21) | (b >> (32 - 21)); + b += c; + a += ((c ^ (b | ~ d)) + *(in + 8)) + (unsigned int)0x6fa87e4f; + a = (a << 6) | (a >> (32 - 6)); + a += b; + d += ((b ^ (a | ~ c)) + *(in + 15)) + 0xfe2ce6e0; + d = (d << 10) | (d >> (32 - 10)); + d += a; + c += ((a ^ (d | ~ b)) + *(in + 6)) + 0xa3014314; + c = (c << 15) | (c >> (32 - 15)); + c += d; + b += ((d ^ (c | ~ a)) + *(in + 13)) + (unsigned int)0x4e0811a1; + b = (b << 21) | (b >> (32 - 21)); + b += c; + a += ((c ^ (b | ~ d)) + *(in + 4)) + 0xf7537e82; + a = (a << 6) | (a >> (32 - 6)); + a += b; + d += ((b ^ (a | ~ c)) + *(in + 11)) + 0xbd3af235; + d = (d << 10) | (d >> (32 - 10)); + d += a; + c += ((a ^ (d | ~ b)) + *(in + 2)) + (unsigned int)0x2ad7d2bb; + c = (c << 15) | (c >> (32 - 15)); + c += d; + b += ((d ^ (c | ~ a)) + *(in + 9)) + 0xeb86d391; + b = (b << 21) | (b >> (32 - 21)); + b += c; + *(buf + 0) += a; + *(buf + 1) += b; + *(buf + 2) += c; + *(buf + 3) += d; + return; +} + +static MD5_CTX ctx; +int HSH_GetHashId(char const *name) +{ + int __retres; + int tmp; + tmp = strcmp(name,"MD5"); + if (tmp) { + __retres = -1; + goto return_label; + } + __retres = 0; + return_label: return __retres; +} + +unsigned int HSH_Hash(int id, unsigned char const *in1, unsigned int in1_len, + unsigned char const *in2, unsigned int in2_len, + unsigned char *out, unsigned int out_len) +{ + MD5Init(& ctx); + MD5Update(& ctx,in1,in1_len); + if (in2) MD5Update(& ctx,in2,in2_len); + MD5Final(& ctx); + if (out_len < (unsigned int)16) out_len = out_len; + else out_len = (unsigned int)16; + memcpy((void *)out,(void const *)(ctx.digest),(unsigned long)out_len); + return out_len; +} + +void HSH_Finalise(void) +{ + return; +} + +void KEY_Initialise(void); + +void KEY_Finalise(void); + +void KEY_Reload(void); + +int KEY_KeyKnown(uint32_t key_id); + +int KEY_GetAuthDelay(uint32_t key_id); + +int KEY_GetAuthLength(uint32_t key_id); + +int KEY_CheckKeyLength(uint32_t key_id); + +int KEY_GenerateAuth(uint32_t key_id, unsigned char const *data, + int data_len, unsigned char *auth, int auth_len); + +int KEY_CheckAuth(uint32_t key_id, unsigned char const *data, int data_len, + unsigned char const *auth, int auth_len, int trunc_len); + +void LCL_ReadRawTime(struct timespec *ts); + +void LCL_ReadCookedTime(struct timespec *result, double *err); + +void LCL_CookTime(struct timespec *raw, struct timespec *cooked, double *err); + +void LCL_GetOffsetCorrection(struct timespec *raw, double *correction, + double *err); + +void LCL_AddParameterChangeHandler(void (*handler)(struct timespec *raw, + struct timespec *cooked, + double dfreq, + double doffset, + LCL_ChangeType change_type, + void *anything), + void *anything); + +void LCL_RemoveParameterChangeHandler(void (*handler)(struct timespec *raw, + struct timespec *cooked, + double dfreq, + double doffset, + LCL_ChangeType change_type, + void *anything), + void *anything); + +int LCL_IsFirstParameterChangeHandler(void (*handler)(struct timespec *raw, + struct timespec *cooked, + double dfreq, + double doffset, + LCL_ChangeType change_type, + void *anything)); + +void LCL_AddDispersionNotifyHandler(void (*handler)(double dispersion, + void *anything), + void *anything); + +extern void LCL_RemoveDispersionNotifyHandler(void (*handler)(double dispersion, + void *anything), + void *anything); + +double LCL_ReadAbsoluteFrequency(void); + +void LCL_SetAbsoluteFrequency(double afreq_ppm); + +void LCL_AccumulateDeltaFrequency(double dfreq); + +void LCL_AccumulateOffset(double offset, double corr_rate); + +int LCL_ApplyStepOffset(double offset); + +void LCL_NotifyExternalTimeStep(struct timespec *raw, + struct timespec *cooked, double offset, + double dispersion); + +void LCL_NotifyLeap(int leap); + +void LCL_AccumulateFrequencyAndOffset(double dfreq, double doffset, + double corr_rate); + +int LCL_GetSysPrecisionAsLog(void); + +double LCL_GetSysPrecisionAsQuantum(void); + +double LCL_GetMaxClockError(void); + +void LCL_Initialise(void); + +void LCL_Finalise(void); + +int LCL_MakeStep(void); + +int LCL_CanSystemLeap(void); + +void LCL_SetSystemLeap(int leap, int tai_offset); + +double LCL_SetTempComp(double comp); + +void LCL_SetSyncStatus(int synchronised, double est_error, double max_error); + +static ARR_Instance keys; +static int cache_valid; +static uint32_t cache_key_id; +static int cache_key_pos; +static void free_keys(void) +{ + unsigned int i; + i = (unsigned int)0; + while (1) { + unsigned int tmp_0; + void *tmp; + tmp_0 = ARR_GetSize(keys); + ; + if (! (i < tmp_0)) break; + tmp = ARR_GetElement(keys,i); + free((void *)((Key *)tmp)->val); + i ++; + } + ARR_SetSize(keys,(unsigned int)0); + cache_valid = 0; + return; +} + +void KEY_Initialise(void) +{ + keys = ARR_CreateInstance((unsigned int)sizeof(Key)); + cache_valid = 0; + KEY_Reload(); + return; +} + +void KEY_Finalise(void) +{ + free_keys(); + ARR_DestroyInstance(keys); + return; +} + +static Key *get_key(unsigned int index_0) +{ + Key *__retres; + void *tmp; + tmp = ARR_GetElements(keys); + ; + __retres = (Key *)tmp + index_0; + return __retres; +} + +static int determine_hash_delay(uint32_t key_id) +{ + NTP_Packet pkt; + struct timespec before; + struct timespec after; + double diff; + double min_diff; + int i; + int nsecs; + memset((void *)(& pkt),0,sizeof(pkt)); + i = 0; + /*@ loop unroll 10; */ + while (i < 10) { + LCL_ReadRawTime(& before); + KEY_GenerateAuth(key_id,(unsigned char const *)(& pkt),48, + (unsigned char *)(& pkt.auth_data), + (int)sizeof(pkt.auth_data)); + LCL_ReadRawTime(& after); + diff = UTI_DiffTimespecsToDouble(& after,& before); + if (i == 0) min_diff = diff; + else + if (min_diff > diff) min_diff = diff; + i ++; + } + nsecs = (int)(1.0625e9 * min_diff); + return nsecs; +} + +static int decode_password(char *key) +{ + int __retres; + int i; + int j; + size_t tmp; + char buf[3]; + char *p; + int tmp_2; + tmp = strlen((char const *)key); + int len = (int)tmp; + tmp_2 = strncmp((char const *)key,"ASCII:",(unsigned long)6); + if (tmp_2) { + int tmp_1; + tmp_1 = strncmp((char const *)key,"HEX:",(unsigned long)4); + if (tmp_1) { + __retres = len; + goto return_label; + } + else { + if ((len - 4) % 2) { + __retres = 0; + goto return_label; + } + i = 0; + j = 4; + while (j + 1 < len) { + { + long tmp_0; + buf[0] = *(key + j); + buf[1] = *(key + (j + 1)); + buf[2] = (char)'\000'; + tmp_0 = strtol((char const *)(buf),& p,16); + *(key + i) = (char)tmp_0; + if (p != & buf[2]) { + __retres = 0; + goto return_label; + } + } + i ++; + j += 2; + } + __retres = i; + goto return_label; + } + } + else { + memmove((void *)key,(void const *)(key + 6),(unsigned long)(len - 6)); + __retres = len - 6; + goto return_label; + } + return_label: return __retres; +} + +static int compare_keys_by_id(void const *a, void const *b) +{ + int __retres; + Key const *c = (Key const *)a; + Key const *d = (Key const *)b; + if (c->id < d->id) { + __retres = -1; + goto return_label; + } + else + if (c->id > d->id) { + __retres = 1; + goto return_label; + } + else { + __retres = 0; + goto return_label; + } + return_label: return __retres; +} + +void KEY_Reload(void) +{ + unsigned int i; + unsigned int line_number_0; + FILE *in; + uint32_t key_id; + char line[2048]; + char *keyval; + char *key_file; + char const *hashname; + Key key; + unsigned int tmp_2; + void *tmp_3; + free_keys(); + key_file = CNF_GetKeysFile(); + line_number_0 = (unsigned int)0; + if (! key_file) goto return_label; + in = fopen((char const *)key_file,"r"); + if (! in) { + { + char *__va_arg0 = key_file; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN,"Could not open keyfile %s", + (void * const *)(__va_args)); + } + goto return_label; + } + while (1) { + char *tmp_1; + tmp_1 = fgets(line,(int)sizeof(line),in); + if (! tmp_1) break; + { + int tmp; + line_number_0 ++; + CPS_NormalizeLine(line); + if (! line[0]) continue; + tmp = CPS_ParseKey(line,& key_id,& hashname,& keyval); + if (! tmp) { + { + unsigned int __va_arg0_25 = line_number_0; + char *__va_arg1 = key_file; + void *__va_args_28[2] = {& __va_arg0_25, & __va_arg1}; + LOG_Message(LOGS_WARN,"Could not parse key at line %u in file %s", + (void * const *)(__va_args_28)); + } + continue; + } + key.hash_id = HSH_GetHashId(hashname); + if (key.hash_id < 0) { + { + uint32_t __va_arg0_30 = key_id; + void *__va_args_32[1] = {& __va_arg0_30}; + LOG_Message(LOGS_WARN,"Unknown hash function in key %u", + (void * const *)(__va_args_32)); + } + continue; + } + key.len = decode_password(keyval); + if (! key.len) { + { + uint32_t __va_arg0_34 = key_id; + void *__va_args_36[1] = {& __va_arg0_34}; + LOG_Message(LOGS_WARN,"Could not decode password in key %u", + (void * const *)(__va_args_36)); + } + continue; + } + key.id = key_id; + key.val = (char *)Malloc2((unsigned long)key.len,sizeof(char)); + memcpy((void *)key.val,(void const *)keyval,(unsigned long)key.len); + ARR_AppendElement(keys,(void *)(& key)); + } + } + fclose(in); + tmp_2 = ARR_GetSize(keys); + tmp_3 = ARR_GetElements(keys); + qsort(tmp_3,(unsigned long)tmp_2,sizeof(Key),& compare_keys_by_id); + i = (unsigned int)1; + while (1) { + unsigned int tmp_7; + tmp_7 = ARR_GetSize(keys); + ; + if (! (i < tmp_7)) break; + { + Key *tmp_5; + Key *tmp_6; + tmp_5 = get_key(i - (unsigned int)1); + tmp_6 = get_key(i); + ; + if (tmp_5->id == tmp_6->id) { + Key *tmp_4; + tmp_4 = get_key(i - (unsigned int)1); + { + uint32_t __va_arg0_38 = tmp_4->id; + void *__va_args_40[1] = {& __va_arg0_38}; + LOG_Message(LOGS_WARN,"Detected duplicate key %u", + (void * const *)(__va_args_40)); + } + } + } + i ++; + } + memset((void *)(line),0,sizeof(line)); + i = (unsigned int)0; + while (1) { + unsigned int tmp_10; + Key *tmp_8; + Key *tmp_9; + tmp_10 = ARR_GetSize(keys); + ; + if (! (i < tmp_10)) break; + tmp_8 = get_key(i); + tmp_9 = get_key(i); + tmp_8->auth_delay = determine_hash_delay(tmp_9->id); + i ++; + } + return_label: return; +} + +static int lookup_key(uint32_t id) +{ + int __retres; + Key specimen; + Key *where; + Key *keys_ptr; + int pos; + void *tmp_0; + unsigned int tmp; + keys_ptr = (Key *)ARR_GetElements(keys); + specimen.id = id; + tmp = ARR_GetSize(keys); + ; + tmp_0 = bsearch((void const *)(& specimen),(void const *)keys_ptr, + (unsigned long)tmp,sizeof(Key),& compare_keys_by_id); + where = (Key *)tmp_0; + if (! where) { + __retres = -1; + goto return_label; + } + else { + pos = (int)(where - keys_ptr); + __retres = pos; + goto return_label; + } + return_label: return __retres; +} + +static Key *get_key_by_id(uint32_t key_id) +{ + Key *__retres; + int position; + if (cache_valid) + if (key_id == cache_key_id) { + Key *tmp; + tmp = get_key((unsigned int)cache_key_pos); + __retres = tmp; + goto return_label; + } + position = lookup_key(key_id); + if (position >= 0) { + Key *tmp_0; + cache_valid = 1; + cache_key_pos = position; + cache_key_id = key_id; + tmp_0 = get_key((unsigned int)position); + __retres = tmp_0; + goto return_label; + } + __retres = (Key *)0; + return_label: return __retres; +} + +int KEY_KeyKnown(uint32_t key_id) +{ + int __retres; + Key *tmp; + tmp = get_key_by_id(key_id); + __retres = tmp != (Key *)0; + return __retres; +} + +int KEY_GetAuthDelay(uint32_t key_id) +{ + int __retres; + Key *key; + key = get_key_by_id(key_id); + if (! key) { + __retres = 0; + goto return_label; + } + __retres = key->auth_delay; + return_label: return __retres; +} + +int KEY_GetAuthLength(uint32_t key_id) +{ + int __retres; + unsigned char buf[64]; + Key *key; + unsigned int tmp; + key = get_key_by_id(key_id); + if (! key) { + __retres = 0; + goto return_label; + } + tmp = HSH_Hash(key->hash_id,(unsigned char const *)(buf),(unsigned int)0, + (unsigned char const *)(buf),(unsigned int)0,buf, + (unsigned int)sizeof(buf)); + __retres = (int)tmp; + return_label: return __retres; +} + +int KEY_CheckKeyLength(uint32_t key_id) +{ + int __retres; + Key *key; + key = get_key_by_id(key_id); + if (! key) { + __retres = 0; + goto return_label; + } + __retres = key->len >= 10; + return_label: return __retres; +} + +static int generate_ntp_auth(int hash_id, unsigned char const *key, + int key_len, unsigned char const *data, + int data_len, unsigned char *auth, int auth_len) +{ + int __retres; + unsigned int tmp; + tmp = HSH_Hash(hash_id,key,(unsigned int)key_len,data, + (unsigned int)data_len,auth,(unsigned int)auth_len); + __retres = (int)tmp; + return __retres; +} + +static int check_ntp_auth(int hash_id, unsigned char const *key, int key_len, + unsigned char const *data, int data_len, + unsigned char const *auth, int auth_len, + int trunc_len) +{ + unsigned char buf[64]; + int hash_len; + int tmp_1; + int tmp; + hash_len = generate_ntp_auth(hash_id,key,key_len,data,data_len,buf, + (int)sizeof(buf)); + if (hash_len < trunc_len) tmp = hash_len; else tmp = trunc_len; + ; + if (tmp == auth_len) { + int tmp_0; + tmp_0 = memcmp((void const *)(buf),(void const *)auth, + (unsigned long)auth_len); + if (tmp_0) tmp_1 = 0; else tmp_1 = 1; + } + else tmp_1 = 0; + return tmp_1; +} + +int KEY_GenerateAuth(uint32_t key_id, unsigned char const *data, + int data_len, unsigned char *auth, int auth_len) +{ + int __retres; + Key *key; + int tmp; + key = get_key_by_id(key_id); + if (! key) { + __retres = 0; + goto return_label; + } + tmp = generate_ntp_auth(key->hash_id,(unsigned char const *)key->val, + key->len,data,data_len,auth,auth_len); + __retres = tmp; + return_label: return __retres; +} + +int KEY_CheckAuth(uint32_t key_id, unsigned char const *data, int data_len, + unsigned char const *auth, int auth_len, int trunc_len) +{ + int __retres; + Key *key; + int tmp; + key = get_key_by_id(key_id); + if (! key) { + __retres = 0; + goto return_label; + } + tmp = check_ntp_auth(key->hash_id,(unsigned char const *)key->val,key->len, + data,data_len,auth,auth_len,trunc_len); + __retres = tmp; + return_label: return __retres; +} + +void SMT_Initialise(void); + +void SMT_Finalise(void); + +int SMT_IsEnabled(void); + +double SMT_GetOffset(struct timespec *now); + +void SMT_Activate(struct timespec *now); + +void SMT_Reset(struct timespec *now); + +void SMT_Leap(struct timespec *now, int leap); + +int SMT_GetSmoothingReport(RPT_SmoothingReport *report, struct timespec *now); + +static double current_freq_ppm; +static double max_freq_ppm; +static double temp_comp_ppm; +static double (*drv_read_freq)(void); +static double (*drv_set_freq)(double freq_ppm); +static void (*drv_accrue_offset)(double offset, double corr_rate); +static int (*drv_apply_step_offset)(double offset); +static void (*drv_offset_convert)(struct timespec *raw, double *corr, + double *err); +static void (*drv_set_leap)(int leap, int tai_offset); +static void (*drv_set_sync_status)(int synchronised, double est_error, + double max_error); +static ChangeListEntry change_list; +static DispersionNotifyListEntry dispersion_notify_list; +static int precision_log; +static double precision_quantum; +static double max_clock_error_0; +static void calculate_sys_precision(void) +{ + struct timespec ts; + struct timespec old_ts; + int iters; + int diff; + int best; + LCL_ReadRawTime(& old_ts); + best = 1000000000; + iters = 0; + while (1) { + LCL_ReadRawTime(& ts); + diff = (int)((long)1000000000 * (ts.tv_sec - old_ts.tv_sec) + (ts.tv_nsec - old_ts.tv_nsec)); + old_ts = ts; + if (diff > 0) { + if (diff < best) best = diff; + iters ++; + } + if (! (iters < 100)) break; + } + __FC_assert((best > 0) != 0,"local.c",136,"best > 0"); + precision_quantum = 1.0e-9 * (double)best; + precision_log = 0; + while (best < 707106781) { + precision_log --; + best *= 2; + } + __FC_assert((precision_log >= -30) != 0,"local.c",147, + "precision_log >= -30"); + return; +} + +void LCL_Initialise(void) +{ + double tmp; + double tmp_1; + change_list.prev = & change_list; + change_list.next = change_list.prev; + dispersion_notify_list.prev = & dispersion_notify_list; + dispersion_notify_list.next = dispersion_notify_list.prev; + drv_read_freq = (double (*)(void))0; + drv_set_freq = (double (*)(double freq_ppm))0; + drv_accrue_offset = (void (*)(double offset, double corr_rate))0; + drv_offset_convert = (void (*)(struct timespec *raw, double *corr, + double *err))0; + current_freq_ppm = 0.0; + temp_comp_ppm = 0.0; + calculate_sys_precision(); + max_freq_ppm = CNF_GetMaxDrift(); + if (max_freq_ppm < 500000.0) tmp = max_freq_ppm; else tmp = 500000.0; + if (0.0 > tmp) max_freq_ppm = 0.0; + else { + double tmp_0; + if (max_freq_ppm < 500000.0) tmp_0 = max_freq_ppm; else tmp_0 = 500000.0; + max_freq_ppm = tmp_0; + } + tmp_1 = CNF_GetMaxClockError(); + max_clock_error_0 = tmp_1 * 1e-6; + return; +} + +void LCL_Finalise(void) +{ + while (change_list.next != & change_list) LCL_RemoveParameterChangeHandler + ((change_list.next)->handler, + (change_list.next)->anything); + while (dispersion_notify_list.next != & dispersion_notify_list) LCL_RemoveDispersionNotifyHandler + ((dispersion_notify_list.next)->handler, + (dispersion_notify_list.next)->anything); + return; +} + +int LCL_GetSysPrecisionAsLog(void) +{ + return precision_log; +} + +double LCL_GetSysPrecisionAsQuantum(void) +{ + return precision_quantum; +} + +double LCL_GetMaxClockError(void) +{ + return max_clock_error_0; +} + +void LCL_AddParameterChangeHandler(void (*handler)(struct timespec *raw, + struct timespec *cooked, + double dfreq, + double doffset, + LCL_ChangeType change_type, + void *anything), + void *anything) +{ + ChangeListEntry *ptr; + ChangeListEntry *new_entry; + ptr = change_list.next; + while (ptr != & change_list) { + if (! (ptr->handler != handler)) + if (! (ptr->anything != anything)) __FC_assert(0 != 0,"local.c",233, + "0"); + ptr = ptr->next; + } + new_entry = (ChangeListEntry *)Malloc(sizeof(ChangeListEntry)); + new_entry->handler = handler; + new_entry->anything = anything; + new_entry->next = & change_list; + new_entry->prev = change_list.prev; + (change_list.prev)->next = new_entry; + change_list.prev = new_entry; + return; +} + +void LCL_RemoveParameterChangeHandler(void (*handler)(struct timespec *raw, + struct timespec *cooked, + double dfreq, + double doffset, + LCL_ChangeType change_type, + void *anything), + void *anything) +{ + ChangeListEntry *ptr; + int ok; + ptr = (ChangeListEntry *)0; + ok = 0; + ptr = change_list.next; + while (ptr != & change_list) { + if (ptr->handler == handler) + if (ptr->anything == anything) { + ok = 1; + break; + } + ptr = ptr->next; + } + __FC_assert(ok != 0,"local.c",268,"ok"); + (ptr->next)->prev = ptr->prev; + (ptr->prev)->next = ptr->next; + free((void *)ptr); + return; +} + +int LCL_IsFirstParameterChangeHandler(void (*handler)(struct timespec *raw, + struct timespec *cooked, + double dfreq, + double doffset, + LCL_ChangeType change_type, + void *anything)) +{ + int __retres; + __retres = (change_list.next)->handler == handler; + return __retres; +} + +static void invoke_parameter_change_handlers(struct timespec *raw, + struct timespec *cooked, + double dfreq, double doffset, + LCL_ChangeType change_type) +{ + ChangeListEntry *ptr; + ptr = change_list.next; + while (ptr != & change_list) { + (*(ptr->handler))(raw,cooked,dfreq,doffset,change_type,ptr->anything); + ptr = ptr->next; + } + return; +} + +void LCL_AddDispersionNotifyHandler(void (*handler)(double dispersion, + void *anything), + void *anything) +{ + DispersionNotifyListEntry *ptr; + DispersionNotifyListEntry *new_entry; + ptr = dispersion_notify_list.next; + while (ptr != & dispersion_notify_list) { + if (! (ptr->handler != handler)) + if (! (ptr->anything != anything)) __FC_assert(0 != 0,"local.c",309, + "0"); + ptr = ptr->next; + } + new_entry = (DispersionNotifyListEntry *)Malloc(sizeof(DispersionNotifyListEntry)); + new_entry->handler = handler; + new_entry->anything = anything; + new_entry->next = & dispersion_notify_list; + new_entry->prev = dispersion_notify_list.prev; + (dispersion_notify_list.prev)->next = new_entry; + dispersion_notify_list.prev = new_entry; + return; +} + +extern void LCL_RemoveDispersionNotifyHandler(void (*handler)(double dispersion, + void *anything), + void *anything) +{ + DispersionNotifyListEntry *ptr; + int ok; + ptr = (DispersionNotifyListEntry *)0; + ok = 0; + ptr = dispersion_notify_list.next; + while (ptr != & dispersion_notify_list) { + if (ptr->handler == handler) + if (ptr->anything == anything) { + ok = 1; + break; + } + ptr = ptr->next; + } + __FC_assert(ok != 0,"local.c",345,"ok"); + (ptr->next)->prev = ptr->prev; + (ptr->prev)->next = ptr->next; + free((void *)ptr); + return; +} + +void LCL_ReadRawTime(struct timespec *ts) +{ + int tmp_0; + tmp_0 = clock_gettime(666,ts); + if (tmp_0 < 0) { + char *tmp; + tmp = strerror(__fc_errno); + { + char *__va_arg0 = tmp; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_FATAL,"clock_gettime() failed : %s", + (void * const *)(__va_args)); + } + exit(1); + } + return; +} + +void LCL_ReadCookedTime(struct timespec *result, double *err) +{ + struct timespec raw; + LCL_ReadRawTime(& raw); + LCL_CookTime(& raw,result,err); + return; +} + +void LCL_CookTime(struct timespec *raw, struct timespec *cooked, double *err) +{ + double correction; + LCL_GetOffsetCorrection(raw,& correction,err); + UTI_AddDoubleToTimespec(raw,correction,cooked); + return; +} + +void LCL_GetOffsetCorrection(struct timespec *raw, double *correction, + double *err) +{ + (*drv_offset_convert)(raw,correction,err); + return; +} + +double LCL_ReadAbsoluteFrequency(void) +{ + double freq; + freq = current_freq_ppm; + if (temp_comp_ppm != 0.0) freq = (freq + temp_comp_ppm) / (1.0 - 1.0e-6 * temp_comp_ppm); + return freq; +} + +static double clamp_freq(double freq) +{ + double __retres; + double tmp_1; + double tmp; + if (freq <= max_freq_ppm) + if (freq >= - max_freq_ppm) { + __retres = freq; + goto return_label; + } + { + double __va_arg0 = freq; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN,"Frequency %.1f ppm exceeds allowed maximum", + (void * const *)(__va_args)); + } + if (freq < max_freq_ppm) tmp = freq; else tmp = max_freq_ppm; + ; + if (- max_freq_ppm > tmp) tmp_1 = - max_freq_ppm; + else { + double tmp_0; + if (freq < max_freq_ppm) tmp_0 = freq; else tmp_0 = max_freq_ppm; + tmp_1 = tmp_0; + } + __retres = tmp_1; + return_label: return __retres; +} + +static int check_offset(struct timespec *now, double offset) +{ + int __retres; + int tmp; + tmp = UTI_IsTimeOffsetSane(now,- offset); + if (tmp) { + __retres = 1; + goto return_label; + } + { + double __va_arg0 = - offset; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN,"Adjustment of %.1f seconds is invalid", + (void * const *)(__va_args)); + } + __retres = 0; + return_label: return __retres; +} + +void LCL_SetAbsoluteFrequency(double afreq_ppm) +{ + struct timespec raw; + struct timespec cooked; + double dfreq; + afreq_ppm = clamp_freq(afreq_ppm); + if (temp_comp_ppm != 0.0) afreq_ppm = afreq_ppm * (1.0 - 1.0e-6 * temp_comp_ppm) - temp_comp_ppm; + afreq_ppm = (*drv_set_freq)(afreq_ppm); + dfreq = (afreq_ppm - current_freq_ppm) / (1.0e6 - current_freq_ppm); + LCL_ReadRawTime(& raw); + LCL_CookTime(& raw,& cooked,(double *)0); + invoke_parameter_change_handlers(& raw,& cooked,dfreq,0.0,LCL_ChangeAdjust); + current_freq_ppm = afreq_ppm; + return; +} + +void LCL_AccumulateDeltaFrequency(double dfreq) +{ + struct timespec raw; + struct timespec cooked; + double old_freq_ppm; + old_freq_ppm = current_freq_ppm; + current_freq_ppm += dfreq * (1.0e6 - current_freq_ppm); + current_freq_ppm = clamp_freq(current_freq_ppm); + current_freq_ppm = (*drv_set_freq)(current_freq_ppm); + dfreq = (current_freq_ppm - old_freq_ppm) / (1.0e6 - old_freq_ppm); + LCL_ReadRawTime(& raw); + LCL_CookTime(& raw,& cooked,(double *)0); + invoke_parameter_change_handlers(& raw,& cooked,dfreq,0.0,LCL_ChangeAdjust); + return; +} + +void LCL_AccumulateOffset(double offset, double corr_rate) +{ + struct timespec raw; + struct timespec cooked; + int tmp; + LCL_ReadRawTime(& raw); + LCL_CookTime(& raw,& cooked,(double *)0); + tmp = check_offset(& cooked,offset); + if (! tmp) goto return_label; + (*drv_accrue_offset)(offset,corr_rate); + invoke_parameter_change_handlers(& raw,& cooked,0.0,offset, + LCL_ChangeAdjust); + return_label: return; +} + +int LCL_ApplyStepOffset(double offset) +{ + int __retres; + struct timespec raw; + struct timespec cooked; + int tmp; + int tmp_0; + LCL_ReadRawTime(& raw); + LCL_CookTime(& raw,& cooked,(double *)0); + tmp = check_offset(& raw,offset); + if (! tmp) { + __retres = 0; + goto return_label; + } + tmp_0 = (*drv_apply_step_offset)(offset); + if (! tmp_0) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_ERR,"Could not step system clock", + (void * const *)(__va_args)); + } + __retres = 0; + goto return_label; + } + SMT_Reset(& cooked); + invoke_parameter_change_handlers(& raw,& cooked,0.0,offset,LCL_ChangeStep); + __retres = 1; + return_label: return __retres; +} + +void LCL_NotifyExternalTimeStep(struct timespec *raw, + struct timespec *cooked, double offset, + double dispersion) +{ + invoke_parameter_change_handlers(raw,cooked,0.0,offset, + LCL_ChangeUnknownStep); + lcl_InvokeDispersionNotifyHandlers(dispersion); + return; +} + +void LCL_NotifyLeap(int leap) +{ + struct timespec raw; + struct timespec cooked; + LCL_ReadRawTime(& raw); + LCL_CookTime(& raw,& cooked,(double *)0); + SMT_Leap(& cooked,leap); + invoke_parameter_change_handlers(& raw,& cooked,0.0,(double)(- leap), + LCL_ChangeStep); + return; +} + +void LCL_AccumulateFrequencyAndOffset(double dfreq, double doffset, + double corr_rate) +{ + struct timespec raw; + struct timespec cooked; + double old_freq_ppm; + int tmp; + LCL_ReadRawTime(& raw); + LCL_CookTime(& raw,& cooked,(double *)0); + tmp = check_offset(& cooked,doffset); + if (! tmp) goto return_label; + old_freq_ppm = current_freq_ppm; + current_freq_ppm += dfreq * (1.0e6 - current_freq_ppm); + current_freq_ppm = clamp_freq(current_freq_ppm); + current_freq_ppm = (*drv_set_freq)(current_freq_ppm); + dfreq = (current_freq_ppm - old_freq_ppm) / (1.0e6 - old_freq_ppm); + (*drv_accrue_offset)(doffset,corr_rate); + invoke_parameter_change_handlers(& raw,& cooked,dfreq,doffset, + LCL_ChangeAdjust); + return_label: return; +} + +void lcl_InvokeDispersionNotifyHandlers(double dispersion) +{ + DispersionNotifyListEntry *ptr; + ptr = dispersion_notify_list.next; + while (ptr != & dispersion_notify_list) { + (*(ptr->handler))(dispersion,ptr->anything); + ptr = ptr->next; + } + return; +} + +void lcl_RegisterSystemDrivers(double (*read_freq)(void), + double (*set_freq)(double freq_ppm), + void (*accrue_offset_0)(double offset, + double corr_rate), + int (*apply_step_offset_0)(double offset), + void (*offset_convert_0)(struct timespec *raw, + double *corr, + double *err), + void (*set_leap)(int leap, int tai_offset), + void (*set_sync_status)(int synchronised, + double est_error, + double max_error)) +{ + drv_read_freq = read_freq; + drv_set_freq = set_freq; + drv_accrue_offset = accrue_offset_0; + drv_apply_step_offset = apply_step_offset_0; + drv_offset_convert = offset_convert_0; + drv_set_leap = set_leap; + drv_set_sync_status = set_sync_status; + current_freq_ppm = (*drv_read_freq)(); + return; +} + +int LCL_MakeStep(void) +{ + int __retres; + struct timespec raw; + double correction; + int tmp; + int tmp_0; + LCL_ReadRawTime(& raw); + LCL_GetOffsetCorrection(& raw,& correction,(double *)0); + tmp = check_offset(& raw,- correction); + if (! tmp) { + __retres = 0; + goto return_label; + } + LCL_AccumulateOffset(correction,0.0); + tmp_0 = LCL_ApplyStepOffset(- correction); + if (! tmp_0) { + __retres = 0; + goto return_label; + } + { + double __va_arg0 = correction; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN,"System clock was stepped by %.6f seconds", + (void * const *)(__va_args)); + } + __retres = 1; + return_label: return __retres; +} + +int LCL_CanSystemLeap(void) +{ + int tmp; + if (drv_set_leap) tmp = 1; else tmp = 0; + return tmp; +} + +void LCL_SetSystemLeap(int leap, int tai_offset) +{ + if (drv_set_leap) (*drv_set_leap)(leap,tai_offset); + return; +} + +double LCL_SetTempComp(double comp) +{ + double __retres; + double uncomp_freq_ppm; + if (temp_comp_ppm == comp) { + __retres = comp; + goto return_label; + } + current_freq_ppm = (current_freq_ppm + temp_comp_ppm) / (1.0 - 1.0e-6 * temp_comp_ppm); + uncomp_freq_ppm = current_freq_ppm; + current_freq_ppm = current_freq_ppm * (1.0 - 1.0e-6 * comp) - comp; + current_freq_ppm = (*drv_set_freq)(current_freq_ppm); + temp_comp_ppm = (uncomp_freq_ppm - current_freq_ppm) / (1.0e-6 * uncomp_freq_ppm + 1.0); + __retres = temp_comp_ppm; + return_label: return __retres; +} + +void LCL_SetSyncStatus(int synchronised, double est_error, double max_error) +{ + if (drv_set_sync_status) (*drv_set_sync_status)(synchronised,est_error, + max_error); + return; +} + +void *Malloc(size_t size) +{ + void *r; + r = malloc(size); + if (! r) + if (size) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"Could not allocate memory", + (void * const *)(__va_args)); + } + exit(1); + } + return r; +} + +void *Realloc(void *ptr, size_t size) +{ + void *r; + r = realloc(ptr,size); + if (! r) + if (size) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"Could not allocate memory", + (void * const *)(__va_args)); + } + exit(1); + } + return r; +} + +static size_t get_array_size(size_t nmemb, size_t size) +{ + size_t array_size; + array_size = nmemb * size; + if (nmemb > (size_t)0) + if (array_size / nmemb != size) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"Could not allocate memory", + (void * const *)(__va_args)); + } + exit(1); + } + return array_size; +} + +void *Malloc2(size_t nmemb, size_t size) +{ + void *tmp_0; + size_t tmp; + tmp = get_array_size(nmemb,size); + tmp_0 = Malloc(tmp); + return tmp_0; +} + +void *Realloc2(void *ptr, size_t nmemb, size_t size) +{ + void *tmp_0; + size_t tmp; + tmp = get_array_size(nmemb,size); + ; + tmp_0 = Realloc(ptr,tmp); + return tmp_0; +} + +char *Strdup(char const *s) +{ + char *__retres; + void *r; + r = (void *)strdup(s); + if (! r) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"Could not allocate memory", + (void * const *)(__va_args)); + } + exit(1); + } + __retres = (char *)r; + return __retres; +} + +static int address_family = 0; +void DNS_SetAddressFamily(int family) +{ + address_family = family; + return; +} + +DNS_Status DNS_Name2IPAddress(char const *name, IPAddr *ip_addrs, + int max_addrs) +{ + DNS_Status __retres; + struct hostent *host; + int i; + if (address_family != 0) + if (address_family != 1) { + __retres = DNS_Failure; + goto return_label; + } + if (max_addrs < 16) max_addrs = max_addrs; else max_addrs = 16; + host = gethostbyname(name); + if (host == (struct hostent *)0) { + if (h_errno == 2) { + __retres = DNS_TryAgain; + goto return_label; + } + } + else { + if (host->h_addrtype != 2) { + __retres = DNS_Failure; + goto return_label; + } + else + if (! *(host->h_addr_list + 0)) { + __retres = DNS_Failure; + goto return_label; + } + i = 0; + while (1) { + if (*(host->h_addr_list + i)) { + if (! (i < max_addrs)) break; + } + else break; + (ip_addrs + i)->family = (unsigned short)1; + (ip_addrs + i)->addr.in4 = ntohl(*((uint32_t *)*(host->h_addr_list + i))); + i ++; + } + while (i < max_addrs) { + (ip_addrs + i)->family = (unsigned short)0; + i ++; + } + __retres = DNS_Success; + goto return_label; + } + __retres = DNS_TryAgain; + return_label: return __retres; +} + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + requires valid_read_string(param0); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: *(param0 + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..)); + */ +int snprintf_va_1(char * __restrict s, size_t n, + char const * __restrict format, char *param0); + +int DNS_IPAddress2Name(IPAddr *ip_addr, char *name, int len) +{ + int __retres; + struct hostent *host; + uint32_t addr; + int tmp; + char *result = (char *)0; + switch ((int)ip_addr->family) { + case 1: addr = htonl(ip_addr->addr.in4); + host = gethostbyaddr((void const *)(& addr), + (unsigned int)sizeof(ip_addr),2); + break; + default: host = (struct hostent *)0; + } + if (host) result = host->h_name; + if (result == (char *)0) result = UTI_IPToString(ip_addr); + tmp = snprintf_va_1(name,(unsigned long)len,"%s",result); + ; + if (tmp >= len) { + __retres = 0; + goto return_label; + } + __retres = 1; + return_label: return __retres; +} + +void DNS_Reload(void) +{ + res_init(); + return; +} + +void NIO_Initialise(int family); + +void NIO_Finalise(void); + +int NIO_OpenClientSocket(NTP_Remote_Address *remote_addr); + +int NIO_OpenServerSocket(NTP_Remote_Address *remote_addr); + +void NIO_CloseClientSocket(int sock_fd); + +void NIO_CloseServerSocket(int sock_fd); + +int NIO_IsServerSocket(int sock_fd); + +int NIO_IsServerConnectable(NTP_Remote_Address *remote_addr); + +int NIO_SendPacket(NTP_Packet *packet, NTP_Remote_Address *remote_addr, + NTP_Local_Address *local_addr, int length, int process_tx); + +void SCH_Initialise(void); + +void SCH_Finalise(void); + +void SCH_AddFileHandler(int fd, int events, + void (*handler)(int fd, int event, + SCH_ArbitraryArgument ), + SCH_ArbitraryArgument arg); + +void SCH_RemoveFileHandler(int fd); + +void SCH_SetFileHandlerEvent(int fd, int event, int enable); + +void SCH_GetLastEventTime(struct timespec *cooked, double *err, + struct timespec *raw); + +SCH_TimeoutID SCH_AddTimeout(struct timespec *ts, + void (*handler)(SCH_ArbitraryArgument ), + SCH_ArbitraryArgument arg); + +SCH_TimeoutID SCH_AddTimeoutByDelay(double delay, + void (*handler)(SCH_ArbitraryArgument ), + SCH_ArbitraryArgument arg); + +SCH_TimeoutID SCH_AddTimeoutInClass(double min_delay, double separation, + double randomness, + SCH_TimeoutClass class, + void (*handler)(SCH_ArbitraryArgument ), + SCH_ArbitraryArgument arg); + +void SCH_RemoveTimeout(SCH_TimeoutID id); + +void SCH_MainLoop(void); + +void SCH_QuitProgram(void); + +static ARR_Instance recv_messages; +static ARR_Instance recv_headers; +static int server_sock_fd4; +static int client_sock_fd4; +static int server_sock_ref4; +static int separate_client_sockets; +static int permanent_server_sockets; +static int initialised = 0; +static void read_from_socket(int sock_fd, int event, void *anything); + +static int prepare_socket(int family, int port_number, int client_only) +{ + int __retres; + union sockaddr_in46 my_addr; + socklen_t my_addr_len; + int sock_fd; + IPAddr bind_address; + int tmp_8; + int events = 1; + int on_off = 1; + sock_fd = socket(family,2,0); + if (sock_fd < 0) { + if (! client_only) { + char *tmp; + char const *tmp_0; + tmp = strerror(__fc_errno); + tmp_0 = UTI_SockaddrFamilyToString(family); + { + char const *__va_arg0 = tmp_0; + char *__va_arg1 = tmp; + void *__va_args[2] = {& __va_arg0, & __va_arg1}; + LOG_Message(LOGS_ERR,"Could not open %s NTP socket : %s", + (void * const *)(__va_args)); + } + } + __retres = -1; + goto return_label; + } + UTI_FdSetCloexec(sock_fd); + if (! client_only) { + int tmp_4; + tmp_4 = __va_fcntl_int(sock_fd,4,0x800); + if (tmp_4) ; + } + memset((void *)(& my_addr),0,sizeof(my_addr)); + my_addr_len = (unsigned int)0; + switch (family) { + case 2: + if (! client_only) CNF_GetBindAddress(1,& bind_address); + else CNF_GetBindAcquisitionAddress(1,& bind_address); + if ((int)bind_address.family == 1) my_addr.in4.sin_addr.s_addr = htonl + (bind_address.addr.in4); + else + if (port_number) my_addr.in4.sin_addr.s_addr = htonl((unsigned int)0); + else break; + my_addr.in4.sin_family = (unsigned short)family; + my_addr.in4.sin_port = htons((unsigned short)port_number); + my_addr_len = (unsigned int)sizeof(my_addr.in4); + break; + default: __FC_assert(0 != 0,"ntp_io.c",194,"0"); + } + if (port_number) { + int tmp_5; + tmp_5 = setsockopt(sock_fd,1,2,(void const *)(& on_off), + (unsigned int)sizeof(on_off)); + if (tmp_5 < 0) { + { + char const *__va_arg0_25 = "SO_REUSEADDR"; + void *__va_args_27[1] = {& __va_arg0_25}; + LOG_Message(LOGS_ERR,"Could not set %s socket option", + (void * const *)(__va_args_27)); + } + } + } + if (! client_only) { + int tmp_6; + tmp_6 = setsockopt(sock_fd,1,6,(void const *)(& on_off), + (unsigned int)sizeof(on_off)); + if (tmp_6 < 0) { + { + char const *__va_arg0_29 = "SO_BROADCAST"; + void *__va_args_31[1] = {& __va_arg0_29}; + LOG_Message(LOGS_ERR,"Could not set %s socket option", + (void * const *)(__va_args_31)); + } + } + } + tmp_8 = setsockopt(sock_fd,1,35,(void const *)(& on_off), + (unsigned int)sizeof(on_off)); + if (tmp_8 < 0) { + int tmp_7; + tmp_7 = setsockopt(sock_fd,1,29,(void const *)(& on_off), + (unsigned int)sizeof(on_off)); + if (tmp_7 < 0) { + { + char const *__va_arg0_33 = "SO_TIMESTAMP"; + void *__va_args_35[1] = {& __va_arg0_33}; + LOG_Message(LOGS_ERR,"Could not set %s socket option", + (void * const *)(__va_args_35)); + } + } + } + if (my_addr_len > (socklen_t)0) { + int tmp_9; + tmp_9 = setsockopt(sock_fd,IPPROTO_IP,15,(void const *)(& on_off), + (unsigned int)sizeof(on_off)); + if (tmp_9 < 0) { + { + char const *__va_arg0_37 = "IP_FREEBIND"; + void *__va_args_39[1] = {& __va_arg0_37}; + LOG_Message(LOGS_ERR,"Could not set %s socket option", + (void * const *)(__va_args_39)); + } + } + } + if (family == 2) ; + if (my_addr_len > (socklen_t)0) { + int tmp_12; + tmp_12 = bind(sock_fd,(struct sockaddr const *)(& my_addr.u),my_addr_len); + if (tmp_12 < 0) { + char *tmp_10; + char const *tmp_11; + tmp_10 = strerror(__fc_errno); + tmp_11 = UTI_SockaddrFamilyToString(family); + { + char const *__va_arg0_41 = tmp_11; + char *__va_arg1_43 = tmp_10; + void *__va_args_45[2] = {& __va_arg0_41, & __va_arg1_43}; + LOG_Message(LOGS_ERR,"Could not bind %s NTP socket : %s", + (void * const *)(__va_args_45)); + } + close(sock_fd); + __retres = -1; + goto return_label; + } + } + SCH_AddFileHandler(sock_fd,events,& read_from_socket,(void *)0); + __retres = sock_fd; + return_label: return __retres; +} + +static int prepare_separate_client_socket(int family) +{ + int __retres; + switch (family) { + int tmp; + case 1: tmp = prepare_socket(2,0,1); + __retres = tmp; + goto return_label; + default: __retres = -1; + goto return_label; + } + return_label: return __retres; +} + +static int connect_socket(int sock_fd, NTP_Remote_Address *remote_addr) +{ + int __retres; + union sockaddr_in46 addr; + socklen_t addr_len; + int tmp; + int tmp_2; + tmp = UTI_IPAndPortToSockaddr(& remote_addr->ip_addr,remote_addr->port, + & addr.u); + addr_len = (unsigned int)tmp; + __FC_assert(addr_len != (socklen_t)0,"ntp_io.c",305,"addr_len"); + tmp_2 = connect(sock_fd,(struct sockaddr const *)(& addr.u),addr_len); + if (tmp_2 < 0) { + __retres = 0; + goto return_label; + } + __retres = 1; + return_label: return __retres; +} + +static void close_socket(int sock_fd) +{ + if (sock_fd == -1) goto return_label; + SCH_RemoveFileHandler(sock_fd); + close(sock_fd); + return_label: return; +} + +static void prepare_buffers(unsigned int n) +{ + struct MessageHeader *hdr; + struct Message *msg; + unsigned int i; + i = (unsigned int)0; + while (i < n) { + msg = (struct Message *)ARR_GetElement(recv_messages,i); + hdr = (struct MessageHeader *)ARR_GetElement(recv_headers,i); + msg->iov.iov_base = (void *)(& msg->buf); + msg->iov.iov_len = sizeof(msg->buf); + hdr->msg_hdr.msg_name = (void *)(& msg->name); + hdr->msg_hdr.msg_namelen = (unsigned int)sizeof(msg->name); + hdr->msg_hdr.msg_iov = & msg->iov; + hdr->msg_hdr.msg_iovlen = 1; + hdr->msg_hdr.msg_control = (void *)(& msg->cmsgbuf); + hdr->msg_hdr.msg_controllen = (unsigned int)sizeof(msg->cmsgbuf); + hdr->msg_hdr.msg_flags = 0; + hdr->msg_len = (unsigned int)0; + i ++; + } + return; +} + +void NIO_Initialise(int family) +{ + int server_port; + int client_port; + int tmp_0; + __FC_assert(! initialised != 0,"ntp_io.c",365,"!initialised"); + initialised = 1; + { + CNF_HwTsInterface *conf_iface; + int tmp; + tmp = CNF_GetHwTsInterface((unsigned int)0,& conf_iface); + if (tmp) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"HW timestamping not supported", + (void * const *)(__va_args)); + } + exit(1); + } + } + recv_messages = ARR_CreateInstance((unsigned int)sizeof(struct Message)); + ARR_SetSize(recv_messages,(unsigned int)1); + recv_headers = ARR_CreateInstance((unsigned int)sizeof(struct MessageHeader)); + ARR_SetSize(recv_headers,(unsigned int)1); + prepare_buffers((unsigned int)1); + server_port = CNF_GetNTPPort(); + client_port = CNF_GetAcquisitionPort(); + separate_client_sockets = client_port < 0; + if (client_port < 0) client_port = 0; + if (! server_port) tmp_0 = 1; + else + if (! separate_client_sockets) + if (client_port == server_port) tmp_0 = 1; else tmp_0 = 0; + else tmp_0 = 0; + permanent_server_sockets = tmp_0; + server_sock_fd4 = -1; + client_sock_fd4 = -1; + server_sock_ref4 = 0; + if (family == 0) goto _LOR; + else + if (family == 1) { + _LOR: + { + if (permanent_server_sockets) + if (server_port) server_sock_fd4 = prepare_socket(2,server_port,0); + if (! separate_client_sockets) + if (client_port != server_port) client_sock_fd4 = prepare_socket + (2,client_port,1); + else + if (! server_port) client_sock_fd4 = prepare_socket(2, + client_port, + 1); + else client_sock_fd4 = server_sock_fd4; + } + } + if (server_port) { + if (server_sock_fd4 == -1) { + if (permanent_server_sockets) goto _LOR_0; else goto _LAND_0; + } + else goto _LAND_0; + } + else + _LAND_0: + if (! separate_client_sockets) + if (client_sock_fd4 == -1) { + _LOR_0: + { + { + void *__va_args_9[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"Could not open NTP sockets", + (void * const *)(__va_args_9)); + } + exit(1); + } + } + return; +} + +void NIO_Finalise(void) +{ + if (server_sock_fd4 != client_sock_fd4) close_socket(client_sock_fd4); + close_socket(server_sock_fd4); + client_sock_fd4 = -1; + server_sock_fd4 = client_sock_fd4; + ARR_DestroyInstance(recv_headers); + ARR_DestroyInstance(recv_messages); + initialised = 0; + return; +} + +int NIO_OpenClientSocket(NTP_Remote_Address *remote_addr) +{ + int __retres; + if (separate_client_sockets) { + int tmp_0; + int sock_fd = + prepare_separate_client_socket((int)remote_addr->ip_addr.family); + if (sock_fd == -1) { + __retres = -1; + goto return_label; + } + tmp_0 = connect_socket(sock_fd,remote_addr); + if (! tmp_0) { + close_socket(sock_fd); + __retres = -1; + goto return_label; + } + __retres = sock_fd; + goto return_label; + } + else + switch ((int)remote_addr->ip_addr.family) { + case 1: ; + __retres = client_sock_fd4; + goto return_label; + default: __retres = -1; + goto return_label; + } + return_label: return __retres; +} + +int NIO_OpenServerSocket(NTP_Remote_Address *remote_addr) +{ + int __retres; + switch ((int)remote_addr->ip_addr.family) { + case 1: ; + if (permanent_server_sockets) { + __retres = server_sock_fd4; + goto return_label; + } + if (server_sock_fd4 == -1) { + int tmp; + tmp = CNF_GetNTPPort(); + server_sock_fd4 = prepare_socket(2,tmp,0); + } + if (server_sock_fd4 != -1) server_sock_ref4 ++; + __retres = server_sock_fd4; + goto return_label; + default: __retres = -1; + goto return_label; + } + return_label: return __retres; +} + +void NIO_CloseClientSocket(int sock_fd) +{ + if (separate_client_sockets) close_socket(sock_fd); + return; +} + +void NIO_CloseServerSocket(int sock_fd) +{ + if (permanent_server_sockets) goto return_label; + else + if (sock_fd == -1) goto return_label; + if (sock_fd == server_sock_fd4) { + server_sock_ref4 --; + if (server_sock_ref4 <= 0) { + close_socket(server_sock_fd4); + server_sock_fd4 = -1; + } + } + else __FC_assert(0 != 0,"ntp_io.c",558,"0"); + return_label: return; +} + +int NIO_IsServerSocket(int sock_fd) +{ + int tmp; + if (sock_fd != -1) + if (sock_fd == server_sock_fd4) tmp = 1; else tmp = 0; + else tmp = 0; + return tmp; +} + +int NIO_IsServerConnectable(NTP_Remote_Address *remote_addr) +{ + int __retres; + int sock_fd; + int r; + sock_fd = prepare_separate_client_socket((int)remote_addr->ip_addr.family); + if (sock_fd == -1) { + __retres = 0; + goto return_label; + } + r = connect_socket(sock_fd,remote_addr); + close_socket(sock_fd); + __retres = r; + return_label: return __retres; +} + +static void process_message(struct msghdr *hdr, int length, int sock_fd) +{ + NTP_Remote_Address remote_addr; + NTP_Local_Address local_addr; + NTP_Local_Timestamp local_ts; + struct timespec sched_ts; + struct cmsghdr *cmsg; + SCH_GetLastEventTime(& local_ts.ts,& local_ts.err,(struct timespec *)0); + local_ts.source = NTP_TS_DAEMON; + sched_ts = local_ts.ts; + if ((unsigned long)hdr->msg_namelen > sizeof(union sockaddr_in46)) + goto return_label; + if ((unsigned long)hdr->msg_namelen >= sizeof(((struct sockaddr *)hdr->msg_name)->sa_family)) + UTI_SockaddrToIPAndPort((struct sockaddr *)hdr->msg_name, + & remote_addr.ip_addr,& remote_addr.port); + else { + remote_addr.ip_addr.family = (unsigned short)0; + remote_addr.port = (unsigned short)0; + } + local_addr.ip_addr.family = (unsigned short)0; + local_addr.if_index = -1; + local_addr.sock_fd = sock_fd; + if (hdr->msg_flags & 0x20) goto return_label; + if (hdr->msg_flags & 0x8) ; + cmsg = CMSG_FIRSTHDR(hdr); + while (cmsg) { + if (cmsg->cmsg_level == 1) + if (cmsg->cmsg_type == 29) { + struct timeval tv; + struct timespec ts; + unsigned char *tmp_0; + tmp_0 = CMSG_DATA(cmsg); + memcpy((void *)(& tv),(void const *)tmp_0,sizeof(tv)); + UTI_TimevalToTimespec(& tv,& ts); + LCL_CookTime(& ts,& local_ts.ts,& local_ts.err); + local_ts.source = NTP_TS_KERNEL; + } + if (cmsg->cmsg_level == 1) + if (cmsg->cmsg_type == 35) { + struct timespec ts_0; + unsigned char *tmp_1; + tmp_1 = CMSG_DATA(cmsg); + memcpy((void *)(& ts_0),(void const *)tmp_1,sizeof(ts_0)); + LCL_CookTime(& ts_0,& local_ts.ts,& local_ts.err); + local_ts.source = NTP_TS_KERNEL; + } + cmsg = CMSG_NXTHDR(hdr,cmsg); + } + if (length < 48) goto return_label; + else + if ((unsigned long)length > sizeof(NTP_Receive_Buffer)) goto return_label; + NSR_ProcessRx(& remote_addr,& local_addr,& local_ts, + (NTP_Packet *)(hdr->msg_iov + 0)->iov_base,length); + return_label: return; +} + +static void read_from_socket(int sock_fd, int event, void *anything) +{ + struct MessageHeader *hdr; + unsigned int i; + unsigned int n; + int status; + ssize_t tmp; + int flags = 0; + hdr = (struct MessageHeader *)ARR_GetElements(recv_headers); + n = ARR_GetSize(recv_headers); + __FC_assert((n >= (unsigned int)1) != 0,"ntp_io.c",727,"n >= 1"); + if (event == 4) __FC_assert(0 != 0,"ntp_io.c",733,"0"); + n = (unsigned int)1; + tmp = recvmsg(sock_fd,& (hdr + 0)->msg_hdr,flags); + status = (int)tmp; + if (status >= 0) (hdr + 0)->msg_len = (unsigned int)status; + if (status < 0) goto return_label; + i = (unsigned int)0; + while (i < n) { + hdr = (struct MessageHeader *)ARR_GetElement(recv_headers,i); + process_message(& hdr->msg_hdr,(int)hdr->msg_len,sock_fd); + i ++; + } + prepare_buffers(n); + return_label: return; +} + +int NIO_SendPacket(NTP_Packet *packet, NTP_Remote_Address *remote_addr, + NTP_Local_Address *local_addr, int length, int process_tx) +{ + int __retres; + union sockaddr_in46 remote; + struct msghdr msg; + struct iovec iov; + struct cmsghdr *cmsg; + struct cmsghdr cmsgbuf[(unsigned long)256 / sizeof(struct cmsghdr)]; + int cmsglen; + int tmp_1; + ssize_t tmp_5; + socklen_t addrlen = (unsigned int)0; + __FC_assert(initialised != 0,"ntp_io.c",791,"initialised"); + if (local_addr->sock_fd == -1) { + __retres = 0; + goto return_label; + } + tmp_1 = NIO_IsServerSocket(local_addr->sock_fd); + if (tmp_1) goto _LOR; + else + if (! separate_client_sockets) { + _LOR: + { + int tmp_0; + tmp_0 = UTI_IPAndPortToSockaddr(& remote_addr->ip_addr, + remote_addr->port,& remote.u); + addrlen = (unsigned int)tmp_0; + if (! addrlen) { + __retres = 0; + goto return_label; + } + } + } + if (addrlen) { + msg.msg_name = (void *)(& remote.u); + msg.msg_namelen = addrlen; + } + else { + msg.msg_name = (void *)0; + msg.msg_namelen = (unsigned int)0; + } + iov.iov_base = (void *)packet; + iov.iov_len = (unsigned long)length; + msg.msg_iov = & iov; + msg.msg_iovlen = 1; + msg.msg_control = (void *)(cmsgbuf); + msg.msg_controllen = (unsigned int)sizeof(cmsgbuf); + msg.msg_flags = 0; + cmsglen = 0; + if ((int)local_addr->ip_addr.family == 1) ; + msg.msg_controllen = (unsigned int)cmsglen; + if (! cmsglen) msg.msg_control = (void *)0; + tmp_5 = sendmsg(local_addr->sock_fd,(struct msghdr const *)(& msg),0); + if (tmp_5 < (ssize_t)0) { + __retres = 0; + goto return_label; + } + __retres = 1; + return_label: return __retres; +} + +static int are_we_synchronised; +static int enable_local_stratum; +static int local_stratum_0; +static int local_orphan_0; +static double local_distance_0; +static NTP_Leap our_leap_status; +static int our_leap_sec; +static int our_tai_offset; +static int our_stratum; +static uint32_t our_ref_id; +static IPAddr our_ref_ip; +static struct timespec our_ref_time; +static double our_skew; +static double our_residual_freq; +static double our_root_delay; +static double our_root_dispersion; +static double max_update_skew_0; +static double last_offset; +static double avg2_offset; +static int avg2_moving; +static double correction_time_ratio_0; +static int initialised_0 = 0; +static REF_Mode mode; +static int make_step_limit_0; +static double make_step_threshold_0; +static int max_offset_delay_0; +static int max_offset_ignore_0; +static double max_offset_0; +static double log_change_threshold_0; +static int do_mail_change; +static double mail_change_threshold_0; +static char *mail_change_user; +static void (*mode_end_handler)(int result) = (void (*)(int result))0; +static char *drift_file_0 = (char *)0; +static double drift_file_age; +static void update_drift_file(double freq_ppm, double skew); + +static REF_LeapMode leap_mode; +static int leap_in_progress; +static SCH_TimeoutID leap_timeout_id; +static char *leap_tzname; +static LOG_FileID logfileid; +static int fb_drift_min_0; +static int fb_drift_max_0; +static struct fb_drift *fb_drifts = (struct fb_drift *)0; +static int next_fb_drift; +static SCH_TimeoutID fb_drift_timeout_id; +static struct timespec last_ref_update; +static double last_ref_update_interval; +static NTP_Leap get_tz_leap(time_t when, int *tai_offset); + +static void update_leap_status(NTP_Leap leap, time_t now, int reset); + +static void handle_slew(struct timespec *raw, struct timespec *cooked, + double dfreq, double doffset, + LCL_ChangeType change_type, void *anything) +{ + double delta; + struct timespec now; + int tmp; + tmp = UTI_IsZeroTimespec(& our_ref_time); + if (! tmp) UTI_AdjustTimespec(& our_ref_time,cooked,& our_ref_time,& delta, + dfreq,doffset); + if (change_type == (unsigned int)LCL_ChangeUnknownStep) UTI_ZeroTimespec + (& last_ref_update); + else + if (last_ref_update.tv_sec) UTI_AdjustTimespec(& last_ref_update,cooked, + & last_ref_update,& delta, + dfreq,doffset); + if (change_type != (unsigned int)LCL_ChangeAdjust) + if (our_leap_sec) + if (! leap_in_progress) { + LCL_ReadRawTime(& now); + update_leap_status(our_leap_status,now.tv_sec,1); + } + return; +} + +/*@ requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, stream->__fc_FILE_data, *param1, *param0; + assigns \result + \from (indirect: stream->__fc_FILE_id), + (indirect: stream->__fc_FILE_data), + (indirect: *(format + (0 ..))); + assigns stream->__fc_FILE_data + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))); + */ +int fscanf_va_1(FILE * __restrict stream, char const * __restrict format, + double *param0, double *param1); + +void REF_Initialise(void) +{ + FILE *in; + double file_freq_ppm; + double file_skew_ppm; + double our_frequency_ppm; + int tai_offset; + int tmp_0; + double tmp_3; + double tmp_2; + mode = REF_ModeNormal; + are_we_synchronised = 0; + our_leap_status = LEAP_Unsynchronised; + our_leap_sec = 0; + our_tai_offset = 0; + initialised_0 = 1; + our_root_dispersion = 1.0; + our_root_delay = 1.0; + our_frequency_ppm = 0.0; + our_skew = 1.0; + our_residual_freq = 0.0; + drift_file_age = 0.0; + drift_file_0 = CNF_GetDriftFile(); + if (drift_file_0) { + in = fopen((char const *)drift_file_0,"r"); + if (in) { + int tmp; + tmp = fscanf_va_1(in,"%lf%lf",& file_freq_ppm,& file_skew_ppm); + if (tmp == 2) { + our_frequency_ppm = file_freq_ppm; + our_skew = 1.0e-6 * file_skew_ppm; + if (our_skew < 1.0e-12) our_skew = 1.0e-12; + { + double __va_arg0 = file_freq_ppm; + double __va_arg1 = file_skew_ppm; + char *__va_arg2 = drift_file_0; + void *__va_args[3] = {& __va_arg0, & __va_arg1, & __va_arg2}; + LOG_Message(LOGS_INFO,"Frequency %.3f +/- %.3f ppm read from %s", + (void * const *)(__va_args)); + } + LCL_SetAbsoluteFrequency(our_frequency_ppm); + } + else { + { + char *__va_arg0_20 = drift_file_0; + void *__va_args_22[1] = {& __va_arg0_20}; + LOG_Message(LOGS_WARN, + "Could not read valid frequency and skew from driftfile %s", + (void * const *)(__va_args_22)); + } + } + fclose(in); + } + } + if (our_frequency_ppm == 0.0) { + our_frequency_ppm = LCL_ReadAbsoluteFrequency(); + if (our_frequency_ppm != 0.0) { + { + double __va_arg0_24 = our_frequency_ppm; + void *__va_args_26[1] = {& __va_arg0_24}; + LOG_Message(LOGS_INFO,"Initial frequency %.3f ppm", + (void * const *)(__va_args_26)); + } + } + } + tmp_0 = CNF_GetLogTracking(); + if (tmp_0) logfileid = LOG_FileOpen("tracking", + " Date (UTC) Time IP Address St Freq ppm Skew ppm Offset L Co Offset sd Rem. corr. Root delay Root disp. Max. error"); + else logfileid = -1; + tmp_2 = CNF_GetMaxUpdateSkew(); + tmp_3 = fabs(tmp_2); + max_update_skew_0 = tmp_3 * 1.0e-6; + correction_time_ratio_0 = CNF_GetCorrectionTimeRatio(); + enable_local_stratum = CNF_AllowLocalReference(& local_stratum_0, + & local_orphan_0, + & local_distance_0); + leap_timeout_id = (unsigned int)0; + leap_in_progress = 0; + leap_mode = CNF_GetLeapSecMode(); + if (leap_mode == (unsigned int)REF_LeapModeSystem) { + int tmp_4; + tmp_4 = LCL_CanSystemLeap(); + if (! tmp_4) leap_mode = REF_LeapModeStep; + } + leap_tzname = CNF_GetLeapSecTimezone(); + if (leap_tzname) { + NTP_Leap tmp_5; + tmp_5 = get_tz_leap((long)1341014400,& tai_offset); + if (tmp_5 == (unsigned int)LEAP_InsertSecond) { + if (tai_offset == 34) { + NTP_Leap tmp_6; + tmp_6 = get_tz_leap((long)1356912000,& tai_offset); + if (tmp_6 == (unsigned int)LEAP_Normal) { + if (tai_offset == 35) { + { + char *__va_arg0_28 = leap_tzname; + void *__va_args_30[1] = {& __va_arg0_28}; + LOG_Message(LOGS_INFO, + "Using %s timezone to obtain leap second data", + (void * const *)(__va_args_30)); + } + } + else goto _LAND_1; + } + else goto _LAND_1; + } + else goto _LAND_1; + } + else { + _LAND_1: + { + { + char *__va_arg0_32 = leap_tzname; + void *__va_args_34[1] = {& __va_arg0_32}; + LOG_Message(LOGS_WARN, + "Timezone %s failed leap second check, ignoring", + (void * const *)(__va_args_34)); + } + leap_tzname = (char *)0; + } + } + } + CNF_GetMakeStep(& make_step_limit_0,& make_step_threshold_0); + CNF_GetMaxChange(& max_offset_delay_0,& max_offset_ignore_0,& max_offset_0); + CNF_GetMailOnChange(& do_mail_change,& mail_change_threshold_0, + & mail_change_user); + log_change_threshold_0 = CNF_GetLogChange(); + CNF_GetFallbackDrifts(& fb_drift_min_0,& fb_drift_max_0); + if (fb_drift_max_0 >= fb_drift_min_0) + if (fb_drift_min_0 > 0) { + fb_drifts = (struct fb_drift *)Malloc2((unsigned long)((fb_drift_max_0 - fb_drift_min_0) + 1), + sizeof(struct fb_drift)); + memset((void *)fb_drifts,0, + sizeof(struct fb_drift) * (unsigned long)((fb_drift_max_0 - fb_drift_min_0) + 1)); + next_fb_drift = 0; + fb_drift_timeout_id = (unsigned int)0; + } + UTI_ZeroTimespec(& our_ref_time); + UTI_ZeroTimespec(& last_ref_update); + last_ref_update_interval = 0.0; + LCL_AddParameterChangeHandler(& handle_slew,(void *)0); + REF_SetUnsynchronised(); + return; +} + +void REF_Finalise(void) +{ + update_leap_status(LEAP_Unsynchronised,(long)0,0); + if (drift_file_0) { + double tmp; + ; + tmp = LCL_ReadAbsoluteFrequency(); + update_drift_file(tmp,our_skew); + } + free((void *)fb_drifts); + initialised_0 = 0; + return; +} + +void REF_SetMode(REF_Mode new_mode) +{ + mode = new_mode; + return; +} + +REF_Mode REF_GetMode(void) +{ + return mode; +} + +void REF_SetModeEndHandler(void (*handler)(int result)) +{ + mode_end_handler = handler; + return; +} + +REF_LeapMode REF_GetLeapMode(void) +{ + return leap_mode; +} + +/*@ requires valid_read_string(format); + assigns \result, stream->__fc_FILE_data; + assigns \result + \from (indirect: stream->__fc_FILE_id), + (indirect: stream->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param1), + (indirect: param0); + assigns stream->__fc_FILE_data + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))), param1, param0; + */ +int fprintf_va_2(FILE * __restrict stream, char const * __restrict format, + double param0, double param1); + +static void update_drift_file(double freq_ppm, double skew) +{ + struct stat buf; + char *temp_drift_file; + FILE *out; + int r1; + int r2; + void *tmp_0; + size_t tmp; + int tmp_3; + int tmp_4; + tmp = strlen((char const *)drift_file_0); + tmp_0 = Malloc(tmp + (size_t)8); + temp_drift_file = (char *)tmp_0; + if (! temp_drift_file) goto return_label; + strcpy(temp_drift_file,(char const *)drift_file_0); + strcat(temp_drift_file,".tmp"); + out = fopen((char const *)temp_drift_file,"w"); + if (! out) { + free((void *)temp_drift_file); + { + char *__va_arg0 = drift_file_0; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN, + "Could not open temporary driftfile %s.tmp for writing", + (void * const *)(__va_args)); + } + goto return_label; + } + r1 = fprintf_va_2(out,"%20.6f %20.6f\n",freq_ppm,1.0e6 * skew); + r2 = fclose(out); + if (r1 < 0) goto _LOR; + else + if (r2) { + _LOR: + { + free((void *)temp_drift_file); + { + char *__va_arg0_17 = drift_file_0; + void *__va_args_19[1] = {& __va_arg0_17}; + LOG_Message(LOGS_WARN, + "Could not write to temporary driftfile %s.tmp", + (void * const *)(__va_args_19)); + } + goto return_label; + } + } + tmp_3 = stat((char const *)drift_file_0,& buf); + if (! tmp_3) { + int tmp_1; + tmp_1 = chown((char const *)temp_drift_file,buf.st_uid,buf.st_gid); + if (tmp_1) goto _LOR_0; + else { + int tmp_2; + tmp_2 = chmod((char const *)temp_drift_file, + buf.st_mode & (unsigned int)0777); + if (tmp_2) { + _LOR_0: + { + char *__va_arg0_21 = drift_file_0; + void *__va_args_23[1] = {& __va_arg0_21}; + LOG_Message(LOGS_WARN, + "Could not change ownership or permissions of temporary driftfile %s.tmp", + (void * const *)(__va_args_23)); + } + } + } + } + tmp_4 = rename((char const *)temp_drift_file,(char const *)drift_file_0); + if (tmp_4) { + unlink((char const *)temp_drift_file); + free((void *)temp_drift_file); + { + char *__va_arg0_25 = drift_file_0; + char *__va_arg1 = drift_file_0; + void *__va_args_28[2] = {& __va_arg0_25, & __va_arg1}; + LOG_Message(LOGS_WARN, + "Could not replace old driftfile %s with new one %s.tmp", + (void * const *)(__va_args_28)); + } + goto return_label; + } + free((void *)temp_drift_file); + return_label: return; +} + +static void update_fb_drifts(double freq_ppm, double update_interval) +{ + int i; + int secs; + __FC_assert(are_we_synchronised != 0,"reference.c",398, + "are_we_synchronised"); + if (next_fb_drift > 0) next_fb_drift = 0; + SCH_RemoveTimeout(fb_drift_timeout_id); + fb_drift_timeout_id = (unsigned int)0; + if (update_interval < 1.0) goto return_label; + else + if (update_interval > last_ref_update_interval * 4.0) goto return_label; + i = 0; + while (i < (fb_drift_max_0 - fb_drift_min_0) + 1) { + secs = 1 << (i + fb_drift_min_0); + if ((fb_drifts + i)->secs < (double)secs) { + (fb_drifts + i)->freq = ((fb_drifts + i)->freq * (fb_drifts + i)->secs + + (update_interval * 0.5) * freq_ppm) / ( + update_interval * 0.5 + (fb_drifts + i)->secs); + (fb_drifts + i)->secs += update_interval * 0.5; + } + else { + double tmp; + tmp = exp(update_interval / (double)secs); + (fb_drifts + i)->freq += ((double)1 - 1.0 / tmp) * (freq_ppm - ( + fb_drifts + i)->freq); + } + i ++; + } + return_label: return; +} + +static void fb_drift_timeout(void *arg) +{ + int tmp; + if (next_fb_drift >= fb_drift_min_0) + if (next_fb_drift <= fb_drift_max_0) tmp = 1; else tmp = 0; + else tmp = 0; + __FC_assert(tmp != 0,"reference.c",441, + "next_fb_drift >= fb_drift_min && next_fb_drift <= fb_drift_max"); + fb_drift_timeout_id = (unsigned int)0; + LCL_SetAbsoluteFrequency((fb_drifts + (next_fb_drift - fb_drift_min_0))->freq); + REF_SetUnsynchronised(); + return; +} + +static void schedule_fb_drift(struct timespec *now) +{ + int i; + int c; + int secs; + double unsynchronised; + struct timespec when; + if (fb_drift_timeout_id) goto return_label; + unsynchronised = UTI_DiffTimespecsToDouble(now,& last_ref_update); + secs = 0; + c = secs; + i = fb_drift_min_0; + while (i <= fb_drift_max_0) { + secs = 1 << i; + if ((fb_drifts + (i - fb_drift_min_0))->secs < (double)secs) goto __Cont; + if (unsynchronised < (double)secs) + if (i > next_fb_drift) break; + c = i; + __Cont: i ++; + } + if (c > next_fb_drift) { + LCL_SetAbsoluteFrequency((fb_drifts + (c - fb_drift_min_0))->freq); + next_fb_drift = c; + } + if (i <= fb_drift_max_0) { + next_fb_drift = i; + UTI_AddDoubleToTimespec(now,(double)secs - unsynchronised,& when); + fb_drift_timeout_id = SCH_AddTimeout(& when,& fb_drift_timeout,(void *)0); + } + return_label: return; +} + +static void end_ref_mode(int result) +{ + mode = REF_ModeIgnore; + if (mode_end_handler) (*mode_end_handler)(result); + return; +} + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + requires valid_read_string(param0); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: *(param0 + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..)); + */ +int snprintf_va_2(char * __restrict s, size_t n, + char const * __restrict format, char *param0); + +/*@ requires valid_read_string(format); + requires valid_read_string(param0); + assigns \result, stream->__fc_FILE_data; + assigns \result + \from (indirect: stream->__fc_FILE_id), + (indirect: stream->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: *(param0 + (0 ..))); + assigns stream->__fc_FILE_data + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))), *(param0 + (0 ..)); + */ +int fprintf_va_3(FILE * __restrict stream, char const * __restrict format, + char *param0); + +/*@ requires valid_read_string(format); + requires valid_read_string(param0); + assigns \result, stream->__fc_FILE_data; + assigns \result + \from (indirect: stream->__fc_FILE_id), + (indirect: stream->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: *(param0 + (0 ..))); + assigns stream->__fc_FILE_data + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))), *(param0 + (0 ..)); + */ +int fprintf_va_4(FILE * __restrict stream, char const * __restrict format, + char *param0); + +/*@ requires valid_read_string(format); + assigns \result, stream->__fc_FILE_data; + assigns \result + \from (indirect: stream->__fc_FILE_id), + (indirect: stream->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param1), + (indirect: param0); + assigns stream->__fc_FILE_data + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))), param1, param0; + */ +int fprintf_va_5(FILE * __restrict stream, char const * __restrict format, + double param0, double param1); + +static void maybe_log_offset(double offset, time_t now) +{ + double abs_offset; + FILE *p; + char buffer[255]; + char host[255]; + struct tm *tm; + abs_offset = fabs(offset); + if (abs_offset > log_change_threshold_0) { + { + double __va_arg0 = - offset; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN, + "System clock wrong by %.6f seconds, adjustment started", + (void * const *)(__va_args)); + } + } + if (do_mail_change) + if (abs_offset > mail_change_threshold_0) { + snprintf_va_2(buffer,sizeof(buffer),"%s -t", + (char *)"/usr/lib/sendmail"); + p = popen((char const *)(buffer),"w"); + if (p) { + int tmp; + tmp = gethostname(host,sizeof(host)); + if (tmp < 0) strcpy(host,"<UNKNOWN>"); + host[sizeof(host) - (unsigned long)1] = (char)'\000'; + fprintf_va_3(p,"To: %s\n",mail_change_user); + fprintf_va_4(p, + "Subject: chronyd reports change to system clock on node [%s]\n", + host); + fputs("\n",p); + tm = localtime((time_t const *)(& now)); + if (tm) { + strftime(buffer,sizeof(buffer), + "On %A, %d %B %Y\n with the system clock reading %H:%M:%S (%Z)", + (struct tm const *)tm); + fputs((char const *)(buffer),p); + } + fprintf_va_5(p, + "\n\nchronyd started to apply an adjustment of %.3f seconds to it,\n which exceeded the reporting threshold of %.3f seconds\n\n", + - offset,mail_change_threshold_0); + pclose(p); + } + else { + { + char *__va_arg0_12 = mail_change_user; + void *__va_args_14[1] = {& __va_arg0_12}; + LOG_Message(LOGS_ERR, + "Could not send mail notification to user %s\n", + (void * const *)(__va_args_14)); + } + } + } + return; +} + +static int is_step_limit_reached(double offset, double offset_correction) +{ + int __retres; + double tmp; + if (make_step_limit_0 == 0) { + __retres = 0; + goto return_label; + } + else + if (make_step_limit_0 > 0) make_step_limit_0 --; + tmp = fabs(offset - offset_correction); + ; + __retres = tmp > make_step_threshold_0; + return_label: return __retres; +} + +static int is_offset_ok(double offset) +{ + int __retres; + if (max_offset_delay_0 < 0) { + __retres = 1; + goto return_label; + } + if (max_offset_delay_0 > 0) { + max_offset_delay_0 --; + __retres = 1; + goto return_label; + } + offset = fabs(offset); + if (offset > max_offset_0) { + char const *tmp; + if (! max_offset_ignore_0) tmp = "exiting"; else tmp = "ignored"; + ; + ; + { + double __va_arg0 = - offset; + double __va_arg1 = max_offset_0; + char const *__va_arg2 = tmp; + void *__va_args[3] = {& __va_arg0, & __va_arg1, & __va_arg2}; + LOG_Message(LOGS_WARN, + "Adjustment of %.3f seconds exceeds the allowed maximum of %.3f seconds (%s) ", + (void * const *)(__va_args)); + } + if (! max_offset_ignore_0) end_ref_mode(0); + else + if (max_offset_ignore_0 > 0) max_offset_ignore_0 --; + __retres = 0; + goto return_label; + } + __retres = 1; + return_label: return __retres; +} + +static int is_leap_second_day(time_t when) +{ + int __retres; + struct tm *stm; + int tmp; + stm = gmtime((time_t const *)(& when)); + if (! stm) { + __retres = 0; + goto return_label; + } + if (stm->tm_mon == 5) { + if (stm->tm_mday == 30) tmp = 1; else goto _LAND; + } + else { + _LAND: ; + if (stm->tm_mon == 11) + if (stm->tm_mday == 31) tmp = 1; else tmp = 0; + else tmp = 0; + } + __retres = tmp; + return_label: return __retres; +} + +static time_t get_tz_leap_last_tz_leap_check; +static NTP_Leap get_tz_leap_tz_leap; +static int get_tz_leap_tz_tai_offset; +static NTP_Leap get_tz_leap(time_t when, int *tai_offset) +{ + NTP_Leap __retres; + struct tm stm; + struct tm *tm; + time_t t; + char *tz_env; + char tz_orig[128]; + *tai_offset = get_tz_leap_tz_tai_offset; + when = (when / (time_t)(12 * 3600)) * (time_t)(12 * 3600); + if (get_tz_leap_last_tz_leap_check == when) { + __retres = get_tz_leap_tz_leap; + goto return_label; + } + get_tz_leap_last_tz_leap_check = when; + get_tz_leap_tz_leap = LEAP_Normal; + get_tz_leap_tz_tai_offset = 0; + tm = gmtime((time_t const *)(& when)); + if (! tm) { + __retres = get_tz_leap_tz_leap; + goto return_label; + } + stm = *tm; + tz_env = getenv("TZ"); + if (tz_env) { + size_t tmp; + tmp = strlen((char const *)tz_env); + if (tmp >= sizeof(tz_orig)) { + __retres = get_tz_leap_tz_leap; + goto return_label; + } + strcpy(tz_orig,(char const *)tz_env); + } + setenv("TZ",(char const *)leap_tzname,1); + tzset(); + t = mktime(& stm); + if (t != (time_t)(-1)) get_tz_leap_tz_tai_offset = (int)((t - when) + (time_t)10); + stm.tm_sec = 60; + stm.tm_min = 59; + stm.tm_hour = 23; + t = mktime(& stm); + if (tz_env) setenv("TZ",(char const *)(tz_orig),1); else unsetenv("TZ"); + tzset(); + if (t == (time_t)(-1)) { + __retres = get_tz_leap_tz_leap; + goto return_label; + } + if (stm.tm_sec == 60) get_tz_leap_tz_leap = LEAP_InsertSecond; + else + if (stm.tm_sec == 1) get_tz_leap_tz_leap = LEAP_DeleteSecond; + *tai_offset = get_tz_leap_tz_tai_offset; + __retres = get_tz_leap_tz_leap; + return_label: return __retres; +} + +static void leap_end_timeout(void *arg) +{ + leap_timeout_id = (unsigned int)0; + leap_in_progress = 0; + if (our_tai_offset) our_tai_offset += our_leap_sec; + our_leap_sec = 0; + if (leap_mode == (unsigned int)REF_LeapModeSystem) LCL_SetSystemLeap + (our_leap_sec, + our_tai_offset); + if (our_leap_status == (unsigned int)LEAP_InsertSecond) our_leap_status = LEAP_Normal; + else + if (our_leap_status == (unsigned int)LEAP_DeleteSecond) our_leap_status = LEAP_Normal; + return; +} + +static void leap_start_timeout(void *arg) +{ + leap_in_progress = 1; + switch (leap_mode) { + case (REF_LeapMode)REF_LeapModeSystem: ; + break; + case (REF_LeapMode)REF_LeapModeSlew: LCL_NotifyLeap(our_leap_sec); + LCL_AccumulateOffset((double)our_leap_sec,0.0); + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_WARN,"Adjusting system clock for leap second", + (void * const *)(__va_args)); + } + break; + case (REF_LeapMode)REF_LeapModeStep: LCL_NotifyLeap(our_leap_sec); + LCL_ApplyStepOffset((double)our_leap_sec); + { + void *__va_args_4[1] = {(void *)0}; + LOG_Message(LOGS_WARN,"System clock was stepped for leap second", + (void * const *)(__va_args_4)); + } + break; + case (REF_LeapMode)REF_LeapModeIgnore: + { + void *__va_args_6[1] = {(void *)0}; + LOG_Message(LOGS_WARN,"Ignoring leap second", + (void * const *)(__va_args_6)); + } + break; + default: break; + } + leap_timeout_id = SCH_AddTimeoutByDelay(2.0,& leap_end_timeout,(void *)0); + return; +} + +static void set_leap_timeout(time_t now) +{ + struct timespec when; + SCH_RemoveTimeout(leap_timeout_id); + leap_timeout_id = (unsigned int)0; + leap_in_progress = 0; + if (! our_leap_sec) goto return_label; + when.tv_sec = (now / (time_t)(24 * 3600) + (time_t)1) * (time_t)(24 * 3600); + when.tv_nsec = (long)0; + if (our_leap_sec < 0) (when.tv_sec) --; + if (leap_mode == (unsigned int)REF_LeapModeSystem) { + (when.tv_sec) --; + when.tv_nsec = (long)500000000; + } + leap_timeout_id = SCH_AddTimeout(& when,& leap_start_timeout,(void *)0); + return_label: return; +} + +static void update_leap_status(NTP_Leap leap, time_t now, int reset) +{ + NTP_Leap tz_leap; + int leap_sec; + int tai_offset; + leap_sec = 0; + tai_offset = 0; + if (leap_tzname) + if (now) { + tz_leap = get_tz_leap(now,& tai_offset); + if (leap == (unsigned int)LEAP_Normal) leap = tz_leap; + } + if (leap == (unsigned int)LEAP_InsertSecond) goto _LOR; + else + if (leap == (unsigned int)LEAP_DeleteSecond) { + _LOR: + { + int tmp; + tmp = is_leap_second_day(now); + if (tmp) + if (leap == (unsigned int)LEAP_InsertSecond) leap_sec = 1; + else leap_sec = -1; + else leap = LEAP_Normal; + } + } + if (leap_sec != our_leap_sec) goto _LOR_0; + else + if (tai_offset != our_tai_offset) { + int tmp_0; + _LOR_0: tmp_0 = REF_IsLeapSecondClose(); + if (tmp_0) goto _LAND; + else { + our_leap_sec = leap_sec; + our_tai_offset = tai_offset; + switch (leap_mode) { + case (REF_LeapMode)REF_LeapModeSystem: + LCL_SetSystemLeap(our_leap_sec,our_tai_offset); + case (REF_LeapMode)REF_LeapModeSlew: + case (REF_LeapMode)REF_LeapModeStep: + case (REF_LeapMode)REF_LeapModeIgnore: + set_leap_timeout(now); + break; + default: __FC_assert(0 != 0,"reference.c",815,"0"); + break; + } + } + } + else { + _LAND: ; + if (reset) set_leap_timeout(now); + } + our_leap_status = leap; + return; +} + +static double get_root_dispersion(struct timespec *ts) +{ + double __retres; + int tmp; + double tmp_1; + double tmp_0; + double tmp_2; + double tmp_3; + tmp = UTI_IsZeroTimespec(& our_ref_time); + if (tmp) { + __retres = 1.0; + goto return_label; + } + tmp_0 = UTI_DiffTimespecsToDouble(ts,& our_ref_time); + tmp_1 = fabs(tmp_0); + tmp_2 = fabs(our_residual_freq); + tmp_3 = LCL_GetMaxClockError(); + ; + __retres = our_root_dispersion + tmp_1 * ((our_skew + tmp_2) + tmp_3); + return_label: return __retres; +} + +static void write_log(struct timespec *now, int combined_sources, + double freq, double offset, double offset_sd, + double uncorrected_offset, double orig_root_distance); + +static double write_log_last_sys_offset = 0.0; +static void write_log(struct timespec *now, int combined_sources, + double freq, double offset, double offset_sd, + double uncorrected_offset, double orig_root_distance) +{ + double root_dispersion; + double max_error; + double tmp; + char *tmp_2; + char *tmp_3; + char const leap_codes[4] = {(char)'N', (char)'+', (char)'-', (char)'?'}; + if (logfileid == -1) goto return_label; + tmp = fabs(write_log_last_sys_offset); + max_error = orig_root_distance + tmp; + root_dispersion = get_root_dispersion(now); + write_log_last_sys_offset = offset - uncorrected_offset; + ; + ; + ; + ; + ; + ; + ; + ; + ; + ; + ; + if ((int)our_ref_ip.family != 0) tmp_2 = UTI_IPToString(& our_ref_ip); + else tmp_2 = UTI_RefidToString(our_ref_id); + tmp_3 = UTI_TimeToLogForm(now->tv_sec); + ; + { + char *__va_arg0 = tmp_3; + char *__va_arg1 = tmp_2; + int __va_arg2 = our_stratum; + double __va_arg3 = freq; + double __va_arg4 = 1.0e6 * our_skew; + double __va_arg5 = offset; + int __va_arg6 = (int)leap_codes[our_leap_status]; + int __va_arg7 = combined_sources; + double __va_arg8 = offset_sd; + double __va_arg9 = uncorrected_offset; + double __va_arg10 = our_root_delay; + double __va_arg11 = root_dispersion; + double __va_arg12 = max_error; + void *__va_args[13] = + {& __va_arg0, + & __va_arg1, + & __va_arg2, + & __va_arg3, + & __va_arg4, + & __va_arg5, + & __va_arg6, + & __va_arg7, + & __va_arg8, + & __va_arg9, + & __va_arg10, + & __va_arg11, + & __va_arg12}; + LOG_FileWrite(logfileid, + "%s %-15s %2d %10.3f %10.3f %10.3e %1c %2d %10.3e %10.3e %10.3e %10.3e %10.3e", + (void * const *)(__va_args)); + } + return_label: return; +} + +static void special_mode_sync(int valid, double offset) +{ + int step; + switch (mode) { + double tmp; + double tmp_0; + char const *tmp_1; + char const *tmp_2; + double tmp_3; + char const *tmp_4; + case (REF_Mode)REF_ModeInitStepSlew: + if (! valid) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_WARN,"No suitable source for initstepslew", + (void * const *)(__va_args)); + } + end_ref_mode(0); + break; + } + tmp = fabs(offset); + tmp_0 = CNF_GetInitStepThreshold(); + step = tmp >= tmp_0; + if (step) tmp_1 = "step"; else tmp_1 = "slew"; + if (offset >= (double)0) tmp_2 = "fast"; else tmp_2 = "slow"; + tmp_3 = fabs(offset); + { + double __va_arg0 = tmp_3; + char const *__va_arg1 = tmp_2; + char const *__va_arg2 = tmp_1; + void *__va_args_15[3] = {& __va_arg0, & __va_arg1, & __va_arg2}; + LOG_Message(LOGS_INFO, + "System\'s initial offset : %.6f seconds %s of true (%s)", + (void * const *)(__va_args_15)); + } + if (step) LCL_ApplyStepOffset(offset); + else LCL_AccumulateOffset(offset,0.0); + end_ref_mode(1); + break; + case (REF_Mode)REF_ModeUpdateOnce: case (REF_Mode)REF_ModePrintOnce: + if (! valid) { + { + void *__va_args_17[1] = {(void *)0}; + LOG_Message(LOGS_WARN,"No suitable source for synchronisation", + (void * const *)(__va_args_17)); + } + end_ref_mode(0); + break; + } + step = mode == (unsigned int)REF_ModeUpdateOnce; + if (step) tmp_4 = "step"; else tmp_4 = "ignored"; + ; + { + double __va_arg0_19 = - offset; + char const *__va_arg1_21 = tmp_4; + void *__va_args_23[2] = {& __va_arg0_19, & __va_arg1_21}; + LOG_Message(LOGS_INFO,"System clock wrong by %.6f seconds (%s)", + (void * const *)(__va_args_23)); + } + if (step) LCL_ApplyStepOffset(offset); + end_ref_mode(1); + break; + case (REF_Mode)REF_ModeIgnore: break; + default: __FC_assert(0 != 0,"reference.c",917,"0"); + } + return; +} + +static void get_clock_estimates(int manual, double measured_freq, + double measured_skew, double *estimated_freq, + double *estimated_skew, double *residual_freq) +{ + double gain; + double expected_freq; + double expected_skew; + double extra_skew; + double tmp_0; + expected_freq = 0.0; + expected_skew = our_skew; + if (manual) gain = 1.0; + else { + double tmp; + tmp = fabs(measured_skew); + ; + if (tmp > max_update_skew_0) gain = 0.0; + else gain = (3.0 * (expected_skew * expected_skew)) / (3.0 * (expected_skew * expected_skew) + + measured_skew * measured_skew); + } + if (gain < 1.0) tmp_0 = gain; else tmp_0 = 1.0; + if (0.0 > tmp_0) gain = 0.0; + else { + double tmp_1; + if (gain < 1.0) tmp_1 = gain; else tmp_1 = 1.0; + gain = tmp_1; + } + *estimated_freq = expected_freq + gain * (measured_freq - expected_freq); + *residual_freq = measured_freq - *estimated_freq; + extra_skew = sqrt(((expected_freq - *estimated_freq) * (expected_freq - *estimated_freq)) * ( + 1.0 - gain) + ((measured_freq - *estimated_freq) * ( + measured_freq - *estimated_freq)) * gain); + *estimated_skew = (expected_skew + gain * (measured_skew - expected_skew)) + extra_skew; + return; +} + +void REF_SetReference(int stratum, NTP_Leap leap, int combined_sources, + uint32_t ref_id, IPAddr *ref_ip, + struct timespec *ref_time, double offset, + double offset_sd, double frequency, + double frequency_sd, double skew, double root_delay, + double root_dispersion) +{ + double uncorrected_offset; + double accumulate_offset; + double step_offset; + double residual_frequency; + double local_abs_frequency; + double elapsed; + double update_interval; + double correction_rate; + double orig_root_distance; + struct timespec now; + struct timespec raw_now; + NTP_int64 ref_fuzz; + int manual; + int tmp; + double tmp_0; + int tmp_1; + double tmp_3; + int tmp_4; + __FC_assert(initialised_0 != 0,"reference.c",976,"initialised"); + if (mode != (unsigned int)REF_ModeNormal) { + special_mode_sync(1,offset); + goto return_label; + } + manual = leap == (unsigned int)LEAP_Unsynchronised; + LCL_ReadRawTime(& raw_now); + LCL_GetOffsetCorrection(& raw_now,& uncorrected_offset,(double *)0); + UTI_AddDoubleToTimespec(& raw_now,uncorrected_offset,& now); + elapsed = UTI_DiffTimespecsToDouble(& now,ref_time); + offset += elapsed * frequency; + offset_sd += elapsed * frequency_sd; + if (last_ref_update.tv_sec) { + update_interval = UTI_DiffTimespecsToDouble(& now,& last_ref_update); + if (update_interval > 0.0) update_interval = update_interval; + else update_interval = 0.0; + } + else update_interval = 0.0; + get_clock_estimates(manual,frequency,skew,& frequency,& skew, + & residual_frequency); + tmp = is_offset_ok(offset); + if (! tmp) goto return_label; + tmp_0 = get_root_dispersion(& now); + orig_root_distance = our_root_delay / 2.0 + tmp_0; + are_we_synchronised = leap != (unsigned int)LEAP_Unsynchronised; + our_stratum = stratum + 1; + our_ref_id = ref_id; + if (ref_ip) our_ref_ip = *ref_ip; + else our_ref_ip.family = (unsigned short)0; + our_ref_time = *ref_time; + our_skew = skew; + our_residual_freq = residual_frequency; + our_root_delay = root_delay; + our_root_dispersion = root_dispersion; + last_ref_update = now; + last_ref_update_interval = update_interval; + last_offset = offset; + correction_rate = ((correction_time_ratio_0 * 0.5) * offset_sd) * update_interval; + tmp_1 = is_step_limit_reached(offset,uncorrected_offset); + if (tmp_1) { + accumulate_offset = uncorrected_offset; + step_offset = offset - uncorrected_offset; + } + else { + accumulate_offset = offset; + step_offset = 0.0; + } + LCL_AccumulateFrequencyAndOffset(frequency,accumulate_offset, + correction_rate); + update_leap_status(leap,raw_now.tv_sec,0); + maybe_log_offset(offset,raw_now.tv_sec); + if (step_offset != 0.0) { + int tmp_2; + tmp_2 = LCL_ApplyStepOffset(step_offset); + if (tmp_2) { + { + double __va_arg0 = - step_offset; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN,"System clock was stepped by %.6f seconds", + (void * const *)(__va_args)); + } + } + } + tmp_3 = get_root_dispersion(& now); + ; + ; + ; + LCL_SetSyncStatus(are_we_synchronised,offset_sd,root_delay / 2.0 + tmp_3); + UTI_GetNtp64Fuzz(& ref_fuzz,0); + UTI_TimespecToNtp64(& our_ref_time,& ref_fuzz,& ref_fuzz); + UTI_Ntp64ToTimespec(& ref_fuzz,& our_ref_time); + tmp_4 = UTI_CompareTimespecs(& our_ref_time,ref_time); + if (tmp_4 >= 0) (our_ref_time.tv_sec) --; + local_abs_frequency = LCL_ReadAbsoluteFrequency(); + write_log(& now,combined_sources,local_abs_frequency,offset,offset_sd, + uncorrected_offset,orig_root_distance); + if (drift_file_0) { + drift_file_age += update_interval; + if (drift_file_age < 0.0) goto _LOR; + else + if (drift_file_age > 3600.0) { + _LOR: + { + update_drift_file(local_abs_frequency,our_skew); + drift_file_age = 0.0; + } + } + } + if (fb_drifts) + if (are_we_synchronised) { + update_fb_drifts(local_abs_frequency,update_interval); + schedule_fb_drift(& now); + } + if (avg2_moving) avg2_offset += 0.1 * (offset * offset - avg2_offset); + else { + if (avg2_offset > 0.0) + if (avg2_offset < offset * offset) avg2_moving = 1; + avg2_offset = offset * offset; + } + return_label: return; +} + +void REF_SetManualReference(struct timespec *ref_time, double offset, + double frequency, double skew) +{ + REF_SetReference(0,LEAP_Unsynchronised,1,(unsigned int)0x4D414E55UL, + (IPAddr *)0,ref_time,offset,0.0,frequency,skew,skew,0.0, + 0.0); + return; +} + +void REF_SetUnsynchronised(void) +{ + struct timespec now; + struct timespec now_raw; + double uncorrected_offset; + double tmp; + double tmp_0; + __FC_assert(initialised_0 != 0,"reference.c",1131,"initialised"); + if (mode != (unsigned int)REF_ModeNormal) { + special_mode_sync(0,0.0); + goto return_label; + } + LCL_ReadRawTime(& now_raw); + LCL_GetOffsetCorrection(& now_raw,& uncorrected_offset,(double *)0); + UTI_AddDoubleToTimespec(& now_raw,uncorrected_offset,& now); + if (fb_drifts) schedule_fb_drift(& now); + update_leap_status(LEAP_Unsynchronised,(long)0,0); + our_ref_ip.family = (unsigned short)1; + our_ref_ip.addr.in4 = (unsigned int)0; + our_stratum = 0; + are_we_synchronised = 0; + LCL_SetSyncStatus(0,0.0,0.0); + tmp = get_root_dispersion(& now); + ; + ; + tmp_0 = LCL_ReadAbsoluteFrequency(); + write_log(& now,0,tmp_0,0.0,0.0,uncorrected_offset, + our_root_delay / 2.0 + tmp); + return_label: return; +} + +void REF_GetReferenceParams(struct timespec *local_time, + int *is_synchronised, NTP_Leap *leap_status, + int *stratum, uint32_t *ref_id, + struct timespec *ref_time, double *root_delay, + double *root_dispersion) +{ + double dispersion; + __FC_assert(initialised_0 != 0,"reference.c",1176,"initialised"); + if (are_we_synchronised) dispersion = get_root_dispersion(local_time); + else dispersion = 0.0; + if (are_we_synchronised) + if (enable_local_stratum) { + if (our_root_delay / (double)2 + dispersion > local_distance_0) + goto _LAND; + else goto _LAND_0; + } + else { + _LAND_0: + { + *is_synchronised = 1; + *stratum = our_stratum; + if (! leap_in_progress) *leap_status = our_leap_status; + else *leap_status = LEAP_Unsynchronised; + *ref_id = our_ref_id; + *ref_time = our_ref_time; + *root_delay = our_root_delay; + *root_dispersion = dispersion; + } + } + else { + _LAND: ; + if (enable_local_stratum) { + *is_synchronised = 0; + *stratum = local_stratum_0; + *ref_id = (unsigned int)0x7F7F0101UL; + *ref_time = *local_time; + (ref_time->tv_sec) --; + *leap_status = LEAP_Normal; + *root_delay = 0.0; + *root_dispersion = 0.0; + } + else { + *is_synchronised = 0; + *leap_status = LEAP_Unsynchronised; + *stratum = 16; + *ref_id = (unsigned int)0x0UL; + UTI_ZeroTimespec(ref_time); + *root_dispersion = 1.0; + *root_delay = 1.0; + } + } + return; +} + +int REF_GetOurStratum(void) +{ + struct timespec now_cooked; + struct timespec ref_time; + int synchronised; + int stratum; + NTP_Leap leap_status; + uint32_t ref_id; + double root_delay; + double root_dispersion; + SCH_GetLastEventTime(& now_cooked,(double *)0,(struct timespec *)0); + REF_GetReferenceParams(& now_cooked,& synchronised,& leap_status,& stratum, + & ref_id,& ref_time,& root_delay,& root_dispersion); + return stratum; +} + +int REF_GetOrphanStratum(void) +{ + int __retres; + if (! enable_local_stratum) { + __retres = 16; + goto return_label; + } + else + if (! local_orphan_0) { + __retres = 16; + goto return_label; + } + else + if (mode != (unsigned int)REF_ModeNormal) { + __retres = 16; + goto return_label; + } + __retres = local_stratum_0; + return_label: return __retres; +} + +double REF_GetSkew(void) +{ + return our_skew; +} + +void REF_ModifyMaxupdateskew(double new_max_update_skew) +{ + max_update_skew_0 = new_max_update_skew * 1.0e-6; + return; +} + +void REF_ModifyMakestep(int limit, double threshold) +{ + make_step_limit_0 = limit; + make_step_threshold_0 = threshold; + return; +} + +void REF_EnableLocal(int stratum, double distance, int orphan) +{ + int tmp; + enable_local_stratum = 1; + if (stratum < 16 - 1) tmp = stratum; else tmp = 16 - 1; + if (1 > tmp) local_stratum_0 = 1; + else { + int tmp_0; + if (stratum < 16 - 1) tmp_0 = stratum; else tmp_0 = 16 - 1; + local_stratum_0 = tmp_0; + } + local_distance_0 = distance; + local_orphan_0 = ! (! orphan); + return; +} + +void REF_DisableLocal(void) +{ + enable_local_stratum = 0; + return; +} + +int REF_IsLeapSecondClose(void) +{ + int __retres; + struct timespec now; + struct timespec now_raw; + time_t t; + if (! our_leap_sec) { + __retres = 0; + goto return_label; + } + SCH_GetLastEventTime(& now,(double *)0,& now_raw); + if (now.tv_sec > (long)0) t = now.tv_sec; else t = - now.tv_sec; + if ((t + (time_t)5) % (long)(24 * 3600) < (long)(2 * 5)) { + __retres = 1; + goto return_label; + } + if (now_raw.tv_sec > (long)0) t = now_raw.tv_sec; + else t = - now_raw.tv_sec; + if ((t + (time_t)5) % (long)(24 * 3600) < (long)(2 * 5)) { + __retres = 1; + goto return_label; + } + __retres = 0; + return_label: return __retres; +} + +int REF_GetTaiOffset(struct timespec *ts) +{ + int tai_offset; + get_tz_leap(ts->tv_sec,& tai_offset); + return tai_offset; +} + +void REF_GetTrackingReport(RPT_TrackingReport *rep) +{ + struct timespec now_raw; + struct timespec now_cooked; + double correction; + int synchronised; + LCL_ReadRawTime(& now_raw); + LCL_GetOffsetCorrection(& now_raw,& correction,(double *)0); + UTI_AddDoubleToTimespec(& now_raw,correction,& now_cooked); + REF_GetReferenceParams(& now_cooked,& synchronised,& rep->leap_status, + & rep->stratum,& rep->ref_id,& rep->ref_time, + & rep->root_delay,& rep->root_dispersion); + if (rep->stratum == 16) + if (! synchronised) rep->stratum = 0; + rep->ip_addr.family = (unsigned short)0; + rep->current_correction = correction; + rep->freq_ppm = LCL_ReadAbsoluteFrequency(); + rep->resid_freq_ppm = 0.0; + rep->skew_ppm = 0.0; + rep->last_update_interval = last_ref_update_interval; + rep->last_offset = last_offset; + rep->rms_offset = sqrt(avg2_offset); + if (synchronised) { + rep->ip_addr = our_ref_ip; + rep->resid_freq_ppm = 1.0e6 * our_residual_freq; + rep->skew_ppm = 1.0e6 * our_skew; + } + return; +} + +void RGR_WeightedRegression(double *x, double *y, double *w, int n, + double *b0, double *b1, double *s2, double *sb0, + double *sb1); + +double RGR_GetTCoef(int dof); + +double RGR_GetChi2Coef(int dof); + +int RGR_FindBestRegression(double *x, double *y, double *w, int n, int m, + int min_samples_0, double *b0, double *b1, + double *s2, double *sb0, double *sb1, + int *new_start, int *n_runs, int *dof); + +int RGR_FindBestRobustRegression(double *x, double *y, int n, double tol, + double *b0, double *b1, int *n_runs, + int *best_start); + +int RGR_MultipleRegress(double *x1, double *x2, double *y, int n, double *b2); + +double RGR_FindMedian(double *x, int n); + +void RGR_WeightedRegression(double *x, double *y, double *w, int n, + double *b0, double *b1, double *s2, double *sb0, + double *sb1) +{ + double P; + double Q; + double U; + double V; + double W; + double diff; + double u; + double ui; + double aa; + int i; + __FC_assert((n >= 3) != 0,"regress.c",67,"n >= 3"); + U = (double)0; + W = U; + i = 0; + while (i < n) { + U += *(x + i) / *(w + i); + W += 1.0 / *(w + i); + i ++; + } + u = U / W; + V = 0.0; + Q = V; + P = Q; + i = 0; + while (i < n) { + ui = *(x + i) - u; + P += *(y + i) / *(w + i); + Q += (*(y + i) * ui) / *(w + i); + V += (ui * ui) / *(w + i); + i ++; + } + *b1 = Q / V; + *b0 = P / W - *b1 * u; + *s2 = 0.0; + i = 0; + while (i < n) { + diff = (*(y + i) - *b0) - *b1 * *(x + i); + *s2 += (diff * diff) / *(w + i); + i ++; + } + *s2 /= (double)(n - 2); + *sb1 = sqrt(*s2 / V); + aa = u * *sb1; + *sb0 = sqrt(*s2 / W + aa * aa); + *s2 *= (double)n / W; + return; +} + +static float const RGR_GetTCoef_coefs[40] = + {(float)636.6, + (float)31.6, + (float)12.92, + (float)8.61, + (float)6.869, + (float)5.959, + (float)5.408, + (float)5.041, + (float)4.781, + (float)4.587, + (float)4.437, + (float)4.318, + (float)4.221, + (float)4.140, + (float)4.073, + (float)4.015, + (float)3.965, + (float)3.922, + (float)3.883, + (float)3.850, + (float)3.819, + (float)3.792, + (float)3.768, + (float)3.745, + (float)3.725, + (float)3.707, + (float)3.690, + (float)3.674, + (float)3.659, + (float)3.646, + (float)3.633, + (float)3.622, + (float)3.611, + (float)3.601, + (float)3.591, + (float)3.582, + (float)3.574, + (float)3.566, + (float)3.558, + (float)3.551}; +double RGR_GetTCoef(int dof) +{ + double __retres; + if (dof <= 40) { + __retres = (double)RGR_GetTCoef_coefs[dof - 1]; + goto return_label; + } + else { + __retres = 3.5; + goto return_label; + } + return_label: return __retres; +} + +static float const RGR_GetChi2Coef_coefs[64] = + {(float)2.706, + (float)4.605, + (float)6.251, + (float)7.779, + (float)9.236, + (float)10.645, + (float)12.017, + (float)13.362, + (float)14.684, + (float)15.987, + (float)17.275, + (float)18.549, + (float)19.812, + (float)21.064, + (float)22.307, + (float)23.542, + (float)24.769, + (float)25.989, + (float)27.204, + (float)28.412, + (float)29.615, + (float)30.813, + (float)32.007, + (float)33.196, + (float)34.382, + (float)35.563, + (float)36.741, + (float)37.916, + (float)39.087, + (float)40.256, + (float)41.422, + (float)42.585, + (float)43.745, + (float)44.903, + (float)46.059, + (float)47.212, + (float)48.363, + (float)49.513, + (float)50.660, + (float)51.805, + (float)52.949, + (float)54.090, + (float)55.230, + (float)56.369, + (float)57.505, + (float)58.641, + (float)59.774, + (float)60.907, + (float)62.038, + (float)63.167, + (float)64.295, + (float)65.422, + (float)66.548, + (float)67.673, + (float)68.796, + (float)69.919, + (float)71.040, + (float)72.160, + (float)73.279, + (float)74.397, + (float)75.514, + (float)76.630, + (float)77.745, + (float)78.860}; +double RGR_GetChi2Coef(int dof) +{ + double __retres; + if (dof <= 64) { + __retres = (double)RGR_GetChi2Coef_coefs[dof - 1]; + goto return_label; + } + else { + __retres = 1.2 * (double)dof; + goto return_label; + } + return_label: return __retres; +} + +static char critical_runs[130] = + {(char)0, + (char)0, + (char)0, + (char)0, + (char)0, + (char)0, + (char)0, + (char)0, + (char)2, + (char)3, + (char)3, + (char)3, + (char)4, + (char)4, + (char)5, + (char)5, + (char)5, + (char)6, + (char)6, + (char)7, + (char)7, + (char)7, + (char)8, + (char)8, + (char)9, + (char)9, + (char)9, + (char)10, + (char)10, + (char)11, + (char)11, + (char)11, + (char)12, + (char)12, + (char)13, + (char)13, + (char)14, + (char)14, + (char)14, + (char)15, + (char)15, + (char)16, + (char)16, + (char)17, + (char)17, + (char)18, + (char)18, + (char)18, + (char)19, + (char)19, + (char)20, + (char)20, + (char)21, + (char)21, + (char)21, + (char)22, + (char)22, + (char)23, + (char)23, + (char)24, + (char)24, + (char)25, + (char)25, + (char)26, + (char)26, + (char)26, + (char)27, + (char)27, + (char)28, + (char)28, + (char)29, + (char)29, + (char)30, + (char)30, + (char)30, + (char)31, + (char)31, + (char)32, + (char)32, + (char)33, + (char)33, + (char)34, + (char)34, + (char)35, + (char)35, + (char)35, + (char)36, + (char)36, + (char)37, + (char)37, + (char)38, + (char)38, + (char)39, + (char)39, + (char)40, + (char)40, + (char)40, + (char)41, + (char)41, + (char)42, + (char)42, + (char)43, + (char)43, + (char)44, + (char)44, + (char)45, + (char)45, + (char)46, + (char)46, + (char)46, + (char)47, + (char)47, + (char)48, + (char)48, + (char)49, + (char)49, + (char)50, + (char)50, + (char)51, + (char)51, + (char)52, + (char)52, + (char)52, + (char)53, + (char)53, + (char)54, + (char)54, + (char)55, + (char)55, + (char)56}; +static int n_runs_from_residuals(double *resid, int n) +{ + int nruns; + int i; + nruns = 1; + i = 1; + while (i < n) { + if (*(resid + (i - 1)) < 0.0) { + if (*(resid + i) < 0.0) goto _LOR; else goto _LAND_0; + } + else { + _LAND_0: ; + if (*(resid + (i - 1)) > 0.0) { + if (*(resid + i) > 0.0) _LOR: ; else goto _LAND; + } + else _LAND: nruns ++; + } + i ++; + } + return nruns; +} + +int RGR_FindBestRegression(double *x, double *y, double *w, int n, int m, + int min_samples_0, double *b0, double *b1, + double *s2, double *sb0, double *sb1, + int *new_start, int *n_runs, int *dof) +{ + int __retres; + double P; + double Q; + double U; + double V; + double W; + double resid[64 * 2]; + double ss; + double a; + double b; + double u; + double ui; + double aa; + int start; + int resid_start; + int nruns; + int npoints; + int i; + int tmp; + if (n <= 64) + if (m >= 0) tmp = 1; else tmp = 0; + else tmp = 0; + __FC_assert(tmp != 0,"regress.c",242,"n <= MAX_POINTS && m >= 0"); + __FC_assert(((unsigned long)(n * 2) < sizeof(critical_runs) / sizeof(critical_runs[0])) != 0, + "regress.c",243, + "n * REGRESS_RUNS_RATIO < sizeof (critical_runs) / sizeof (critical_runs[0])"); + if (n < 3) { + __retres = 0; + goto return_label; + } + start = 0; + while (1) { + U = (double)0; + W = U; + i = start; + while (i < n) { + U += *(x + i) / *(w + i); + W += 1.0 / *(w + i); + i ++; + } + u = U / W; + V = 0.0; + Q = V; + P = Q; + i = start; + while (i < n) { + ui = *(x + i) - u; + P += *(y + i) / *(w + i); + Q += (*(y + i) * ui) / *(w + i); + V += (ui * ui) / *(w + i); + i ++; + } + b = Q / V; + a = P / W - b * u; + resid_start = n - (n - start) * 2; + if (resid_start < - m) resid_start = - m; + i = resid_start; + while (i < n) { + resid[i - resid_start] = (*(y + i) - a) - b * *(x + i); + i ++; + } + nruns = n_runs_from_residuals(resid,n - resid_start); + if (nruns > (int)critical_runs[n - resid_start]) goto _LOR; + else + if (n - start <= 3) goto _LOR; + else + if (n - start <= min_samples_0) { + _LOR: + { + if (start != resid_start) nruns = n_runs_from_residuals(& resid[ + start - resid_start], + n - start); + break; + } + } + else start ++; + } + *b1 = b; + *b0 = a; + ss = 0.0; + i = start; + while (i < n) { + ss += (resid[i - resid_start] * resid[i - resid_start]) / *(w + i); + i ++; + } + npoints = n - start; + ss /= (double)(npoints - 2); + *sb1 = sqrt(ss / V); + aa = u * *sb1; + *sb0 = sqrt(ss / W + aa * aa); + *s2 = (ss * (double)npoints) / W; + *new_start = start; + *dof = npoints - 2; + *n_runs = nruns; + __retres = 1; + return_label: return __retres; +} + +static double find_ordered_entry_with_flags(double *x, int n, int index_0, + char *flags) +{ + double __retres; + int u; + int v; + int l; + int r; + double temp; + double piv; + int pivind; + __FC_assert((index_0 >= 0) != 0,"regress.c",350,"index >= 0"); + if (*(flags + index_0)) { + __retres = *(x + index_0); + goto return_label; + } + v = index_0; + u = v; + while (1) { + if (u > 0) { + if (! (! *(flags + u))) break; + } + else break; + u --; + } + if (*(flags + u)) u ++; + while (1) { + if (v < n - 1) { + if (! (! *(flags + v))) break; + } + else break; + v ++; + } + if (*(flags + v)) v --; + while (1) + if (v - u < 2) { + char tmp; + if (*(x + v) < *(x + u)) { + temp = *(x + v); + *(x + v) = *(x + u); + *(x + u) = temp; + } + tmp = (char)1; + *(flags + u) = tmp; + *(flags + v) = tmp; + __retres = *(x + index_0); + goto return_label; + } + else { + pivind = (u + v) >> 1; + temp = *(x + u); + *(x + u) = *(x + pivind); + *(x + pivind) = temp; + piv = *(x + u); + l = u + 1; + r = v; + while (1) { + while (1) { + if (l < v) { + if (! (*(x + l) < piv)) break; + } + else break; + l ++; + } + while (*(x + r) > piv) r --; + if (r <= l) break; + temp = *(x + l); + *(x + l) = *(x + r); + *(x + r) = temp; + l ++; + r --; + } + temp = *(x + u); + *(x + u) = *(x + r); + *(x + r) = temp; + *(flags + r) = (char)1; + if (index_0 == r) { + __retres = *(x + r); + goto return_label; + } + else + if (index_0 < r) v = r - 1; + else + if (index_0 > r) u = l; + } + return_label: return __retres; +} + +static double find_median(double *x, int n) +{ + double __retres; + int k; + char flags[64]; + memset((void *)(flags),0,(unsigned long)n * sizeof(flags[0])); + k = n >> 1; + if (n & 1) { + double tmp; + tmp = find_ordered_entry_with_flags(x,n,k,flags); + __retres = tmp; + goto return_label; + } + else { + double tmp_0; + double tmp_1; + tmp_0 = find_ordered_entry_with_flags(x,n,k,flags); + tmp_1 = find_ordered_entry_with_flags(x,n,k - 1,flags); + __retres = 0.5 * (tmp_0 + tmp_1); + goto return_label; + } + return_label: return __retres; +} + +double RGR_FindMedian(double *x, int n) +{ + double tmp[64]; + int tmp_0; + double tmp_1; + if (n > 0) + if (n <= 64) tmp_0 = 1; else tmp_0 = 0; + else tmp_0 = 0; + __FC_assert(tmp_0 != 0,"regress.c",439,"n > 0 && n <= MAX_POINTS"); + memcpy((void *)(tmp),(void const *)x,(unsigned long)n * sizeof(tmp[0])); + tmp_1 = find_median(tmp,n); + return tmp_1; +} + +static void eval_robust_residual(double *x, double *y, int n, double b, + double *aa, double *rr) +{ + int i; + double a; + double res; + double del; + double d[64]; + i = 0; + while (i < n) { + d[i] = *(y + i) - b * *(x + i); + i ++; + } + a = find_median(d,n); + res = 0.0; + i = 0; + while (i < n) { + del = (*(y + i) - a) - b * *(x + i); + if (del > 0.0) res += *(x + i); + else + if (del < 0.0) res -= *(x + i); + i ++; + } + *aa = a; + *rr = res; + return; +} + +int RGR_FindBestRobustRegression(double *x, double *y, int n, double tol, + double *b0, double *b1, int *n_runs, + int *best_start) +{ + int __retres; + int i; + int start; + int n_points; + double a; + double b; + double P; + double U; + double V; + double W; + double X; + double resid; + double resids[64]; + double blo; + double bhi; + double bmid; + double rlo; + double rhi; + double rmid; + double s2; + double sb; + double incr; + double mx; + double dx; + double my; + double dy; + int nruns = 0; + __FC_assert((n <= 64) != 0,"regress.c",525,"n <= MAX_POINTS"); + if (n < 2) { + __retres = 0; + goto return_label; + } + else + if (n == 2) { + *b1 = (*(y + 1) - *(y + 0)) / (*(x + 1) - *(x + 0)); + *b0 = *(y + 0) - *b1 * *(x + 0); + *n_runs = 0; + *best_start = 0; + __retres = 1; + goto return_label; + } + start = 0; + while (1) { + n_points = n - start; + U = 0.0; + P = U; + i = start; + while (i < n) { + P += *(y + i); + U += *(x + i); + i ++; + } + W = (double)n_points; + my = P / W; + mx = U / W; + V = 0.0; + X = V; + i = start; + while (i < n) { + dy = *(y + i) - my; + dx = *(x + i) - mx; + X += dy * dx; + V += dx * dx; + i ++; + } + b = X / V; + a = my - b * mx; + s2 = 0.0; + i = start; + while (i < n) { + resid = (*(y + i) - a) - b * *(x + i); + s2 += resid * resid; + i ++; + } + sb = sqrt((s2 * W) / V); + if (sb > tol) incr = sb; else incr = tol; + while (1) { + incr *= 2.0; + if (incr > 100.0) { + __retres = 0; + goto return_label; + } + blo = b - incr; + bhi = b + incr; + eval_robust_residual(x + start,y + start,n_points,blo,& a,& rlo); + eval_robust_residual(x + start,y + start,n_points,bhi,& a,& rhi); + if (! (rlo * rhi >= 0.0)) break; + } + while (1) { + bmid = 0.5 * (blo + bhi); + if (blo < bmid) { + if (! (bmid < bhi)) break; + } + else break; + eval_robust_residual(x + start,y + start,n_points,bmid,& a,& rmid); + if (rmid == 0.0) break; + else + if (rmid * rlo > 0.0) { + blo = bmid; + rlo = rmid; + } + else + if (rmid * rhi > 0.0) { + bhi = bmid; + rhi = rmid; + } + else __FC_assert(0 != 0,"regress.c",616,"0"); + if (! (bhi - blo > tol)) break; + } + *b0 = a; + *b1 = bmid; + if (n_points == 3) break; + i = start; + while (i < n) { + resids[i] = (*(y + i) - a) - bmid * *(x + i); + i ++; + } + nruns = n_runs_from_residuals(& resids[start],n_points); + if (nruns > (int)critical_runs[n_points]) break; else start ++; + } + *n_runs = nruns; + *best_start = start; + __retres = 1; + return_label: return __retres; +} + +int RGR_MultipleRegress(double *x1, double *x2, double *y, int n, double *b2) +{ + int __retres; + double Sx1; + double Sx2; + double Sx1x1; + double Sx1x2; + double Sx2x2; + double Sx1y; + double Sx2y; + double Sy; + double U; + double V; + double V1; + double V2; + double V3; + int i; + double tmp; + double tmp_0; + if (n < 4) { + __retres = 0; + goto return_label; + } + Sy = 0.0; + Sx2y = Sy; + Sx1y = Sx2y; + Sx2x2 = Sx1y; + Sx1x2 = Sx2x2; + Sx1x1 = Sx1x2; + Sx2 = Sx1x1; + Sx1 = Sx2; + i = 0; + while (i < n) { + Sx1 += *(x1 + i); + Sx2 += *(x2 + i); + Sx1x1 += *(x1 + i) * *(x1 + i); + Sx1x2 += *(x1 + i) * *(x2 + i); + Sx2x2 += *(x2 + i) * *(x2 + i); + Sx1y += *(x1 + i) * *(y + i); + Sx2y += *(x2 + i) * *(y + i); + Sy += *(y + i); + i ++; + } + U = (((double)n * (Sx1x2 * Sx1y - Sx1x1 * Sx2y) + (Sx1 * Sx1) * Sx2y) - + (Sx1 * Sx2) * Sx1y) + Sy * (Sx2 * Sx1x1 - Sx1 * Sx1x2); + V1 = (double)n * (Sx1x2 * Sx1x2 - Sx1x1 * Sx2x2); + V2 = (Sx1 * Sx1) * Sx2x2 + (Sx2 * Sx2) * Sx1x1; + V3 = ((- 2.0 * Sx1) * Sx2) * Sx1x2; + V = (V1 + V2) + V3; + tmp = fabs(V); + tmp_0 = fabs(V3); + ; + if (tmp * 1.0e10 <= (- V1 + V2) + tmp_0) { + __retres = 0; + goto return_label; + } + *b2 = U / V; + __retres = 1; + return_label: return __retres; +} + +static int initialised_1 = 0; +static unsigned int one_highest_fd; +static ARR_Instance file_handlers; +static struct timespec last_select_ts; +static struct timespec last_select_ts_raw; +static double last_select_ts_err; +static TimerQueueEntry timer_queue; +static unsigned long n_timer_queue_entries; +static SCH_TimeoutID next_tqe_id; +static TimerQueueEntry *tqe_free_list = (TimerQueueEntry *)0; +static struct timespec last_class_dispatch[SCH_NumberOfClasses]; +static int need_to_exit; +static void handle_slew_0(struct timespec *raw, struct timespec *cooked, + double dfreq, double doffset, + LCL_ChangeType change_type, void *anything); + +void SCH_Initialise(void) +{ + file_handlers = ARR_CreateInstance((unsigned int)sizeof(FileHandlerEntry)); + n_timer_queue_entries = (unsigned long)0; + next_tqe_id = (unsigned int)0; + timer_queue.next = & timer_queue; + timer_queue.prev = & timer_queue; + need_to_exit = 0; + LCL_AddParameterChangeHandler(& handle_slew_0,(void *)0); + LCL_ReadRawTime(& last_select_ts_raw); + last_select_ts = last_select_ts_raw; + initialised_1 = 1; + return; +} + +void SCH_Finalise(void) +{ + ARR_DestroyInstance(file_handlers); + initialised_1 = 0; + return; +} + +void SCH_AddFileHandler(int fd, int events, + void (*handler)(int fd, int event, + SCH_ArbitraryArgument ), + SCH_ArbitraryArgument arg) +{ + FileHandlerEntry *ptr; + __FC_assert(initialised_1 != 0,"sched.c",161,"initialised"); + __FC_assert(events != 0,"sched.c",162,"events"); + __FC_assert((fd >= 0) != 0,"sched.c",163,"fd >= 0"); + if (fd >= 1024) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"Too many file descriptors", + (void * const *)(__va_args)); + } + exit(1); + } + while (1) { + unsigned int tmp; + tmp = ARR_GetSize(file_handlers); + ; + if (! (tmp <= (unsigned int)fd)) break; + ptr = (FileHandlerEntry *)ARR_GetNewElement(file_handlers); + ptr->handler = (void (*)(int fd, int event, SCH_ArbitraryArgument ))0; + ptr->arg = (void *)0; + ptr->events = 0; + } + ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers,(unsigned int)fd); + __FC_assert(! ptr->handler != 0,"sched.c",181,"!ptr->handler"); + ptr->handler = handler; + ptr->arg = arg; + ptr->events = events; + if (one_highest_fd < (unsigned int)(fd + 1)) one_highest_fd = (unsigned int)( + fd + 1); + return; +} + +void SCH_RemoveFileHandler(int fd) +{ + FileHandlerEntry *ptr; + __FC_assert(initialised_1 != 0,"sched.c",199,"initialised"); + ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers,(unsigned int)fd); + __FC_assert(ptr->handler != (void (*)(int fd, int event, + SCH_ArbitraryArgument ))0,"sched.c", + 204,"ptr->handler"); + ptr->handler = (void (*)(int fd, int event, SCH_ArbitraryArgument ))0; + ptr->arg = (void *)0; + ptr->events = 0; + while (one_highest_fd > (unsigned int)0) { + ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers, + one_highest_fd - (unsigned int)1); + if (ptr->handler) break; + one_highest_fd --; + } + return; +} + +void SCH_SetFileHandlerEvent(int fd, int event, int enable) +{ + FileHandlerEntry *ptr; + ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers,(unsigned int)fd); + if (enable) ptr->events |= event; else ptr->events &= ~ event; + return; +} + +void SCH_GetLastEventTime(struct timespec *cooked, double *err, + struct timespec *raw) +{ + if (cooked) { + *cooked = last_select_ts; + if (err) *err = last_select_ts_err; + } + if (raw) *raw = last_select_ts_raw; + return; +} + +static TimerQueueEntry *allocate_tqe(void) +{ + TimerQueueEntry *new_block; + TimerQueueEntry *result; + int i; + if (tqe_free_list == (TimerQueueEntry *)0) { + new_block = (TimerQueueEntry *)Malloc2((unsigned long)32, + sizeof(TimerQueueEntry)); + i = 1; + while (i < 32) { + (new_block + i)->next = new_block + (i - 1); + i ++; + } + (new_block + 0)->next = (struct _TimerQueueEntry *)0; + tqe_free_list = new_block + (32 - 1); + } + result = tqe_free_list; + tqe_free_list = tqe_free_list->next; + return result; +} + +static void release_tqe(TimerQueueEntry *node) +{ + node->next = tqe_free_list; + tqe_free_list = node; + return; +} + +static SCH_TimeoutID get_new_tqe_id(void) +{ + TimerQueueEntry *ptr; + try_again: next_tqe_id ++; + if (! next_tqe_id) goto try_again; + ptr = timer_queue.next; + while (ptr != & timer_queue) { + if (ptr->id == next_tqe_id) goto try_again; + ptr = ptr->next; + } + return next_tqe_id; +} + +/*@ assigns \result; + assigns \result \from \nothing; */ +SCH_TimeoutID SCH_AddTimeout(struct timespec *ts, + void (*handler)(SCH_ArbitraryArgument ), + SCH_ArbitraryArgument arg) +{ + SCH_TimeoutID __retres; + TimerQueueEntry *new_tqe; + TimerQueueEntry *ptr; + __FC_assert(initialised_1 != 0,"sched.c",313,"initialised"); + new_tqe = allocate_tqe(); + new_tqe->id = get_new_tqe_id(); + new_tqe->handler = handler; + new_tqe->arg = arg; + new_tqe->ts = *ts; + new_tqe->class = SCH_ReservedTimeoutValue; + ptr = timer_queue.next; + while (ptr != & timer_queue) { + { + int tmp; + tmp = UTI_CompareTimespecs(& new_tqe->ts,& ptr->ts); + if (tmp == -1) break; + } + ptr = ptr->next; + } + new_tqe->next = ptr; + new_tqe->prev = ptr->prev; + (ptr->prev)->next = new_tqe; + ptr->prev = new_tqe; + n_timer_queue_entries ++; + __retres = new_tqe->id; + return __retres; +} + +SCH_TimeoutID SCH_AddTimeoutByDelay(double delay, + void (*handler)(SCH_ArbitraryArgument ), + SCH_ArbitraryArgument arg) +{ + struct timespec now; + struct timespec then; + int tmp; + SCH_TimeoutID tmp_0; + __FC_assert(initialised_1 != 0,"sched.c",354,"initialised"); + __FC_assert((delay >= 0.0) != 0,"sched.c",355,"delay >= 0.0"); + LCL_ReadRawTime(& now); + UTI_AddDoubleToTimespec(& now,delay,& then); + tmp = UTI_CompareTimespecs(& now,& then); + if (tmp > 0) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"Timeout overflow",(void * const *)(__va_args)); + } + exit(1); + } + tmp_0 = SCH_AddTimeout(& then,handler,arg); + return tmp_0; +} + +SCH_TimeoutID SCH_AddTimeoutInClass(double min_delay, double separation, + double randomness, + SCH_TimeoutClass class, + void (*handler)(SCH_ArbitraryArgument ), + SCH_ArbitraryArgument arg) +{ + SCH_TimeoutID __retres; + TimerQueueEntry *new_tqe; + TimerQueueEntry *ptr; + struct timespec now; + double diff; + double r; + double new_min_delay; + __FC_assert(initialised_1 != 0,"sched.c",380,"initialised"); + __FC_assert((min_delay >= 0.0) != 0,"sched.c",381,"min_delay >= 0.0"); + __FC_assert((class < (unsigned int)SCH_NumberOfClasses) != 0,"sched.c",382, + "class < SCH_NumberOfClasses"); + if (randomness > 0.0) { + uint32_t rnd; + UTI_GetRandomBytes((void *)(& rnd),(unsigned int)sizeof(rnd)); + r = (double)rnd * (randomness / (double)((unsigned int)(-1))) + 1.0; + min_delay *= r; + separation *= r; + } + LCL_ReadRawTime(& now); + new_min_delay = min_delay; + diff = UTI_DiffTimespecsToDouble(& now,& last_class_dispatch[class]); + if (diff < separation) + if (diff >= 0.0) + if (diff + new_min_delay < separation) new_min_delay = separation - diff; + ptr = timer_queue.next; + while (ptr != & timer_queue) { + if (ptr->class == class) { + diff = UTI_DiffTimespecsToDouble(& ptr->ts,& now); + if (new_min_delay > diff) { + if (new_min_delay - diff < separation) new_min_delay = diff + separation; + } + else + if (diff - new_min_delay < separation) new_min_delay = diff + separation; + } + ptr = ptr->next; + } + ptr = timer_queue.next; + while (ptr != & timer_queue) { + diff = UTI_DiffTimespecsToDouble(& ptr->ts,& now); + if (diff > new_min_delay) break; + ptr = ptr->next; + } + new_tqe = allocate_tqe(); + new_tqe->id = get_new_tqe_id(); + new_tqe->handler = handler; + new_tqe->arg = arg; + UTI_AddDoubleToTimespec(& now,new_min_delay,& new_tqe->ts); + new_tqe->class = class; + new_tqe->next = ptr; + new_tqe->prev = ptr->prev; + (ptr->prev)->next = new_tqe; + ptr->prev = new_tqe; + n_timer_queue_entries ++; + __retres = new_tqe->id; + return __retres; +} + +void SCH_RemoveTimeout(SCH_TimeoutID id) +{ + TimerQueueEntry *ptr; + __FC_assert(initialised_1 != 0,"sched.c",451,"initialised"); + if (! id) goto return_label; + ptr = timer_queue.next; + while (ptr != & timer_queue) { + if (ptr->id == id) { + (ptr->next)->prev = ptr->prev; + (ptr->prev)->next = ptr->next; + n_timer_queue_entries --; + release_tqe(ptr); + goto return_label; + } + ptr = ptr->next; + } + __FC_assert(0 != 0,"sched.c",476,"0"); + return_label: return; +} + +static void dispatch_timeouts(struct timespec *now) +{ + TimerQueueEntry *ptr; + void (*handler)(SCH_ArbitraryArgument ); + SCH_ArbitraryArgument arg; + int n_done = 0; + int n_entries_on_start = (int)n_timer_queue_entries; + while (1) { + LCL_ReadRawTime(now); + if (n_timer_queue_entries > (unsigned long)0) { + int tmp; + tmp = UTI_CompareTimespecs(now,& (timer_queue.next)->ts); + if (! (tmp >= 0)) goto _LAND; + } + else _LAND: break; + ptr = timer_queue.next; + last_class_dispatch[ptr->class] = *now; + handler = ptr->handler; + arg = ptr->arg; + SCH_RemoveTimeout(ptr->id); + (*handler)(arg); + n_done ++; + if ((unsigned long)n_done > n_timer_queue_entries * (unsigned long)4) + if (n_done > n_entries_on_start * 4) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"Possible infinite loop in scheduling", + (void * const *)(__va_args)); + } + exit(1); + } + } + return; +} + +static void dispatch_filehandlers(int nfd, fd_set *read_fds, + fd_set *write_fds, fd_set *except_fds) +{ + FileHandlerEntry *ptr; + int fd; + fd = 0; + while (1) { + if (nfd) { + if (! ((unsigned int)fd < one_highest_fd)) break; + } + else break; + if (except_fds) { + int tmp_1; + tmp_1 = FD_ISSET(fd,(fd_set const *)except_fds); + if (tmp_1) { + ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers, + (unsigned int)fd); + if (ptr->handler) (*(ptr->handler))(fd,4,ptr->arg); + nfd --; + if (read_fds) { + int tmp_0; + tmp_0 = FD_ISSET(fd,(fd_set const *)read_fds); + if (tmp_0) { + FD_CLR(fd,read_fds); + nfd --; + } + } + } + } + if (read_fds) { + int tmp_3; + tmp_3 = FD_ISSET(fd,(fd_set const *)read_fds); + if (tmp_3) { + ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers, + (unsigned int)fd); + if (ptr->handler) (*(ptr->handler))(fd,1,ptr->arg); + nfd --; + } + } + if (write_fds) { + int tmp_5; + tmp_5 = FD_ISSET(fd,(fd_set const *)write_fds); + if (tmp_5) { + ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers, + (unsigned int)fd); + if (ptr->handler) (*(ptr->handler))(fd,2,ptr->arg); + nfd --; + } + } + fd ++; + } + return; +} + +static void handle_slew_0(struct timespec *raw, struct timespec *cooked, + double dfreq, double doffset, + LCL_ChangeType change_type, void *anything) +{ + TimerQueueEntry *ptr; + double delta; + int i; + if (change_type != (unsigned int)LCL_ChangeAdjust) { + int tmp; + tmp = LCL_IsFirstParameterChangeHandler(& handle_slew_0); + __FC_assert(tmp != 0,"sched.c",587, + "LCL_IsFirstParameterChangeHandler(handle_slew)"); + ptr = timer_queue.next; + while (ptr != & timer_queue) { + UTI_AddDoubleToTimespec(& ptr->ts,- doffset,& ptr->ts); + ptr = ptr->next; + } + i = 0; + while (i < SCH_NumberOfClasses) { + UTI_AddDoubleToTimespec(& last_class_dispatch[i],- doffset, + & last_class_dispatch[i]); + i ++; + } + UTI_AddDoubleToTimespec(& last_select_ts_raw,- doffset, + & last_select_ts_raw); + } + UTI_AdjustTimespec(& last_select_ts,cooked,& last_select_ts,& delta,dfreq, + doffset); + return; +} + +static void fill_fd_sets(fd_set **read_fds, fd_set **write_fds, + fd_set **except_fds) +{ + FileHandlerEntry *handlers; + fd_set *rd; + fd_set *wr; + fd_set *ex; + int i; + int n; + int events; + unsigned int tmp; + tmp = ARR_GetSize(file_handlers); + n = (int)tmp; + handlers = (FileHandlerEntry *)ARR_GetElements(file_handlers); + ex = (fd_set *)0; + wr = ex; + rd = wr; + i = 0; + while (i < n) { + events = (handlers + i)->events; + if (! events) goto __Cont; + if (events & 1) { + if (! rd) { + rd = *read_fds; + FD_ZERO(rd); + } + FD_SET(i,rd); + } + if (events & 2) { + if (! wr) { + wr = *write_fds; + FD_ZERO(wr); + } + FD_SET(i,wr); + } + if (events & 4) { + if (! ex) { + ex = *except_fds; + FD_ZERO(ex); + } + FD_SET(i,ex); + } + __Cont: i ++; + } + if (! rd) *read_fds = (fd_set *)0; + if (! wr) *write_fds = (fd_set *)0; + if (! ex) *except_fds = (fd_set *)0; + return; +} + +static int check_current_time(struct timespec *prev_raw, + struct timespec *raw, int timeout, + struct timeval *orig_select_tv, + struct timeval *rem_select_tv) +{ + int __retres; + struct timespec elapsed_min; + struct timespec elapsed_max; + struct timespec orig_select_ts; + struct timespec rem_select_ts; + double step; + double elapsed; + double tmp; + UTI_TimevalToTimespec(orig_select_tv,& orig_select_ts); + if (timeout) { + elapsed_min = orig_select_ts; + elapsed_max = elapsed_min; + } + else + if (rem_select_tv) { + if (rem_select_tv->tv_sec >= (time_t)0) { + if (rem_select_tv->tv_sec <= orig_select_tv->tv_sec) { + if (rem_select_tv->tv_sec != orig_select_tv->tv_sec) goto _LOR; + else + if (rem_select_tv->tv_usec != orig_select_tv->tv_usec) { + _LOR: + { + UTI_TimevalToTimespec(rem_select_tv,& rem_select_ts); + UTI_DiffTimespecs(& elapsed_min,& orig_select_ts, + & rem_select_ts); + elapsed_max = elapsed_min; + } + } + else goto _LAND_1; + } + else goto _LAND_1; + } + else goto _LAND_1; + } + else { + _LAND_1: + { + if (rem_select_tv) elapsed_max = orig_select_ts; + else UTI_DiffTimespecs(& elapsed_max,raw,prev_raw); + UTI_ZeroTimespec(& elapsed_min); + } + } + if (last_select_ts_raw.tv_sec + elapsed_min.tv_sec > raw->tv_sec + (long)10) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_WARN,"Backward time jump detected!", + (void * const *)(__va_args)); + } + } + else + if ((prev_raw->tv_sec + elapsed_max.tv_sec) + (long)10 < raw->tv_sec) { + { + void *__va_args_15[1] = {(void *)0}; + LOG_Message(LOGS_WARN,"Forward time jump detected!", + (void * const *)(__va_args_15)); + } + } + else { + __retres = 1; + goto return_label; + } + step = UTI_DiffTimespecsToDouble(& last_select_ts_raw,raw); + elapsed = UTI_TimespecToDouble(& elapsed_min); + step += elapsed; + tmp = fabs(step); + ; + ; + ; + LCL_NotifyExternalTimeStep(raw,raw,step,tmp); + __retres = 0; + return_label: return __retres; +} + +void SCH_MainLoop(void) +{ + fd_set read_fds; + fd_set write_fds; + fd_set except_fds; + fd_set *p_read_fds; + fd_set *p_write_fds; + fd_set *p_except_fds; + int status; + int errsv; + struct timeval tv; + struct timeval saved_tv; + struct timeval *ptv; + struct timespec ts; + struct timespec now; + struct timespec saved_now; + struct timespec cooked; + double err; + __FC_assert(initialised_1 != 0,"sched.c",723,"initialised"); + while (! need_to_exit) { + int tmp_0; + dispatch_timeouts(& now); + saved_now = now; + if (need_to_exit) break; + if (n_timer_queue_entries > (unsigned long)0) { + int tmp; + UTI_DiffTimespecs(& ts,& (timer_queue.next)->ts,& now); + if (ts.tv_sec > (long)0) tmp = 1; + else + if (ts.tv_nsec > (long)0) tmp = 1; else tmp = 0; + __FC_assert(tmp != 0,"sched.c",737,"ts.tv_sec > 0 || ts.tv_nsec > 0"); + UTI_TimespecToTimeval(& ts,& tv); + ptv = & tv; + saved_tv = tv; + } + else { + ptv = (struct timeval *)0; + saved_tv.tv_usec = 0; + saved_tv.tv_sec = (long)saved_tv.tv_usec; + } + p_read_fds = & read_fds; + p_write_fds = & write_fds; + p_except_fds = & except_fds; + fill_fd_sets(& p_read_fds,& p_write_fds,& p_except_fds); + if (! ptv) + if (! p_read_fds) + if (! p_write_fds) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"Nothing to do", + (void * const *)(__va_args)); + } + exit(1); + } + status = select((int)one_highest_fd,p_read_fds,p_write_fds,p_except_fds, + ptv); + errsv = __fc_errno; + LCL_ReadRawTime(& now); + LCL_CookTime(& now,& cooked,& err); + tmp_0 = check_current_time(& saved_now,& now,status == 0,& saved_tv,ptv); + if (! tmp_0) LCL_CookTime(& now,& cooked,& err); + last_select_ts_raw = now; + last_select_ts = cooked; + last_select_ts_err = err; + if (status < 0) { + if (! need_to_exit) + if (errsv != 4) { + char *tmp_1; + tmp_1 = strerror(errsv); + { + char *__va_arg0 = tmp_1; + void *__va_args_23[1] = {& __va_arg0}; + LOG_Message(LOGS_FATAL,"select() failed : %s", + (void * const *)(__va_args_23)); + } + exit(1); + } + } + else + if (status > 0) dispatch_filehandlers(status,p_read_fds,p_write_fds, + p_except_fds); + else __FC_assert(ptv != (struct timeval *)0,"sched.c",783,"ptv"); + } + return; +} + +void SCH_QuitProgram(void) +{ + need_to_exit = 1; + return; +} + +static struct stage stages[3]; +static int enabled; +static int leap_only_mode; +static int locked; +static double max_wander; +static double max_freq; +static double smooth_freq; +static double smooth_offset; +static struct timespec last_update; +static void get_smoothing(struct timespec *now, double *poffset, + double *pfreq, double *pwander) +{ + double elapsed; + double length; + double offset; + double freq; + double wander; + int i; + elapsed = UTI_DiffTimespecsToDouble(now,& last_update); + offset = smooth_offset; + freq = smooth_freq; + wander = 0.0; + i = 0; + while (i < 3) { + if (elapsed <= 0.0) break; + length = stages[i].length; + if (length >= elapsed) length = elapsed; + wander = stages[i].wander; + offset -= (length * (2.0 * freq + wander * length)) / 2.0; + freq += wander * length; + elapsed -= length; + i ++; + } + if (elapsed > 0.0) { + wander = 0.0; + offset -= elapsed * freq; + } + *poffset = offset; + *pfreq = freq; + if (pwander) *pwander = wander; + return; +} + +static void update_stages(void) +{ + double s1; + double s2; + double s; + double l1; + double l2; + double l3; + double lc; + double f; + double f2; + double l1t[2]; + double l3t[2]; + double err[2]; + int i; + int dir; + s1 = smooth_offset / max_wander; + s2 = (smooth_freq * smooth_freq) / (2.0 * (max_wander * max_wander)); + i = 0; + dir = -1; + while (i <= 1) { + err[i] = 0.0; + s = (double)dir * s1 + s2; + if (s < 0.0) { + err[i] += - s; + s = 0.0; + } + l3t[i] = sqrt(s); + l1t[i] = l3t[i] - ((double)dir * smooth_freq) / max_wander; + if (l1t[i] < 0.0) { + err[i] += l1t[i] * l1t[i]; + l1t[i] = 0.0; + } + i ++; + dir += 2; + } + if (err[0] < err[1]) { + l1 = l1t[0]; + l3 = l3t[0]; + dir = -1; + } + else { + l1 = l1t[1]; + l3 = l3t[1]; + dir = 1; + } + l2 = 0.0; + f = ((double)dir * smooth_freq + l1 * max_wander) - max_freq; + if (f > 0.0) { + lc = f / max_wander; + if (lc > l1) { + lc = l1; + f2 = (double)dir * smooth_freq; + } + else f2 = max_freq; + l2 = lc * (2.0 + f / f2); + l1 -= lc; + l3 -= lc; + } + stages[0].wander = (double)dir * max_wander; + stages[0].length = l1; + stages[1].wander = 0.0; + stages[1].length = l2; + stages[2].wander = (double)(- dir) * max_wander; + stages[2].length = l3; + i = 0; + while (i < 3) i ++; + return; +} + +static void update_smoothing(struct timespec *now, double offset, double freq) +{ + if (locked) { + double tmp; + tmp = REF_GetSkew(); + ; + if (tmp / max_wander < (double)10000) SMT_Activate(now); + else + if (leap_only_mode) SMT_Activate(now); + goto return_label; + } + get_smoothing(now,& smooth_offset,& smooth_freq,(double *)0); + smooth_offset += offset; + smooth_freq = (smooth_freq - freq) / (1.0 - freq); + last_update = *now; + update_stages(); + return_label: return; +} + +static void handle_slew_1(struct timespec *raw, struct timespec *cooked, + double dfreq, double doffset, + LCL_ChangeType change_type, void *anything) +{ + double delta; + int tmp; + if (change_type == (unsigned int)LCL_ChangeAdjust) + if (leap_only_mode) update_smoothing(cooked,0.0,0.0); + else update_smoothing(cooked,doffset,dfreq); + tmp = UTI_IsZeroTimespec(& last_update); + if (! tmp) UTI_AdjustTimespec(& last_update,cooked,& last_update,& delta, + dfreq,doffset); + return; +} + +void SMT_Initialise(void) +{ + CNF_GetSmooth(& max_freq,& max_wander,& leap_only_mode); + if (max_freq <= 0.0) goto _LOR; + else + if (max_wander <= 0.0) { + _LOR: { + enabled = 0; + goto return_label; + } + } + enabled = 1; + locked = 1; + max_freq *= 1e-6; + max_wander *= 1e-6; + UTI_ZeroTimespec(& last_update); + LCL_AddParameterChangeHandler(& handle_slew_1,(void *)0); + return_label: return; +} + +void SMT_Finalise(void) +{ + return; +} + +int SMT_IsEnabled(void) +{ + return enabled; +} + +double SMT_GetOffset(struct timespec *now) +{ + double __retres; + double offset; + double freq; + if (! enabled) { + __retres = 0.0; + goto return_label; + } + get_smoothing(now,& offset,& freq,(double *)0); + __retres = offset; + return_label: return __retres; +} + +void SMT_Activate(struct timespec *now) +{ + char const *tmp; + if (! enabled) goto return_label; + else + if (! locked) goto return_label; + if (leap_only_mode) tmp = " (leap seconds only)"; else tmp = ""; + { + char const *__va_arg0 = tmp; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_INFO,"Time smoothing activated%s", + (void * const *)(__va_args)); + } + locked = 0; + last_update = *now; + return_label: return; +} + +void SMT_Reset(struct timespec *now) +{ + int i; + if (! enabled) goto return_label; + smooth_offset = 0.0; + smooth_freq = 0.0; + last_update = *now; + i = 0; + while (i < 3) { + double tmp; + tmp = 0.0; + stages[i].length = tmp; + stages[i].wander = tmp; + i ++; + } + return_label: return; +} + +void SMT_Leap(struct timespec *now, int leap) +{ + if (! enabled) goto return_label; + else + if (! leap_only_mode) goto return_label; + update_smoothing(now,(double)leap,0.0); + return_label: return; +} + +int SMT_GetSmoothingReport(RPT_SmoothingReport *report, struct timespec *now) +{ + int __retres; + double length; + double elapsed; + int i; + if (! enabled) { + __retres = 0; + goto return_label; + } + report->active = ! locked; + report->leap_only = leap_only_mode; + get_smoothing(now,& report->offset,& report->freq_ppm,& report->wander_ppm); + report->freq_ppm *= - 1.0e6; + report->wander_ppm *= - 1.0e6; + elapsed = UTI_DiffTimespecsToDouble(now,& last_update); + if (! locked) { + if (elapsed >= 0.0) { + i = 0; + length = 0.0; + while (i < 3) { + length += stages[i].length; + i ++; + } + report->last_update_ago = elapsed; + if (elapsed < length) report->remaining_time = length - elapsed; + else report->remaining_time = 0.0; + } + else goto _LAND; + } + else { + _LAND: { + report->last_update_ago = 0.0; + report->remaining_time = 0.0; + } + } + __retres = 1; + return_label: return __retres; +} + +static int initialised_2 = 0; +static struct SRC_Instance_Record **sources; +static struct Sort_Element *sort_list; +static int *sel_sources; +static int n_sources; +static int max_n_sources; +static int selected_source_index; +static double max_distance_0; +static double max_jitter_0; +static double reselect_distance_0; +static double stratum_weight_0; +static double combine_limit_0; +static void slew_sources(struct timespec *raw, struct timespec *cooked, + double dfreq, double doffset, + LCL_ChangeType change_type, void *anything); + +static void add_dispersion(double dispersion, void *anything); + +static char *source_to_string(SRC_Instance inst); + +void SRC_Initialise(void) +{ + sources = (struct SRC_Instance_Record **)0; + sort_list = (struct Sort_Element *)0; + sel_sources = (int *)0; + n_sources = 0; + max_n_sources = 0; + selected_source_index = -1; + max_distance_0 = CNF_GetMaxDistance(); + max_jitter_0 = CNF_GetMaxJitter(); + reselect_distance_0 = CNF_GetReselectDistance(); + stratum_weight_0 = CNF_GetStratumWeight(); + combine_limit_0 = CNF_GetCombineLimit(); + initialised_2 = 1; + LCL_AddParameterChangeHandler(& slew_sources,(void *)0); + LCL_AddDispersionNotifyHandler(& add_dispersion,(void *)0); + return; +} + +void SRC_Finalise(void) +{ + LCL_RemoveParameterChangeHandler(& slew_sources,(void *)0); + LCL_RemoveDispersionNotifyHandler(& add_dispersion,(void *)0); + free((void *)sources); + free((void *)sort_list); + free((void *)sel_sources); + initialised_2 = 0; + return; +} + +SRC_Instance SRC_CreateNewInstance(uint32_t ref_id, SRC_Type type, + int sel_options, IPAddr *addr, + int min_samples_0, int max_samples_0, + double min_delay, double asymmetry) +{ + SRC_Instance result; + __FC_assert(initialised_2 != 0,"sources.c",222,"initialised"); + if (min_samples_0 == -1) min_samples_0 = CNF_GetMinSamples(); + if (max_samples_0 == -1) max_samples_0 = CNF_GetMaxSamples(); + result = (SRC_Instance)Malloc(sizeof(struct SRC_Instance_Record)); + result->stats = SST_CreateInstance(ref_id,addr,min_samples_0,max_samples_0, + min_delay,asymmetry); + if (n_sources == max_n_sources) { + if (max_n_sources > 0) max_n_sources = 2 * max_n_sources; + else max_n_sources = 4; + if (sources) { + sources = (struct SRC_Instance_Record **)Realloc2((void *)sources, + (unsigned long)max_n_sources, + sizeof(struct SRC_Instance_Record *)); + sort_list = (struct Sort_Element *)Realloc2((void *)sort_list, + (unsigned long)(3 * max_n_sources), + sizeof(struct Sort_Element)); + sel_sources = (int *)Realloc2((void *)sel_sources, + (unsigned long)max_n_sources,sizeof(int)); + } + else { + sources = (struct SRC_Instance_Record **)Malloc2((unsigned long)max_n_sources, + sizeof(struct SRC_Instance_Record *)); + sort_list = (struct Sort_Element *)Malloc2((unsigned long)(3 * max_n_sources), + sizeof(struct Sort_Element)); + sel_sources = (int *)Malloc2((unsigned long)max_n_sources,sizeof(int)); + } + } + *(sources + n_sources) = result; + result->index = n_sources; + result->type = type; + result->sel_options = sel_options; + SRC_SetRefid(result,ref_id,addr); + SRC_ResetInstance(result); + n_sources ++; + return result; +} + +void SRC_DestroyInstance(SRC_Instance instance) +{ + int dead_index; + int i; + __FC_assert(initialised_2 != 0,"sources.c",271,"initialised"); + SST_DeleteInstance(instance->stats); + dead_index = instance->index; + i = dead_index; + while (i < n_sources - 1) { + *(sources + i) = *(sources + (i + 1)); + (*(sources + i))->index = i; + i ++; + } + n_sources --; + free((void *)instance); + if (selected_source_index == dead_index) SRC_ReselectSource(); + else + if (selected_source_index > dead_index) selected_source_index --; + return; +} + +void SRC_ResetInstance(SRC_Instance instance) +{ + instance->active = 0; + instance->updates = 0; + instance->reachability = 0; + instance->reachability_size = 0; + instance->distant = 0; + instance->status = SRC_BAD_STATS; + instance->sel_score = 1.0; + SST_ResetInstance(instance->stats); + return; +} + +void SRC_SetRefid(SRC_Instance instance, uint32_t ref_id, IPAddr *addr) +{ + instance->ref_id = ref_id; + instance->ip_addr = addr; + SST_SetRefid(instance->stats,ref_id,addr); + return; +} + +SST_Stats SRC_GetSourcestats(SRC_Instance instance) +{ + SST_Stats __retres; + __FC_assert(initialised_2 != 0,"sources.c",320,"initialised"); + __retres = instance->stats; + return __retres; +} + +void SRC_AccumulateSample(SRC_Instance inst, NTP_Sample *sample) +{ + int tmp_1; + __FC_assert(initialised_2 != 0,"sources.c",338,"initialised"); + tmp_1 = REF_IsLeapSecondClose(); + if (tmp_1) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_INFO,"Dropping sample around leap second", + (void * const *)(__va_args)); + } + goto return_label; + } + SST_AccumulateSample(inst->stats,sample); + SST_DoNewRegression(inst->stats); + return_label: return; +} + +void SRC_SetActive(SRC_Instance inst) +{ + inst->active = 1; + return; +} + +void SRC_UnsetActive(SRC_Instance inst) +{ + inst->active = 0; + return; +} + +static int special_mode_end(void) +{ + int __retres; + int i; + i = 0; + while (i < n_sources) { + { + int tmp; + if (! (*(sources + i))->active) goto __Cont; + if ((*(sources + i))->reachability_size >= 8 - 1) goto __Cont; + tmp = SST_Samples((*(sources + i))->stats); + ; + if (((8 - 1) - (*(sources + i))->reachability_size) + tmp >= 3) { + __retres = 0; + goto return_label; + } + } + __Cont: i ++; + } + __retres = 1; + return_label: return __retres; +} + +void SRC_UpdateReachability(SRC_Instance inst, int reachable) +{ + REF_Mode tmp; + inst->reachability <<= 1; + inst->reachability |= ! (! reachable); + inst->reachability = (int)((unsigned int)inst->reachability % (1U << 8)); + if (inst->reachability_size < 8) (inst->reachability_size) ++; + if (! reachable) + if (inst->index == selected_source_index) SRC_SelectSource((struct SRC_Instance_Record *)0); + tmp = REF_GetMode(); + if (tmp != (unsigned int)REF_ModeNormal) { + int tmp_0; + tmp_0 = special_mode_end(); + if (tmp_0) REF_SetUnsynchronised(); + } + if (inst->type == (unsigned int)SRC_NTP) + if (! inst->reachability) { + if (inst->reachability_size == 8) goto _LOR; else goto _LAND; + } + else { + _LAND: ; + if (inst->status == (unsigned int)SRC_BAD_DISTANCE) goto _LOR; + else + if (inst->status == (unsigned int)SRC_JITTERY) goto _LOR; + else + if (inst->status == (unsigned int)SRC_FALSETICKER) _LOR: + NSR_HandleBadSource + (inst->ip_addr); + } + return; +} + +void SRC_ResetReachability(SRC_Instance inst) +{ + inst->reachability = 0; + inst->reachability_size = 0; + SRC_UpdateReachability(inst,0); + return; +} + +static void log_selection_message(char *format, char *arg) +{ + REF_Mode tmp; + tmp = REF_GetMode(); + if (tmp != (unsigned int)REF_ModeNormal) goto return_label; + { + char *__va_arg0 = arg; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_INFO,(char const *)format,(void * const *)(__va_args)); + } + return_label: return; +} + +static int compare_sort_elements(void const *a, void const *b) +{ + int __retres; + struct Sort_Element const *u = (struct Sort_Element const *)a; + struct Sort_Element const *v = (struct Sort_Element const *)b; + if (u->offset < v->offset) { + __retres = -1; + goto return_label; + } + else + if (u->offset > v->offset) { + __retres = 1; + goto return_label; + } + else + if (u->tag < v->tag) { + __retres = -1; + goto return_label; + } + else + if (u->tag > v->tag) { + __retres = 1; + goto return_label; + } + else { + __retres = 0; + goto return_label; + } + return_label: return __retres; +} + +static char *source_to_string(SRC_Instance inst) +{ + char *__retres; + switch (inst->type) { + char *tmp; + char *tmp_0; + case (SRC_Type)SRC_NTP: tmp = UTI_IPToString(inst->ip_addr); + __retres = tmp; + goto return_label; + case (SRC_Type)SRC_REFCLOCK: tmp_0 = UTI_RefidToString(inst->ref_id); + __retres = tmp_0; + goto return_label; + default: __FC_assert(0 != 0,"sources.c",476,"0"); + } + __retres = (char *)0; + return_label: return __retres; +} + +static void mark_ok_sources(SRC_Status status) +{ + int i; + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + if ((*(sources + i))->status != (unsigned int)SRC_OK) goto __Cont; + (*(sources + i))->status = status; + __Cont: i ++; + } + return; +} + +static int combine_sources(int n_sel_sources, struct timespec *ref_time, + double *offset, double *offset_sd, + double *frequency, double *frequency_sd, + double *skew) +{ + int __retres; + struct timespec src_ref_time; + double src_offset; + double src_offset_sd; + double src_frequency; + double src_frequency_sd; + double src_skew; + double src_root_delay; + double src_root_dispersion; + double sel_src_distance; + double elapsed; + double offset_weight; + double sum_offset_weight; + double sum_offset; + double sum2_offset_sd; + double frequency_weight; + double sum_frequency_weight; + double sum_frequency; + double inv_sum2_frequency_sd; + double inv_sum2_skew; + int i; + int index_0; + int combined; + double tmp_1; + double tmp_2; + if (n_sel_sources == 1) { + __retres = 1; + goto return_label; + } + sum2_offset_sd = 0.0; + sum_offset = sum2_offset_sd; + sum_offset_weight = sum_offset; + inv_sum2_skew = 0.0; + inv_sum2_frequency_sd = inv_sum2_skew; + sum_frequency = inv_sum2_frequency_sd; + sum_frequency_weight = sum_frequency; + sel_src_distance = (*(sources + selected_source_index))->sel_info.root_distance; + if ((*(sources + selected_source_index))->type == (unsigned int)SRC_NTP) + sel_src_distance += reselect_distance_0; + combined = 0; + i = combined; + /*@ loop unroll 2; */ + while (i < n_sel_sources) { + index_0 = *(sel_sources + i); + SST_GetTrackingData((*(sources + index_0))->stats,& src_ref_time, + & src_offset,& src_offset_sd,& src_frequency, + & src_frequency_sd,& src_skew,& src_root_delay, + & src_root_dispersion); + if (index_0 != selected_source_index) { + if ((*(sources + index_0))->sel_info.root_distance > combine_limit_0 * sel_src_distance) + goto _LOR; + else { + double tmp; + double tmp_0; + tmp = fabs(*frequency - src_frequency); + tmp_0 = LCL_GetMaxClockError(); + ; + if (tmp > combine_limit_0 * ((*skew + src_skew) + tmp_0)) + _LOR: + if ((*(sources + index_0))->reachability_size >= 8) (*(sources + index_0))->distant = 32; + else (*(sources + index_0))->distant = 1; + else goto _LAND; + } + } + else { + _LAND: ; + if ((*(sources + index_0))->distant) ((*(sources + index_0))->distant) --; + } + if ((*(sources + index_0))->distant) { + (*(sources + index_0))->status = SRC_DISTANT; + goto __Cont; + } + if ((*(sources + index_0))->status == (unsigned int)SRC_OK) (*(sources + index_0))->status = SRC_UNSELECTED; + elapsed = UTI_DiffTimespecsToDouble(ref_time,& src_ref_time); + src_offset += elapsed * src_frequency; + src_offset_sd += elapsed * src_frequency_sd; + offset_weight = 1.0 / (*(sources + index_0))->sel_info.root_distance; + frequency_weight = 1.0 / (src_frequency_sd * src_frequency_sd); + sum_offset_weight += offset_weight; + sum_offset += offset_weight * src_offset; + sum2_offset_sd += offset_weight * (src_offset_sd * src_offset_sd + + (src_offset - *offset) * (src_offset - *offset)); + sum_frequency_weight += frequency_weight; + sum_frequency += frequency_weight * src_frequency; + inv_sum2_frequency_sd += 1.0 / (src_frequency_sd * src_frequency_sd); + inv_sum2_skew += 1.0 / (src_skew * src_skew); + combined ++; + __Cont: i ++; + } + __FC_assert(combined != 0,"sources.c",574,"combined"); + *offset = sum_offset / sum_offset_weight; + *offset_sd = sqrt(sum2_offset_sd / sum_offset_weight); + *frequency = sum_frequency / sum_frequency_weight; + tmp_1 = sqrt(inv_sum2_frequency_sd); + *frequency_sd = 1.0 / tmp_1; + tmp_2 = sqrt(inv_sum2_skew); + *skew = 1.0 / tmp_2; + __retres = combined; + return_label: return __retres; +} + +void SRC_SelectSource(SRC_Instance updated_inst) +{ + struct SelectInfo *si; + struct timespec now; + struct timespec ref_time; + int i; + int j; + int j1; + int j2; + int index_0; + int sel_prefer; + int n_endpoints; + int n_sel_sources; + int sel_req_source; + int n_badstats_sources; + int max_sel_reach; + int max_sel_reach_size; + int max_badstat_reach; + int depth; + int best_depth; + int trust_depth; + int best_trust_depth; + int combined; + int stratum; + int min_stratum; + int max_score_index; + int orphan_stratum; + int orphan_source; + int leap_votes; + int leap_ins; + int leap_del; + double src_offset; + double src_offset_sd; + double src_frequency; + double src_frequency_sd; + double src_skew; + double src_root_delay; + double src_root_dispersion; + double best_lo; + double best_hi; + double distance; + double sel_src_distance; + double max_score; + double first_sample_ago; + double max_reach_sample_ago; + NTP_Leap leap_status; + if (updated_inst) (updated_inst->updates) ++; + if (n_sources == 0) { + if (selected_source_index != -1) { + log_selection_message((char *)"Can\'t synchronise: no sources", + (char *)0); + selected_source_index = -1; + } + goto return_label; + } + SCH_GetLastEventTime(& now,(double *)0,(struct timespec *)0); + n_endpoints = 0; + n_sel_sources = 0; + n_badstats_sources = 0; + sel_req_source = 0; + max_badstat_reach = 0; + max_sel_reach = max_badstat_reach; + max_sel_reach_size = 0; + max_reach_sample_ago = 0.0; + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + __FC_assert(((*(sources + i))->status != (unsigned int)SRC_OK) != 0, + "sources.c",634,"sources[i]->status != SRC_OK"); + if ((*(sources + i))->sel_options & 0x8) sel_req_source = 1; + if ((*(sources + i))->sel_options & 0x1) { + (*(sources + i))->status = SRC_UNSELECTABLE; + goto __Cont; + } + si = & (*(sources + i))->sel_info; + SST_GetSelectionData((*(sources + i))->stats,& now,& si->stratum, + & si->leap,& si->lo_limit,& si->hi_limit, + & si->root_distance,& si->std_dev, + & first_sample_ago,& si->last_sample_ago, + & si->select_ok); + if (! si->select_ok) { + n_badstats_sources ++; + (*(sources + i))->status = SRC_BAD_STATS; + if (max_badstat_reach < (*(sources + i))->reachability) max_badstat_reach = (*( + sources + i))->reachability; + goto __Cont; + } + if (first_sample_ago < 2.0 * si->last_sample_ago) { + double tmp; + tmp = LCL_GetMaxClockError(); + double extra_disp = + tmp * (2.0 * si->last_sample_ago - first_sample_ago); + si->root_distance += extra_disp; + si->lo_limit -= extra_disp; + si->hi_limit += extra_disp; + } + if (si->root_distance > max_distance_0) { + (*(sources + i))->status = SRC_BAD_DISTANCE; + goto __Cont; + } + if (si->std_dev > max_jitter_0) { + (*(sources + i))->status = SRC_JITTERY; + goto __Cont; + } + (*(sources + i))->status = SRC_OK; + if ((*(sources + i))->reachability) + if (max_reach_sample_ago < first_sample_ago) max_reach_sample_ago = first_sample_ago; + if (max_sel_reach < (*(sources + i))->reachability) max_sel_reach = (*( + sources + i))->reachability; + if (max_sel_reach_size < (*(sources + i))->reachability_size) max_sel_reach_size = (*( + sources + i))->reachability_size; + __Cont: i ++; + } + orphan_stratum = REF_GetOrphanStratum(); + orphan_source = -1; + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + if ((*(sources + i))->status != (unsigned int)SRC_OK) goto __Cont_0; + si = & (*(sources + i))->sel_info; + if (! (*(sources + i))->reachability) + if (max_reach_sample_ago < si->last_sample_ago) { + (*(sources + i))->status = SRC_STALE; + goto __Cont_0; + } + if (si->stratum >= orphan_stratum) + if ((*(sources + i))->type == (unsigned int)SRC_NTP) { + (*(sources + i))->status = SRC_ORPHAN; + if (si->stratum == orphan_stratum) + if ((*(sources + i))->reachability) + if (orphan_source == -1) orphan_source = i; + else + if ((*(sources + i))->ref_id < (*(sources + orphan_source))->ref_id) + orphan_source = i; + goto __Cont_0; + } + n_sel_sources ++; + __Cont_0: i ++; + } + if (! n_sel_sources) + if (orphan_source != -1) { + uint32_t local_ref_id = + NSR_GetLocalRefid((*(sources + orphan_source))->ip_addr); + if (! local_ref_id) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_ERR,"Unknown local refid in orphan mode", + (void * const *)(__va_args)); + } + } + else + if ((*(sources + orphan_source))->ref_id < local_ref_id) { + (*(sources + orphan_source))->status = SRC_OK; + n_sel_sources = 1; + } + } + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + if ((*(sources + i))->status != (unsigned int)SRC_OK) goto __Cont_1; + si = & (*(sources + i))->sel_info; + j1 = n_endpoints; + j2 = j1 + 1; + (sort_list + j1)->index = i; + (sort_list + j1)->offset = si->lo_limit; + (sort_list + j1)->tag = LOW; + (sort_list + j2)->index = i; + (sort_list + j2)->offset = si->hi_limit; + (sort_list + j2)->tag = HIGH; + n_endpoints += 2; + __Cont_1: i ++; + } + if (n_badstats_sources) + if (n_sel_sources) + if (selected_source_index == -1) + if (max_sel_reach_size < 8) + if (max_sel_reach >> 1 == max_badstat_reach) { + mark_ok_sources(SRC_WAITS_STATS); + goto return_label; + } + if (n_endpoints == 0) { + if (selected_source_index != -1) { + log_selection_message((char *)"Can\'t synchronise: no selectable sources", + (char *)0); + selected_source_index = -1; + } + goto return_label; + } + qsort((void *)sort_list,(unsigned long)n_endpoints, + sizeof(struct Sort_Element),& compare_sort_elements); + best_trust_depth = 0; + trust_depth = best_trust_depth; + best_depth = 0; + depth = best_depth; + best_hi = 0.0; + best_lo = best_hi; + i = 0; + /*@ loop unroll 4; */ + while (i < n_endpoints) { + switch ((sort_list + i)->tag) { + case LOW: depth ++; + if ((*(sources + (sort_list + i)->index))->sel_options & 0x4) trust_depth ++; + if (trust_depth > best_trust_depth) goto _LOR; + else + if (trust_depth == best_trust_depth) + if (depth > best_depth) { + _LOR: + { + best_trust_depth = trust_depth; + best_depth = depth; + best_lo = (sort_list + i)->offset; + } + } + break; + case HIGH: ; + if (trust_depth == best_trust_depth) + if (depth == best_depth) best_hi = (sort_list + i)->offset; + if ((*(sources + (sort_list + i)->index))->sel_options & 0x4) trust_depth --; + depth --; + break; + default: __FC_assert(0 != 0,"sources.c",858,"0"); + } + i ++; + } + if (best_depth <= n_sel_sources / 2) + if (! best_trust_depth) { + if (selected_source_index != -1) { + log_selection_message((char *)"Can\'t synchronise: no majority", + (char *)0); + REF_SetUnsynchronised(); + selected_source_index = -1; + } + mark_ok_sources(SRC_FALSETICKER); + goto return_label; + } + n_sel_sources = 0; + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + if ((*(sources + i))->status != (unsigned int)SRC_OK) goto __Cont_2; + if (! best_trust_depth) goto _LOR_1; + else + if ((*(sources + i))->sel_options & 0x4) { + _LOR_1: ; + if ((*(sources + i))->sel_info.lo_limit <= best_lo) { + if ((*(sources + i))->sel_info.hi_limit >= best_hi) goto _LOR_0; + else goto _LAND_2; + } + else goto _LAND_2; + } + else { + _LAND_2: ; + if ((*(sources + i))->sel_info.lo_limit >= best_lo) { + if ((*(sources + i))->sel_info.hi_limit <= best_hi) { + _LOR_0: + { + int tmp_1; + tmp_1 = n_sel_sources; + n_sel_sources ++; + *(sel_sources + tmp_1) = i; + if ((*(sources + i))->sel_options & 0x8) sel_req_source = 0; + } + } + else goto _LAND_0; + } + else { + _LAND_0: ; + if ((*(sources + i))->sel_info.lo_limit <= best_lo) { + if ((*(sources + i))->sel_info.hi_limit >= best_hi) (*(sources + i))->status = SRC_UNTRUSTED; + else goto _LAND; + } + else _LAND: (*(sources + i))->status = SRC_FALSETICKER; + } + } + __Cont_2: i ++; + } + if (! n_sel_sources) goto _LOR_2; + else + if (sel_req_source) goto _LOR_2; + else { + int tmp_4; + tmp_4 = CNF_GetMinSources(); + ; + if (n_sel_sources < tmp_4) { + _LOR_2: + { + if (selected_source_index != -1) { + char const *tmp_3; + if (! n_sel_sources) tmp_3 = "no"; + else { + char const *tmp_2; + if (sel_req_source) tmp_2 = "no required source in"; + else tmp_2 = "not enough"; + tmp_3 = tmp_2; + } + log_selection_message((char *)"Can\'t synchronise: %s selectable sources", + (char *)tmp_3); + selected_source_index = -1; + } + mark_ok_sources(SRC_WAITS_SOURCES); + goto return_label; + } + } + } + leap_votes = 0; + leap_del = leap_votes; + leap_ins = leap_del; + i = leap_ins; + /*@ loop unroll 2; */ + while (i < n_sel_sources) { + index_0 = *(sel_sources + i); + if (best_trust_depth) + if (! ((*(sources + index_0))->sel_options & 0x4)) goto __Cont_3; + leap_votes ++; + if ((*(sources + index_0))->sel_info.leap == (unsigned int)LEAP_InsertSecond) + leap_ins ++; + else + if ((*(sources + index_0))->sel_info.leap == (unsigned int)LEAP_DeleteSecond) + leap_del ++; + __Cont_3: i ++; + } + if (leap_ins > leap_votes / 2) leap_status = LEAP_InsertSecond; + else + if (leap_del > leap_votes / 2) leap_status = LEAP_DeleteSecond; + else leap_status = LEAP_Normal; + i = 0; + /*@ loop unroll 2; */ + while (i < n_sel_sources) { + if ((*(sources + *(sel_sources + i)))->sel_options & 0x2) break; + i ++; + } + if (i < n_sel_sources) { + j = 0; + i = j; + /*@ loop unroll 2; */ + while (i < n_sel_sources) { + if (! ((*(sources + *(sel_sources + i)))->sel_options & 0x2)) (*( + sources + *( + sel_sources + i)))->status = SRC_NONPREFERRED; + else { + int tmp_5; + tmp_5 = j; + j ++; + *(sel_sources + tmp_5) = *(sel_sources + i); + } + i ++; + } + __FC_assert((j > 0) != 0,"sources.c",960,"j > 0"); + n_sel_sources = j; + sel_prefer = 1; + } + else sel_prefer = 0; + index_0 = *(sel_sources + 0); + min_stratum = (*(sources + index_0))->sel_info.stratum; + i = 1; + /*@ loop unroll 2; */ + while (i < n_sel_sources) { + index_0 = *(sel_sources + i); + stratum = (*(sources + index_0))->sel_info.stratum; + if (stratum < min_stratum) min_stratum = stratum; + i ++; + } + max_score_index = -1; + max_score = 0.0; + sel_src_distance = 0.0; + if (selected_source_index != -1) sel_src_distance = (*(sources + selected_source_index))->sel_info.root_distance + + (double)((*(sources + selected_source_index))->sel_info.stratum - min_stratum) * stratum_weight_0; + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + if ((*(sources + i))->status != (unsigned int)SRC_OK) goto _LOR_3; + else + if (sel_prefer) + if (! ((*(sources + i))->sel_options & 0x2)) { + _LOR_3: + { + (*(sources + i))->sel_score = 1.0; + (*(sources + i))->distant = 32; + goto __Cont_4; + } + } + distance = (*(sources + i))->sel_info.root_distance + (double)((*( + sources + i))->sel_info.stratum - min_stratum) * stratum_weight_0; + if ((*(sources + i))->type == (unsigned int)SRC_NTP) distance += reselect_distance_0; + if (selected_source_index != -1) { + if (*(sources + i) == updated_inst) goto _LOR_4; + else + if (*(sources + selected_source_index) == updated_inst) { + _LOR_4: + { + (*(sources + i))->sel_score *= sel_src_distance / distance; + if ((*(sources + i))->sel_score < 1.0) (*(sources + i))->sel_score = 1.0; + } + } + } + else (*(sources + i))->sel_score = 1.0 / distance; + if (max_score < (*(sources + i))->sel_score) { + max_score = (*(sources + i))->sel_score; + max_score_index = i; + } + __Cont_4: i ++; + } + __FC_assert((max_score_index != -1) != 0,"sources.c",1033, + "max_score_index != INVALID_SOURCE"); + if (selected_source_index == -1) goto _LOR_5; + else + if ((*(sources + selected_source_index))->status != (unsigned int)SRC_OK) + goto _LOR_5; + else + if (max_score_index != selected_source_index) + if (max_score > 10.0) { + _LOR_5: + { + char *tmp_7; + if ((*(sources + max_score_index))->updates == 0) { + selected_source_index = -1; + mark_ok_sources(SRC_WAITS_UPDATE); + goto return_label; + } + selected_source_index = max_score_index; + tmp_7 = source_to_string(*(sources + selected_source_index)); + log_selection_message((char *)"Selected source %s",tmp_7); + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + (*(sources + i))->sel_score = 1.0; + (*(sources + i))->distant = 0; + i ++; + } + } + } + (*(sources + selected_source_index))->status = SRC_SELECTED; + if ((*(sources + selected_source_index))->updates == 0) { + i = 0; + /*@ loop unroll 2; */ + while (i < n_sel_sources) { + index_0 = *(sel_sources + i); + if ((*(sources + index_0))->status == (unsigned int)SRC_OK) + if ((*(sources + index_0))->distant) (*(sources + index_0))->status = SRC_DISTANT; + else (*(sources + index_0))->status = SRC_UNSELECTED; + i ++; + } + goto return_label; + } + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + (*(sources + i))->updates = 0; + i ++; + } + SST_GetTrackingData((*(sources + selected_source_index))->stats,& ref_time, + & src_offset,& src_offset_sd,& src_frequency, + & src_frequency_sd,& src_skew,& src_root_delay, + & src_root_dispersion); + combined = combine_sources(n_sel_sources,& ref_time,& src_offset, + & src_offset_sd,& src_frequency, + & src_frequency_sd,& src_skew); + REF_SetReference((*(sources + selected_source_index))->sel_info.stratum, + leap_status,combined, + (*(sources + selected_source_index))->ref_id, + (*(sources + selected_source_index))->ip_addr,& ref_time, + src_offset,src_offset_sd,src_frequency,src_frequency_sd, + src_skew,src_root_delay,src_root_dispersion); + return_label: return; +} + +void SRC_ReselectSource(void) +{ + selected_source_index = -1; + SRC_SelectSource((struct SRC_Instance_Record *)0); + return; +} + +void SRC_SetReselectDistance(double distance) +{ + if (reselect_distance_0 != distance) { + reselect_distance_0 = distance; + { + double __va_arg0 = distance; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_INFO,"New reselect distance %f", + (void * const *)(__va_args)); + } + } + return; +} + +static void slew_sources(struct timespec *raw, struct timespec *cooked, + double dfreq, double doffset, + LCL_ChangeType change_type, void *anything) +{ + int i; + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + if (change_type == (unsigned int)LCL_ChangeUnknownStep) SST_ResetInstance + ((*(sources + i))->stats); + else SST_SlewSamples((*(sources + i))->stats,cooked,dfreq,doffset); + i ++; + } + if (change_type == (unsigned int)LCL_ChangeUnknownStep) SRC_SelectSource + ((struct SRC_Instance_Record *)0); + return; +} + +static void add_dispersion(double dispersion, void *anything) +{ + int i; + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + SST_AddDispersion((*(sources + i))->stats,dispersion); + i ++; + } + return; +} + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + requires valid_read_string(param1); + requires valid_read_string(param0); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: *(param1 + (0 ..))), (indirect: *(param0 + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), + *(param1 + (0 ..)), *(param0 + (0 ..)); + */ +int snprintf_va_3(char * __restrict s, size_t n, + char const * __restrict format, char *param0, char *param1); + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + requires valid_read_string(param0); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: param1), (indirect: *(param0 + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), param1, + *(param0 + (0 ..)); + */ +int snprintf_va_4(char * __restrict s, size_t n, + char const * __restrict format, char *param0, + unsigned int param1); + +static FILE *open_dumpfile(SRC_Instance inst, char const *mode_0) +{ + FILE *__retres; + FILE *f; + char filename[1024]; + char *dumpdir_0; + dumpdir_0 = CNF_GetDumpDir(); + if ((int)*(dumpdir_0 + 0) == '\000') { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_WARN,"dumpdir not specified", + (void * const *)(__va_args)); + } + __retres = (FILE *)0; + goto return_label; + } + if (inst->type == (unsigned int)SRC_NTP) { + int tmp_0; + char *tmp; + tmp = source_to_string(inst); + ; + tmp_0 = snprintf_va_3(filename,sizeof(filename),"%s/%s.dat",dumpdir_0, + tmp); + if ((unsigned long)tmp_0 >= sizeof(filename)) goto _LOR; else goto _LAND; + } + else { + _LAND: ; + if (inst->type != (unsigned int)SRC_NTP) { + int tmp_1; + tmp_1 = snprintf_va_4(filename,sizeof(filename),"%s/refid:%08x.dat", + dumpdir_0,inst->ref_id); + if ((unsigned long)tmp_1 >= sizeof(filename)) { + _LOR: + { + { + void *__va_args_12[1] = {(void *)0}; + LOG_Message(LOGS_WARN,"dumpdir too long", + (void * const *)(__va_args_12)); + } + __retres = (FILE *)0; + goto return_label; + } + } + } + } + f = fopen((char const *)(filename),mode_0); + if (! f) + if ((int)*(mode_0 + 0) != 'r') { + char *tmp_2; + tmp_2 = source_to_string(inst); + { + char *__va_arg0 = tmp_2; + void *__va_args_15[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN,"Could not open dump file for %s", + (void * const *)(__va_args_15)); + } + } + __retres = f; + return_label: return __retres; +} + +void SRC_DumpSources(void) +{ + FILE *out; + int i; + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + out = open_dumpfile(*(sources + i),"w"); + if (! out) goto __Cont; + SST_SaveToFile((*(sources + i))->stats,out); + fclose(out); + __Cont: i ++; + } + return; +} + +void SRC_ReloadSources(void) +{ + FILE *in; + int i; + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + { + int tmp_1; + in = open_dumpfile(*(sources + i),"r"); + if (! in) goto __Cont; + tmp_1 = SST_LoadFromFile((*(sources + i))->stats,in); + if (tmp_1) { + char *tmp_0; + tmp_0 = source_to_string(*(sources + i)); + { + char *__va_arg0 = tmp_0; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_INFO,"Loaded dump file for %s", + (void * const *)(__va_args)); + } + } + else { + char *tmp; + tmp = source_to_string(*(sources + i)); + { + char *__va_arg0_9 = tmp; + void *__va_args_11[1] = {& __va_arg0_9}; + LOG_Message(LOGS_WARN,"Could not load dump file for %s", + (void * const *)(__va_args_11)); + } + } + fclose(in); + } + __Cont: i ++; + } + return; +} + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + requires valid_read_string(param0); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: *(param0 + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..)); + */ +int snprintf_va_5(char * __restrict s, size_t n, + char const * __restrict format, char *param0); + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + requires valid_read_string(param0); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: *(param0 + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..)); + */ +int snprintf_va_6(char * __restrict s, size_t n, + char const * __restrict format, char *param0); + +void SRC_RemoveDumpFiles(void) +{ + char pattern[1024]; + char name[64]; + char *dumpdir_0; + char *s; + IPAddr ip_addr; + glob_t gl; + size_t i; + int tmp_0; + dumpdir_0 = CNF_GetDumpDir(); + if ((int)*(dumpdir_0 + 0) == '\000') goto return_label; + else { + int tmp; + tmp = snprintf_va_5(pattern,sizeof(pattern),"%s/*.dat",dumpdir_0); + if ((unsigned long)tmp >= sizeof(pattern)) goto return_label; + } + tmp_0 = glob((char const *)(pattern),0, + (int (*)(char const *epath, int eerrno))0,& gl); + if (tmp_0) goto return_label; + i = (unsigned long)0; + while (i < gl.gl_pathc) { + { + size_t tmp_2; + size_t tmp_3; + int tmp_4; + s = strrchr((char const *)*(gl.gl_pathv + i),'/'); + if (! s) goto __Cont; + else { + int tmp_1; + tmp_1 = snprintf_va_6(name,sizeof(name),"%s",s + 1); + if ((unsigned long)tmp_1 >= sizeof(name)) goto __Cont; + } + tmp_2 = strlen((char const *)(name)); + if (tmp_2 < (size_t)4) goto __Cont; + tmp_3 = strlen((char const *)(name)); + name[tmp_3 - (size_t)4] = (char)'\000'; + tmp_4 = strncmp((char const *)(name),"refid:",(unsigned long)6); + if (tmp_4) { + int tmp_5; + tmp_5 = UTI_StringToIP((char const *)(name),& ip_addr); + if (! tmp_5) goto __Cont; + } + unlink((char const *)*(gl.gl_pathv + i)); + } + __Cont: i += (size_t)1; + } + globfree(& gl); + return_label: return; +} + +int SRC_IsSyncPeer(SRC_Instance inst) +{ + int __retres; + if (inst->index == selected_source_index) { + __retres = 1; + goto return_label; + } + else { + __retres = 0; + goto return_label; + } + return_label: return __retres; +} + +int SRC_IsReachable(SRC_Instance inst) +{ + int __retres; + __retres = inst->reachability != 0; + return __retres; +} + +int SRC_ReadNumberOfSources(void) +{ + return n_sources; +} + +int SRC_ActiveSources(void) +{ + int i; + int r; + r = 0; + i = r; + /*@ loop unroll 2; */ + while (i < n_sources) { + if ((*(sources + i))->active) r ++; + i ++; + } + return r; +} + +int SRC_ReportSource(int index_0, RPT_SourceReport *report, + struct timespec *now) +{ + int __retres; + SRC_Instance src; + if (index_0 >= n_sources) goto _LOR; + else + if (index_0 < 0) { + _LOR: { + __retres = 0; + goto return_label; + } + } + else { + src = *(sources + index_0); + if (src->ip_addr) report->ip_addr = *(src->ip_addr); + else { + report->ip_addr.addr.in4 = src->ref_id; + report->ip_addr.family = (unsigned short)1; + } + switch (src->status) { + case (SRC_Status)SRC_FALSETICKER: report->state = RPT_FALSETICKER; + break; + case (SRC_Status)SRC_JITTERY: report->state = RPT_JITTERY; + break; + case (SRC_Status)SRC_UNTRUSTED: case (SRC_Status)SRC_WAITS_SOURCES: + case (SRC_Status)SRC_NONPREFERRED: case (SRC_Status)SRC_WAITS_UPDATE: + case (SRC_Status)SRC_DISTANT: case (SRC_Status)SRC_OUTLIER: + report->state = RPT_OUTLIER; + break; + case (SRC_Status)SRC_UNSELECTED: report->state = RPT_CANDIDATE; + break; + case (SRC_Status)SRC_SELECTED: report->state = RPT_SYNC; + break; + default: report->state = RPT_UNREACH; + break; + } + report->sel_options = src->sel_options; + report->reachability = src->reachability; + SST_DoSourceReport(src->stats,report,now); + __retres = 1; + goto return_label; + } + return_label: return __retres; +} + +int SRC_ReportSourcestats(int index_0, RPT_SourcestatsReport *report, + struct timespec *now) +{ + int __retres; + SRC_Instance src; + if (index_0 >= n_sources) goto _LOR; + else + if (index_0 < 0) { + _LOR: { + __retres = 0; + goto return_label; + } + } + else { + src = *(sources + index_0); + report->ref_id = src->ref_id; + if (src->ip_addr) report->ip_addr = *(src->ip_addr); + else report->ip_addr.family = (unsigned short)0; + SST_DoSourcestatsReport(src->stats,report,now); + __retres = 1; + goto return_label; + } + return_label: return __retres; +} + +SRC_Type SRC_GetType(int index_0) +{ + SRC_Type __retres; + if (index_0 >= n_sources) { + __retres = (enum __anonenum_SRC_Type_23)(-1); + goto return_label; + } + else + if (index_0 < 0) { + __retres = (enum __anonenum_SRC_Type_23)(-1); + goto return_label; + } + __retres = (*(sources + index_0))->type; + return_label: return __retres; +} + +static LOG_FileID logfileid_0; +static void find_min_delay_sample(SST_Stats inst); + +static int get_buf_index(SST_Stats inst, int i); + +void SST_Initialise(void) +{ + int tmp; + tmp = CNF_GetLogStatistics(); + if (tmp) logfileid_0 = LOG_FileOpen("statistics", + " Date (UTC) Time IP Address Std dev\'n Est offset Offset sd Diff freq Est skew Stress Ns Bs Nr Asym"); + else logfileid_0 = -1; + return; +} + +void SST_Finalise(void) +{ + return; +} + +SST_Stats SST_CreateInstance(uint32_t refid, IPAddr *addr, int min_samples_0, + int max_samples_0, double min_delay, + double asymmetry) +{ + SST_Stats inst; + inst = (SST_Stats)Malloc(sizeof(struct SST_Stats_Record)); + inst->min_samples = min_samples_0; + inst->max_samples = max_samples_0; + inst->fixed_min_delay = min_delay; + inst->fixed_asymmetry = asymmetry; + SST_SetRefid(inst,refid,addr); + SST_ResetInstance(inst); + return inst; +} + +void SST_DeleteInstance(SST_Stats inst) +{ + free((void *)inst); + return; +} + +void SST_ResetInstance(SST_Stats inst) +{ + inst->n_samples = 0; + inst->runs_samples = 0; + inst->last_sample = 0; + inst->regression_ok = 0; + inst->best_single_sample = 0; + inst->min_delay_sample = 0; + inst->estimated_frequency = (double)0; + inst->estimated_frequency_sd = 2000.0 / 1.0e6; + inst->skew = 2000.0 / 1.0e6; + inst->estimated_offset = 0.0; + inst->estimated_offset_sd = 86400.0; + UTI_ZeroTimespec(& inst->offset_time); + inst->std_dev = 4.0; + inst->nruns = 0; + inst->asymmetry_run = 0; + inst->asymmetry = 0.0; + inst->leap = LEAP_Unsynchronised; + return; +} + +void SST_SetRefid(SST_Stats inst, uint32_t refid, IPAddr *addr) +{ + inst->refid = refid; + inst->ip_addr = addr; + return; +} + +static void prune_register(SST_Stats inst, int new_oldest) +{ + if (! new_oldest) goto return_label; + __FC_assert((inst->n_samples >= new_oldest) != 0,"sourcestats.c",280, + "inst->n_samples >= new_oldest"); + inst->n_samples -= new_oldest; + inst->runs_samples += new_oldest; + if (inst->runs_samples > inst->n_samples * (2 - 1)) inst->runs_samples = + inst->n_samples * ( + 2 - 1); + __FC_assert((inst->n_samples + inst->runs_samples <= 64 * 2) != 0, + "sourcestats.c",286, + "inst->n_samples + inst->runs_samples <= MAX_SAMPLES * REGRESS_RUNS_RATIO"); + find_min_delay_sample(inst); + return_label: return; +} + +void SST_AccumulateSample(SST_Stats inst, NTP_Sample *sample) +{ + int n; + int m; + int tmp_3; + if (inst->n_samples > 0) + if (inst->n_samples == 64) goto _LOR; + else + if (inst->n_samples == inst->max_samples) _LOR: prune_register(inst,1); + if (inst->n_samples) { + int tmp_2; + tmp_2 = UTI_CompareTimespecs(& inst->sample_times[inst->last_sample], + & sample->time); + if (tmp_2 >= 0) { + char *tmp_1; + if (inst->ip_addr) tmp_1 = UTI_IPToString(inst->ip_addr); + else tmp_1 = UTI_RefidToString(inst->refid); + { + char *__va_arg0 = tmp_1; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN, + "Out of order sample detected, discarding history for %s", + (void * const *)(__va_args)); + } + SST_ResetInstance(inst); + } + } + tmp_3 = (inst->last_sample + 1) % (64 * 2); + inst->last_sample = tmp_3; + n = tmp_3; + m = n % 64; + inst->sample_times[n] = sample->time; + inst->offsets[n] = - sample->offset; + inst->orig_offsets[m] = - sample->offset; + inst->peer_delays[n] = sample->peer_delay; + inst->peer_dispersions[m] = sample->peer_dispersion; + inst->root_delays[m] = sample->root_delay; + inst->root_dispersions[m] = sample->root_dispersion; + inst->stratum = sample->stratum; + inst->leap = sample->leap; + if (inst->peer_delays[n] < inst->fixed_min_delay) inst->peer_delays[n] = + 2.0 * inst->fixed_min_delay - inst->peer_delays[n]; + if (! inst->n_samples) inst->min_delay_sample = n; + else + if (inst->peer_delays[n] < inst->peer_delays[inst->min_delay_sample]) + inst->min_delay_sample = n; + (inst->n_samples) ++; + return; +} + +static int get_runsbuf_index(SST_Stats inst, int i) +{ + int __retres; + __retres = (int)((unsigned int)((((inst->last_sample + (2 * 64) * 2) - inst->n_samples) + i) + 1) % (unsigned int)( + 64 * 2)); + return __retres; +} + +static int get_buf_index(SST_Stats inst, int i) +{ + int __retres; + __retres = (int)((unsigned int)((((inst->last_sample + 64 * 2) - inst->n_samples) + i) + 1) % (unsigned int)64); + return __retres; +} + +static void convert_to_intervals(SST_Stats inst, double *times_back) +{ + struct timespec *ts; + int i; + ts = & inst->sample_times[inst->last_sample]; + i = - inst->runs_samples; + while (i < inst->n_samples) { + { + int tmp; + ; + tmp = get_runsbuf_index(inst,i); + ; + *(times_back + i) = UTI_DiffTimespecsToDouble(& inst->sample_times[tmp], + ts); + } + i ++; + } + return; +} + +static void find_best_sample_index(SST_Stats inst, double *times_back) +{ + double root_distance; + double best_root_distance; + double elapsed; + int i; + int j; + int best_index; + if (! inst->n_samples) goto return_label; + best_index = -1; + best_root_distance = 0x1.fffffffffffffp+1023; + i = 0; + while (i < inst->n_samples) { + j = get_buf_index(inst,i); + elapsed = - *(times_back + i); + __FC_assert((elapsed >= 0.0) != 0,"sourcestats.c",398,"elapsed >= 0.0"); + root_distance = (inst->root_dispersions[j] + elapsed * inst->skew) + + 0.5 * inst->root_delays[j]; + if (root_distance < best_root_distance) { + best_root_distance = root_distance; + best_index = i; + } + i ++; + } + __FC_assert((best_index >= 0) != 0,"sourcestats.c",407,"best_index >= 0"); + inst->best_single_sample = best_index; + return_label: return; +} + +static void find_min_delay_sample(SST_Stats inst) +{ + int i; + int index_0; + inst->min_delay_sample = get_runsbuf_index(inst,- inst->runs_samples); + i = - inst->runs_samples + 1; + while (i < inst->n_samples) { + index_0 = get_runsbuf_index(inst,i); + if (inst->peer_delays[index_0] < inst->peer_delays[inst->min_delay_sample]) + inst->min_delay_sample = index_0; + i ++; + } + return; +} + +static int estimate_asymmetry(double *times_back, double *offsets, + double *delays, int n, double *asymmetry, + int *asymmetry_run) +{ + int __retres; + double a; + int tmp; + int tmp_0; + double tmp_1; + tmp = RGR_MultipleRegress(times_back,delays,offsets,n,& a); + if (tmp) { + if (a * (double)*asymmetry_run < 0.0) { + _LOR: + { + *asymmetry = (double)0; + *asymmetry_run = (int)0.0; + __retres = 0; + goto return_label; + } + } + } + else goto _LOR; + if (a <= - 0.45) { + if (*asymmetry_run > -1000) (*asymmetry_run) --; else goto _LAND; + } + else { + _LAND: ; + if (a >= 0.45) + if (*asymmetry_run < 1000) (*asymmetry_run) ++; + } + tmp_0 = abs(*asymmetry_run); + if (tmp_0 < 10) { + __retres = 0; + goto return_label; + } + if (a < 0.5) tmp_1 = a; else tmp_1 = 0.5; + if (- 0.5 > tmp_1) *asymmetry = - 0.5; + else { + double tmp_2; + if (a < 0.5) tmp_2 = a; else tmp_2 = 0.5; + *asymmetry = tmp_2; + } + __retres = 1; + return_label: return __retres; +} + +static void correct_asymmetry(SST_Stats inst, double *times_back, + double *offsets) +{ + double min_delay; + double delays[64 * 2]; + int i; + int n; + double tmp_1; + if (inst->fixed_asymmetry == 0.0) goto return_label; + min_delay = SST_MinRoundTripDelay(inst); + n = inst->runs_samples + inst->n_samples; + i = 0; + while (i < n) { + int tmp; + tmp = get_runsbuf_index(inst,i - inst->runs_samples); + delays[i] = inst->peer_delays[tmp] - min_delay; + i ++; + } + tmp_1 = fabs(inst->fixed_asymmetry); + if (tmp_1 <= 0.5) inst->asymmetry = inst->fixed_asymmetry; + else { + int tmp_0; + tmp_0 = estimate_asymmetry(times_back,offsets,delays,n,& inst->asymmetry, + & inst->asymmetry_run); + if (! tmp_0) goto return_label; + } + i = 0; + while (i < n) { + *(offsets + i) -= inst->asymmetry * delays[i]; + i ++; + } + return_label: return; +} + +void SST_DoNewRegression(SST_Stats inst) +{ + double times_back[64 * 2]; + double offsets[64 * 2]; + double peer_distances[64]; + double weights[64]; + int degrees_of_freedom; + int best_start; + int times_back_start; + double est_intercept; + double est_slope; + double est_var; + double est_intercept_sd; + double est_slope_sd; + int i; + int j; + int nruns; + double min_distance; + double median_distance; + double sd_weight; + double sd; + double old_skew; + double old_freq; + double stress; + double precision; + convert_to_intervals(inst,& times_back[inst->runs_samples]); + if (inst->n_samples > 0) { + double tmp_1; + i = - inst->runs_samples; + while (i < inst->n_samples) { + { + int tmp; + tmp = get_runsbuf_index(inst,i); + offsets[i + inst->runs_samples] = inst->offsets[tmp]; + } + i ++; + } + i = 0; + min_distance = 0x1.fffffffffffffp+1023; + while (i < inst->n_samples) { + { + int tmp_0; + j = get_buf_index(inst,i); + tmp_0 = get_runsbuf_index(inst,i); + peer_distances[i] = 0.5 * inst->peer_delays[tmp_0] + inst->peer_dispersions[j]; + if (peer_distances[i] < min_distance) min_distance = peer_distances[i]; + } + i ++; + } + precision = LCL_GetSysPrecisionAsQuantum(); + median_distance = RGR_FindMedian(peer_distances,inst->n_samples); + sd = (median_distance - min_distance) / 0.7; + if (sd < min_distance) tmp_1 = sd; else tmp_1 = min_distance; + ; + if (precision > tmp_1) sd = precision; + else { + double tmp_2; + if (sd < min_distance) tmp_2 = sd; else tmp_2 = min_distance; + sd = tmp_2; + } + min_distance += precision; + i = 0; + while (i < inst->n_samples) { + sd_weight = 1.0; + if (peer_distances[i] > min_distance) sd_weight += (peer_distances[i] - min_distance) / sd; + weights[i] = sd_weight * sd_weight; + i ++; + } + } + correct_asymmetry(inst,times_back,offsets); + inst->regression_ok = RGR_FindBestRegression(& times_back[inst->runs_samples], + & offsets[inst->runs_samples], + weights,inst->n_samples, + inst->runs_samples, + inst->min_samples, + & est_intercept,& est_slope, + & est_var,& est_intercept_sd, + & est_slope_sd,& best_start, + & nruns,& degrees_of_freedom); + if (inst->regression_ok) { + double tmp_3; + double tmp_5; + double tmp_6; + double tmp_8; + double tmp_10; + old_skew = inst->skew; + old_freq = inst->estimated_frequency; + inst->estimated_frequency = est_slope; + if (est_slope_sd < 1.0e+02) tmp_3 = est_slope_sd; else tmp_3 = 1.0e+02; + if (1.0e-12 > tmp_3) inst->estimated_frequency_sd = 1.0e-12; + else { + double tmp_4; + if (est_slope_sd < 1.0e+02) tmp_4 = est_slope_sd; else tmp_4 = 1.0e+02; + inst->estimated_frequency_sd = tmp_4; + } + tmp_5 = RGR_GetTCoef(degrees_of_freedom); + inst->skew = est_slope_sd * tmp_5; + inst->estimated_offset = est_intercept; + inst->offset_time = inst->sample_times[inst->last_sample]; + inst->estimated_offset_sd = est_intercept_sd; + tmp_6 = sqrt(est_var); + if (1.0e-9 > tmp_6) inst->std_dev = 1.0e-9; + else inst->std_dev = sqrt(est_var); + inst->nruns = nruns; + if (inst->skew < 1.0e+02) tmp_8 = inst->skew; else tmp_8 = 1.0e+02; + if (1.0e-12 > tmp_8) inst->skew = 1.0e-12; + else { + double tmp_9; + if (inst->skew < 1.0e+02) tmp_9 = inst->skew; else tmp_9 = 1.0e+02; + inst->skew = tmp_9; + } + tmp_10 = fabs(old_freq - inst->estimated_frequency); + stress = tmp_10 / old_skew; + if (logfileid_0 != -1) { + char *tmp_13; + char *tmp_14; + ; + ; + ; + ; + ; + ; + ; + ; + ; + ; + if (inst->ip_addr) tmp_13 = UTI_IPToString(inst->ip_addr); + else tmp_13 = UTI_RefidToString(inst->refid); + tmp_14 = UTI_TimeToLogForm(inst->offset_time.tv_sec); + ; + { + char *__va_arg0 = tmp_14; + char *__va_arg1 = tmp_13; + double __va_arg2 = inst->std_dev; + double __va_arg3 = inst->estimated_offset; + double __va_arg4 = inst->estimated_offset_sd; + double __va_arg5 = inst->estimated_frequency; + double __va_arg6 = inst->skew; + double __va_arg7 = stress; + int __va_arg8 = inst->n_samples; + int __va_arg9 = best_start; + int __va_arg10 = inst->nruns; + double __va_arg11 = inst->asymmetry; + void *__va_args[12] = + {& __va_arg0, + & __va_arg1, + & __va_arg2, + & __va_arg3, + & __va_arg4, + & __va_arg5, + & __va_arg6, + & __va_arg7, + & __va_arg8, + & __va_arg9, + & __va_arg10, + & __va_arg11}; + LOG_FileWrite(logfileid_0, + "%s %-15s %10.3e %10.3e %10.3e %10.3e %10.3e %7.1e %3d %3d %3d %5.2f", + (void * const *)(__va_args)); + } + } + times_back_start = inst->runs_samples + best_start; + prune_register(inst,best_start); + } + else { + inst->estimated_frequency = 0.0; + inst->estimated_frequency_sd = 2000.0 / 1.0e6; + inst->skew = 2000.0 / 1.0e6; + times_back_start = 0; + } + find_best_sample_index(inst,& times_back[times_back_start]); + return; +} + +void SST_GetFrequencyRange(SST_Stats inst, double *lo, double *hi) +{ + double freq; + double skew; + freq = inst->estimated_frequency; + skew = inst->skew; + *lo = freq - skew; + *hi = freq + skew; + if (skew > 2000.0 / 1.0e6) { + *lo = - (2000.0 / 1.0e6); + *hi = 2000.0 / 1.0e6; + } + return; +} + +void SST_GetSelectionData(SST_Stats inst, struct timespec *now, int *stratum, + NTP_Leap *leap, double *offset_lo_limit, + double *offset_hi_limit, double *root_distance, + double *std_dev, double *first_sample_ago, + double *last_sample_ago, int *select_ok) +{ + double offset; + double sample_elapsed; + int i; + int j; + double tmp; + if (! inst->n_samples) { + *select_ok = 0; + goto return_label; + } + i = get_runsbuf_index(inst,inst->best_single_sample); + j = get_buf_index(inst,inst->best_single_sample); + *stratum = inst->stratum; + *leap = inst->leap; + *std_dev = inst->std_dev; + tmp = UTI_DiffTimespecsToDouble(now,& inst->sample_times[i]); + sample_elapsed = fabs(tmp); + offset = inst->offsets[i] + sample_elapsed * inst->estimated_frequency; + *root_distance = (0.5 * inst->root_delays[j] + inst->root_dispersions[j]) + + sample_elapsed * inst->skew; + *offset_lo_limit = offset - *root_distance; + *offset_hi_limit = offset + *root_distance; + i = get_runsbuf_index(inst,0); + *first_sample_ago = UTI_DiffTimespecsToDouble(now,& inst->sample_times[i]); + i = get_runsbuf_index(inst,inst->n_samples - 1); + *last_sample_ago = UTI_DiffTimespecsToDouble(now,& inst->sample_times[i]); + *select_ok = inst->regression_ok; + return_label: return; +} + +void SST_GetTrackingData(SST_Stats inst, struct timespec *ref_time, + double *average_offset, double *offset_sd, + double *frequency, double *frequency_sd, + double *skew, double *root_delay, + double *root_dispersion) +{ + int i; + int j; + double elapsed_sample; + __FC_assert((inst->n_samples > 0) != 0,"sourcestats.c",713, + "inst->n_samples > 0"); + i = get_runsbuf_index(inst,inst->best_single_sample); + j = get_buf_index(inst,inst->best_single_sample); + *ref_time = inst->offset_time; + *average_offset = inst->estimated_offset; + *offset_sd = inst->estimated_offset_sd; + *frequency = inst->estimated_frequency; + *frequency_sd = inst->estimated_frequency_sd; + *skew = inst->skew; + *root_delay = inst->root_delays[j]; + elapsed_sample = UTI_DiffTimespecsToDouble(& inst->offset_time, + & inst->sample_times[i]); + *root_dispersion = (inst->root_dispersions[j] + inst->skew * elapsed_sample) + *offset_sd; + return; +} + +void SST_SlewSamples(SST_Stats inst, struct timespec *when, double dfreq, + double doffset) +{ + int m; + int i; + double delta_time; + struct timespec *sample; + struct timespec prev; + double prev_offset; + double prev_freq; + if (! inst->n_samples) goto return_label; + m = - inst->runs_samples; + while (m < inst->n_samples) { + i = get_runsbuf_index(inst,m); + sample = & inst->sample_times[i]; + prev = *sample; + UTI_AdjustTimespec(sample,when,sample,& delta_time,dfreq,doffset); + inst->offsets[i] += delta_time; + m ++; + } + prev = inst->offset_time; + prev_offset = inst->estimated_offset; + prev_freq = inst->estimated_frequency; + UTI_AdjustTimespec(& inst->offset_time,when,& inst->offset_time, + & delta_time,dfreq,doffset); + inst->estimated_offset += delta_time; + inst->estimated_frequency = (inst->estimated_frequency - dfreq) / ( + 1.0 - dfreq); + return_label: return; +} + +void SST_AddDispersion(SST_Stats inst, double dispersion) +{ + int m; + int i; + m = 0; + while (m < inst->n_samples) { + i = get_buf_index(inst,m); + inst->root_dispersions[i] += dispersion; + inst->peer_dispersions[i] += dispersion; + m ++; + } + return; +} + +double SST_PredictOffset(SST_Stats inst, struct timespec *when) +{ + double __retres; + double elapsed; + if (inst->n_samples < 3) + if (inst->n_samples > 0) { + __retres = inst->offsets[inst->last_sample]; + goto return_label; + } + else { + __retres = 0.0; + goto return_label; + } + else { + elapsed = UTI_DiffTimespecsToDouble(when,& inst->offset_time); + __retres = inst->estimated_offset + elapsed * inst->estimated_frequency; + goto return_label; + } + return_label: return __retres; +} + +double SST_MinRoundTripDelay(SST_Stats inst) +{ + double __retres; + if (inst->fixed_min_delay > 0.0) { + __retres = inst->fixed_min_delay; + goto return_label; + } + if (! inst->n_samples) { + __retres = 0x1.fffffffffffffp+1023; + goto return_label; + } + __retres = inst->peer_delays[inst->min_delay_sample]; + return_label: return __retres; +} + +int SST_GetDelayTestData(SST_Stats inst, struct timespec *sample_time, + double *last_sample_ago, double *predicted_offset, + double *min_delay, double *skew, double *std_dev) +{ + int __retres; + if (inst->n_samples < 6) { + __retres = 0; + goto return_label; + } + *last_sample_ago = UTI_DiffTimespecsToDouble(sample_time, + & inst->offset_time); + *predicted_offset = inst->estimated_offset + *last_sample_ago * inst->estimated_frequency; + *min_delay = SST_MinRoundTripDelay(inst); + *skew = inst->skew; + *std_dev = inst->std_dev; + __retres = 1; + return_label: return __retres; +} + +/*@ requires valid_read_string(format); + assigns \result, stream->__fc_FILE_data; + assigns \result + \from (indirect: stream->__fc_FILE_id), + (indirect: stream->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); + assigns stream->__fc_FILE_data + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))), param0; + */ +int fprintf_va_6(FILE * __restrict stream, char const * __restrict format, + int param0); + +/*@ requires valid_read_string(format); + assigns \result, stream->__fc_FILE_data; + assigns \result + \from (indirect: stream->__fc_FILE_id), + (indirect: stream->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param9), + (indirect: param8), (indirect: param7), (indirect: param6), + (indirect: param5), (indirect: param4), (indirect: param3), + (indirect: param2), (indirect: param1), (indirect: param0); + assigns stream->__fc_FILE_data + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))), param9, param8, param7, param6, + param5, param4, param3, param2, param1, param0; + */ +int fprintf_va_7(FILE * __restrict stream, char const * __restrict format, + unsigned long param0, unsigned long param1, double param2, + double param3, double param4, double param5, double param6, + double param7, double param8, int param9); + +/*@ requires valid_read_string(format); + assigns \result, stream->__fc_FILE_data; + assigns \result + \from (indirect: stream->__fc_FILE_id), + (indirect: stream->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); + assigns stream->__fc_FILE_data + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))), param0; + */ +int fprintf_va_8(FILE * __restrict stream, char const * __restrict format, + int param0); + +void SST_SaveToFile(SST_Stats inst, FILE *out) +{ + int m; + int i; + int j; + fprintf_va_6(out,"%d\n",inst->n_samples); + m = 0; + while (m < inst->n_samples) { + i = get_runsbuf_index(inst,m); + j = get_buf_index(inst,m); + fprintf_va_7(out,"%08lx %08lx %.6e %.6e %.6e %.6e %.6e %.6e %.6e %d\n", + (unsigned long)inst->sample_times[i].tv_sec, + (unsigned long)inst->sample_times[i].tv_nsec / (unsigned long)1000, + inst->offsets[i],inst->orig_offsets[j],inst->peer_delays[i], + inst->peer_dispersions[j],inst->root_delays[j], + inst->root_dispersions[j],1.0,inst->stratum); + m ++; + } + fprintf_va_8(out,"%d\n",inst->asymmetry_run); + return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_60(char const * __restrict s, char const * __restrict format, + int *param0); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param9); + requires \valid(param8); + requires \valid(param7); + requires \valid(param6); + requires \valid(param5); + requires \valid(param4); + requires \valid(param3); + requires \valid(param2); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param9); + ensures \initialized(param8); + ensures \initialized(param7); + ensures \initialized(param6); + ensures \initialized(param5); + ensures \initialized(param4); + ensures \initialized(param3); + ensures \initialized(param2); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param9, *param8, *param7, *param6, *param5, *param4, + *param3, *param2, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param9 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param8 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param7 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param6 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param5 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param4 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param3 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param2 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_61(char const * __restrict s, char const * __restrict format, + unsigned long *param0, unsigned long *param1, + double *param2, double *param3, double *param4, + double *param5, double *param6, double *param7, + double *param8, int *param9); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_62(char const * __restrict s, char const * __restrict format, + int *param0); + +int SST_LoadFromFile(SST_Stats inst, FILE *in) +{ + int __retres; + uint64_t sec; + unsigned long usec; + int i; + char line[1024]; + double weight; + char *tmp_3; + SST_ResetInstance(inst); + tmp_3 = fgets(line,(int)sizeof(line),in); + if (tmp_3) { + int tmp_4; + tmp_4 = sscanf_va_60((char const *)(line),"%d",& inst->n_samples); + if (tmp_4 == 1) { + if (inst->n_samples >= 0) { + if (inst->n_samples <= 64) { + char *tmp_1; + i = 0; + while (i < inst->n_samples) { + { + char *tmp; + tmp = fgets(line,(int)sizeof(line),in); + if (tmp) { + int tmp_0; + tmp_0 = sscanf_va_61((char const *)(line), + "%lx%lx%lf%lf%lf%lf%lf%lf%lf%d\n", + (unsigned long *)(& sec),& usec, + & inst->offsets[i], + & inst->orig_offsets[i], + & inst->peer_delays[i], + & inst->peer_dispersions[i], + & inst->root_delays[i], + & inst->root_dispersions[i],& weight, + & inst->stratum); + if (tmp_0 != 10) { + _LOR: + { + inst->n_samples = 0; + __retres = 0; + goto return_label; + } + } + else { + inst->sample_times[i].tv_sec = (long)sec; + inst->sample_times[i].tv_nsec = (long)((unsigned long)1000 * usec); + UTI_NormaliseTimespec(& inst->sample_times[i]); + } + } + else goto _LOR; + } + i ++; + } + tmp_1 = fgets(line,(int)sizeof(line),in); + if (tmp_1) { + int tmp_2; + tmp_2 = sscanf_va_62((char const *)(line),"%d\n", + & inst->asymmetry_run); + if (tmp_2 != 1) inst->asymmetry_run = 0; + } + else inst->asymmetry_run = 0; + } + else goto _LAND_1; + } + else goto _LAND_1; + } + else goto _LAND_1; + } + else { + _LAND_1: { + inst->n_samples = 0; + __retres = 0; + goto return_label; + } + } + if (! inst->n_samples) { + __retres = 1; + goto return_label; + } + inst->last_sample = inst->n_samples - 1; + find_min_delay_sample(inst); + SST_DoNewRegression(inst); + __retres = 1; + return_label: return __retres; +} + +void SST_DoSourceReport(SST_Stats inst, RPT_SourceReport *report, + struct timespec *now) +{ + int i; + int j; + struct timespec last_sample_time; + if (inst->n_samples > 0) { + double tmp; + i = get_runsbuf_index(inst,inst->n_samples - 1); + j = get_buf_index(inst,inst->n_samples - 1); + report->orig_latest_meas = inst->orig_offsets[j]; + report->latest_meas = inst->offsets[i]; + report->latest_meas_err = 0.5 * inst->root_delays[j] + inst->root_dispersions[j]; + report->stratum = inst->stratum; + last_sample_time = inst->sample_times[i]; + last_sample_time.tv_nsec = (long)0; + tmp = UTI_DiffTimespecsToDouble(now,& last_sample_time); + report->latest_meas_ago = (unsigned long)tmp; + } + else { + report->latest_meas_ago = (unsigned long)((unsigned int)(-1)); + report->orig_latest_meas = (double)0; + report->latest_meas = (double)0; + report->latest_meas_err = (double)0; + report->stratum = 0; + } + return; +} + +int SST_Samples(SST_Stats inst) +{ + int __retres; + __retres = inst->n_samples; + return __retres; +} + +void SST_DoSourcestatsReport(SST_Stats inst, RPT_SourcestatsReport *report, + struct timespec *now) +{ + double dspan; + double elapsed; + double sample_elapsed; + int li; + int lj; + int bi; + int bj; + report->n_samples = (unsigned long)inst->n_samples; + report->n_runs = (unsigned long)inst->nruns; + if (inst->n_samples > 1) { + int tmp; + li = get_runsbuf_index(inst,inst->n_samples - 1); + lj = get_buf_index(inst,inst->n_samples - 1); + tmp = get_runsbuf_index(inst,0); + ; + ; + dspan = UTI_DiffTimespecsToDouble(& inst->sample_times[li], + & inst->sample_times[tmp]); + report->span_seconds = (unsigned long)(dspan + 0.5); + if (inst->n_samples > 3) { + elapsed = UTI_DiffTimespecsToDouble(now,& inst->offset_time); + bi = get_runsbuf_index(inst,inst->best_single_sample); + bj = get_buf_index(inst,inst->best_single_sample); + sample_elapsed = UTI_DiffTimespecsToDouble(now, + & inst->sample_times[bi]); + report->est_offset = inst->estimated_offset + elapsed * inst->estimated_frequency; + report->est_offset_err = (inst->estimated_offset_sd + sample_elapsed * inst->skew) + ( + 0.5 * inst->root_delays[bj] + inst->root_dispersions[bj]); + } + else { + report->est_offset = inst->offsets[li]; + report->est_offset_err = 0.5 * inst->root_delays[lj] + inst->root_dispersions[lj]; + } + } + else { + report->span_seconds = (unsigned long)0; + report->est_offset = (double)0; + report->est_offset_err = (double)0; + } + report->resid_freq_ppm = 1.0e6 * inst->estimated_frequency; + report->skew_ppm = 1.0e6 * inst->skew; + report->sd = inst->std_dev; + return; +} + +double SST_GetJitterAsymmetry(SST_Stats inst) +{ + double __retres; + __retres = inst->asymmetry; + return __retres; +} + +void UTI_ZeroTimespec(struct timespec *ts) +{ + ts->tv_sec = (long)0; + ts->tv_nsec = (long)0; + return; +} + +int UTI_IsZeroTimespec(struct timespec *ts) +{ + int tmp; + if (! ts->tv_sec) + if (! ts->tv_nsec) tmp = 1; else tmp = 0; + else tmp = 0; + return tmp; +} + +void UTI_TimevalToTimespec(struct timeval *tv, struct timespec *ts) +{ + ts->tv_sec = tv->tv_sec; + ts->tv_nsec = (long)(1000 * tv->tv_usec); + return; +} + +void UTI_TimespecToTimeval(struct timespec *ts, struct timeval *tv) +{ + tv->tv_sec = ts->tv_sec; + tv->tv_usec = (int)(ts->tv_nsec / (long)1000); + return; +} + +double UTI_TimespecToDouble(struct timespec *ts) +{ + double __retres; + __retres = (double)ts->tv_sec + 1.0e-9 * (double)ts->tv_nsec; + return __retres; +} + +void UTI_DoubleToTimespec(double d, struct timespec *ts) +{ + ts->tv_sec = (long)d; + ts->tv_nsec = (long)(1.0e9 * (d - (double)ts->tv_sec)); + UTI_NormaliseTimespec(ts); + return; +} + +void UTI_NormaliseTimespec(struct timespec *ts) +{ + if (ts->tv_nsec >= (long)1000000000) goto _LOR; + else + if (ts->tv_nsec < (long)0) { + _LOR: + { + ts->tv_sec += ts->tv_nsec / (long)1000000000; + ts->tv_nsec %= (long)1000000000; + if (ts->tv_nsec < (long)0) { + (ts->tv_sec) --; + ts->tv_nsec += (long)1000000000; + } + } + } + return; +} + +double UTI_TimevalToDouble(struct timeval *tv) +{ + double __retres; + __retres = (double)tv->tv_sec + 1.0e-6 * (double)tv->tv_usec; + return __retres; +} + +void UTI_DoubleToTimeval(double a, struct timeval *b) +{ + double frac_part; + b->tv_sec = (long)a; + frac_part = 1.0e6 * (a - (double)b->tv_sec); + if (frac_part > (double)0) b->tv_usec = (int)(frac_part + 0.5); + else b->tv_usec = (int)(frac_part - 0.5); + UTI_NormaliseTimeval(b); + return; +} + +void UTI_NormaliseTimeval(struct timeval *x) +{ + if (x->tv_usec >= 1000000) goto _LOR; + else + if (x->tv_usec <= -1000000) { + _LOR: + { + x->tv_sec += (time_t)(x->tv_usec / 1000000); + x->tv_usec %= 1000000; + } + } + if (x->tv_usec < 0) { + x->tv_sec -= (time_t)1; + x->tv_usec += 1000000; + } + return; +} + +int UTI_CompareTimespecs(struct timespec *a, struct timespec *b) +{ + int __retres; + if (a->tv_sec < b->tv_sec) { + __retres = -1; + goto return_label; + } + if (a->tv_sec > b->tv_sec) { + __retres = 1; + goto return_label; + } + if (a->tv_nsec < b->tv_nsec) { + __retres = -1; + goto return_label; + } + if (a->tv_nsec > b->tv_nsec) { + __retres = 1; + goto return_label; + } + __retres = 0; + return_label: return __retres; +} + +void UTI_DiffTimespecs(struct timespec *result, struct timespec *a, + struct timespec *b) +{ + result->tv_sec = a->tv_sec - b->tv_sec; + result->tv_nsec = a->tv_nsec - b->tv_nsec; + UTI_NormaliseTimespec(result); + return; +} + +double UTI_DiffTimespecsToDouble(struct timespec *a, struct timespec *b) +{ + double __retres; + __retres = ((double)a->tv_sec - (double)b->tv_sec) + 1.0e-9 * (double)( + a->tv_nsec - b->tv_nsec); + return __retres; +} + +void UTI_AddDoubleToTimespec(struct timespec *start, double increment, + struct timespec *end) +{ + time_t int_part; + int_part = (long)increment; + end->tv_sec = start->tv_sec + int_part; + end->tv_nsec = (long)((double)start->tv_nsec + 1.0e9 * (increment - (double)int_part)); + UTI_NormaliseTimespec(end); + return; +} + +void UTI_AverageDiffTimespecs(struct timespec *earlier, + struct timespec *later, + struct timespec *average, double *diff) +{ + *diff = UTI_DiffTimespecsToDouble(later,earlier); + UTI_AddDoubleToTimespec(earlier,*diff / 2.0,average); + return; +} + +void UTI_AddDiffToTimespec(struct timespec *a, struct timespec *b, + struct timespec *c, struct timespec *result) +{ + double diff; + diff = UTI_DiffTimespecsToDouble(a,b); + UTI_AddDoubleToTimespec(c,diff,result); + return; +} + +static char buffer_pool[16][64]; +static int pool_ptr = 0; +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: param1), (indirect: param0); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), param1, param0; + */ +int snprintf_va_7(char * __restrict s, size_t n, + char const * __restrict format, long param0, + unsigned long param1); + +char *UTI_TimespecToString(struct timespec *ts) +{ + char *result; + pool_ptr = (pool_ptr + 1) % 16; + result = buffer_pool[pool_ptr]; + snprintf_va_7(result,(unsigned long)64,"%ld.%09lu",ts->tv_sec, + (unsigned long)ts->tv_nsec); + return result; +} + +char *UTI_Ntp64ToString(NTP_int64 *ntp_ts) +{ + struct timespec ts; + char *tmp; + UTI_Ntp64ToTimespec(ntp_ts,& ts); + tmp = UTI_TimespecToString(& ts); + return tmp; +} + +char *UTI_RefidToString(uint32_t ref_id) +{ + unsigned int i; + unsigned int j; + unsigned int c; + char *result; + pool_ptr = (pool_ptr + 1) % 16; + result = buffer_pool[pool_ptr]; + j = (unsigned int)0; + i = j; + while (1) { + if (i < (unsigned int)4) { + if (! (i < (unsigned int)(64 - 1))) break; + } + else break; + { + int tmp_0; + c = (ref_id >> ((unsigned int)24 - i * (unsigned int)8)) & (unsigned int)0xff; + tmp_0 = isprint((int)c); + if (tmp_0) { + unsigned int tmp; + tmp = j; + j ++; + *(result + tmp) = (char)c; + } + } + i ++; + } + *(result + j) = (char)'\000'; + return result; +} + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + assigns \result, *(s + (0 ..)); + assigns \result \from (indirect: n), (indirect: *(format + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))); + */ +int snprintf_va_8(char * __restrict s, size_t n, + char const * __restrict format); + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: param3), (indirect: param2), (indirect: param1), + (indirect: param0); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), param3, param2, + param1, param0; + */ +int snprintf_va_9(char * __restrict s, size_t n, + char const * __restrict format, unsigned long param0, + unsigned long param1, unsigned long param2, + unsigned long param3); + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), (indirect: param0); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), param0; + */ +int snprintf_va_10(char * __restrict s, size_t n, + char const * __restrict format, unsigned int param0); + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + assigns \result, *(s + (0 ..)); + assigns \result \from (indirect: n), (indirect: *(format + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))); + */ +int snprintf_va_11(char * __restrict s, size_t n, + char const * __restrict format); + +char *UTI_IPToString(IPAddr *addr) +{ + unsigned long a; + unsigned long b; + unsigned long c; + unsigned long d; + unsigned long ip; + uint8_t *ip6; + char *result; + pool_ptr = (pool_ptr + 1) % 16; + result = buffer_pool[pool_ptr]; + switch ((int)addr->family) { + case 0: snprintf_va_8(result,(unsigned long)64,"[UNSPEC]"); + break; + case 1: ip = (unsigned long)addr->addr.in4; + a = (ip >> 24) & (unsigned long)0xff; + b = (ip >> 16) & (unsigned long)0xff; + c = (ip >> 8) & (unsigned long)0xff; + d = (ip >> 0) & (unsigned long)0xff; + snprintf_va_9(result,(unsigned long)64,"%lu.%lu.%lu.%lu",a,b,c,d); + break; + case 2: ip6 = addr->addr.in6; + __FC_assert((64 >= 40) != 0,"util.c",308,"BUFFER_LENGTH >= 40"); + a = (unsigned long)0; + while (a < (unsigned long)8) { + snprintf_va_10(result + a * (unsigned long)5, + (unsigned long)40 - a * (unsigned long)5,"%04x:", + (unsigned int)(((int)*(ip6 + (unsigned long)2 * a) << 8) | (int)*( + ip6 + ((unsigned long)2 * a + (unsigned long)1)))); + a ++; + } + break; + default: snprintf_va_11(result,(unsigned long)64,"[UNKNOWN]"); + } + return result; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param3); + requires \valid(param2); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param3); + ensures \initialized(param2); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param3, *param2, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param3 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param2 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_63(char const * __restrict s, char const * __restrict format, + unsigned long *param0, unsigned long *param1, + unsigned long *param2, unsigned long *param3); + +int UTI_StringToIP(char const *addr, IPAddr *ip) +{ + int __retres; + unsigned long a; + unsigned long b; + unsigned long c; + unsigned long d; + unsigned long n; + int tmp; + tmp = sscanf_va_63(addr,"%lu.%lu.%lu.%lu",& a,& b,& c,& d); + n = (unsigned long)tmp; + if (n == (unsigned long)4) { + ip->family = (unsigned short)1; + ip->_pad = (unsigned short)0; + ip->addr.in4 = (unsigned int)(((((a & (unsigned long)0xff) << 24) | ( + (b & (unsigned long)0xff) << 16)) | ( + (c & (unsigned long)0xff) << 8)) | ( + d & (unsigned long)0xff)); + __retres = 1; + goto return_label; + } + __retres = 0; + return_label: return __retres; +} + +static int UTI_IPToRefid_MD5_hash = -1; +uint32_t UTI_IPToRefid(IPAddr *ip) +{ + uint32_t __retres; + unsigned char buf[16]; + switch ((int)ip->family) { + case 1: ; + __retres = ip->addr.in4; + goto return_label; + case 2: ; + if (UTI_IPToRefid_MD5_hash < 0) UTI_IPToRefid_MD5_hash = HSH_GetHashId + ("MD5"); + if (UTI_IPToRefid_MD5_hash < 0) goto _LOR; + else { + unsigned int tmp; + tmp = HSH_Hash(UTI_IPToRefid_MD5_hash, + (unsigned char const *)(ip->addr.in6), + (unsigned int)sizeof(ip->addr.in6), + (unsigned char const *)0,(unsigned int)0,buf, + (unsigned int)sizeof(buf)); + if ((unsigned long)tmp != sizeof(buf)) { + _LOR: + { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"Could not get MD5", + (void * const *)(__va_args)); + } + exit(1); + } + } + } + __retres = ((((unsigned int)buf[0] << 24) | (unsigned int)((int)buf[1] << 16)) | (unsigned int)( + (int)buf[2] << 8)) | (unsigned int)buf[3]; + goto return_label; + } + __retres = (unsigned int)0; + return_label: return __retres; +} + +static uint32_t UTI_IPToHash_seed = (unsigned int)0; +uint32_t UTI_IPToHash(IPAddr *ip) +{ + uint32_t __retres; + unsigned char *addr; + unsigned int i; + unsigned int len; + uint32_t hash; + switch ((int)ip->family) { + case 1: addr = (unsigned char *)(& ip->addr.in4); + len = (unsigned int)sizeof(ip->addr.in4); + break; + case 2: addr = (unsigned char *)(ip->addr.in6); + len = (unsigned int)sizeof(ip->addr.in6); + break; + default: __retres = (unsigned int)0; + goto return_label; + } + while (! UTI_IPToHash_seed) UTI_GetRandomBytes((void *)(& UTI_IPToHash_seed), + (unsigned int)sizeof(UTI_IPToHash_seed)); + i = (unsigned int)0; + hash = UTI_IPToHash_seed; + while (i < len) { + hash = (uint32_t)71 * hash + (uint32_t)*(addr + i); + i ++; + } + __retres = hash + UTI_IPToHash_seed; + return_label: return __retres; +} + +void UTI_IPHostToNetwork(IPAddr *src, IPAddr *dest) +{ + memset((void *)dest,0,sizeof(IPAddr)); + dest->family = htons(src->family); + switch ((int)src->family) { + case 1: dest->addr.in4 = htonl(src->addr.in4); + break; + case 2: + memcpy((void *)(dest->addr.in6),(void const *)(src->addr.in6), + sizeof(dest->addr.in6)); + break; + default: dest->family = htons((unsigned short)0); + } + return; +} + +void UTI_IPNetworkToHost(IPAddr *src, IPAddr *dest) +{ + dest->family = ntohs(src->family); + dest->_pad = (unsigned short)0; + switch ((int)dest->family) { + case 1: dest->addr.in4 = ntohl(src->addr.in4); + break; + case 2: + memcpy((void *)(dest->addr.in6),(void const *)(src->addr.in6), + sizeof(dest->addr.in6)); + break; + default: dest->family = (unsigned short)0; + } + return; +} + +int UTI_CompareIPs(IPAddr *a, IPAddr *b, IPAddr *mask) +{ + int __retres; + int i; + int d; + if ((int)a->family != (int)b->family) { + __retres = (int)a->family - (int)b->family; + goto return_label; + } + if (mask) + if ((int)mask->family != (int)b->family) mask = (IPAddr *)0; + switch ((int)a->family) { + case 0: __retres = 0; + goto return_label; + case 1: ; + if (mask) { + __retres = (int)((a->addr.in4 & mask->addr.in4) - (b->addr.in4 & mask->addr.in4)); + goto return_label; + } + else { + __retres = (int)(a->addr.in4 - b->addr.in4); + goto return_label; + } + case 2: i = 0; + d = 0; + while (1) { + if (! d) { + if (! (i < 16)) break; + } + else break; + if (mask) d = ((int)a->addr.in6[i] & (int)mask->addr.in6[i]) - ( + (int)b->addr.in6[i] & (int)mask->addr.in6[i]); + else d = (int)a->addr.in6[i] - (int)b->addr.in6[i]; + i ++; + } + __retres = d; + goto return_label; + } + __retres = 0; + return_label: return __retres; +} + +void UTI_SockaddrToIPAndPort(struct sockaddr *sa, IPAddr *ip, + unsigned short *port) +{ + switch ((int)sa->sa_family) { + case 2: ip->family = (unsigned short)1; + ip->addr.in4 = ntohl(((struct sockaddr_in *)sa)->sin_addr.s_addr); + *port = ntohs(((struct sockaddr_in *)sa)->sin_port); + break; + default: ip->family = (unsigned short)0; + *port = (unsigned short)0; + } + return; +} + +int UTI_IPAndPortToSockaddr(IPAddr *ip, unsigned short port, + struct sockaddr *sa) +{ + int __retres; + switch ((int)ip->family) { + case 1: memset((void *)sa,0,sizeof(struct sockaddr_in)); + sa->sa_family = (unsigned short)2; + ((struct sockaddr_in *)sa)->sin_addr.s_addr = htonl(ip->addr.in4); + ((struct sockaddr_in *)sa)->sin_port = htons(port); + __retres = (int)sizeof(struct sockaddr_in); + goto return_label; + default: memset((void *)sa,0,sizeof(struct sockaddr)); + sa->sa_family = (unsigned short)0; + __retres = 0; + goto return_label; + } + return_label: return __retres; +} + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + requires valid_read_string(param0); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: param1), (indirect: *(param0 + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), param1, + *(param0 + (0 ..)); + */ +int snprintf_va_12(char * __restrict s, size_t n, + char const * __restrict format, char *param0, int param1); + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + requires valid_read_nstring(param1, param0); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: *(param1 + (0 ..))), (indirect: param0); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), + *(param1 + (0 ..)), param0; + */ +int snprintf_va_13(char * __restrict s, size_t n, + char const * __restrict format, int param0, char *param1); + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + assigns \result, *(s + (0 ..)); + assigns \result \from (indirect: n), (indirect: *(format + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))); + */ +int snprintf_va_14(char * __restrict s, size_t n, + char const * __restrict format); + +char *UTI_SockaddrToString(struct sockaddr *sa) +{ + unsigned short port; + IPAddr ip; + char *result; + char *sun_path; + pool_ptr = (pool_ptr + 1) % 16; + result = buffer_pool[pool_ptr]; + switch ((int)sa->sa_family) { + char *tmp; + size_t tmp_0; + case 2: case 10: UTI_SockaddrToIPAndPort(sa,& ip,& port); + ; + tmp = UTI_IPToString(& ip); + ; + snprintf_va_12(result,(unsigned long)64,"%s:%hu",tmp,(int)port); + break; + case 1: sun_path = ((struct sockaddr_un *)sa)->sun_path; + snprintf_va_13(result,(unsigned long)64,"%.*s",64 - 1,sun_path); + tmp_0 = strlen((char const *)sun_path); + if (tmp_0 >= (size_t)64) *(result + (64 - 2)) = (char)'>'; + break; + default: snprintf_va_14(result,(unsigned long)64,"[UNKNOWN]"); + } + return result; +} + +char const *UTI_SockaddrFamilyToString(int family) +{ + char const *__retres; + switch (family) { + case 2: __retres = "IPv4"; + goto return_label; + case 10: __retres = "IPv6"; + goto return_label; + case 1: __retres = "Unix"; + goto return_label; + case 0: __retres = "UNSPEC"; + goto return_label; + default: __retres = "?"; + goto return_label; + } + return_label: return __retres; +} + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + assigns \result, *(s + (0 ..)); + assigns \result \from (indirect: n), (indirect: *(format + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))); + */ +int snprintf_va_15(char * __restrict s, size_t n, + char const * __restrict format); + +char *UTI_TimeToLogForm(time_t t) +{ + struct tm *stm; + char *result; + pool_ptr = (pool_ptr + 1) % 16; + result = buffer_pool[pool_ptr]; + stm = gmtime((time_t const *)(& t)); + if (stm) strftime(result,(unsigned long)64,"%Y-%m-%d %H:%M:%S", + (struct tm const *)stm); + else snprintf_va_15(result,(unsigned long)64,"INVALID INVALID "); + return result; +} + +void UTI_AdjustTimespec(struct timespec *old_ts, struct timespec *when, + struct timespec *new_ts, double *delta_time, + double dfreq, double doffset) +{ + double elapsed; + elapsed = UTI_DiffTimespecsToDouble(when,old_ts); + *delta_time = elapsed * dfreq - doffset; + UTI_AddDoubleToTimespec(old_ts,*delta_time,new_ts); + return; +} + +void UTI_GetNtp64Fuzz(NTP_int64 *ts, int precision) +{ + int start; + int bits; + int tmp; + uint32_t tmp_0; + if (precision >= -32) + if (precision <= 32) tmp = 1; else tmp = 0; + else tmp = 0; + __FC_assert(tmp != 0,"util.c",644,"precision >= -32 && precision <= 32"); + __FC_assert((sizeof(*ts) == (unsigned long)8) != 0,"util.c",645, + "sizeof (*ts) == 8"); + start = (int)(sizeof(*ts) - (unsigned long)(((precision + 32) + 7) / 8)); + tmp_0 = (unsigned int)0; + ts->lo = tmp_0; + ts->hi = tmp_0; + UTI_GetRandomBytes((void *)((unsigned char *)ts + start), + (unsigned int)(sizeof(*ts) - (unsigned long)start)); + bits = (precision + 32) % 8; + if (bits) *((unsigned char *)ts + start) = (unsigned char)((unsigned int)*( + (unsigned char *)ts + start) % ( + 1U << bits)); + return; +} + +double UTI_Ntp32ToDouble(NTP_int32 x) +{ + double __retres; + uint32_t tmp; + tmp = ntohl(x); + __retres = (double)tmp / 65536.0; + return __retres; +} + +NTP_int32 UTI_DoubleToNtp32(double x) +{ + NTP_int32 r; + NTP_int32 tmp; + if (x >= 4294967295.0 / 65536.0) r = 0xffffffff; + else + if (x <= 0.0) r = (unsigned int)0; + else { + x *= 65536.0; + r = (unsigned int)x; + if ((double)r < x) r += (NTP_int32)1; + } + tmp = htonl(r); + return tmp; +} + +void UTI_ZeroNtp64(NTP_int64 *ts) +{ + uint32_t tmp; + tmp = htonl((unsigned int)0); + ts->lo = tmp; + ts->hi = tmp; + return; +} + +int UTI_IsZeroNtp64(NTP_int64 *ts) +{ + int tmp; + if (! ts->hi) + if (! ts->lo) tmp = 1; else tmp = 0; + else tmp = 0; + return tmp; +} + +int UTI_CompareNtp64(NTP_int64 *a, NTP_int64 *b) +{ + int __retres; + int32_t diff; + uint32_t tmp; + uint32_t tmp_0; + int tmp_3; + uint32_t tmp_1; + uint32_t tmp_2; + if (a->hi == b->hi) + if (a->lo == b->lo) { + __retres = 0; + goto return_label; + } + tmp = ntohl(a->hi); + tmp_0 = ntohl(b->hi); + diff = (int)(tmp - tmp_0); + if (diff < 0) { + __retres = -1; + goto return_label; + } + if (diff > 0) { + __retres = 1; + goto return_label; + } + tmp_1 = ntohl(a->lo); + tmp_2 = ntohl(b->lo); + if (tmp_1 < tmp_2) tmp_3 = -1; else tmp_3 = 1; + __retres = tmp_3; + return_label: return __retres; +} + +int UTI_IsEqualAnyNtp64(NTP_int64 *a, NTP_int64 *b1, NTP_int64 *b2, + NTP_int64 *b3) +{ + int __retres; + if (b1) + if (a->lo == b1->lo) + if (a->hi == b1->hi) { + __retres = 1; + goto return_label; + } + if (b2) + if (a->lo == b2->lo) + if (a->hi == b2->hi) { + __retres = 1; + goto return_label; + } + if (b3) + if (a->lo == b3->lo) + if (a->hi == b3->hi) { + __retres = 1; + goto return_label; + } + __retres = 0; + return_label: return __retres; +} + +void UTI_TimespecToNtp64(struct timespec *src, NTP_int64 *dest, + NTP_int64 *fuzz) +{ + uint32_t hi; + uint32_t lo; + uint32_t sec; + uint32_t nsec; + sec = (unsigned int)src->tv_sec; + nsec = (unsigned int)src->tv_nsec; + if (! nsec) { + if (! sec) { + lo = (unsigned int)0; + hi = lo; + } + else goto _LAND; + } + else { + _LAND: + { + hi = htonl((unsigned int)((unsigned long)sec + 0x83aa7e80UL)); + lo = htonl((unsigned int)(4.294967296 * (double)nsec)); + if (fuzz) { + hi ^= fuzz->hi; + lo ^= fuzz->lo; + } + } + } + dest->hi = hi; + dest->lo = lo; + return; +} + +void UTI_Ntp64ToTimespec(NTP_int64 *src, struct timespec *dest) +{ + uint32_t ntp_sec; + uint32_t ntp_frac; + int tmp; + tmp = UTI_IsZeroNtp64(src); + if (tmp) { + UTI_ZeroTimespec(dest); + goto return_label; + } + ntp_sec = ntohl(src->hi); + ntp_frac = ntohl(src->lo); + dest->tv_sec = (long)(ntp_sec - (unsigned int)((unsigned long long)( + 1516643532LL - (long long)( + (18250 * 24) * 3600)) + (unsigned long long)0x83aa7e80UL)) + (long)( + 1516643532LL - (long long)((18250 * 24) * 3600)); + dest->tv_nsec = (long)((double)ntp_frac / 4.294967296); + return_label: return; +} + +int UTI_IsTimeOffsetSane(struct timespec *ts, double offset) +{ + int __retres; + double t; + double tmp; + if (offset > - 4294967296.0) { + if (! (offset < 4294967296.0)) { + __retres = 0; + goto return_label; + } + } + else { + __retres = 0; + goto return_label; + } + tmp = UTI_TimespecToDouble(ts); + t = tmp + offset; + if (t < 0.0) { + __retres = 0; + goto return_label; + } + if (t < (double)(1516643532LL - (long long)((18250 * 24) * 3600))) { + __retres = 0; + goto return_label; + } + else + if (t > (double)((1516643532LL - (long long)((18250 * 24) * 3600)) + ( + 1LL << 32))) { + __retres = 0; + goto return_label; + } + __retres = 1; + return_label: return __retres; +} + +double UTI_Log2ToDouble(int l) +{ + double __retres; + if (l >= 0) { + if (l > 31) l = 31; + __retres = (double)((unsigned int)1 << l); + goto return_label; + } + else { + if (l < -31) l = -31; + __retres = 1.0 / (double)((unsigned int)1 << - l); + goto return_label; + } + return_label: return __retres; +} + +void UTI_TimespecNetworkToHost(Timespec *src, struct timespec *dest) +{ + uint32_t sec_low; + uint32_t nsec; + uint32_t sec_high; + sec_low = ntohl(src->tv_sec_low); + sec_high = ntohl(src->tv_sec_high); + if (sec_high == (uint32_t)0x7fffffff) sec_high = (unsigned int)0; + dest->tv_sec = (long)(((unsigned long)sec_high << 32) | (unsigned long)sec_low); + nsec = ntohl(src->tv_nsec); + if (nsec < 999999999U) dest->tv_nsec = (long)nsec; + else dest->tv_nsec = (long)999999999U; + return; +} + +void UTI_TimespecHostToNetwork(struct timespec *src, Timespec *dest) +{ + dest->tv_nsec = htonl((unsigned int)src->tv_nsec); + dest->tv_sec_high = htonl((unsigned int)((unsigned long)src->tv_sec >> 32)); + dest->tv_sec_low = htonl((unsigned int)src->tv_sec); + return; +} + +double UTI_FloatNetworkToHost(Float f) +{ + double __retres; + int32_t exp_0; + int32_t coef; + uint32_t x; + double tmp; + x = ntohl((unsigned int)f.f); + exp_0 = (int)(x >> ((int)sizeof(int32_t) * 8 - 7)); + if (exp_0 >= 1 << (7 - 1)) exp_0 -= 1 << 7; + exp_0 -= (int)sizeof(int32_t) * 8 - 7; + coef = (int)(x % (1U << ((int)sizeof(int32_t) * 8 - 7))); + if (coef >= 1 << (((int)sizeof(int32_t) * 8 - 7) - 1)) coef -= 1 << ( + (int)sizeof(int32_t) * 8 - 7); + tmp = pow(2.0,(double)exp_0); + ; + __retres = (double)coef * tmp; + return __retres; +} + +Float UTI_FloatHostToNetwork(double x) +{ + int32_t exp_0; + int32_t coef; + int32_t neg; + Float f; + uint32_t tmp_2; + if (x < 0.0) { + x = - x; + neg = 1; + } + else + if (x >= 0.0) neg = 0; + else { + x = 0.0; + neg = 0; + } + if (x < 1.0e-100) { + coef = 0; + exp_0 = coef; + } + else + if (x > 1.0e100) { + exp_0 = - (- (1 << (7 - 1))) - 1; + coef = (- (- (1 << (((int)sizeof(int32_t) * 8 - 7) - 1))) - 1) + neg; + } + else { + double tmp; + double tmp_0; + double tmp_1; + tmp = log(x); + tmp_0 = log((double)2); + exp_0 = (int)(tmp / tmp_0 + (double)1); + tmp_1 = pow(2.0,(double)(- exp_0 + ((int)sizeof(int32_t) * 8 - 7))); + coef = (int)(x * tmp_1 + 0.5); + __FC_assert((coef > 0) != 0,"util.c",949,"coef > 0"); + while (coef > (- (- (1 << (((int)sizeof(int32_t) * 8 - 7) - 1))) - 1) + neg) { + coef >>= 1; + exp_0 ++; + } + if (exp_0 > - (- (1 << (7 - 1))) - 1) { + exp_0 = - (- (1 << (7 - 1))) - 1; + coef = (- (- (1 << (((int)sizeof(int32_t) * 8 - 7) - 1))) - 1) + neg; + } + else + if (exp_0 < - (1 << (7 - 1))) + if (exp_0 + ((int)sizeof(int32_t) * 8 - 7) >= - (1 << (7 - 1))) { + coef >>= - (1 << (7 - 1)) - exp_0; + exp_0 = - (1 << (7 - 1)); + } + else { + coef = 0; + exp_0 = coef; + } + } + if (neg) coef = (int)(((unsigned int)(- coef) << 7) >> 7); + tmp_2 = htonl(((unsigned int)exp_0 << ((int)sizeof(int32_t) * 8 - 7)) | (unsigned int)coef); + f.f = (int)tmp_2; + return f; +} + +int UTI_FdSetCloexec(int fd) +{ + int __retres; + int flags; + flags = __va_fcntl_void(fd,1); + if (flags != -1) { + int tmp_0; + int tmp; + flags |= 1; + tmp = __va_fcntl_int(fd,2,flags); + if (tmp) tmp_0 = 0; else tmp_0 = 1; + __retres = tmp_0; + goto return_label; + } + __retres = 0; + return_label: return __retres; +} + +void UTI_SetQuitSignalsHandler(void (*handler)(int ), int ignore_sigpipe) +{ + struct sigaction sa; + int tmp; + int tmp_0; + int tmp_1; + int tmp_2; + int tmp_3; + int tmp_4; + sa.sa_handler = handler; + sa.sa_flags = 0x10000000; + tmp = sigemptyset(& sa.sa_mask); + if (tmp < 0) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"sigemptyset() failed", + (void * const *)(__va_args)); + } + exit(1); + } + tmp_0 = sigaction(2,(struct sigaction const *)(& sa),(struct sigaction *)0); + if (tmp_0 < 0) { + { + int __va_arg0 = 2; + void *__va_args_13[1] = {& __va_arg0}; + LOG_Message(LOGS_FATAL,"sigaction(%d) failed", + (void * const *)(__va_args_13)); + } + exit(1); + } + tmp_1 = sigaction(15,(struct sigaction const *)(& sa), + (struct sigaction *)0); + if (tmp_1 < 0) { + { + int __va_arg0_15 = 15; + void *__va_args_17[1] = {& __va_arg0_15}; + LOG_Message(LOGS_FATAL,"sigaction(%d) failed", + (void * const *)(__va_args_17)); + } + exit(1); + } + tmp_2 = sigaction(3,(struct sigaction const *)(& sa),(struct sigaction *)0); + if (tmp_2 < 0) { + { + int __va_arg0_19 = 3; + void *__va_args_21[1] = {& __va_arg0_19}; + LOG_Message(LOGS_FATAL,"sigaction(%d) failed", + (void * const *)(__va_args_21)); + } + exit(1); + } + tmp_3 = sigaction(1,(struct sigaction const *)(& sa),(struct sigaction *)0); + if (tmp_3 < 0) { + { + int __va_arg0_23 = 1; + void *__va_args_25[1] = {& __va_arg0_23}; + LOG_Message(LOGS_FATAL,"sigaction(%d) failed", + (void * const *)(__va_args_25)); + } + exit(1); + } + if (ignore_sigpipe) sa.sa_handler = SIG_IGN; + tmp_4 = sigaction(13,(struct sigaction const *)(& sa), + (struct sigaction *)0); + if (tmp_4 < 0) { + { + int __va_arg0_27 = 13; + void *__va_args_29[1] = {& __va_arg0_27}; + LOG_Message(LOGS_FATAL,"sigaction(%d) failed", + (void * const *)(__va_args_29)); + } + exit(1); + } + return; +} + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + requires valid_read_string(param0); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: *(param0 + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..)); + */ +int snprintf_va_16(char * __restrict s, size_t n, + char const * __restrict format, char *param0); + +char *UTI_PathToDir(char const *path) +{ + char *__retres; + char *dir; + char *slash; + slash = strrchr(path,'/'); + if (! slash) { + char *tmp; + tmp = Strdup("."); + __retres = tmp; + goto return_label; + } + if ((void *)slash == (void *)path) { + char *tmp_0; + tmp_0 = Strdup("/"); + __retres = tmp_0; + goto return_label; + } + dir = (char *)Malloc((unsigned long)((slash - path) + (long)1)); + snprintf_va_16(dir,(unsigned long)((slash - path) + (long)1),"%s", + (char *)path); + __retres = dir; + return_label: return __retres; +} + +static int create_dir(char *p, mode_t mode_0, uid_t uid, gid_t gid) +{ + int __retres; + int status; + struct stat buf; + int tmp_1; + int tmp_3; + status = stat((char const *)p,& buf); + if (status < 0) { + if (__fc_errno != 2) { + char *tmp; + tmp = strerror(__fc_errno); + ; + { + char *__va_arg0 = p; + char *__va_arg1 = tmp; + void *__va_args[2] = {& __va_arg0, & __va_arg1}; + LOG_Message(LOGS_ERR,"Could not access %s : %s", + (void * const *)(__va_args)); + } + __retres = 0; + goto return_label; + } + } + else { + if ((buf.st_mode & (unsigned int)0170000) == (unsigned int)0040000) { + __retres = 1; + goto return_label; + } + { + char *__va_arg0_16 = p; + void *__va_args_18[1] = {& __va_arg0_16}; + LOG_Message(LOGS_ERR,"%s is not directory", + (void * const *)(__va_args_18)); + } + __retres = 0; + goto return_label; + } + tmp_1 = mkdir((char const *)p,mode_0); + if (tmp_1 < 0) { + char *tmp_0; + tmp_0 = strerror(__fc_errno); + ; + { + char *__va_arg0_20 = p; + char *__va_arg1_22 = tmp_0; + void *__va_args_24[2] = {& __va_arg0_20, & __va_arg1_22}; + LOG_Message(LOGS_ERR,"Could not create directory %s : %s", + (void * const *)(__va_args_24)); + } + __retres = 0; + goto return_label; + } + tmp_3 = chown((char const *)p,uid,gid); + if (tmp_3 < 0) { + char *tmp_2; + tmp_2 = strerror(__fc_errno); + ; + { + char *__va_arg0_26 = p; + char *__va_arg1_28 = tmp_2; + void *__va_args_30[2] = {& __va_arg0_26, & __va_arg1_28}; + LOG_Message(LOGS_ERR,"Could not change ownership of %s : %s", + (void * const *)(__va_args_30)); + } + rmdir((char const *)p); + __retres = 0; + goto return_label; + } + __retres = 1; + return_label: return __retres; +} + +int UTI_CreateDirAndParents(char const *path, mode_t mode_0, uid_t uid, + gid_t gid) +{ + int __retres; + char *p; + int i; + int j; + int k; + int last; + int tmp; + void *tmp_1; + size_t tmp_0; + tmp = strcmp(path,"."); + if (! tmp) { + __retres = 1; + goto return_label; + } + tmp_0 = strlen(path); + tmp_1 = Malloc((size_t)1 + tmp_0); + p = (char *)tmp_1; + k = 0; + i = k; + while (1) { + { + int tmp_2; + int tmp_3; + tmp_2 = i; + i ++; + tmp_3 = k; + k ++; + *(p + tmp_2) = *(path + tmp_3); + if ((int)*(path + k) == '/') goto _LOR; + else + if (! *(path + k)) { + _LOR: + { + int tmp_7; + gid_t tmp_4; + uid_t tmp_5; + mode_t tmp_6; + last = 1; + j = k; + while (*(path + j)) { + if ((int)*(path + j) != '/') { + k = j - 1; + last = 0; + break; + } + j ++; + } + *(p + i) = (char)0; + if (last) tmp_4 = gid; else tmp_4 = (unsigned int)0; + if (last) tmp_5 = uid; else tmp_5 = (unsigned int)0; + if (last) tmp_6 = mode_0; else tmp_6 = (unsigned int)0755; + ; + tmp_7 = create_dir(p,tmp_6,tmp_5,tmp_4); + if (! tmp_7) { + free((void *)p); + __retres = 0; + goto return_label; + } + if (last) break; + } + } + if (! *(path + k)) break; + } + } + free((void *)p); + __retres = 1; + return_label: return __retres; +} + +int UTI_CheckDirPermissions(char const *path, mode_t perm, uid_t uid, + gid_t gid) +{ + int __retres; + struct stat buf; + int tmp_0; + tmp_0 = stat(path,& buf); + if (tmp_0) { + char *tmp; + tmp = strerror(__fc_errno); + ; + { + char const *__va_arg0 = path; + char *__va_arg1 = tmp; + void *__va_args[2] = {& __va_arg0, & __va_arg1}; + LOG_Message(LOGS_ERR,"Could not access %s : %s", + (void * const *)(__va_args)); + } + __retres = 0; + goto return_label; + } + if (! ((buf.st_mode & (unsigned int)0170000) == (unsigned int)0040000)) { + { + char const *__va_arg0_12 = path; + void *__va_args_14[1] = {& __va_arg0_12}; + LOG_Message(LOGS_ERR,"%s is not directory", + (void * const *)(__va_args_14)); + } + __retres = 0; + goto return_label; + } + if ((buf.st_mode & (unsigned int)0777) & ~ perm) { + { + char const *__va_arg0_16 = path; + void *__va_args_18[1] = {& __va_arg0_16}; + LOG_Message(LOGS_ERR,"Wrong permissions on %s", + (void * const *)(__va_args_18)); + } + __retres = 0; + goto return_label; + } + if (buf.st_uid != uid) { + { + char const *__va_arg0_20 = path; + char const *__va_arg1_22 = "UID"; + uid_t __va_arg2 = uid; + void *__va_args_25[3] = {& __va_arg0_20, & __va_arg1_22, & __va_arg2}; + LOG_Message(LOGS_ERR,"Wrong owner of %s (%s != %u)", + (void * const *)(__va_args_25)); + } + __retres = 0; + goto return_label; + } + if (buf.st_gid != gid) { + { + char const *__va_arg0_27 = path; + char const *__va_arg1_29 = "GID"; + gid_t __va_arg2_31 = gid; + void *__va_args_33[3] = + {& __va_arg0_27, & __va_arg1_29, & __va_arg2_31}; + LOG_Message(LOGS_ERR,"Wrong owner of %s (%s != %u)", + (void * const *)(__va_args_33)); + } + __retres = 0; + goto return_label; + } + __retres = 1; + return_label: return __retres; +} + +void UTI_DropRoot(uid_t uid, gid_t gid) +{ + int tmp_0; + int tmp_2; + int tmp_4; + tmp_0 = setgroups((unsigned long)0,(gid_t const *)0); + if (tmp_0) { + char *tmp; + tmp = strerror(__fc_errno); + { + char *__va_arg0 = tmp; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_FATAL,"setgroups() failed : %s", + (void * const *)(__va_args)); + } + exit(1); + } + tmp_2 = setgid(gid); + if (tmp_2) { + char *tmp_1; + tmp_1 = strerror(__fc_errno); + ; + { + gid_t __va_arg0_12 = gid; + char *__va_arg1 = tmp_1; + void *__va_args_15[2] = {& __va_arg0_12, & __va_arg1}; + LOG_Message(LOGS_FATAL,"setgid(%u) failed : %s", + (void * const *)(__va_args_15)); + } + exit(1); + } + tmp_4 = setuid(uid); + if (tmp_4) { + char *tmp_3; + tmp_3 = strerror(__fc_errno); + ; + { + uid_t __va_arg0_17 = uid; + char *__va_arg1_19 = tmp_3; + void *__va_args_21[2] = {& __va_arg0_17, & __va_arg1_19}; + LOG_Message(LOGS_FATAL,"setuid(%u) failed : %s", + (void * const *)(__va_args_21)); + } + exit(1); + } + return; +} + +static FILE *UTI_GetRandomBytesUrandom_f = (FILE *)0; +void UTI_GetRandomBytesUrandom(void *buf, unsigned int len) +{ + size_t tmp_0; + if (! UTI_GetRandomBytesUrandom_f) UTI_GetRandomBytesUrandom_f = fopen + ("/dev/urandom","r"); + if (! UTI_GetRandomBytesUrandom_f) { + char *tmp; + tmp = strerror(__fc_errno); + { + char const *__va_arg0 = "/dev/urandom"; + char *__va_arg1 = tmp; + void *__va_args[2] = {& __va_arg0, & __va_arg1}; + LOG_Message(LOGS_FATAL,"Can\'t open %s : %s", + (void * const *)(__va_args)); + } + exit(1); + } + tmp_0 = fread(buf,(unsigned long)1,(unsigned long)len, + UTI_GetRandomBytesUrandom_f); + ; + if (tmp_0 != (size_t)len) { + { + char const *__va_arg0_9 = "/dev/urandom"; + void *__va_args_11[1] = {& __va_arg0_9}; + LOG_Message(LOGS_FATAL,"Can\'t read from %s", + (void * const *)(__va_args_11)); + } + exit(1); + } + return; +} + +void UTI_GetRandomBytes(void *buf, unsigned int len) +{ + UTI_GetRandomBytesUrandom(buf,len); + return; +} + +void DNS_Name2IPAddressAsync(char const *name, + void (*handler)(DNS_Status status, int n_addrs, + IPAddr *ip_addrs, void *anything), + void *anything); + +void NSD_Initialise(void); + +void NSD_Finalise(void); + +int NSD_GetAuthDelay(uint32_t key_id); + +int NSD_SignAndSendPacket(uint32_t key_id, NTP_Packet *packet, + NTP_Remote_Address *remote_addr, + NTP_Local_Address *local_addr, int length); + +static void resolve_name(int fd, int event, void *anything) +{ + struct DNS_Async_Instance *inst; + IPAddr addrs[16]; + DNS_Status status; + int i; + inst = (struct DNS_Async_Instance *)anything; + SCH_RemoveFileHandler(inst->pipe[0]); + close(inst->pipe[0]); + close(inst->pipe[1]); + status = DNS_Name2IPAddress(inst->name,addrs,16); + i = 0; + while (1) { + if (status == (unsigned int)DNS_Success) + if (i < 16) { + if (! ((int)addrs[i].family != 0)) break; + } + else break; + else break; + i ++; + } + (*(inst->handler))(status,i,addrs,inst->arg); + free((void *)inst); + return; +} + +void DNS_Name2IPAddressAsync(char const *name, + void (*handler)(DNS_Status status, int n_addrs, + IPAddr *ip_addrs, void *anything), + void *anything) +{ + struct DNS_Async_Instance *inst; + int tmp_0; + ssize_t tmp_1; + inst = (struct DNS_Async_Instance *)Malloc(sizeof(struct DNS_Async_Instance)); + inst->name = name; + inst->handler = handler; + inst->arg = anything; + tmp_0 = pipe(inst->pipe); + if (tmp_0) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"pipe() failed",(void * const *)(__va_args)); + } + exit(1); + } + UTI_FdSetCloexec(inst->pipe[0]); + UTI_FdSetCloexec(inst->pipe[1]); + SCH_AddFileHandler(inst->pipe[0],1,& resolve_name,(void *)inst); + tmp_1 = write(inst->pipe[1],(void const *)"",(unsigned long)1); + return; +} + +void NSD_Initialise(void) +{ + return; +} + +void NSD_Finalise(void) +{ + return; +} + +int NSD_GetAuthDelay(uint32_t key_id) +{ + int __retres; + __retres = 0; + return __retres; +} + +int NSD_SignAndSendPacket(uint32_t key_id, NTP_Packet *packet, + NTP_Remote_Address *remote_addr, + NTP_Local_Address *local_addr, int length) +{ + int __retres; + __retres = 0; + return __retres; +} + +int volatile qsort_nondet; +int eva_main(void) +{ + char argv0[256]; + char argv1[256]; + char argv2[256]; + char argv3[256]; + char argv4[256]; + int tmp_0; + int argc = Frama_C_interval(0,5); + char *argv[6] = {argv0, argv1, argv2, argv3, argv4, (char *)0}; + { + int i = 0; + /*@ loop unroll 5; */ + while (i < 5) { + Frama_C_make_unknown(argv[i],(unsigned long)255); + *(argv[i] + 255) = (char)0; + i ++; + } + } + tmp_0 = main(argc,argv); + return tmp_0; +} + +static struct timespec current_time; +static NTP_Receive_Buffer req_buffer; +static NTP_Receive_Buffer res_buffer; +static int req_length; +static int res_length; +static SCH_TimeoutID add_timeout_in_class(double min_delay, + double separation, + double randomness, + SCH_TimeoutClass class, + void (*handler)(SCH_ArbitraryArgument ), + SCH_ArbitraryArgument arg) +{ + SCH_TimeoutID __retres; + __retres = (unsigned int)102; + return __retres; +} + +extern SPF_Instance SPF_CreateInstance(int min_samples, int max_samples, + double max_dispersion, + double combine_ratio); + +extern void SPF_DestroyInstance(SPF_Instance filter); + +extern int SPF_AccumulateSample(SPF_Instance filter, NTP_Sample *sample); + +extern int SPF_GetNumberOfSamples(SPF_Instance filter); + +extern void SPF_DropSamples(SPF_Instance filter); + +extern int SPF_GetFilteredSample(SPF_Instance filter, NTP_Sample *sample); + +extern void SPF_SlewSamples(SPF_Instance filter, struct timespec *when, + double dfreq, double doffset); + +static LOG_FileID logfileid_1; +static int log_raw_measurements; +static ARR_Instance broadcasts_0; +static int server_sock_fd4_0; +static int server_sock_fd6; +static ADF_AuthTable access_auth_table; +static char const leap_chars[4] = + {(char)'N', (char)'+', (char)'-', (char)'?'}; +static char const tss_chars[3] = {(char)'D', (char)'K', (char)'H'}; +static void transmit_timeout(void *arg); + +static double get_transmit_delay(NCR_Instance inst, int on_tx, double last_tx); + +static double get_separation(int poll); + +static void do_size_checks(void) +{ + __FC_assert((sizeof(NTP_int32) == (unsigned long)4) != 0,"ntp_core.c",324, + "sizeof(NTP_int32) == 4"); + __FC_assert((sizeof(NTP_int64) == (unsigned long)8) != 0,"ntp_core.c",325, + "sizeof(NTP_int64) == 8"); + __FC_assert((0UL == (unsigned long)0) != 0,"ntp_core.c",328, + "offsetof(NTP_Packet, lvm) == 0"); + __FC_assert((1UL == (unsigned long)1) != 0,"ntp_core.c",329, + "offsetof(NTP_Packet, stratum) == 1"); + __FC_assert((2UL == (unsigned long)2) != 0,"ntp_core.c",330, + "offsetof(NTP_Packet, poll) == 2"); + __FC_assert((3UL == (unsigned long)3) != 0,"ntp_core.c",331, + "offsetof(NTP_Packet, precision) == 3"); + __FC_assert((4UL == (unsigned long)4) != 0,"ntp_core.c",332, + "offsetof(NTP_Packet, root_delay) == 4"); + __FC_assert((8UL == (unsigned long)8) != 0,"ntp_core.c",333, + "offsetof(NTP_Packet, root_dispersion) == 8"); + __FC_assert((12UL == (unsigned long)12) != 0,"ntp_core.c",334, + "offsetof(NTP_Packet, reference_id) == 12"); + __FC_assert((16UL == (unsigned long)16) != 0,"ntp_core.c",335, + "offsetof(NTP_Packet, reference_ts) == 16"); + __FC_assert((24UL == (unsigned long)24) != 0,"ntp_core.c",336, + "offsetof(NTP_Packet, originate_ts) == 24"); + __FC_assert((32UL == (unsigned long)32) != 0,"ntp_core.c",337, + "offsetof(NTP_Packet, receive_ts) == 32"); + __FC_assert((40UL == (unsigned long)40) != 0,"ntp_core.c",338, + "offsetof(NTP_Packet, transmit_ts) == 40"); + return; +} + +static void do_time_checks(void) +{ + struct timespec now; + NTP_int64 nts1; + NTP_int64 nts2; + int r; + int tmp; + time_t warning_advance = (long)(((3600 * 24) * 365) * 10); + struct timespec ts1 = + {.tv_sec = (long)(1516643532LL - (long long)((18250 * 24) * 3600)), + .tv_nsec = (long)1}; + struct timespec ts2 = + {.tv_sec = (long)((1516643532LL - (long long)((18250 * 24) * 3600)) - (long long)1), + .tv_nsec = (long)1}; + UTI_TimespecToNtp64(& ts1,& nts1,(NTP_int64 *)0); + UTI_TimespecToNtp64(& ts2,& nts2,(NTP_int64 *)0); + UTI_Ntp64ToTimespec(& nts1,& ts1); + UTI_Ntp64ToTimespec(& nts2,& ts2); + if ((long long)ts1.tv_sec == 1516643532LL - (long long)((18250 * 24) * 3600)) + if (((unsigned long long)ts1.tv_sec + (1ULL << 32)) - (unsigned long long)1 == (unsigned long long)ts2.tv_sec) + tmp = 1; + else tmp = 0; + else tmp = 0; + r = tmp; + __FC_assert(r != 0,"ntp_core.c",364,"r"); + now = current_time; + if (ts2.tv_sec - now.tv_sec < warning_advance) { + char *tmp_0; + tmp_0 = UTI_TimeToLogForm(ts2.tv_sec); + { + char *__va_arg0 = tmp_0; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN,"Assumed NTP time ends at %s!", + (void * const *)(__va_args)); + } + } + return; +} + +static void zero_local_timestamp(NTP_Local_Timestamp *ts) +{ + UTI_ZeroTimespec(& ts->ts); + ts->err = 0.0; + ts->source = NTP_TS_DAEMON; + return; +} + +void NCR_Initialise(void) +{ + int tmp; + do_size_checks(); + do_time_checks(); + tmp = CNF_GetLogMeasurements(& log_raw_measurements); + if (tmp) logfileid_1 = LOG_FileOpen("measurements", + " Date (UTC) Time IP Address L St 123 567 ABCD LP RP Score Offset Peer del. Peer disp. Root del. Root disp. Refid MTxRx"); + else logfileid_1 = -1; + access_auth_table = ADF_CreateTable(); + broadcasts_0 = ARR_CreateInstance((unsigned int)sizeof(BroadcastDestination)); + server_sock_fd4_0 = -2; + server_sock_fd6 = -2; + return; +} + +void NCR_Finalise(void) +{ + unsigned int i; + if (server_sock_fd4_0 != -2) __FC_assert((server_sock_fd4_0 == 100) != 0, + "ntp_core.c",414, + "server_sock_fd4 == 100"); + if (server_sock_fd6 != -2) __FC_assert((server_sock_fd6 == 100) != 0, + "ntp_core.c",416, + "server_sock_fd6 == 100"); + i = (unsigned int)0; + while (1) { + unsigned int tmp_0; + void *tmp; + tmp_0 = ARR_GetSize(broadcasts_0); + ; + if (! (i < tmp_0)) break; + tmp = ARR_GetElement(broadcasts_0,i); + ; + __FC_assert((((BroadcastDestination *)tmp)->local_addr.sock_fd == 100) != 0, + "ntp_core.c",419, + "((BroadcastDestination *)ARR_GetElement(broadcasts, i))->local_addr.sock_fd == 100"); + i ++; + } + ARR_DestroyInstance(broadcasts_0); + ADF_DestroyTable(access_auth_table); + return; +} + +static void restart_timeout(NCR_Instance inst, double delay) +{ + int tmp; + int tmp_0; + int tmp_1; + double tmp_2; + if (inst->tx_suspended) { + __FC_assert(! inst->tx_timeout_id != 0,"ntp_core.c",432, + "!inst->tx_timeout_id"); + goto return_label; + } + if (! inst->rx_timeout_id) tmp = 1; + else + if (inst->rx_timeout_id == (SCH_TimeoutID)102) tmp = 1; else tmp = 0; + __FC_assert(tmp != 0,"ntp_core.c",437, + "!inst->rx_timeout_id || inst->rx_timeout_id == 102"); + inst->rx_timeout_id = (unsigned int)0; + if (! inst->tx_timeout_id) tmp_0 = 1; + else + if (inst->tx_timeout_id == (SCH_TimeoutID)102) tmp_0 = 1; else tmp_0 = 0; + __FC_assert(tmp_0 != 0,"ntp_core.c",439, + "!inst->tx_timeout_id || inst->tx_timeout_id == 102"); + ; + if (inst->mode == (unsigned int)MODE_CLIENT) tmp_1 = SCH_NtpClientClass; + else tmp_1 = SCH_NtpPeerClass; + tmp_2 = get_separation(inst->local_poll); + ; + inst->tx_timeout_id = add_timeout_in_class(delay,tmp_2,0.02, + (enum __anonenum_SCH_TimeoutClass_30)tmp_1, + & transmit_timeout,(void *)inst); + return_label: return; +} + +static void start_initial_timeout(NCR_Instance inst) +{ + double delay; + double last_tx; + struct timespec now; + double tmp; + if (! inst->tx_timeout_id) SRC_SetActive(inst->source); + SCH_GetLastEventTime(& now,(double *)0,(struct timespec *)0); + last_tx = UTI_DiffTimespecsToDouble(& now,& inst->local_tx.ts); + if (last_tx < 0.0) last_tx = 0.0; + tmp = get_transmit_delay(inst,0,0.0); + delay = tmp - last_tx; + if (delay < 0.2) delay = 0.2; + restart_timeout(inst,delay); + return; +} + +static void close_client_socket(NCR_Instance inst) +{ + int tmp; + if (inst->mode == (unsigned int)MODE_CLIENT) + if (inst->local_addr.sock_fd != -2) { + __FC_assert((inst->local_addr.sock_fd == 101) != 0,"ntp_core.c",484, + "inst->local_addr.sock_fd == 101"); + inst->local_addr.sock_fd = -2; + } + if (! inst->rx_timeout_id) tmp = 1; + else + if (inst->rx_timeout_id == (SCH_TimeoutID)102) tmp = 1; else tmp = 0; + __FC_assert(tmp != 0,"ntp_core.c",488, + "!inst->rx_timeout_id || inst->rx_timeout_id == 102"); + inst->rx_timeout_id = (unsigned int)0; + return; +} + +static void take_offline(NCR_Instance inst) +{ + int tmp; + inst->opmode = MD_OFFLINE; + if (! inst->tx_timeout_id) tmp = 1; + else + if (inst->tx_timeout_id == (SCH_TimeoutID)102) tmp = 1; else tmp = 0; + __FC_assert(tmp != 0,"ntp_core.c",499, + "!inst->tx_timeout_id || inst->tx_timeout_id == 102"); + inst->tx_timeout_id = (unsigned int)0; + SRC_UnsetActive(inst->source); + close_client_socket(inst); + NCR_ResetInstance(inst); + return; +} + +NCR_Instance NCR_GetInstance(NTP_Remote_Address *remote_addr, + NTP_Source_Type type, SourceParameters *params) +{ + NCR_Instance result; + double tmp_0; + double tmp_2; + double tmp_4; + uint32_t tmp_13; + result = (NCR_Instance)Malloc(sizeof(struct NCR_Instance_Record)); + result->remote_addr = *remote_addr; + result->local_addr.ip_addr.family = (unsigned short)0; + result->local_addr.if_index = -1; + switch (type) { + case (NTP_Source_Type)NTP_SERVER: result->local_addr.sock_fd = -2; + result->mode = MODE_CLIENT; + break; + case (NTP_Source_Type)NTP_PEER: + if ((int)remote_addr->ip_addr.family != 0) result->local_addr.sock_fd = 100; + else result->local_addr.sock_fd = 0; + result->mode = MODE_ACTIVE; + break; + default: __FC_assert(0 != 0,"ntp_core.c",537,"0"); + } + result->interleaved = params->interleaved; + result->minpoll = params->minpoll; + if (result->minpoll < -6) result->minpoll = 6; + else + if (result->minpoll > 24) result->minpoll = 24; + result->maxpoll = params->maxpoll; + if (result->maxpoll < -6) result->maxpoll = 10; + else + if (result->maxpoll > 24) result->maxpoll = 24; + if (result->maxpoll < result->minpoll) result->maxpoll = result->minpoll; + result->min_stratum = params->min_stratum; + if (result->min_stratum >= 16) result->min_stratum = 16 - 1; + result->presend_minpoll = params->presend_minpoll; + if (result->presend_minpoll <= 24) + if (result->mode != (unsigned int)MODE_CLIENT) result->presend_minpoll = + 24 + 1; + if (params->max_delay < 1.0e3) tmp_0 = params->max_delay; + else tmp_0 = 1.0e3; + if (0.0 > tmp_0) result->max_delay = 0.0; + else { + double tmp_1; + if (params->max_delay < 1.0e3) tmp_1 = params->max_delay; + else tmp_1 = 1.0e3; + result->max_delay = tmp_1; + } + if (params->max_delay_ratio < 1.0e6) tmp_2 = params->max_delay_ratio; + else tmp_2 = 1.0e6; + if (0.0 > tmp_2) result->max_delay_ratio = 0.0; + else { + double tmp_3; + if (params->max_delay_ratio < 1.0e6) tmp_3 = params->max_delay_ratio; + else tmp_3 = 1.0e6; + result->max_delay_ratio = tmp_3; + } + if (params->max_delay_dev_ratio < 1.0e6) tmp_4 = params->max_delay_dev_ratio; + else tmp_4 = 1.0e6; + if (0.0 > tmp_4) result->max_delay_dev_ratio = 0.0; + else { + double tmp_5; + if (params->max_delay_dev_ratio < 1.0e6) tmp_5 = params->max_delay_dev_ratio; + else tmp_5 = 1.0e6; + result->max_delay_dev_ratio = tmp_5; + } + result->offset_correction = params->offset; + result->auto_burst = params->burst; + result->auto_offline = params->auto_offline; + result->poll_target = params->poll_target; + result->version = 4; + if (params->authkey == (uint32_t)0) { + result->auth_mode = AUTH_NONE; + result->auth_key_id = (unsigned int)0; + } + else { + int tmp_9; + int tmp_10; + result->auth_mode = AUTH_SYMMETRIC; + result->auth_key_id = params->authkey; + tmp_9 = KEY_KeyKnown(result->auth_key_id); + if (tmp_9) { + int tmp_8; + tmp_8 = KEY_CheckKeyLength(result->auth_key_id); + if (! tmp_8) { + char *tmp_7; + tmp_7 = UTI_IPToString(& result->remote_addr.ip_addr); + ; + { + uint32_t __va_arg0 = result->auth_key_id; + char *__va_arg1 = tmp_7; + char const *__va_arg2 = "too short"; + void *__va_args[3] = {& __va_arg0, & __va_arg1, & __va_arg2}; + LOG_Message(LOGS_WARN,"Key %u used by source %s is %s", + (void * const *)(__va_args)); + } + } + } + else { + char *tmp_6; + tmp_6 = UTI_IPToString(& result->remote_addr.ip_addr); + ; + { + uint32_t __va_arg0_26 = result->auth_key_id; + char *__va_arg1_28 = tmp_6; + char const *__va_arg2_30 = "missing"; + void *__va_args_32[3] = + {& __va_arg0_26, & __va_arg1_28, & __va_arg2_30}; + LOG_Message(LOGS_WARN,"Key %u used by source %s is %s", + (void * const *)(__va_args_32)); + } + } + tmp_10 = KEY_GetAuthLength(result->auth_key_id); + if (tmp_10 + 4 > 4 + 20) result->version = 3; + } + if (params->version) { + int tmp_11; + if (params->version < 4) tmp_11 = params->version; else tmp_11 = 4; + if (1 > tmp_11) result->version = 1; + else { + int tmp_12; + if (params->version < 4) tmp_12 = params->version; else tmp_12 = 4; + result->version = tmp_12; + } + } + ; + ; + ; + ; + ; + ; + tmp_13 = UTI_IPToRefid(& remote_addr->ip_addr); + result->source = SRC_CreateNewInstance(tmp_13,SRC_NTP,params->sel_options, + & result->remote_addr.ip_addr, + params->min_samples, + params->max_samples, + params->min_delay,params->asymmetry); + if (params->filter_length >= 1) result->filter = SPF_CreateInstance + (params->filter_length, + params->filter_length,16.0,0.0); + else result->filter = (struct SPF_Instance_Record *)0; + result->rx_timeout_id = (unsigned int)0; + result->tx_timeout_id = (unsigned int)0; + result->tx_suspended = 1; + if (params->connectivity == (unsigned int)SRC_ONLINE) result->opmode = MD_ONLINE; + else + if (params->connectivity == (unsigned int)SRC_MAYBE_ONLINE) { + int tmp_14; + tmp_14 = NIO_IsServerConnectable(remote_addr); + if (tmp_14) result->opmode = MD_ONLINE; + else result->opmode = MD_OFFLINE; + } + else result->opmode = MD_OFFLINE; + result->local_poll = result->minpoll; + result->poll_score = 0.0; + zero_local_timestamp(& result->local_tx); + result->burst_good_samples_to_go = 0; + result->burst_total_samples_to_go = 0; + memset((void *)(& result->report),0,sizeof(result->report)); + NCR_ResetInstance(result); + if (params->iburst) NCR_InitiateSampleBurst(result,4,8); + return result; +} + +void NCR_DestroyInstance(NCR_Instance instance) +{ + if (instance->opmode != (unsigned int)MD_OFFLINE) take_offline(instance); + if (instance->mode == (unsigned int)MODE_ACTIVE) __FC_assert((instance->local_addr.sock_fd == 100) != 0, + "ntp_core.c", + 645, + "instance->local_addr.sock_fd == 100"); + if (instance->filter) SPF_DestroyInstance(instance->filter); + SRC_DestroyInstance(instance->source); + free((void *)instance); + return; +} + +void NCR_StartInstance(NCR_Instance instance) +{ + instance->tx_suspended = 0; + if (instance->opmode != (unsigned int)MD_OFFLINE) start_initial_timeout + (instance); + return; +} + +void NCR_ResetInstance(NCR_Instance instance) +{ + instance->tx_count = (unsigned int)0; + instance->presend_done = 0; + instance->remote_poll = 0; + instance->remote_stratum = 0; + instance->valid_rx = 0; + instance->valid_timestamps = 0; + UTI_ZeroNtp64(& instance->remote_ntp_rx); + UTI_ZeroNtp64(& instance->remote_ntp_tx); + UTI_ZeroNtp64(& instance->local_ntp_rx); + UTI_ZeroNtp64(& instance->local_ntp_tx); + zero_local_timestamp(& instance->local_rx); + zero_local_timestamp(& instance->prev_local_tx); + instance->prev_local_poll = 0; + instance->prev_tx_count = (unsigned int)0; + instance->updated_init_timestamps = 0; + UTI_ZeroNtp64(& instance->init_remote_ntp_tx); + zero_local_timestamp(& instance->init_local_rx); + if (instance->filter) SPF_DropSamples(instance->filter); + return; +} + +void NCR_ResetPoll(NCR_Instance instance) +{ + if (instance->local_poll != instance->minpoll) { + instance->local_poll = instance->minpoll; + if (instance->tx_timeout_id) { + double tmp; + tmp = get_transmit_delay(instance,0,0.0); + ; + restart_timeout(instance,tmp); + } + } + return; +} + +void NCR_ChangeRemoteAddress(NCR_Instance inst, + NTP_Remote_Address *remote_addr) +{ + uint32_t tmp; + memset((void *)(& inst->report),0,sizeof(inst->report)); + NCR_ResetInstance(inst); + inst->remote_addr = *remote_addr; + if (inst->mode == (unsigned int)MODE_CLIENT) close_client_socket(inst); + else { + __FC_assert((inst->local_addr.sock_fd == 100) != 0,"ntp_core.c",726, + "inst->local_addr.sock_fd == 100"); + inst->local_addr.ip_addr.family = (unsigned short)0; + inst->local_addr.if_index = -1; + if ((int)remote_addr->ip_addr.family != 0) inst->local_addr.sock_fd = 100; + else inst->local_addr.sock_fd = 0; + } + ; + tmp = UTI_IPToRefid(& remote_addr->ip_addr); + ; + SRC_SetRefid(inst->source,tmp,& inst->remote_addr.ip_addr); + SRC_ResetInstance(inst->source); + return; +} + +static void adjust_poll(NCR_Instance inst, double adj) +{ + inst->poll_score += adj; + if (inst->poll_score >= 1.0) { + inst->local_poll += (int)inst->poll_score; + inst->poll_score -= (double)((int)inst->poll_score); + } + if (inst->poll_score < 0.0) { + inst->local_poll += (int)(inst->poll_score - 1.0); + inst->poll_score -= (double)((int)(inst->poll_score - 1.0)); + } + if (inst->local_poll < inst->minpoll) { + inst->local_poll = inst->minpoll; + inst->poll_score = (double)0; + } + else + if (inst->local_poll > inst->maxpoll) { + inst->local_poll = inst->maxpoll; + inst->poll_score = 1.0; + } + if (inst->local_poll < 0) { + int tmp; + tmp = SRC_IsReachable(inst->source); + if (tmp) { + double tmp_1; + SST_Stats tmp_0; + tmp_0 = SRC_GetSourcestats(inst->source); + tmp_1 = SST_MinRoundTripDelay(tmp_0); + if (tmp_1 > 0.01) inst->local_poll = 0; + } + else inst->local_poll = 0; + } + return; +} + +static double get_poll_adj(NCR_Instance inst, double error_in_estimate, + double peer_distance) +{ + double poll_adj; + int samples; + if (error_in_estimate > peer_distance) { + double tmp; + double tmp_0; + tmp = log(error_in_estimate / peer_distance); + tmp_0 = log(2.0); + poll_adj = - tmp / tmp_0; + } + else { + SST_Stats tmp_1; + tmp_1 = SRC_GetSourcestats(inst->source); + samples = SST_Samples(tmp_1); + poll_adj = ((double)samples / (double)inst->poll_target - 1.0) / (double)inst->poll_target; + if (samples < inst->poll_target) poll_adj *= 2.0; + } + return poll_adj; +} + +static int get_transmit_poll(NCR_Instance inst) +{ + int poll; + poll = inst->local_poll; + if (inst->mode == (unsigned int)MODE_ACTIVE) + if (poll > inst->remote_poll) { + int tmp; + tmp = SRC_IsReachable(inst->source); + if (tmp) + if (inst->remote_poll > inst->minpoll) poll = inst->remote_poll; + else poll = inst->minpoll; + } + return poll; +} + +static double get_transmit_delay(NCR_Instance inst, int on_tx, double last_tx) +{ + int poll_to_use; + int stratum_diff; + double delay_time; + poll_to_use = get_transmit_poll(inst); + delay_time = UTI_Log2ToDouble(poll_to_use); + switch (inst->opmode) { + case (OperatingMode)MD_OFFLINE: __FC_assert(0 != 0,"ntp_core.c",844,"0"); + break; + case (OperatingMode)MD_ONLINE: ; + switch (inst->mode) { + int tmp; + case (NTP_Mode)MODE_CLIENT: ; + if (inst->presend_done) delay_time = 2.0; + break; + case (NTP_Mode)MODE_ACTIVE: + { /* sequence */ + tmp = REF_GetOurStratum(); + stratum_diff = inst->remote_stratum - tmp; + } + if (stratum_diff > 0) { + if (last_tx * 1.1 < delay_time) delay_time *= 1.1; else goto _LAND; + } + else + _LAND: + if (! on_tx) + if (! stratum_diff) + if (last_tx / delay_time > 1.1 - 0.5) delay_time *= 1.1; + if (last_tx > 0.0) delay_time -= last_tx; + if (delay_time < 0.0) delay_time = 0.0; + break; + default: __FC_assert(0 != 0,"ntp_core.c",873,"0"); + break; + } + break; + case (OperatingMode)MD_BURST_WAS_ONLINE: + case (OperatingMode)MD_BURST_WAS_OFFLINE: + if (2.0 < 0.25 * delay_time) delay_time = 2.0; + else delay_time = 0.25 * delay_time; + break; + default: __FC_assert(0 != 0,"ntp_core.c",884,"0"); + break; + } + return delay_time; +} + +static double get_separation(int poll) +{ + double separation; + int tmp; + double tmp_2; + double tmp_0; + if (poll >= -6) + if (poll <= 24) tmp = 1; else tmp = 0; + else tmp = 0; + __FC_assert(tmp != 0,"ntp_core.c",899, + "poll >= MIN_POLL && poll <= MAX_POLL"); + separation = UTI_Log2ToDouble(poll - 3); + if (separation < 0.2) tmp_0 = separation; else tmp_0 = 0.2; + if (0.002 > tmp_0) tmp_2 = 0.002; + else { + double tmp_1; + if (separation < 0.2) tmp_1 = separation; else tmp_1 = 0.2; + tmp_2 = tmp_1; + } + return tmp_2; +} + +static void receive_timeout(void *arg) +{ + NCR_Instance inst = (struct NCR_Instance_Record *)arg; + inst->rx_timeout_id = (unsigned int)0; + close_client_socket(inst); + return; +} + +static int transmit_packet(NTP_Mode my_mode, int interleaved, int my_poll, + int version, int auth_mode, uint32_t key_id, + NTP_int64 *remote_ntp_rx, + NTP_int64 *remote_ntp_tx, + NTP_Local_Timestamp *local_rx, + NTP_Local_Timestamp *local_tx, + NTP_int64 *local_ntp_rx, NTP_int64 *local_ntp_tx, + NTP_Remote_Address *where_to, + NTP_Local_Address *from) +{ + int __retres; + NTP_Packet message; + int auth_len; + int max_auth_len; + int length; + int ret; + int precision; + struct timespec local_receive; + struct timespec local_transmit; + double smooth_offset_0; + double local_transmit_err; + NTP_int64 ts_fuzz; + int are_we_synchronised_0; + int our_stratum_0; + int smooth_time; + NTP_Leap leap_status; + uint32_t our_ref_id_0; + struct timespec our_ref_time_0; + double our_root_delay_0; + double our_root_dispersion_0; + if (version > 4) version = 4; + if (interleaved) + if (! remote_ntp_rx) interleaved = 0; + else + if (! local_tx) interleaved = 0; + else { + int tmp; + tmp = UTI_IsZeroTimespec(& local_tx->ts); + if (tmp) interleaved = 0; + } + smooth_time = 0; + smooth_offset_0 = 0.0; + if (my_mode == (unsigned int)MODE_CLIENT) { + precision = 32; + our_ref_id_0 = (unsigned int)0; + our_stratum_0 = (int)our_ref_id_0; + leap_status = (enum __anonenum_NTP_Leap_7)our_stratum_0; + our_root_dispersion_0 = 0.0; + our_root_delay_0 = our_root_dispersion_0; + UTI_ZeroTimespec(& our_ref_time_0); + } + else { + int tmp_3; + long tmp_4; + SCH_GetLastEventTime(& local_transmit,(double *)0,(struct timespec *)0); + REF_GetReferenceParams(& local_transmit,& are_we_synchronised_0, + & leap_status,& our_stratum_0,& our_ref_id_0, + & our_ref_time_0,& our_root_delay_0, + & our_root_dispersion_0); + tmp_3 = SMT_IsEnabled(); + if (tmp_3) + if (my_mode == (unsigned int)MODE_SERVER) goto _LOR; + else + if (my_mode == (unsigned int)MODE_BROADCAST) { + _LOR: + { + double tmp_0; + double tmp_1; + REF_LeapMode tmp_2; + smooth_offset_0 = SMT_GetOffset(& local_transmit); + tmp_0 = fabs(smooth_offset_0); + tmp_1 = LCL_GetSysPrecisionAsQuantum(); + smooth_time = tmp_0 > tmp_1; + tmp_2 = REF_GetLeapMode(); + if (tmp_2 == (unsigned int)REF_LeapModeSlew) + if (leap_status == (unsigned int)LEAP_InsertSecond) leap_status = LEAP_Normal; + else + if (leap_status == (unsigned int)LEAP_DeleteSecond) leap_status = LEAP_Normal; + } + } + tmp_4 = random(); + precision = (int)(tmp_4 % (long)10 - (long)30); + } + if (smooth_time) { + int tmp_5; + tmp_5 = UTI_IsZeroTimespec(& local_rx->ts); + if (tmp_5) goto _LAND; + else { + our_ref_id_0 = (unsigned int)0x7F7F01FFUL; + UTI_AddDoubleToTimespec(& our_ref_time_0,smooth_offset_0, + & our_ref_time_0); + UTI_AddDoubleToTimespec(& local_rx->ts,smooth_offset_0,& local_receive); + } + } + else _LAND: local_receive = local_rx->ts; + message.lvm = (unsigned char)((((leap_status << 6) & (unsigned int)0xc0) | (unsigned int)( + (version << 3) & 0x38)) | (my_mode & (unsigned int)0x07)); + if (our_stratum_0 < 16) message.stratum = (unsigned char)our_stratum_0; + else message.stratum = (unsigned char)0; + message.poll = (signed char)my_poll; + message.precision = (signed char)precision; + message.root_delay = UTI_DoubleToNtp32(our_root_delay_0); + message.root_dispersion = UTI_DoubleToNtp32(our_root_dispersion_0); + message.reference_id = htonl(our_ref_id_0); + UTI_TimespecToNtp64(& our_ref_time_0,& message.reference_ts,(NTP_int64 *)0); + if (my_mode != (unsigned int)MODE_CLIENT) goto _LOR_0; + else + if (interleaved) { + _LOR_0: + { + if (interleaved) message.originate_ts = *remote_ntp_rx; + else message.originate_ts = *remote_ntp_tx; + while (1) { + int tmp_6; + UTI_GetNtp64Fuzz(& ts_fuzz,precision); + UTI_TimespecToNtp64(& local_receive,& message.receive_ts,& ts_fuzz); + tmp_6 = UTI_IsZeroNtp64(& message.receive_ts); + if (tmp_6) break; + else { + int tmp_7; + tmp_7 = UTI_IsEqualAnyNtp64(& message.receive_ts, + & message.originate_ts,local_ntp_rx, + (NTP_int64 *)0); + if (! tmp_7) break; + } + } + } + } + else { + UTI_ZeroNtp64(& message.originate_ts); + UTI_ZeroNtp64(& message.receive_ts); + } + while (1) { + int tmp_14; + UTI_GetNtp64Fuzz(& ts_fuzz,precision); + { + double *p = & local_transmit_err; + local_transmit = current_time; + if (p) *p = 0.0; + } + if (smooth_time) UTI_AddDoubleToTimespec(& local_transmit, + smooth_offset_0, + & local_transmit); + length = 48; + if (auth_mode == AUTH_SYMMETRIC) goto _LOR_1; + else + if (auth_mode == AUTH_MSSNTP) { + _LOR_1: + { + int tmp_10; + struct timespec *tmp_11; + if (auth_mode == AUTH_SYMMETRIC) tmp_10 = KEY_GetAuthDelay(key_id); + else tmp_10 = NSD_GetAuthDelay(key_id); + local_transmit.tv_nsec += (long)tmp_10; + UTI_NormaliseTimespec(& local_transmit); + if (interleaved) tmp_11 = & local_tx->ts; + else tmp_11 = & local_transmit; + UTI_TimespecToNtp64(tmp_11,& message.transmit_ts,& ts_fuzz); + if (auth_mode == AUTH_SYMMETRIC) { + if (version == 4) max_auth_len = (4 + 20) - 4; + else max_auth_len = (int)sizeof(message.auth_data); + auth_len = KEY_GenerateAuth(key_id, + (unsigned char const *)(& message), + 48, + (unsigned char *)(& message.auth_data), + max_auth_len); + if (! auth_len) { + __retres = 0; + goto return_label; + } + message.auth_keyid = htonl(key_id); + length = (int)((unsigned long)length + (sizeof(message.auth_keyid) + (unsigned long)auth_len)); + } + else + if (auth_mode == AUTH_MSSNTP) { + int tmp_12; + tmp_12 = NSD_SignAndSendPacket(key_id,& message,where_to,from, + length); + __retres = tmp_12; + goto return_label; + } + } + } + else { + struct timespec *tmp_13; + if (interleaved) tmp_13 = & local_tx->ts; + else tmp_13 = & local_transmit; + UTI_TimespecToNtp64(tmp_13,& message.transmit_ts,& ts_fuzz); + } + tmp_14 = UTI_IsZeroNtp64(& message.transmit_ts); + if (tmp_14) break; + else { + int tmp_15; + tmp_15 = UTI_IsEqualAnyNtp64(& message.transmit_ts, + & message.receive_ts, + & message.originate_ts,local_ntp_tx); + if (! tmp_15) break; + } + } + memcpy((void *)(& req_buffer),(void const *)(& message), + (unsigned long)length); + req_length = length; + ret = 1; + if (local_tx) { + local_tx->ts = local_transmit; + local_tx->err = local_transmit_err; + local_tx->source = NTP_TS_DAEMON; + } + if (local_ntp_rx) *local_ntp_rx = message.receive_ts; + if (local_ntp_tx) *local_ntp_tx = message.transmit_ts; + __retres = ret; + return_label: return __retres; +} + +static void transmit_timeout(void *arg) +{ + NTP_Local_Address local_addr; + int interleaved; + int initial; + int sent; + int tmp_1; + int tmp_3; + NTP_Local_Timestamp *tmp_4; + NTP_int64 *tmp_5; + NTP_int64 *tmp_6; + double tmp_10; + NCR_Instance inst = (struct NCR_Instance_Record *)arg; + inst->tx_timeout_id = (unsigned int)0; + switch (inst->opmode) { + case (OperatingMode)MD_BURST_WAS_ONLINE: ; + if (inst->burst_total_samples_to_go <= 1) inst->opmode = MD_ONLINE; + break; + case (OperatingMode)MD_BURST_WAS_OFFLINE: ; + if (inst->burst_total_samples_to_go <= 0) take_offline(inst); + break; + case (OperatingMode)MD_ONLINE: ; + if (inst->auto_burst) + if (inst->local_poll > inst->minpoll) { + int tmp; + if (1 << (inst->local_poll - inst->minpoll) < 4) tmp = 1 << ( + inst->local_poll - inst->minpoll); + else tmp = 4; + ; + NCR_InitiateSampleBurst(inst,1,tmp); + } + break; + default: break; + } + if (inst->opmode == (unsigned int)MD_OFFLINE) goto return_label; + if (inst->mode == (unsigned int)MODE_CLIENT) { + close_client_socket(inst); + __FC_assert((inst->local_addr.sock_fd == -2) != 0,"ntp_core.c",1181, + "inst->local_addr.sock_fd == INVALID_SOCK_FD"); + if ((int)inst->remote_addr.ip_addr.family != 0) inst->local_addr.sock_fd = 101; + else inst->local_addr.sock_fd = 0; + } + local_addr.ip_addr.family = (unsigned short)0; + local_addr.if_index = -1; + local_addr.sock_fd = inst->local_addr.sock_fd; + if (inst->interleaved) + if (inst->mode == (unsigned int)MODE_CLIENT) { + if (inst->tx_count < (unsigned int)4) tmp_1 = 1; else goto _LAND; + } + else { + _LAND: ; + if (inst->mode == (unsigned int)MODE_ACTIVE) + if (inst->prev_tx_count == (unsigned int)1) + if (inst->tx_count == (unsigned int)0) tmp_1 = 1; else tmp_1 = 0; + else tmp_1 = 0; + else tmp_1 = 0; + } + else tmp_1 = 0; + interleaved = tmp_1; + if (inst->mode == (unsigned int)MODE_ACTIVE) + if (! inst->valid_rx) { + int tmp_2; + tmp_2 = UTI_IsZeroNtp64(& inst->init_remote_ntp_tx); + if (tmp_2) tmp_3 = 0; else tmp_3 = 1; + } + else tmp_3 = 0; + else tmp_3 = 0; + initial = tmp_3; + inst->valid_rx = 0; + inst->updated_init_timestamps = 0; + if (initial) inst->valid_timestamps = 0; + if (inst->presend_minpoll <= inst->local_poll) { + if (! inst->presend_done) { + if (! inst->burst_total_samples_to_go) + if (interleaved) inst->presend_done = 2; else inst->presend_done = 1; + else goto _LAND_1; + } + else goto _LAND_1; + } + else { + _LAND_1: ; + if (inst->presend_done > 0) (inst->presend_done) --; + } + ; + ; + ; + ; + if (initial) tmp_4 = & inst->init_local_rx; else tmp_4 = & inst->local_rx; + if (initial) tmp_5 = & inst->init_remote_ntp_tx; + else tmp_5 = & inst->remote_ntp_tx; + if (initial) tmp_6 = (NTP_int64 *)0; else tmp_6 = & inst->remote_ntp_rx; + ; + ; + ; + ; + ; + ; + sent = transmit_packet(inst->mode,interleaved,inst->local_poll, + inst->version,(int)inst->auth_mode, + inst->auth_key_id,tmp_6,tmp_5,tmp_4, + & inst->local_tx,& inst->local_ntp_rx, + & inst->local_ntp_tx,& inst->remote_addr, + & local_addr); + (inst->tx_count) ++; + if (sent) inst->report.total_tx_count += (uint32_t)1; + if (inst->tx_count >= (unsigned int)2) + if (sent) { + double tmp_8; + int tmp_7; + tmp_7 = SRC_IsSyncPeer(inst->source); + if (tmp_7) tmp_8 = 0.1; else tmp_8 = 0.25; + ; + adjust_poll(inst,tmp_8); + } + if (! sent) + if (inst->auto_offline) NCR_SetConnectivity(inst,SRC_OFFLINE); + switch (inst->opmode) { + case (OperatingMode)MD_BURST_WAS_ONLINE: + if (! sent) { + int tmp_9; + tmp_9 = SRC_IsReachable(inst->source); + if (! tmp_9) break; + } + case (OperatingMode)MD_BURST_WAS_OFFLINE: + (inst->burst_total_samples_to_go) --; + break; + case (OperatingMode)MD_OFFLINE: ; + goto return_label; + default: break; + } + tmp_10 = get_transmit_delay(inst,1,0.0); + ; + restart_timeout(inst,tmp_10); + if (inst->mode == (unsigned int)MODE_CLIENT) inst->rx_timeout_id = (unsigned int)102; + return_label: return; +} + +static int check_packet_format(NTP_Packet *message, int length) +{ + int __retres; + int version; + version = ((int)message->lvm >> 3) & 0x7; + if (version < 1) goto _LOR; + else + if (version > 4) { + _LOR: { + __retres = 0; + goto return_label; + } + } + if (length < 48) goto _LOR_0; + else + if ((unsigned int)length % (unsigned int)4) { + _LOR_0: { + __retres = 0; + goto return_label; + } + } + __retres = 1; + return_label: return __retres; +} + +static int is_zero_data(unsigned char *data, int length) +{ + int __retres; + int i; + i = 0; + while (i < length) { + if (*(data + i)) { + __retres = 0; + goto return_label; + } + i ++; + } + __retres = 1; + return_label: return __retres; +} + +static int check_packet_auth(NTP_Packet *pkt, int length, + AuthenticationMode *auth_mode, uint32_t *key_id) +{ + int __retres; + int i; + int version; + int remainder_0; + int ext_length; + int max_mac_length; + unsigned char *data; + uint32_t id; + version = ((int)pkt->lvm >> 3) & 0x7; + i = 48; + data = (unsigned char *)pkt; + while (1) { + remainder_0 = length - i; + if (version == 4) + if (remainder_0 <= 4 + 20) max_mac_length = 4 + 20; + else max_mac_length = 4 + 64; + else max_mac_length = 4 + 64; + if (remainder_0 >= 4 + 16) + if (remainder_0 <= max_mac_length) { + int tmp; + id = ntohl(*((uint32_t *)(data + i))); + tmp = KEY_CheckAuth(id,(unsigned char const *)pkt,i, + (unsigned char const *)((data + i) + 4), + remainder_0 - 4,max_mac_length - 4); + if (tmp) { + *auth_mode = AUTH_SYMMETRIC; + *key_id = id; + if (version == 4) + if (48 + remainder_0 == length) + if (remainder_0 > 4 + 20) pkt->lvm = (unsigned char)((( + ( + ( + ( + (int)pkt->lvm >> 6) & 0x3) << 6) & 0xc0) | ( + ( + 3 << 3) & 0x38)) | ( + ((int)pkt->lvm & 0x7) & 0x07)); + __retres = 1; + goto return_label; + } + } + if (version == 4) + if (remainder_0 >= 16) { + uint16_t tmp_0; + tmp_0 = ntohs(*((uint16_t *)((data + i) + 2))); + ext_length = (int)tmp_0; + if (ext_length >= 16) + if (ext_length <= remainder_0) + if (ext_length % 4 == 0) { + i += ext_length; + continue; + } + } + break; + } + if (remainder_0 >= 4 + 16) { + *auth_mode = AUTH_SYMMETRIC; + *key_id = ntohl(*((uint32_t *)(data + i))); + if (version == 3) + if (*key_id) + if (remainder_0 == 20) { + int tmp_2; + tmp_2 = is_zero_data((data + i) + 4,remainder_0 - 4); + if (tmp_2) *auth_mode = AUTH_MSSNTP; else goto _LAND; + } + else { + _LAND: ; + if (remainder_0 == 72) { + int tmp_1; + tmp_1 = is_zero_data((data + i) + 8,remainder_0 - 8); + if (tmp_1) *auth_mode = AUTH_MSSNTP_EXT; + } + } + } + else { + *auth_mode = AUTH_NONE; + *key_id = (unsigned int)0; + } + __retres = 0; + return_label: return __retres; +} + +static int check_delay_ratio(NCR_Instance inst, SST_Stats stats, + struct timespec *sample_time, double delay) +{ + int __retres; + double last_sample_ago; + double predicted_offset; + double min_delay; + double skew; + double std_dev; + double max_delay; + double tmp_0; + if (inst->max_delay_ratio < 1.0) { + __retres = 1; + goto return_label; + } + else { + int tmp; + tmp = SST_GetDelayTestData(stats,sample_time,& last_sample_ago, + & predicted_offset,& min_delay,& skew, + & std_dev); + if (! tmp) { + __retres = 1; + goto return_label; + } + } + tmp_0 = LCL_GetMaxClockError(); + max_delay = min_delay * inst->max_delay_ratio + last_sample_ago * ( + skew + tmp_0); + if (delay <= max_delay) { + __retres = 1; + goto return_label; + } + __retres = 0; + return_label: return __retres; +} + +static int check_delay_dev_ratio(NCR_Instance inst, SST_Stats stats, + struct timespec *sample_time, double offset, + double delay) +{ + int __retres; + double last_sample_ago; + double predicted_offset; + double min_delay; + double skew; + double std_dev; + double delta; + double max_delta; + double error_in_estimate; + int tmp; + double tmp_0; + double tmp_1; + tmp = SST_GetDelayTestData(stats,sample_time,& last_sample_ago, + & predicted_offset,& min_delay,& skew,& std_dev); + if (! tmp) { + __retres = 1; + goto return_label; + } + tmp_0 = LCL_GetMaxClockError(); + max_delta = std_dev * inst->max_delay_dev_ratio + last_sample_ago * ( + skew + tmp_0); + delta = (delay - min_delay) / 2.0; + if (delta <= max_delta) { + __retres = 1; + goto return_label; + } + error_in_estimate = offset + predicted_offset; + tmp_1 = fabs(error_in_estimate); + ; + if (tmp_1 - delta > max_delta) { + __retres = 1; + goto return_label; + } + __retres = 0; + return_label: return __retres; +} + +static void process_sample(NCR_Instance inst, NTP_Sample *sample) +{ + double estimated_offset; + double error_in_estimate; + double filtered_sample_ago; + NTP_Sample filtered_sample; + int filtered_samples; + SST_Stats tmp_1; + double tmp_2; + if (inst->filter) { + int tmp; + double tmp_0; + SPF_AccumulateSample(inst->filter,sample); + filtered_samples = SPF_GetNumberOfSamples(inst->filter); + tmp = SPF_GetFilteredSample(inst->filter,& filtered_sample); + if (! tmp) goto return_label; + filtered_sample_ago = UTI_DiffTimespecsToDouble(& sample->time, + & filtered_sample.time); + tmp_0 = UTI_Log2ToDouble(inst->local_poll); + ; + if (filtered_sample_ago > (double)((8 / 2) * filtered_samples) * tmp_0) + goto return_label; + sample = & filtered_sample; + } + ; + tmp_1 = SRC_GetSourcestats(inst->source); + estimated_offset = SST_PredictOffset(tmp_1,& sample->time); + error_in_estimate = fabs(- sample->offset - estimated_offset); + SRC_AccumulateSample(inst->source,sample); + SRC_SelectSource(inst->source); + tmp_2 = get_poll_adj(inst,error_in_estimate, + sample->peer_dispersion + 0.5 * sample->peer_delay); + ; + adjust_poll(inst,tmp_2); + return_label: return; +} + +static int receive_packet(NCR_Instance inst, NTP_Local_Address *local_addr, + NTP_Local_Timestamp *rx_ts, NTP_Packet *message, + int length) +{ + NTP_Sample sample; + SST_Stats stats; + int pkt_leap; + int pkt_version; + uint32_t pkt_refid; + uint32_t pkt_key_id; + double pkt_root_delay; + double pkt_root_dispersion; + AuthenticationMode pkt_auth_mode; + double skew; + double source_freq_lo; + double source_freq_hi; + int test1; + int test2n; + int test2i; + int test2; + int test3; + int test5; + int test6; + int test7; + int interleaved_packet; + int valid_packet; + int synced_packet; + int testA; + int testB; + int testC; + int testD; + int good_packet; + int kod_rate; + NTP_Local_Timestamp local_receive; + NTP_Local_Timestamp local_transmit; + double remote_interval; + double local_interval; + double response_time; + double delay_time; + double precision; + int updated_timestamps; + int tmp_1; + int tmp; + int tmp_3; + int tmp_2; + int tmp_5; + int tmp_6; + int tmp_7; + int tmp_11; + int tmp_8; + int tmp_13; + int tmp_14; + int tmp_15; + int tmp_16; + int tmp_34; + stats = SRC_GetSourcestats(inst->source); + inst->report.total_rx_count += (uint32_t)1; + pkt_leap = ((int)message->lvm >> 6) & 0x3; + pkt_version = ((int)message->lvm >> 3) & 0x7; + pkt_refid = ntohl(message->reference_id); + pkt_root_delay = UTI_Ntp32ToDouble(message->root_delay); + pkt_root_dispersion = UTI_Ntp32ToDouble(message->root_dispersion); + tmp = UTI_CompareNtp64(& message->receive_ts,& inst->remote_ntp_rx); + if (tmp) tmp_1 = 1; + else { + int tmp_0; + tmp_0 = UTI_CompareNtp64(& message->transmit_ts,& inst->remote_ntp_tx); + if (tmp_0) tmp_1 = 1; else tmp_1 = 0; + } + test1 = tmp_1; + tmp_2 = UTI_CompareNtp64(& message->originate_ts,& inst->local_ntp_tx); + if (tmp_2) tmp_3 = 0; else tmp_3 = 1; + test2n = tmp_3; + if (inst->interleaved) { + int tmp_4; + tmp_4 = UTI_CompareNtp64(& message->originate_ts,& inst->local_ntp_rx); + if (tmp_4) tmp_5 = 0; else tmp_5 = 1; + } + else tmp_5 = 0; + test2i = tmp_5; + if (test2n) tmp_6 = 1; + else + if (test2i) tmp_6 = 1; else tmp_6 = 0; + test2 = tmp_6; + if (! test2n) + if (test2i) tmp_7 = 1; else tmp_7 = 0; + else tmp_7 = 0; + interleaved_packet = tmp_7; + tmp_8 = UTI_IsZeroNtp64(& message->originate_ts); + if (tmp_8) tmp_11 = 0; + else { + int tmp_9; + tmp_9 = UTI_IsZeroNtp64(& message->receive_ts); + if (tmp_9) tmp_11 = 0; + else { + int tmp_10; + tmp_10 = UTI_IsZeroNtp64(& message->transmit_ts); + if (tmp_10) tmp_11 = 0; else tmp_11 = 1; + } + } + test3 = tmp_11; + if (inst->auth_mode == (unsigned int)AUTH_NONE) tmp_13 = 1; + else { + int tmp_12; + tmp_12 = check_packet_auth(message,length,& pkt_auth_mode,& pkt_key_id); + if (tmp_12) + if (pkt_auth_mode == inst->auth_mode) + if (pkt_key_id == inst->auth_key_id) tmp_13 = 1; else tmp_13 = 0; + else tmp_13 = 0; + else tmp_13 = 0; + } + test5 = tmp_13; + if (pkt_leap != LEAP_Unsynchronised) + if ((int)message->stratum < 16) + if ((int)message->stratum != 0) tmp_14 = 1; else tmp_14 = 0; + else tmp_14 = 0; + else tmp_14 = 0; + test6 = tmp_14; + test7 = pkt_root_delay / 2.0 + pkt_root_dispersion < 16.0; + if (test1) + if (test2) + if (test3) + if (test5) tmp_15 = 1; else tmp_15 = 0; + else tmp_15 = 0; + else tmp_15 = 0; + else tmp_15 = 0; + valid_packet = tmp_15; + if (valid_packet) + if (test6) + if (test7) tmp_16 = 1; else tmp_16 = 0; + else tmp_16 = 0; + else tmp_16 = 0; + synced_packet = tmp_16; + kod_rate = 0; + if (test1) + if (test2) + if (test5) + if (pkt_leap == LEAP_Unsynchronised) + if ((int)message->stratum == 0) + if ((unsigned long)pkt_refid == 0x52415445UL) kod_rate = 1; + if (synced_packet) { + if (! interleaved_packet) goto _LOR; + else + if (inst->valid_timestamps) { + _LOR: + { + struct timespec remote_receive; + struct timespec remote_transmit; + struct timespec remote_request_receive; + struct timespec local_average; + struct timespec remote_average; + struct timespec prev_remote_transmit; + double prev_remote_poll_interval; + double tmp_20; + double tmp_21; + double tmp_22; + double tmp_25; + double tmp_23; + double tmp_26; + int tmp_27; + int tmp_30; + int tmp_33; + if (interleaved_packet) { + int tmp_17; + tmp_17 = UTI_IsZeroTimespec(& inst->prev_local_tx.ts); + if (tmp_17) { + _LAND: + { + UTI_Ntp64ToTimespec(& message->receive_ts,& remote_receive); + UTI_Ntp64ToTimespec(& inst->remote_ntp_rx, + & remote_request_receive); + local_transmit = inst->local_tx; + } + } + else { + double tmp_18; + double tmp_19; + tmp_18 = UTI_DiffTimespecsToDouble(& inst->local_tx.ts, + & inst->local_rx.ts); + tmp_19 = UTI_DiffTimespecsToDouble(& inst->local_rx.ts, + & inst->prev_local_tx.ts); + if (0.1 * tmp_18 > tmp_19) { + UTI_Ntp64ToTimespec(& inst->remote_ntp_rx,& remote_receive); + remote_request_receive = remote_receive; + local_transmit = inst->prev_local_tx; + } + else goto _LAND; + } + UTI_Ntp64ToTimespec(& message->transmit_ts,& remote_transmit); + UTI_Ntp64ToTimespec(& inst->remote_ntp_tx,& prev_remote_transmit); + local_receive = inst->local_rx; + } + else { + UTI_Ntp64ToTimespec(& message->receive_ts,& remote_receive); + UTI_Ntp64ToTimespec(& message->transmit_ts,& remote_transmit); + UTI_ZeroTimespec(& prev_remote_transmit); + remote_request_receive = remote_receive; + local_receive = *rx_ts; + local_transmit = inst->local_tx; + } + UTI_AverageDiffTimespecs(& remote_receive,& remote_transmit, + & remote_average,& remote_interval); + UTI_AverageDiffTimespecs(& local_transmit.ts,& local_receive.ts, + & local_average,& local_interval); + tmp_20 = UTI_DiffTimespecsToDouble(& remote_transmit, + & remote_request_receive); + response_time = fabs(tmp_20); + tmp_21 = LCL_GetSysPrecisionAsQuantum(); + tmp_22 = UTI_Log2ToDouble((int)message->precision); + precision = tmp_21 + tmp_22; + sample.peer_delay = fabs(local_interval - remote_interval); + if (sample.peer_delay < precision) sample.peer_delay = precision; + sample.offset = UTI_DiffTimespecsToDouble(& remote_average, + & local_average); + sample.offset += inst->offset_correction; + sample.time = local_average; + SST_GetFrequencyRange(stats,& source_freq_lo,& source_freq_hi); + skew = (source_freq_hi - source_freq_lo) / 2.0; + if (local_transmit.err > local_receive.err) tmp_23 = local_transmit.err; + else tmp_23 = local_receive.err; + ; + if (precision > tmp_23) tmp_25 = precision; + else { + double tmp_24; + if (local_transmit.err > local_receive.err) tmp_24 = local_transmit.err; + else tmp_24 = local_receive.err; + tmp_25 = tmp_24; + } + tmp_26 = fabs(local_interval); + sample.peer_dispersion = tmp_25 + skew * tmp_26; + if (inst->remote_poll < inst->prev_local_poll) tmp_27 = inst->remote_poll; + else tmp_27 = inst->prev_local_poll; + prev_remote_poll_interval = UTI_Log2ToDouble(tmp_27); + if (sample.peer_delay - sample.peer_dispersion <= inst->max_delay) + if (precision <= inst->max_delay) + if (inst->mode == (unsigned int)MODE_CLIENT) { + if (response_time > 4.0) tmp_30 = 0; else goto _LAND_0; + } + else { + _LAND_0: ; + if (inst->mode == (unsigned int)MODE_ACTIVE) + if (interleaved_packet) + if (sample.peer_delay > 0.5 * prev_remote_poll_interval) + tmp_30 = 0; + else { + int tmp_28; + tmp_28 = UTI_CompareNtp64(& message->receive_ts, + & message->transmit_ts); + if (tmp_28 <= 0) tmp_30 = 0; + else + if (inst->remote_poll <= inst->prev_local_poll) { + double tmp_29; + tmp_29 = UTI_DiffTimespecsToDouble(& remote_transmit, + & prev_remote_transmit); + ; + if (tmp_29 > 1.5 * prev_remote_poll_interval) + tmp_30 = 0; + else tmp_30 = 1; + } + else tmp_30 = 1; + } + else tmp_30 = 1; + else tmp_30 = 1; + } + else tmp_30 = 0; + else tmp_30 = 0; + testA = tmp_30; + testB = check_delay_ratio(inst,stats,& sample.time, + sample.peer_delay); + testC = check_delay_dev_ratio(inst,stats,& sample.time, + sample.offset,sample.peer_delay); + if ((int)message->stratum <= 1) tmp_33 = 1; + else { + REF_Mode tmp_31; + tmp_31 = REF_GetMode(); + if (tmp_31 != (unsigned int)REF_ModeNormal) tmp_33 = 1; + else { + uint32_t tmp_32; + tmp_32 = UTI_IPToRefid(& local_addr->ip_addr); + ; + if (pkt_refid != tmp_32) tmp_33 = 1; else tmp_33 = 0; + } + } + testD = tmp_33; + } + } + else goto _LAND_1; + } + else { + _LAND_1: + { + response_time = 0.0; + local_interval = response_time; + remote_interval = local_interval; + sample.peer_dispersion = 0.0; + sample.peer_delay = sample.peer_dispersion; + sample.offset = sample.peer_delay; + sample.time = rx_ts->ts; + local_receive = *rx_ts; + local_transmit = inst->local_tx; + testD = 0; + testC = testD; + testB = testC; + testA = testB; + } + } + if (testA) + if (testB) + if (testC) + if (testD) tmp_34 = 1; else tmp_34 = 0; + else tmp_34 = 0; + else tmp_34 = 0; + else tmp_34 = 0; + good_packet = tmp_34; + sample.root_delay = pkt_root_delay + sample.peer_delay; + sample.root_dispersion = pkt_root_dispersion + sample.peer_dispersion; + if ((int)message->stratum > inst->min_stratum) sample.stratum = (int)message->stratum; + else sample.stratum = inst->min_stratum; + sample.leap = (enum __anonenum_NTP_Leap_7)pkt_leap; + if (inst->mode == (unsigned int)MODE_CLIENT) { + if (valid_packet) { + if (! inst->valid_rx) goto _LOR_2; else goto _LAND_9; + } + else goto _LAND_9; + } + else { + _LAND_9: ; + if (inst->mode == (unsigned int)MODE_ACTIVE) { + if (valid_packet) { + if (! inst->valid_rx) goto _LOR_2; + else { + int tmp_37; + tmp_37 = UTI_CompareNtp64(& inst->remote_ntp_tx, + & message->transmit_ts); + if (tmp_37 < 0) { + _LOR_2: + { + inst->remote_ntp_rx = message->receive_ts; + inst->remote_ntp_tx = message->transmit_ts; + inst->local_rx = *rx_ts; + inst->valid_timestamps = synced_packet; + UTI_ZeroNtp64(& inst->init_remote_ntp_tx); + zero_local_timestamp(& inst->init_local_rx); + inst->updated_init_timestamps = 0; + updated_timestamps = 2; + if (interleaved_packet) inst->prev_local_tx = inst->local_tx; + else zero_local_timestamp(& inst->prev_local_tx); + } + } + else goto _LAND_7; + } + } + else goto _LAND_7; + } + else { + _LAND_7: ; + if (inst->mode == (unsigned int)MODE_ACTIVE) { + if (test1) { + int tmp_35; + tmp_35 = UTI_IsZeroNtp64(& message->transmit_ts); + if (tmp_35) goto _LAND_5; + else + if (test5) { + if (! inst->updated_init_timestamps) goto _LOR_0; + else { + int tmp_36; + tmp_36 = UTI_CompareNtp64(& inst->init_remote_ntp_tx, + & message->transmit_ts); + if (tmp_36 < 0) { + _LOR_0: + { + inst->init_remote_ntp_tx = message->transmit_ts; + inst->init_local_rx = *rx_ts; + inst->updated_init_timestamps = 1; + updated_timestamps = 1; + } + } + else goto _LAND_5; + } + } + else goto _LAND_5; + } + else goto _LAND_5; + } + else _LAND_5: updated_timestamps = 0; + } + } + if (inst->valid_rx) { + test3 = 0; + test2 = test3; + good_packet = 0; + synced_packet = good_packet; + valid_packet = synced_packet; + } + else + if (valid_packet) { + if (inst->presend_done) { + testA = 0; + good_packet = 0; + } + inst->valid_rx = 1; + } + if ((unsigned long)((unsigned int)local_receive.source) >= sizeof(tss_chars)) + __FC_assert(0 != 0,"ntp_core.c",1798,"0"); + else + if ((unsigned long)((unsigned int)local_transmit.source) >= sizeof(tss_chars)) + __FC_assert(0 != 0,"ntp_core.c",1798,"0"); + if (valid_packet) { + inst->remote_poll = (int)message->poll; + if ((int)message->stratum != 0) inst->remote_stratum = (int)message->stratum; + else inst->remote_stratum = 16; + inst->prev_local_poll = inst->local_poll; + inst->prev_tx_count = inst->tx_count; + inst->tx_count = (unsigned int)0; + if (good_packet) { + process_sample(inst,& sample); + switch (inst->opmode) { + case (OperatingMode)MD_BURST_WAS_ONLINE: + case (OperatingMode)MD_BURST_WAS_OFFLINE: + (inst->burst_good_samples_to_go) --; + if (inst->burst_good_samples_to_go <= 0) + if (inst->opmode == (unsigned int)MD_BURST_WAS_ONLINE) inst->opmode = MD_ONLINE; + else take_offline(inst); + break; + default: break; + } + } + else adjust_poll(inst,0.1); + close_client_socket(inst); + inst->local_addr.ip_addr = local_addr->ip_addr; + inst->local_addr.if_index = local_addr->if_index; + if (inst->opmode != (unsigned int)MD_OFFLINE) { + double tmp_44; + tmp_44 = UTI_DiffTimespecsToDouble(& inst->local_rx.ts, + & inst->local_tx.ts); + ; + delay_time = get_transmit_delay(inst,0,tmp_44); + if (kod_rate) { + char *tmp_45; + double tmp_46; + tmp_45 = UTI_IPToString(& inst->remote_addr.ip_addr); + { + char *__va_arg0 = tmp_45; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN,"Received KoD RATE from %s", + (void * const *)(__va_args)); + } + tmp_46 = UTI_Log2ToDouble(inst->local_poll); + delay_time += (double)4 * tmp_46; + if (inst->opmode == (unsigned int)MD_BURST_WAS_OFFLINE) goto _LOR_3; + else + if (inst->opmode == (unsigned int)MD_BURST_WAS_ONLINE) _LOR_3: + inst->burst_good_samples_to_go = 0; + } + __FC_assert(inst->tx_timeout_id != (SCH_TimeoutID)0,"ntp_core.c",1883, + "inst->tx_timeout_id"); + restart_timeout(inst,delay_time); + } + inst->report.remote_addr = inst->remote_addr.ip_addr; + inst->report.local_addr = inst->local_addr.ip_addr; + inst->report.remote_port = inst->remote_addr.port; + inst->report.leap = (unsigned char)pkt_leap; + inst->report.version = (unsigned char)pkt_version; + inst->report.mode = (unsigned char)((int)message->lvm & 0x7); + inst->report.stratum = message->stratum; + inst->report.poll = message->poll; + inst->report.precision = message->precision; + inst->report.root_delay = pkt_root_delay; + inst->report.root_dispersion = pkt_root_dispersion; + inst->report.ref_id = pkt_refid; + UTI_Ntp64ToTimespec(& message->reference_ts,& inst->report.ref_time); + inst->report.offset = sample.offset; + inst->report.peer_delay = sample.peer_delay; + inst->report.peer_dispersion = sample.peer_dispersion; + inst->report.response_time = response_time; + inst->report.jitter_asymmetry = SST_GetJitterAsymmetry(stats); + inst->report.tests = (unsigned short)((((((((((((((((((test1 << 1) | test2) << 1) | test3) << 1) | test5) << 1) | test6) << 1) | test7) << 1) | testA) << 1) | testB) << 1) | testC) << 1) | testD); + inst->report.interleaved = interleaved_packet; + inst->report.authenticated = inst->auth_mode != (unsigned int)AUTH_NONE; + inst->report.tx_tss_char = tss_chars[local_transmit.source]; + inst->report.rx_tss_char = tss_chars[local_receive.source]; + inst->report.total_valid_count += (uint32_t)1; + } + if (logfileid_1 != -1) + if (log_raw_measurements) goto _LOR_4; + else + if (synced_packet) { + _LOR_4: + { + int tmp_47; + char *tmp_48; + char *tmp_49; + ; + ; + if (interleaved_packet) tmp_47 = 'I'; else tmp_47 = 'B'; + ; + ; + ; + ; + ; + ; + ; + ; + ; + ; + ; + ; + ; + ; + ; + ; + ; + ; + ; + ; + ; + ; + tmp_48 = UTI_IPToString(& inst->remote_addr.ip_addr); + tmp_49 = UTI_TimeToLogForm(sample.time.tv_sec); + ; + { + char *__va_arg0_98 = tmp_49; + char *__va_arg1 = tmp_48; + int __va_arg2 = (int)leap_chars[pkt_leap]; + int __va_arg3 = (int)message->stratum; + int __va_arg4 = test1; + int __va_arg5 = test2; + int __va_arg6 = test3; + int __va_arg7 = test5; + int __va_arg8 = test6; + int __va_arg9 = test7; + int __va_arg10 = testA; + int __va_arg11 = testB; + int __va_arg12 = testC; + int __va_arg13 = testD; + int __va_arg14 = inst->local_poll; + int __va_arg15 = (int)message->poll; + double __va_arg16 = inst->poll_score; + double __va_arg17 = sample.offset; + double __va_arg18 = sample.peer_delay; + double __va_arg19 = sample.peer_dispersion; + double __va_arg20 = pkt_root_delay; + double __va_arg21 = pkt_root_dispersion; + uint32_t __va_arg22 = pkt_refid; + int __va_arg23 = (int)message->lvm & 0x7; + int __va_arg24 = tmp_47; + int __va_arg25 = (int)tss_chars[local_transmit.source]; + int __va_arg26 = (int)tss_chars[local_receive.source]; + void *__va_args_126[27] = + {& __va_arg0_98, + & __va_arg1, + & __va_arg2, + & __va_arg3, + & __va_arg4, + & __va_arg5, + & __va_arg6, + & __va_arg7, + & __va_arg8, + & __va_arg9, + & __va_arg10, + & __va_arg11, + & __va_arg12, + & __va_arg13, + & __va_arg14, + & __va_arg15, + & __va_arg16, + & __va_arg17, + & __va_arg18, + & __va_arg19, + & __va_arg20, + & __va_arg21, + & __va_arg22, + & __va_arg23, + & __va_arg24, + & __va_arg25, + & __va_arg26}; + LOG_FileWrite(logfileid_1, + "%s %-15s %1c %2d %1d%1d%1d %1d%1d%1d %1d%1d%1d%d %2d %2d %4.2f %10.3e %10.3e %10.3e %10.3e %10.3e %08X %1d%1c %1c %1c", + (void * const *)(__va_args_126)); + } + } + } + return good_packet; +} + +int NCR_ProcessRxKnown(NCR_Instance inst, NTP_Local_Address *local_addr, + NTP_Local_Timestamp *rx_ts, NTP_Packet *message, + int length) +{ + int __retres; + int pkt_mode; + int proc_packet; + int proc_as_unknown; + int tmp; + tmp = check_packet_format(message,length); + if (! tmp) { + __retres = 0; + goto return_label; + } + pkt_mode = (int)message->lvm & 0x7; + proc_packet = 0; + proc_as_unknown = 0; + switch (pkt_mode) { + case MODE_ACTIVE: ; + switch (inst->mode) { + case (NTP_Mode)MODE_ACTIVE: proc_packet = 1; + break; + case (NTP_Mode)MODE_PASSIVE: break; + case (NTP_Mode)MODE_CLIENT: proc_as_unknown = 1; + break; + default: break; + } + break; + case MODE_PASSIVE: ; + switch (inst->mode) { + case (NTP_Mode)MODE_ACTIVE: proc_packet = 1; + break; + case (NTP_Mode)MODE_PASSIVE: break; + default: break; + } + break; + case MODE_CLIENT: proc_as_unknown = 1; + break; + case MODE_SERVER: ; + switch (inst->mode) { + case (NTP_Mode)MODE_CLIENT: proc_packet = 1; + break; + default: break; + } + break; + case MODE_BROADCAST: break; + default: break; + } + if (proc_packet) { + int tmp_0; + if (local_addr->sock_fd != inst->local_addr.sock_fd) { + __retres = 0; + goto return_label; + } + if (inst->opmode == (unsigned int)MD_OFFLINE) goto _LOR; + else + if (inst->tx_suspended) { + _LOR: { + __retres = 0; + goto return_label; + } + } + tmp_0 = receive_packet(inst,local_addr,rx_ts,message,length); + __retres = tmp_0; + goto return_label; + } + else + if (proc_as_unknown) { + NCR_ProcessRxUnknown(& inst->remote_addr,local_addr,rx_ts,message, + length); + __retres = 0; + goto return_label; + } + else { + __retres = 0; + goto return_label; + } + return_label: return __retres; +} + +void NCR_ProcessRxUnknown(NTP_Remote_Address *remote_addr, + NTP_Local_Address *local_addr, + NTP_Local_Timestamp *rx_ts, NTP_Packet *message, + int length) +{ + NTP_Mode pkt_mode; + NTP_Mode my_mode; + NTP_int64 *local_ntp_rx; + NTP_int64 *local_ntp_tx; + NTP_Local_Timestamp local_tx; + NTP_Local_Timestamp *tx_ts; + int pkt_version; + int valid_auth; + int log_index; + int interleaved; + int poll; + AuthenticationMode auth_mode; + uint32_t key_id; + int tmp; + int tmp_1; + if (! (local_addr->sock_fd == 100)) goto return_label; + tmp = check_packet_format(message,length); + if (! tmp) goto return_label; + tmp_1 = ADF_IsAllowed(access_auth_table,& remote_addr->ip_addr); + if (! tmp_1) goto return_label; + pkt_mode = (enum __anonenum_NTP_Mode_8)((int)message->lvm & 0x7); + pkt_version = ((int)message->lvm >> 3) & 0x7; + switch (pkt_mode) { + case (NTP_Mode)MODE_ACTIVE: my_mode = MODE_PASSIVE; + break; + case (NTP_Mode)MODE_CLIENT: my_mode = MODE_SERVER; + break; + case (NTP_Mode)MODE_UNDEFINED: ; + if (pkt_version == 1) + if ((int)remote_addr->port != 123) { + my_mode = MODE_SERVER; + break; + } + default: ; + goto return_label; + } + log_index = CLG_LogNTPAccess(& remote_addr->ip_addr,& rx_ts->ts); + if (log_index >= 0) { + int tmp_2; + tmp_2 = CLG_LimitNTPResponseRate(log_index); + if (tmp_2) goto return_label; + } + valid_auth = check_packet_auth(message,length,& auth_mode,& key_id); + if (! valid_auth) + switch (auth_mode) { + case (AuthenticationMode)AUTH_NONE: break; + case (AuthenticationMode)AUTH_MSSNTP: break; + default: ; + goto return_label; + } + local_ntp_tx = (NTP_int64 *)0; + local_ntp_rx = local_ntp_tx; + tx_ts = (NTP_Local_Timestamp *)0; + interleaved = 0; + if (log_index >= 0) { + int tmp_6; + int tmp_3; + CLG_GetNtpTimestamps(log_index,& local_ntp_rx,& local_ntp_tx); + tmp_3 = UTI_IsZeroNtp64(local_ntp_rx); + if (tmp_3) tmp_6 = 0; + else { + int tmp_4; + tmp_4 = UTI_CompareNtp64(& message->originate_ts,local_ntp_rx); + if (tmp_4) tmp_6 = 0; + else { + int tmp_5; + tmp_5 = UTI_CompareNtp64(& message->receive_ts, + & message->transmit_ts); + if (tmp_5) tmp_6 = 1; else tmp_6 = 0; + } + } + interleaved = tmp_6; + if (interleaved) { + UTI_Ntp64ToTimespec(local_ntp_tx,& local_tx.ts); + tx_ts = & local_tx; + } + else { + UTI_ZeroNtp64(local_ntp_tx); + local_ntp_tx = (NTP_int64 *)0; + } + } + poll = CLG_GetNtpMinPoll(); + if (poll > (int)message->poll) poll = poll; else poll = (int)message->poll; + transmit_packet(my_mode,interleaved,poll,pkt_version,(int)auth_mode,key_id, + & message->receive_ts,& message->transmit_ts,rx_ts,tx_ts, + local_ntp_rx,(NTP_int64 *)0,remote_addr,local_addr); + if (tx_ts) UTI_TimespecToNtp64(& tx_ts->ts,local_ntp_tx,(NTP_int64 *)0); + return_label: return; +} + +static void update_tx_timestamp(NTP_Local_Timestamp *tx_ts, + NTP_Local_Timestamp *new_tx_ts, + NTP_int64 *local_ntp_rx, + NTP_int64 *local_ntp_tx, NTP_Packet *message) +{ + double delay; + int tmp; + tmp = UTI_IsZeroTimespec(& tx_ts->ts); + if (tmp) goto return_label; + if (local_ntp_rx) { + int tmp_0; + tmp_0 = UTI_CompareNtp64(& message->receive_ts,local_ntp_rx); + if (tmp_0) goto _LOR; else goto _LAND; + } + else { + _LAND: ; + if (local_ntp_tx) { + int tmp_1; + tmp_1 = UTI_CompareNtp64(& message->transmit_ts,local_ntp_tx); + if (tmp_1) _LOR: goto return_label; + } + } + delay = UTI_DiffTimespecsToDouble(& new_tx_ts->ts,& tx_ts->ts); + if (delay < 0.0) goto _LOR_0; + else + if (delay > 1.0) _LOR_0: goto return_label; + *tx_ts = *new_tx_ts; + return_label: return; +} + +void NCR_ProcessTxKnown(NCR_Instance inst, NTP_Local_Address *local_addr, + NTP_Local_Timestamp *tx_ts, NTP_Packet *message, + int length) +{ + NTP_Mode pkt_mode; + int tmp; + tmp = check_packet_format(message,length); + if (! tmp) goto return_label; + pkt_mode = (enum __anonenum_NTP_Mode_8)((int)message->lvm & 0x7); + if (pkt_mode != (unsigned int)MODE_CLIENT) + if (pkt_mode != (unsigned int)MODE_ACTIVE) { + NCR_ProcessTxUnknown(& inst->remote_addr,local_addr,tx_ts,message, + length); + goto return_label; + } + update_tx_timestamp(& inst->local_tx,tx_ts,& inst->local_ntp_rx, + & inst->local_ntp_tx,message); + return_label: return; +} + +void NCR_ProcessTxUnknown(NTP_Remote_Address *remote_addr, + NTP_Local_Address *local_addr, + NTP_Local_Timestamp *tx_ts, NTP_Packet *message, + int length) +{ + NTP_int64 *local_ntp_rx; + NTP_int64 *local_ntp_tx; + NTP_Local_Timestamp local_tx; + int log_index; + int tmp; + int tmp_1; + tmp = check_packet_format(message,length); + if (! tmp) goto return_label; + if (((int)message->lvm & 0x7) == MODE_BROADCAST) goto return_label; + log_index = CLG_GetClientIndex(& remote_addr->ip_addr); + if (log_index < 0) goto return_label; + tmp_1 = SMT_IsEnabled(); + if (tmp_1) + if (((int)message->lvm & 0x7) == MODE_SERVER) { + double tmp_0; + ; + tmp_0 = SMT_GetOffset(& tx_ts->ts); + ; + UTI_AddDoubleToTimespec(& tx_ts->ts,tmp_0,& tx_ts->ts); + } + CLG_GetNtpTimestamps(log_index,& local_ntp_rx,& local_ntp_tx); + UTI_Ntp64ToTimespec(local_ntp_tx,& local_tx.ts); + update_tx_timestamp(& local_tx,tx_ts,local_ntp_rx,(NTP_int64 *)0,message); + UTI_TimespecToNtp64(& local_tx.ts,local_ntp_tx,(NTP_int64 *)0); + return_label: return; +} + +void NCR_SlewTimes(NCR_Instance inst, struct timespec *when, double dfreq, + double doffset) +{ + double delta; + int tmp; + int tmp_0; + int tmp_1; + int tmp_2; + tmp = UTI_IsZeroTimespec(& inst->local_rx.ts); + if (! tmp) UTI_AdjustTimespec(& inst->local_rx.ts,when,& inst->local_rx.ts, + & delta,dfreq,doffset); + tmp_0 = UTI_IsZeroTimespec(& inst->local_tx.ts); + if (! tmp_0) UTI_AdjustTimespec(& inst->local_tx.ts,when, + & inst->local_tx.ts,& delta,dfreq,doffset); + tmp_1 = UTI_IsZeroTimespec(& inst->prev_local_tx.ts); + if (! tmp_1) UTI_AdjustTimespec(& inst->prev_local_tx.ts,when, + & inst->prev_local_tx.ts,& delta,dfreq, + doffset); + tmp_2 = UTI_IsZeroTimespec(& inst->init_local_rx.ts); + if (! tmp_2) UTI_AdjustTimespec(& inst->init_local_rx.ts,when, + & inst->init_local_rx.ts,& delta,dfreq, + doffset); + if (inst->filter) SPF_SlewSamples(inst->filter,when,dfreq,doffset); + return; +} + +void NCR_SetConnectivity(NCR_Instance inst, SRC_Connectivity connectivity) +{ + char *s; + s = UTI_IPToString(& inst->remote_addr.ip_addr); + if (connectivity == (unsigned int)SRC_MAYBE_ONLINE) { + int tmp; + tmp = NIO_IsServerConnectable(& inst->remote_addr); + if (tmp) connectivity = SRC_ONLINE; else connectivity = SRC_OFFLINE; + } + switch (connectivity) { + case (SRC_Connectivity)SRC_ONLINE: ; + switch (inst->opmode) { + case (OperatingMode)MD_ONLINE: break; + case (OperatingMode)MD_OFFLINE: + { + char *__va_arg0 = s; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_INFO,"Source %s online",(void * const *)(__va_args)); + } + inst->opmode = MD_ONLINE; + NCR_ResetInstance(inst); + start_initial_timeout(inst); + break; + case (OperatingMode)MD_BURST_WAS_ONLINE: break; + case (OperatingMode)MD_BURST_WAS_OFFLINE: + inst->opmode = MD_BURST_WAS_ONLINE; + { + char *__va_arg0_8 = s; + void *__va_args_10[1] = {& __va_arg0_8}; + LOG_Message(LOGS_INFO,"Source %s online", + (void * const *)(__va_args_10)); + } + break; + default: __FC_assert(0 != 0,"ntp_core.c",2344,"0"); + } + break; + case (SRC_Connectivity)SRC_OFFLINE: ; + switch (inst->opmode) { + case (OperatingMode)MD_ONLINE: + { + char *__va_arg0_12 = s; + void *__va_args_14[1] = {& __va_arg0_12}; + LOG_Message(LOGS_INFO,"Source %s offline", + (void * const *)(__va_args_14)); + } + take_offline(inst); + break; + case (OperatingMode)MD_OFFLINE: break; + case (OperatingMode)MD_BURST_WAS_ONLINE: + inst->opmode = MD_BURST_WAS_OFFLINE; + { + char *__va_arg0_16 = s; + void *__va_args_18[1] = {& __va_arg0_16}; + LOG_Message(LOGS_INFO,"Source %s offline", + (void * const *)(__va_args_18)); + } + break; + case (OperatingMode)MD_BURST_WAS_OFFLINE: break; + default: __FC_assert(0 != 0,"ntp_core.c",2362,"0"); + } + break; + default: __FC_assert(0 != 0,"ntp_core.c",2366,"0"); + } + return; +} + +void NCR_ModifyMinpoll(NCR_Instance inst, int new_minpoll) +{ + char *tmp; + if (new_minpoll < -6) goto return_label; + else + if (new_minpoll > 24) goto return_label; + inst->minpoll = new_minpoll; + ; + tmp = UTI_IPToString(& inst->remote_addr.ip_addr); + { + char *__va_arg0 = tmp; + int __va_arg1 = new_minpoll; + void *__va_args[2] = {& __va_arg0, & __va_arg1}; + LOG_Message(LOGS_INFO,"Source %s new minpoll %d", + (void * const *)(__va_args)); + } + if (inst->maxpoll < inst->minpoll) NCR_ModifyMaxpoll(inst,inst->minpoll); + return_label: return; +} + +void NCR_ModifyMaxpoll(NCR_Instance inst, int new_maxpoll) +{ + char *tmp; + if (new_maxpoll < -6) goto return_label; + else + if (new_maxpoll > 24) goto return_label; + inst->maxpoll = new_maxpoll; + ; + tmp = UTI_IPToString(& inst->remote_addr.ip_addr); + { + char *__va_arg0 = tmp; + int __va_arg1 = new_maxpoll; + void *__va_args[2] = {& __va_arg0, & __va_arg1}; + LOG_Message(LOGS_INFO,"Source %s new maxpoll %d", + (void * const *)(__va_args)); + } + if (inst->minpoll > inst->maxpoll) NCR_ModifyMinpoll(inst,inst->maxpoll); + return_label: return; +} + +void NCR_ModifyMaxdelay(NCR_Instance inst, double new_max_delay) +{ + double tmp; + char *tmp_1; + if (new_max_delay < 1.0e3) tmp = new_max_delay; else tmp = 1.0e3; + if (0.0 > tmp) inst->max_delay = 0.0; + else { + double tmp_0; + if (new_max_delay < 1.0e3) tmp_0 = new_max_delay; else tmp_0 = 1.0e3; + inst->max_delay = tmp_0; + } + ; + tmp_1 = UTI_IPToString(& inst->remote_addr.ip_addr); + { + char *__va_arg0 = tmp_1; + double __va_arg1 = inst->max_delay; + void *__va_args[2] = {& __va_arg0, & __va_arg1}; + LOG_Message(LOGS_INFO,"Source %s new maxdelay %f", + (void * const *)(__va_args)); + } + return; +} + +void NCR_ModifyMaxdelayratio(NCR_Instance inst, double new_max_delay_ratio) +{ + double tmp; + char *tmp_1; + if (new_max_delay_ratio < 1.0e6) tmp = new_max_delay_ratio; + else tmp = 1.0e6; + if (0.0 > tmp) inst->max_delay_ratio = 0.0; + else { + double tmp_0; + if (new_max_delay_ratio < 1.0e6) tmp_0 = new_max_delay_ratio; + else tmp_0 = 1.0e6; + inst->max_delay_ratio = tmp_0; + } + ; + tmp_1 = UTI_IPToString(& inst->remote_addr.ip_addr); + { + char *__va_arg0 = tmp_1; + double __va_arg1 = inst->max_delay_ratio; + void *__va_args[2] = {& __va_arg0, & __va_arg1}; + LOG_Message(LOGS_INFO,"Source %s new maxdelayratio %f", + (void * const *)(__va_args)); + } + return; +} + +void NCR_ModifyMaxdelaydevratio(NCR_Instance inst, + double new_max_delay_dev_ratio) +{ + double tmp; + char *tmp_1; + if (new_max_delay_dev_ratio < 1.0e6) tmp = new_max_delay_dev_ratio; + else tmp = 1.0e6; + if (0.0 > tmp) inst->max_delay_dev_ratio = 0.0; + else { + double tmp_0; + if (new_max_delay_dev_ratio < 1.0e6) tmp_0 = new_max_delay_dev_ratio; + else tmp_0 = 1.0e6; + inst->max_delay_dev_ratio = tmp_0; + } + ; + tmp_1 = UTI_IPToString(& inst->remote_addr.ip_addr); + { + char *__va_arg0 = tmp_1; + double __va_arg1 = inst->max_delay_dev_ratio; + void *__va_args[2] = {& __va_arg0, & __va_arg1}; + LOG_Message(LOGS_INFO,"Source %s new maxdelaydevratio %f", + (void * const *)(__va_args)); + } + return; +} + +void NCR_ModifyMinstratum(NCR_Instance inst, int new_min_stratum) +{ + char *tmp; + inst->min_stratum = new_min_stratum; + ; + tmp = UTI_IPToString(& inst->remote_addr.ip_addr); + { + char *__va_arg0 = tmp; + int __va_arg1 = new_min_stratum; + void *__va_args[2] = {& __va_arg0, & __va_arg1}; + LOG_Message(LOGS_INFO,"Source %s new minstratum %d", + (void * const *)(__va_args)); + } + return; +} + +void NCR_ModifyPolltarget(NCR_Instance inst, int new_poll_target) +{ + char *tmp; + inst->poll_target = new_poll_target; + ; + tmp = UTI_IPToString(& inst->remote_addr.ip_addr); + { + char *__va_arg0 = tmp; + int __va_arg1 = new_poll_target; + void *__va_args[2] = {& __va_arg0, & __va_arg1}; + LOG_Message(LOGS_INFO,"Source %s new polltarget %d", + (void * const *)(__va_args)); + } + return; +} + +void NCR_InitiateSampleBurst(NCR_Instance inst, int n_good_samples, + int n_total_samples) +{ + if (inst->mode == (unsigned int)MODE_CLIENT) + switch (inst->opmode) { + case (OperatingMode)MD_BURST_WAS_OFFLINE: + case (OperatingMode)MD_BURST_WAS_ONLINE: + break; + case (OperatingMode)MD_ONLINE: case (OperatingMode)MD_OFFLINE: + if (inst->opmode == (unsigned int)MD_ONLINE) inst->opmode = MD_BURST_WAS_ONLINE; + else inst->opmode = MD_BURST_WAS_OFFLINE; + inst->burst_good_samples_to_go = n_good_samples; + inst->burst_total_samples_to_go = n_total_samples; + start_initial_timeout(inst); + break; + default: __FC_assert(0 != 0,"ntp_core.c",2475,"0"); + break; + } + return; +} + +void NCR_ReportSource(NCR_Instance inst, RPT_SourceReport *report, + struct timespec *now) +{ + report->poll = get_transmit_poll(inst); + switch (inst->mode) { + case (NTP_Mode)MODE_CLIENT: report->mode = RPT_NTP_CLIENT; + break; + case (NTP_Mode)MODE_ACTIVE: report->mode = RPT_NTP_PEER; + break; + default: __FC_assert(0 != 0,"ntp_core.c",2497,"0"); + } + return; +} + +void NCR_GetNTPReport(NCR_Instance inst, RPT_NTPReport *report) +{ + *report = inst->report; + return; +} + +int NCR_AddAccessRestriction(IPAddr *ip_addr, int subnet_bits, int allow, + int all) +{ + int __retres; + ADF_Status status; + if (allow) + if (all) status = ADF_AllowAll(access_auth_table,ip_addr,subnet_bits); + else status = ADF_Allow(access_auth_table,ip_addr,subnet_bits); + else + if (all) status = ADF_DenyAll(access_auth_table,ip_addr,subnet_bits); + else status = ADF_Deny(access_auth_table,ip_addr,subnet_bits); + if (status != (unsigned int)ADF_SUCCESS) { + __retres = 0; + goto return_label; + } + if (allow) { + NTP_Remote_Address remote_addr; + if (server_sock_fd4_0 == -2) { + int tmp; + tmp = ADF_IsAnyAllowed(access_auth_table,1); + if (tmp) { + remote_addr.ip_addr.family = (unsigned short)1; + if ((int)remote_addr.ip_addr.family != 0) server_sock_fd4_0 = 100; + else server_sock_fd4_0 = 0; + } + } + if (server_sock_fd6 == -2) { + int tmp_0; + tmp_0 = ADF_IsAnyAllowed(access_auth_table,2); + if (tmp_0) { + remote_addr.ip_addr.family = (unsigned short)2; + if ((int)remote_addr.ip_addr.family != 0) server_sock_fd6 = 100; + else server_sock_fd6 = 0; + } + } + } + else { + if (server_sock_fd4_0 != -2) { + int tmp_1; + tmp_1 = ADF_IsAnyAllowed(access_auth_table,1); + if (! tmp_1) { + __FC_assert((server_sock_fd4_0 == 100) != 0,"ntp_core.c",2550, + "server_sock_fd4 == 100"); + server_sock_fd4_0 = -2; + } + } + if (server_sock_fd6 != -2) { + int tmp_2; + tmp_2 = ADF_IsAnyAllowed(access_auth_table,2); + if (! tmp_2) { + __FC_assert((server_sock_fd6 == 100) != 0,"ntp_core.c",2555, + "server_sock_fd6 == 100"); + server_sock_fd6 = -2; + } + } + } + __retres = 1; + return_label: return __retres; +} + +int NCR_CheckAccessRestriction(IPAddr *ip_addr) +{ + int tmp; + tmp = ADF_IsAllowed(access_auth_table,ip_addr); + return tmp; +} + +void NCR_IncrementActivityCounters(NCR_Instance inst, int *online, + int *offline, int *burst_online, + int *burst_offline) +{ + switch (inst->opmode) { + case (OperatingMode)MD_BURST_WAS_OFFLINE: (*burst_offline) ++; + break; + case (OperatingMode)MD_BURST_WAS_ONLINE: (*burst_online) ++; + break; + case (OperatingMode)MD_ONLINE: (*online) ++; + break; + case (OperatingMode)MD_OFFLINE: (*offline) ++; + break; + default: __FC_assert(0 != 0,"ntp_core.c",2591,"0"); + break; + } + return; +} + +NTP_Remote_Address *NCR_GetRemoteAddress(NCR_Instance inst) +{ + NTP_Remote_Address *__retres; + __retres = & inst->remote_addr; + return __retres; +} + +uint32_t NCR_GetLocalRefid(NCR_Instance inst) +{ + uint32_t tmp; + tmp = UTI_IPToRefid(& inst->local_addr.ip_addr); + return tmp; +} + +int NCR_IsSyncPeer(NCR_Instance inst) +{ + int tmp; + tmp = SRC_IsSyncPeer(inst->source); + return tmp; +} + +static void broadcast_timeout(void *arg) +{ + BroadcastDestination *destination; + NTP_int64 orig_ts; + NTP_Local_Timestamp recv_ts; + int poll; + double tmp; + double tmp_0; + double tmp_1; + destination = (BroadcastDestination *)ARR_GetElement(broadcasts_0, + (unsigned int)((long)arg)); + tmp = log((double)destination->interval); + tmp_0 = log(2.0); + poll = (int)(tmp / tmp_0 + 0.5); + UTI_ZeroNtp64(& orig_ts); + zero_local_timestamp(& recv_ts); + transmit_packet(MODE_BROADCAST,0,poll,4,0,(unsigned int)0,& orig_ts, + & orig_ts,& recv_ts,(NTP_Local_Timestamp *)0, + (NTP_int64 *)0,(NTP_int64 *)0,& destination->addr, + & destination->local_addr); + ; + tmp_1 = get_separation(poll); + ; + add_timeout_in_class((double)destination->interval,tmp_1,0.02, + SCH_NtpBroadcastClass,& broadcast_timeout,arg); + return; +} + +void NCR_AddBroadcastDestination(IPAddr *addr, unsigned short port, + int interval) +{ + BroadcastDestination *destination; + int tmp_0; + unsigned int tmp_2; + destination = (BroadcastDestination *)ARR_GetNewElement(broadcasts_0); + destination->addr.ip_addr = *addr; + destination->addr.port = port; + destination->local_addr.ip_addr.family = (unsigned short)0; + destination->local_addr.if_index = -1; + if ((int)destination->addr.ip_addr.family != 0) destination->local_addr.sock_fd = 100; + else destination->local_addr.sock_fd = 0; + if (interval < 1 << 24) tmp_0 = interval; else tmp_0 = 1 << 24; + if (1 > tmp_0) destination->interval = 1; + else { + int tmp_1; + if (interval < 1 << 24) tmp_1 = interval; else tmp_1 = 1 << 24; + destination->interval = tmp_1; + } + tmp_2 = ARR_GetSize(broadcasts_0); + ; + add_timeout_in_class((double)destination->interval,0.2,0.02, + SCH_NtpBroadcastClass,& broadcast_timeout, + (void *)((long)(tmp_2 - (unsigned int)1))); + return; +} + +static void advance_time(double x) +{ + UTI_AddDoubleToTimespec(& current_time,x,& current_time); + return; +} + +static uint32_t get_random_key_id(void) +{ + uint32_t id; + while (1) { + int tmp_0; + { + long tmp; + tmp = random(); + id = (unsigned int)(tmp % (long)6 + (long)2); + } + tmp_0 = KEY_KeyKnown(id); + if (tmp_0) break; + } + return id; +} + +static void send_request(NCR_Instance inst) +{ + NTP_Local_Address local_addr; + NTP_Local_Timestamp local_ts; + uint32_t prev_tx_count; + long tmp; + prev_tx_count = inst->report.total_tx_count; + transmit_timeout((void *)inst); + if (! (! inst->valid_rx)) { + TST_Fail(88); + exit(1); + } + if (! (prev_tx_count + (uint32_t)1 == inst->report.total_tx_count)) { + TST_Fail(89); + exit(1); + } + advance_time(1e-5); + tmp = random(); + if (tmp % (long)2) { + local_addr.ip_addr.family = (unsigned short)0; + local_addr.if_index = -1; + local_addr.sock_fd = 101; + local_ts.ts = current_time; + local_ts.err = 0.0; + local_ts.source = NTP_TS_KERNEL; + NCR_ProcessTxKnown(inst,& local_addr,& local_ts,& req_buffer.ntp_pkt, + req_length); + } + return; +} + +static void process_request(NTP_Remote_Address *remote_addr) +{ + NTP_Local_Address local_addr; + NTP_Local_Timestamp local_ts; + long tmp; + local_addr.ip_addr.family = (unsigned short)0; + local_addr.if_index = -1; + local_addr.sock_fd = 100; + local_ts.ts = current_time; + local_ts.err = 0.0; + local_ts.source = NTP_TS_KERNEL; + res_length = 0; + NCR_ProcessRxUnknown(remote_addr,& local_addr,& local_ts, + & req_buffer.ntp_pkt,req_length); + res_length = req_length; + res_buffer = req_buffer; + advance_time(1e-5); + tmp = random(); + if (tmp % (long)2) { + local_ts.ts = current_time; + NCR_ProcessTxUnknown(remote_addr,& local_addr,& local_ts, + & res_buffer.ntp_pkt,res_length); + } + return; +} + +static void send_response(int interleaved, int authenticated, + int allow_update, int valid_ts, int valid_auth) +{ + NTP_Packet *req; + NTP_Packet *res; + int tmp; + double tmp_0; + double tmp_1; + double tmp_2; + int auth_len = 0; + req = & req_buffer.ntp_pkt; + res = & res_buffer.ntp_pkt; + if (! (req_length >= 48)) { + TST_Fail(142); + exit(1); + } + if (((int)req->lvm & 0x7) == MODE_CLIENT) tmp = MODE_SERVER; + else tmp = MODE_ACTIVE; + res->lvm = (unsigned char)((((LEAP_Normal << 6) & 0xc0) | (((((int)req->lvm >> 3) & 0x7) << 3) & 0x38)) | ( + tmp & 0x07)); + res->stratum = (unsigned char)1; + res->poll = req->poll; + res->precision = (signed char)(-20); + res->root_delay = UTI_DoubleToNtp32(0.1); + res->root_dispersion = UTI_DoubleToNtp32(0.1); + res->reference_id = (unsigned int)0; + UTI_ZeroNtp64(& res->reference_ts); + if (interleaved) res->originate_ts = req->receive_ts; + else res->originate_ts = req->transmit_ts; + tmp_0 = TST_GetRandomDouble(1e-4,1e-2); + advance_time(tmp_0); + UTI_TimespecToNtp64(& current_time,& res->receive_ts,(NTP_int64 *)0); + tmp_1 = TST_GetRandomDouble(- 1e-4,1e-3); + advance_time(tmp_1); + UTI_TimespecToNtp64(& current_time,& res->transmit_ts,(NTP_int64 *)0); + tmp_2 = TST_GetRandomDouble(1e-4,1e-2); + advance_time(tmp_2); + if (! valid_ts) { + long tmp_3; + int tmp_4; + tmp_3 = random(); + if (allow_update) tmp_4 = 4; else tmp_4 = 5; + switch (tmp_3 % (long)tmp_4) { + long tmp_5; + long tmp_6; + case (long)0: + { /* sequence */ + tmp_5 = random(); + res->originate_ts.hi = (unsigned int)tmp_5; + } + break; + case (long)1: + { /* sequence */ + tmp_6 = random(); + res->originate_ts.lo = (unsigned int)tmp_6; + } + break; + case (long)2: UTI_ZeroNtp64(& res->originate_ts); + break; + case (long)3: UTI_ZeroNtp64(& res->receive_ts); + break; + case (long)4: UTI_ZeroNtp64(& res->transmit_ts); + break; + default: __FC_assert(0 != 0,"test/unit/ntp_core.c",179,"0"); + } + } + if (authenticated) { + uint32_t tmp_9; + int tmp_12; + uint32_t tmp_11; + if (req->auth_keyid) res->auth_keyid = req->auth_keyid; + else { + uint32_t tmp_8; + uint32_t tmp_7; + tmp_7 = get_random_key_id(); + tmp_8 = htonl(tmp_7); + res->auth_keyid = tmp_8; + } + tmp_9 = ntohl(res->auth_keyid); + auth_len = KEY_GetAuthLength(tmp_9); + __FC_assert(auth_len != 0,"test/unit/ntp_core.c",186,"auth_len"); + if ((((int)res->lvm >> 3) & 0x7) == 4) { + long tmp_10; + tmp_10 = random(); + if (tmp_10 % (long)2) + if (auth_len < (4 + 20) - 4) auth_len = auth_len; + else auth_len = (4 + 20) - 4; + } + ; + ; + ; + tmp_11 = ntohl(res->auth_keyid); + tmp_12 = KEY_GenerateAuth(tmp_11,(unsigned char const *)res,48, + (unsigned char *)(res->auth_data),auth_len); + ; + if (tmp_12 != auth_len) __FC_assert(0 != 0,"test/unit/ntp_core.c",192, + "0"); + res_length = (48 + 4) + auth_len; + } + else res_length = 48; + if (! valid_auth) + if (authenticated) { + long tmp_13; + __FC_assert(auth_len != 0,"test/unit/ntp_core.c",199,"auth_len"); + tmp_13 = random(); + switch (tmp_13 % (long)4) { + uint32_t tmp_14; + uint32_t tmp_15; + int tmp_17; + uint32_t tmp_16; + long tmp_18; + long tmp_19; + case (long)0: + { + tmp_14 = ntohl(res->auth_keyid); + res->auth_keyid = htonl(tmp_14 + (uint32_t)1); + } + break; + case (long)1: + { + tmp_15 = ntohl(res->auth_keyid); + res->auth_keyid = htonl(tmp_15 ^ (unsigned int)1); + } + ; + ; + ; + tmp_16 = ntohl(res->auth_keyid); + tmp_17 = KEY_GenerateAuth(tmp_16,(unsigned char const *)res,48, + (unsigned char *)(res->auth_data),auth_len); + ; + if (tmp_17 != auth_len) __FC_assert(0 != 0,"test/unit/ntp_core.c", + 209,"0"); + break; + case (long)2: + { /* sequence */ + tmp_18 = random(); + res->auth_data[tmp_18 % (long)auth_len] = (uint8_t)((int)res->auth_data[ + tmp_18 % (long)auth_len] + 1); + } + break; + case (long)3: + { /* sequence */ + tmp_19 = random(); + res_length = (int)(48L + (long)4 * (tmp_19 % (long)((4 + auth_len) / 4))); + } + if ((((int)res->lvm >> 3) & 0x7) == 4) + if (res_length == 48 + (4 + 20)) res_length -= 4; + break; + default: __FC_assert(0 != 0,"test/unit/ntp_core.c",221,"0"); + } + } + return; +} + +static void process_response(NCR_Instance inst, int good, int valid, + int updated_sync, int updated_init) +{ + NTP_Local_Address local_addr; + NTP_Local_Timestamp local_ts; + NTP_Packet *res; + uint32_t prev_rx_count; + uint32_t prev_valid_count; + struct timespec prev_rx_ts; + struct timespec prev_init_rx_ts; + int prev_open_socket; + int ret; + res = & res_buffer.ntp_pkt; + local_addr.ip_addr.family = (unsigned short)0; + local_addr.if_index = -1; + if (((int)res->lvm & 0x7) != MODE_SERVER) local_addr.sock_fd = 100; + else local_addr.sock_fd = 101; + local_ts.ts = current_time; + local_ts.err = 0.0; + local_ts.source = NTP_TS_KERNEL; + prev_rx_count = inst->report.total_rx_count; + prev_valid_count = inst->report.total_valid_count; + prev_rx_ts = inst->local_rx.ts; + prev_init_rx_ts = inst->init_local_rx.ts; + prev_open_socket = inst->local_addr.sock_fd != -2; + ret = NCR_ProcessRxKnown(inst,& local_addr,& local_ts,res,res_length); + if (good > 0) { + if (! ret) { + TST_Fail(254); + exit(1); + } + } + else + if (! good) + if (! (! ret)) { + TST_Fail(256); + exit(1); + } + if (prev_open_socket) { + if (! (prev_rx_count + (uint32_t)1 == inst->report.total_rx_count)) { + TST_Fail(259); + exit(1); + } + } + else + if (! (prev_rx_count == inst->report.total_rx_count)) { + TST_Fail(261); + exit(1); + } + if (valid) { + if (! (prev_valid_count + (uint32_t)1 == inst->report.total_valid_count)) { + TST_Fail(264); + exit(1); + } + } + else + if (! (prev_valid_count == inst->report.total_valid_count)) { + TST_Fail(266); + exit(1); + } + if (updated_sync) { + int tmp; + tmp = UTI_CompareTimespecs(& inst->local_rx.ts,& prev_rx_ts); + if (! tmp) { + TST_Fail(269); + exit(1); + } + } + else { + int tmp_0; + tmp_0 = UTI_CompareTimespecs(& inst->local_rx.ts,& prev_rx_ts); + if (tmp_0) { + TST_Fail(271); + exit(1); + } + } + if (updated_init > 0) { + int tmp_1; + tmp_1 = UTI_CompareTimespecs(& inst->init_local_rx.ts,& prev_init_rx_ts); + if (! tmp_1) { + TST_Fail(274); + exit(1); + } + } + else + if (! updated_init) { + int tmp_2; + tmp_2 = UTI_CompareTimespecs(& inst->init_local_rx.ts, + & prev_init_rx_ts); + if (tmp_2) { + TST_Fail(276); + exit(1); + } + } + if (valid) { + { + int tmp_3; + tmp_3 = UTI_IsZeroTimespec(& inst->init_local_rx.ts); + if (! tmp_3) { + TST_Fail(279); + exit(1); + } + } + { + int tmp_4; + tmp_4 = UTI_IsZeroNtp64(& inst->init_remote_ntp_tx); + if (! tmp_4) { + TST_Fail(280); + exit(1); + } + } + } + return; +} + +static void process_replay(NCR_Instance inst, + NTP_Receive_Buffer *packet_queue, + int queue_length, int updated_init) +{ + while (1) { + int tmp_0; + { + long tmp; + tmp = random(); + res_buffer = *(packet_queue + tmp % (long)queue_length); + } + tmp_0 = UTI_CompareNtp64(& res_buffer.ntp_pkt.transmit_ts, + & inst->remote_ntp_tx); + if (tmp_0) break; + } + process_response(inst,0,0,0,updated_init); + advance_time(1e-6); + return; +} + +void test_unit(void) +{ + int i; + int j; + int k; + int interleaved; + int authenticated; + int valid; + int updated; + int has_updated; + CPS_NTP_Source source; + NTP_Remote_Address remote_addr; + NCR_Instance inst1; + NCR_Instance inst2; + NTP_Receive_Buffer packet_queue[10]; + char source_line[31] = + {(char)'1', + (char)'2', + (char)'7', + (char)'.', + (char)'0', + (char)'.', + (char)'0', + (char)'.', + (char)'1', + (char)' ', + (char)'m', + (char)'a', + (char)'x', + (char)'d', + (char)'e', + (char)'l', + (char)'a', + (char)'y', + (char)'d', + (char)'e', + (char)'v', + (char)'r', + (char)'a', + (char)'t', + (char)'i', + (char)'o', + (char)' ', + (char)'1', + (char)'e', + (char)'6', + (char)'\000'}; + char conf[4][100] = + {{(char)'a', (char)'l', (char)'l', (char)'o', (char)'w', (char)'\000'}, + {(char)'p', + (char)'o', + (char)'r', + (char)'t', + (char)' ', + (char)'0', + (char)'\000'}, + {(char)'l', (char)'o', (char)'c', (char)'a', (char)'l', (char)'\000'}, + {(char)'k', + (char)'e', + (char)'y', + (char)'f', + (char)'i', + (char)'l', + (char)'e', + (char)' ', + (char)'n', + (char)'t', + (char)'p', + (char)'_', + (char)'c', + (char)'o', + (char)'r', + (char)'e', + (char)'.', + (char)'k', + (char)'e', + (char)'y', + (char)'s', + (char)'\000'}}; + CNF_Initialise(0,0); + i = 0; + /*@ loop unroll 4; */ + while ((unsigned long)i < sizeof(conf) / sizeof(conf[0])) { + CNF_ParseLine((char const *)0,i + 1,conf[i]); + i ++; + } + LCL_Initialise(); + TST_RegisterDummyDrivers(); + SCH_Initialise(); + SRC_Initialise(); + NIO_Initialise(0); + NCR_Initialise(); + REF_Initialise(); + TST_SuspendLogging(); + KEY_Initialise(); + TST_ResumeLogging(); + CNF_SetupAccessRestrictions(); + CPS_ParseNTPSourceAdd(source_line,& source); + i = 0; + /*@ loop unroll 3; */ + while (i < 3) { + { + long tmp; + long tmp_0; + long tmp_1; + double tmp_2; + int tmp_4; + long tmp_3; + int tmp_14; + long tmp_13; + tmp = random(); + if (tmp % (long)2) source.params.interleaved = 1; + tmp_0 = random(); + if (tmp_0 % (long)2) source.params.authkey = get_random_key_id(); + tmp_1 = random(); + source.params.version = (int)(tmp_1 % (long)4 + (long)1); + UTI_ZeroTimespec(& current_time); + tmp_2 = TST_GetRandomDouble(1.0,1e9); + advance_time(tmp_2); + TST_GetRandomAddress(& remote_addr.ip_addr,0,-1); + remote_addr.port = (unsigned short)123; + tmp_3 = random(); + if (tmp_3 % (long)2) tmp_4 = NTP_SERVER; else tmp_4 = NTP_PEER; + inst1 = NCR_GetInstance(& remote_addr, + (enum __anonenum_NTP_Source_Type_30)tmp_4, + & source.params); + NCR_StartInstance(inst1); + has_updated = 0; + j = 0; + /*@ loop unroll 5; */ + while (j < 5) { + { + int tmp_6; + long tmp_5; + long tmp_7; + int tmp_8; + int tmp_9; + int tmp_10; + int tmp_11; + int tmp_12; + tmp_5 = random(); + if (tmp_5 % (long)2) + if (inst1->mode != (unsigned int)MODE_CLIENT) tmp_6 = 1; + else + if (inst1->tx_count < (unsigned int)4) tmp_6 = 1; + else tmp_6 = 0; + else tmp_6 = 0; + interleaved = tmp_6; + tmp_7 = random(); + authenticated = (int)(tmp_7 % (long)2); + if (! interleaved) goto _LOR; + else + if (source.params.interleaved) + if (has_updated) + _LOR: + if (! source.params.authkey) tmp_8 = 1; + else + if (authenticated) tmp_8 = 1; else tmp_8 = 0; + else tmp_8 = 0; + else tmp_8 = 0; + valid = tmp_8; + if (valid) goto _LOR_0; + else + if (inst1->mode == (unsigned int)MODE_ACTIVE) + _LOR_0: + if (! source.params.authkey) tmp_9 = 1; + else + if (authenticated) tmp_9 = 1; else tmp_9 = 0; + else tmp_9 = 0; + updated = tmp_9; + if (has_updated) tmp_10 = 1; + else + if (updated) tmp_10 = 1; else tmp_10 = 0; + has_updated = tmp_10; + if (inst1->mode == (unsigned int)MODE_CLIENT) updated = 0; + send_request(inst1); + send_response(interleaved,authenticated,1,0,1); + process_response(inst1,0,0,0,updated); + if (source.params.authkey) { + send_response(interleaved,authenticated,1,1,0); + process_response(inst1,0,0,0,0); + } + send_response(interleaved,authenticated,1,1,1); + process_response(inst1,-1,valid,valid,updated); + process_response(inst1,0,0,0,0); + advance_time(- 1.0); + send_response(interleaved,authenticated,1,1,1); + if (updated) + if (valid) tmp_11 = 1; else tmp_11 = 0; + else tmp_11 = 0; + ; + process_response(inst1,0,0,0,tmp_11); + advance_time(1.0); + send_response(interleaved,authenticated,1,1,1); + ; + if (valid) + if (updated) tmp_12 = 1; else tmp_12 = 0; + else tmp_12 = 0; + ; + process_response(inst1,0,0,tmp_12,updated); + } + j ++; + } + NCR_DestroyInstance(inst1); + tmp_13 = random(); + if (tmp_13 % (long)2) tmp_14 = NTP_SERVER; else tmp_14 = NTP_PEER; + inst1 = NCR_GetInstance(& remote_addr, + (enum __anonenum_NTP_Source_Type_30)tmp_14, + & source.params); + NCR_StartInstance(inst1); + j = 0; + /*@ loop unroll 2; */ + while (j < 2) { + send_request(inst1); + process_request(& remote_addr); + process_response(inst1,1,1,1,0); + advance_time((double)(1 << inst1->local_poll)); + j ++; + } + NCR_DestroyInstance(inst1); + inst1 = NCR_GetInstance(& remote_addr,NTP_PEER,& source.params); + NCR_StartInstance(inst1); + inst2 = NCR_GetInstance(& remote_addr,NTP_PEER,& source.params); + NCR_StartInstance(inst2); + req_length = 0; + res_length = req_length; + j = 0; + /*@ loop unroll 4; */ + while (j < 4) { + { + int tmp_15; + send_request(inst1); + res_buffer = req_buffer; + if (! res_length) tmp_15 = 1; + else + if (res_length == req_length) tmp_15 = 1; else tmp_15 = 0; + __FC_assert(tmp_15 != 0,"test/unit/ntp_core.c",446, + "!res_length || res_length == req_length"); + res_length = req_length; + if (! (inst1->valid_timestamps == (j > 0))) { + TST_Fail(449); + exit(1); + } + process_response(inst2,j > source.params.interleaved,j > 0,j > 0,1); + packet_queue[(j * 2) % 10] = res_buffer; + k = 0; + /*@ loop unroll 5; */ + while (k < j % 4 + 1) { + { + int tmp_16; + int tmp_17; + int tmp_18; + if (k) tmp_16 = -1; else tmp_16 = 1; + if (j * 2 + 1 < 10) tmp_17 = j * 2 + 1; else tmp_17 = 10; + ; + process_replay(inst1,packet_queue,tmp_17,tmp_16); + if (j * 2 + 1 < 10) tmp_18 = j * 2 + 1; else tmp_18 = 10; + ; + process_replay(inst2,packet_queue,tmp_18,-1); + } + k ++; + } + advance_time((double)(1 << (source.params.minpoll - 1))); + send_request(inst2); + res_buffer = req_buffer; + __FC_assert((res_length == req_length) != 0,"test/unit/ntp_core.c", + 468,"res_length == req_length"); + if (! (inst2->valid_timestamps == (j > 0))) { + TST_Fail(470); + exit(1); + } + process_response(inst1,1,1,1,1); + packet_queue[(j * 2 + 1) % 10] = res_buffer; + k = 0; + /*@ loop unroll 5; */ + while (k < j % 4 + 1) { + { + int tmp_19; + int tmp_20; + int tmp_21; + if (k) tmp_19 = -1; else tmp_19 = 1; + if (j * 2 + 2 < 10) tmp_20 = j * 2 + 2; else tmp_20 = 10; + ; + process_replay(inst1,packet_queue,tmp_20,tmp_19); + if (j * 2 + 2 < 10) tmp_21 = j * 2 + 2; else tmp_21 = 10; + ; + process_replay(inst2,packet_queue,tmp_21,-1); + } + k ++; + } + advance_time((double)(1 << (source.params.minpoll - 1))); + } + j ++; + } + NCR_DestroyInstance(inst1); + NCR_DestroyInstance(inst2); + } + i ++; + } + KEY_Finalise(); + REF_Finalise(); + NCR_Finalise(); + NIO_Finalise(); + SRC_Finalise(); + SCH_Finalise(); + LCL_Finalise(); + CNF_Finalise(); + HSH_Finalise(); + return; +} + + diff --git a/chrony/.frama-c/chrony-ntp-core.parse/metrics.log b/chrony/.frama-c/chrony-ntp-core.parse/metrics.log new file mode 100644 index 0000000000000000000000000000000000000000..9e603cffce3cddb3cfe153e6fa84918c6be358ed --- /dev/null +++ b/chrony/.frama-c/chrony-ntp-core.parse/metrics.log @@ -0,0 +1,323 @@ +[metrics] Defined functions (521) +======================= + ADF_Allow (1 call); ADF_AllowAll (1 call); ADF_CreateTable (1 call); + ADF_Deny (1 call); ADF_DenyAll (1 call); ADF_DestroyTable (1 call); + ADF_IsAllowed (2 calls); ADF_IsAnyAllowed (4 calls); + ARR_AppendElement (3 calls); ARR_CreateInstance (13 calls); + ARR_DestroyInstance (14 calls); ARR_GetElement (30 calls); + ARR_GetElements (6 calls); ARR_GetNewElement (9 calls); + ARR_GetSize (23 calls); ARR_SetSize (11 calls); CLG_Finalise (0 call); + CLG_GetClientAccessReportByIndex (0 call); CLG_GetClientIndex (1 call); + CLG_GetNtpMinPoll (1 call); CLG_GetNtpTimestamps (2 calls); + CLG_GetNumberOfIndices (0 call); CLG_GetServerStatsReport (0 call); + CLG_Initialise (0 call); CLG_LimitCommandResponseRate (0 call); + CLG_LimitNTPResponseRate (1 call); CLG_LogCommandAccess (0 call); + CLG_LogNTPAccess (1 call); CNF_AddBroadcasts (0 call); + CNF_AddInitSources (0 call); CNF_AddRefclocks (0 call); + CNF_AddSources (0 call); CNF_AllowLocalReference (1 call); + CNF_CreateDirs (0 call); CNF_Finalise (1 call); + CNF_GetAcquisitionPort (1 call); CNF_GetBindAcquisitionAddress (1 call); + CNF_GetBindAddress (1 call); CNF_GetBindCommandAddress (0 call); + CNF_GetBindCommandPath (0 call); CNF_GetClientLogLimit (1 call); + CNF_GetCombineLimit (1 call); CNF_GetCommandPort (0 call); + CNF_GetCommandRateLimit (1 call); CNF_GetCorrectionTimeRatio (1 call); + CNF_GetDriftFile (1 call); CNF_GetDumpDir (2 calls); + CNF_GetFallbackDrifts (1 call); CNF_GetHwTsInterface (1 call); + CNF_GetHwclockFile (0 call); CNF_GetInitSources (0 call); + CNF_GetInitStepThreshold (1 call); CNF_GetKeysFile (1 call); + CNF_GetLeapSecMode (1 call); CNF_GetLeapSecTimezone (1 call); + CNF_GetLockMemory (0 call); CNF_GetLogBanner (0 call); + CNF_GetLogChange (1 call); CNF_GetLogDir (0 call); + CNF_GetLogMeasurements (1 call); CNF_GetLogRefclocks (0 call); + CNF_GetLogRtc (0 call); CNF_GetLogStatistics (1 call); + CNF_GetLogTempComp (0 call); CNF_GetLogTracking (1 call); + CNF_GetMailOnChange (1 call); CNF_GetMakeStep (1 call); + CNF_GetManualEnabled (0 call); CNF_GetMaxChange (1 call); + CNF_GetMaxClockError (1 call); CNF_GetMaxDistance (1 call); + CNF_GetMaxDrift (1 call); CNF_GetMaxJitter (1 call); + CNF_GetMaxSamples (1 call); CNF_GetMaxSlewRate (0 call); + CNF_GetMaxUpdateSkew (1 call); CNF_GetMinSamples (1 call); + CNF_GetMinSources (1 call); CNF_GetNTPPort (2 calls); + CNF_GetNTPRateLimit (1 call); CNF_GetNoClientLog (1 call); + CNF_GetNtpSigndSocket (0 call); CNF_GetPidFile (0 call); + CNF_GetReselectDistance (1 call); CNF_GetRtcAutotrim (0 call); + CNF_GetRtcDevice (0 call); CNF_GetRtcFile (0 call); + CNF_GetRtcOnUtc (0 call); CNF_GetRtcSync (0 call); + CNF_GetSchedPriority (0 call); CNF_GetSmooth (1 call); + CNF_GetStratumWeight (1 call); CNF_GetTempComp (0 call); + CNF_GetUser (0 call); CNF_Initialise (1 call); CNF_ParseLine (2 calls); + CNF_ReadFile (1 call); CNF_SetupAccessRestrictions (1 call); + CPS_NormalizeLine (2 calls); CPS_ParseKey (1 call); CPS_ParseLocal (1 call); + CPS_ParseNTPSourceAdd (3 calls); CPS_SplitWord (25 calls); + DNS_IPAddress2Name (0 call); DNS_Name2IPAddress (3 calls); + DNS_Name2IPAddressAsync (0 call); DNS_Reload (0 call); + DNS_SetAddressFamily (0 call); HSH_Finalise (1 call); + HSH_GetHashId (2 calls); HSH_Hash (3 calls); KEY_CheckAuth (1 call); + KEY_CheckKeyLength (1 call); KEY_Finalise (1 call); + KEY_GenerateAuth (4 calls); KEY_GetAuthDelay (1 call); + KEY_GetAuthLength (2 calls); KEY_Initialise (1 call); + KEY_KeyKnown (2 calls); KEY_Reload (1 call); + LCL_AccumulateDeltaFrequency (0 call); + LCL_AccumulateFrequencyAndOffset (1 call); LCL_AccumulateOffset (3 calls); + LCL_AddDispersionNotifyHandler (1 call); + LCL_AddParameterChangeHandler (4 calls); LCL_ApplyStepOffset (5 calls); + LCL_CanSystemLeap (1 call); LCL_CookTime (11 calls); LCL_Finalise (1 call); + LCL_GetMaxClockError (5 calls); LCL_GetOffsetCorrection (5 calls); + LCL_GetSysPrecisionAsLog (0 call); LCL_GetSysPrecisionAsQuantum (3 calls); + LCL_Initialise (1 call); LCL_IsFirstParameterChangeHandler (1 call); + LCL_MakeStep (0 call); LCL_NotifyExternalTimeStep (1 call); + LCL_NotifyLeap (2 calls); LCL_ReadAbsoluteFrequency (5 calls); + LCL_ReadCookedTime (0 call); LCL_ReadRawTime (21 calls); + LCL_RemoveDispersionNotifyHandler (2 calls); + LCL_RemoveParameterChangeHandler (2 calls); + LCL_SetAbsoluteFrequency (3 calls); LCL_SetSyncStatus (2 calls); + LCL_SetSystemLeap (2 calls); LCL_SetTempComp (0 call); MD5Final (1 call); + MD5Init (1 call); MD5Update (3 calls); Malloc (12 calls); Malloc2 (7 calls); + NCR_AddAccessRestriction (1 call); NCR_AddBroadcastDestination (1 call); + NCR_ChangeRemoteAddress (0 call); NCR_CheckAccessRestriction (0 call); + NCR_DestroyInstance (4 calls); NCR_Finalise (1 call); + NCR_GetInstance (4 calls); NCR_GetLocalRefid (0 call); + NCR_GetNTPReport (0 call); NCR_GetRemoteAddress (0 call); + NCR_IncrementActivityCounters (0 call); NCR_Initialise (1 call); + NCR_InitiateSampleBurst (2 calls); NCR_IsSyncPeer (0 call); + NCR_ModifyMaxdelay (0 call); NCR_ModifyMaxdelaydevratio (0 call); + NCR_ModifyMaxdelayratio (0 call); NCR_ModifyMaxpoll (1 call); + NCR_ModifyMinpoll (1 call); NCR_ModifyMinstratum (0 call); + NCR_ModifyPolltarget (0 call); NCR_ProcessRxKnown (1 call); + NCR_ProcessRxUnknown (2 calls); NCR_ProcessTxKnown (1 call); + NCR_ProcessTxUnknown (2 calls); NCR_ReportSource (0 call); + NCR_ResetInstance (4 calls); NCR_ResetPoll (0 call); + NCR_SetConnectivity (1 call); NCR_SlewTimes (0 call); + NCR_StartInstance (4 calls); NIO_CloseClientSocket (0 call); + NIO_CloseServerSocket (0 call); NIO_Finalise (1 call); + NIO_Initialise (1 call); NIO_IsServerConnectable (2 calls); + NIO_IsServerSocket (1 call); NIO_OpenClientSocket (0 call); + NIO_OpenServerSocket (0 call); NIO_SendPacket (0 call); + NSD_Finalise (0 call); NSD_GetAuthDelay (1 call); NSD_Initialise (0 call); + NSD_SignAndSendPacket (1 call); REF_DisableLocal (0 call); + REF_EnableLocal (0 call); REF_Finalise (1 call); REF_GetLeapMode (1 call); + REF_GetMode (3 calls); REF_GetOrphanStratum (1 call); + REF_GetOurStratum (1 call); REF_GetReferenceParams (3 calls); + REF_GetSkew (1 call); REF_GetTaiOffset (0 call); + REF_GetTrackingReport (0 call); REF_Initialise (1 call); + REF_IsLeapSecondClose (2 calls); REF_ModifyMakestep (0 call); + REF_ModifyMaxupdateskew (0 call); REF_SetManualReference (0 call); + REF_SetMode (0 call); REF_SetModeEndHandler (0 call); + REF_SetReference (2 calls); REF_SetUnsynchronised (4 calls); + RGR_FindBestRegression (1 call); RGR_FindBestRobustRegression (0 call); + RGR_FindMedian (1 call); RGR_GetChi2Coef (0 call); RGR_GetTCoef (1 call); + RGR_MultipleRegress (1 call); RGR_WeightedRegression (0 call); + Realloc (1 call); Realloc2 (4 calls); SCH_AddFileHandler (2 calls); + SCH_AddTimeout (3 calls); SCH_AddTimeoutByDelay (1 call); + SCH_AddTimeoutInClass (0 call); SCH_Finalise (1 call); + SCH_GetLastEventTime (6 calls); SCH_Initialise (1 call); + SCH_MainLoop (0 call); SCH_QuitProgram (0 call); + SCH_RemoveFileHandler (2 calls); SCH_RemoveTimeout (3 calls); + SCH_SetFileHandlerEvent (0 call); SMT_Activate (2 calls); + SMT_Finalise (0 call); SMT_GetOffset (2 calls); + SMT_GetSmoothingReport (0 call); SMT_Initialise (0 call); + SMT_IsEnabled (2 calls); SMT_Leap (1 call); SMT_Reset (1 call); + SRC_AccumulateSample (1 call); SRC_ActiveSources (0 call); + SRC_CreateNewInstance (1 call); SRC_DestroyInstance (1 call); + SRC_DumpSources (0 call); SRC_Finalise (1 call); + SRC_GetSourcestats (4 calls); SRC_GetType (0 call); SRC_Initialise (1 call); + SRC_IsReachable (3 calls); SRC_IsSyncPeer (2 calls); + SRC_ReadNumberOfSources (0 call); SRC_ReloadSources (0 call); + SRC_RemoveDumpFiles (0 call); SRC_ReportSource (0 call); + SRC_ReportSourcestats (0 call); SRC_ReselectSource (1 call); + SRC_ResetInstance (2 calls); SRC_ResetReachability (0 call); + SRC_SelectSource (4 calls); SRC_SetActive (1 call); SRC_SetRefid (2 calls); + SRC_SetReselectDistance (0 call); SRC_UnsetActive (1 call); + SRC_UpdateReachability (1 call); SST_AccumulateSample (1 call); + SST_AddDispersion (1 call); SST_CreateInstance (1 call); + SST_DeleteInstance (1 call); SST_DoNewRegression (2 calls); + SST_DoSourceReport (1 call); SST_DoSourcestatsReport (1 call); + SST_Finalise (0 call); SST_GetDelayTestData (2 calls); + SST_GetFrequencyRange (1 call); SST_GetJitterAsymmetry (1 call); + SST_GetSelectionData (1 call); SST_GetTrackingData (2 calls); + SST_Initialise (0 call); SST_LoadFromFile (1 call); + SST_MinRoundTripDelay (3 calls); SST_PredictOffset (1 call); + SST_ResetInstance (5 calls); SST_Samples (2 calls); SST_SaveToFile (1 call); + SST_SetRefid (2 calls); SST_SlewSamples (1 call); Strdup (19 calls); + TST_Fail (17 calls); TST_GetRandomAddress (1 call); + TST_GetRandomDouble (4 calls); TST_RegisterDummyDrivers (1 call); + TST_ResumeLogging (1 call); TST_SuspendLogging (1 call); + TST_SwapAddressBit (0 call); Transform (2 calls); + UTI_AddDiffToTimespec (0 call); UTI_AddDoubleToTimespec (18 calls); + UTI_AdjustTimespec (10 calls); UTI_AverageDiffTimespecs (2 calls); + UTI_CheckDirPermissions (1 call); UTI_CompareIPs (1 call); + UTI_CompareNtp64 (12 calls); UTI_CompareTimespecs (9 calls); + UTI_CreateDirAndParents (3 calls); UTI_DiffTimespecs (3 calls); + UTI_DiffTimespecsToDouble (35 calls); UTI_DoubleToNtp32 (4 calls); + UTI_DoubleToTimespec (0 call); UTI_DoubleToTimeval (0 call); + UTI_DropRoot (0 call); UTI_FdSetCloexec (3 calls); + UTI_FloatHostToNetwork (0 call); UTI_FloatNetworkToHost (0 call); + UTI_GetNtp64Fuzz (3 calls); UTI_GetRandomBytes (5 calls); + UTI_GetRandomBytesUrandom (1 call); UTI_IPAndPortToSockaddr (2 calls); + UTI_IPHostToNetwork (0 call); UTI_IPNetworkToHost (0 call); + UTI_IPToHash (1 call); UTI_IPToRefid (4 calls); UTI_IPToString (20 calls); + UTI_IsEqualAnyNtp64 (2 calls); UTI_IsTimeOffsetSane (1 call); + UTI_IsZeroNtp64 (10 calls); UTI_IsZeroTimespec (12 calls); + UTI_Log2ToDouble (6 calls); UTI_NormaliseTimespec (5 calls); + UTI_NormaliseTimeval (1 call); UTI_Ntp32ToDouble (2 calls); + UTI_Ntp64ToString (0 call); UTI_Ntp64ToTimespec (14 calls); + UTI_PathToDir (1 call); UTI_RefidToString (4 calls); + UTI_SetQuitSignalsHandler (0 call); UTI_SockaddrFamilyToString (2 calls); + UTI_SockaddrToIPAndPort (2 calls); UTI_SockaddrToString (0 call); + UTI_StringToIP (6 calls); UTI_TimeToLogForm (4 calls); + UTI_TimespecHostToNetwork (0 call); UTI_TimespecNetworkToHost (0 call); + UTI_TimespecToDouble (2 calls); UTI_TimespecToNtp64 (11 calls); + UTI_TimespecToString (1 call); UTI_TimespecToTimeval (1 call); + UTI_TimevalToDouble (0 call); UTI_TimevalToTimespec (3 calls); + UTI_ZeroNtp64 (16 calls); UTI_ZeroTimespec (12 calls); + accrue_offset (address taken) (0 call); + add_dispersion (address taken) (0 call); add_timeout_in_class (3 calls); + adjust_poll (3 calls); advance_time (12 calls); allocate_tqe (2 calls); + apply_step_offset (address taken) (0 call); + broadcast_timeout (address taken) (0 call); + calculate_sys_precision (1 call); check_current_time (1 call); + check_delay_dev_ratio (1 call); check_delay_ratio (1 call); + check_ip_in_node (2 calls); check_ntp_auth (1 call); + check_number_of_args (16 calls); check_offset (4 calls); + check_packet_auth (2 calls); check_packet_format (4 calls); + clamp_freq (3 calls); close_client_socket (5 calls); close_node (4 calls); + close_socket (6 calls); combine_sources (1 call); + command_parse_error (31 calls); compare_keys_by_id (address taken) (0 call); + compare_sort_elements (address taken) (0 call); compare_ts (2 calls); + connect_socket (2 calls); convert_to_intervals (1 call); + correct_asymmetry (1 call); create_dir (1 call); decode_password (1 call); + determine_hash_delay (1 call); dispatch_filehandlers (1 call); + dispatch_timeouts (1 call); do_size_checks (1 call); + do_time_checks (1 call); end_ref_mode (5 calls); + estimate_asymmetry (1 call); eva_main (0 call); + eval_robust_residual (3 calls); expand_hashtable (2 calls); + fb_drift_timeout (address taken) (0 call); fill_fd_sets (1 call); + find_best_sample_index (1 call); find_median (2 calls); + find_min_delay_sample (2 calls); find_ordered_entry_with_flags (3 calls); + free_keys (2 calls); generate_ntp_auth (2 calls); get_array_size (2 calls); + get_buf_index (9 calls); get_clock_estimates (1 call); get_index (3 calls); + get_interval (3 calls); get_key (7 calls); get_key_by_id (6 calls); + get_last_ago (2 calls); get_new_tqe_id (2 calls); + get_number_of_args (3 calls); get_poll_adj (1 call); + get_random_key_id (2 calls); get_record (4 calls); + get_root_dispersion (5 calls); get_runsbuf_index (16 calls); + get_separation (2 calls); get_smoothing (3 calls); get_subnet (4 calls); + get_transmit_delay (4 calls); get_transmit_poll (2 calls); + get_ts_from_timespec (2 calls); get_tz_leap (4 calls); + handle_slew (address taken) (0 call); + handle_slew_0 (address taken) (0 call); + handle_slew_1 (address taken) (0 call); + invoke_parameter_change_handlers (7 calls); is_any_allowed (2 calls); + is_leap_second_day (1 call); is_offset_ok (1 call); + is_step_limit_reached (1 call); is_zero_data (2 calls); + lcl_InvokeDispersionNotifyHandlers (1 call); + lcl_RegisterSystemDrivers (1 call); + leap_end_timeout (address taken) (0 call); + leap_start_timeout (address taken) (0 call); + limit_response_random (2 calls); log_selection_message (5 calls); + lookup_key (1 call); main (1 call); mark_ok_sources (4 calls); + maybe_log_offset (1 call); n_runs_from_residuals (3 calls); + offset_convert (address taken) (0 call); open_dumpfile (2 calls); + open_node (3 calls); other_parse_error (3 calls); + parse_allow_deny (4 calls); parse_bindacqaddress (1 call); + parse_bindaddress (1 call); parse_bindcmdaddress (1 call); + parse_broadcast (1 call); parse_clientloglimit (1 call); + parse_double (12 calls); parse_fallbackdrift (1 call); + parse_hwtimestamp (1 call); parse_include (1 call); + parse_initstepslew (1 call); parse_int (8 calls); + parse_leapsecmode (1 call); parse_local (1 call); parse_log (1 call); + parse_mailonchange (1 call); parse_makestep (1 call); + parse_maxchange (1 call); parse_null (5 calls); parse_ratelimit (2 calls); + parse_refclock (1 call); parse_smoothtime (1 call); parse_source (3 calls); + parse_string (12 calls); parse_tempcomp (1 call); prepare_buffers (2 calls); + prepare_separate_client_socket (2 calls); prepare_socket (5 calls); + process_message (1 call); process_replay (4 calls); + process_request (1 call); process_response (10 calls); + process_sample (1 call); prune_register (2 calls); + read_frequency (address taken) (0 call); + read_from_socket (address taken) (0 call); realloc_array (2 calls); + receive_packet (1 call); receive_timeout (0 call); release_tqe (1 call); + resolve_name (address taken) (0 call); restart_timeout (4 calls); + schedule_fb_drift (2 calls); send_request (4 calls); + send_response (5 calls); set_bucket_params (2 calls); + set_frequency (address taken) (0 call); set_leap_timeout (2 calls); + set_subnet (4 calls); set_subnet_ (4 calls); + slew_sources (address taken) (0 call); source_to_string (5 calls); + special_mode_end (1 call); special_mode_sync (2 calls); split_ip6 (2 calls); + start_initial_timeout (3 calls); take_offline (4 calls); test_unit (1 call); + transmit_packet (3 calls); transmit_timeout (address taken) (1 call); + update_drift_file (2 calls); update_fb_drifts (1 call); + update_leap_status (4 calls); update_record (2 calls); + update_smoothing (3 calls); update_stages (1 call); + update_tx_timestamp (2 calls); write_log (2 calls); + zero_local_timestamp (7 calls); + +Undefined functions (21) +======================== + CAM_AddAccessRestriction (1 call); LOG_FileOpen (3 calls); + LOG_FileWrite (3 calls); LOG_Finalise (1 call); LOG_Initialise (1 call); + LOG_Message (108 calls); LOG_OpenFileLog (2 calls); + LOG_SetDebugLevel (1 call); NSR_AddSource (1 call); + NSR_AddSourceByName (1 call); NSR_GetLocalRefid (1 call); + NSR_HandleBadSource (1 call); NSR_ProcessRx (1 call); + RCL_AddRefclock (1 call); SPF_AccumulateSample (1 call); + SPF_CreateInstance (1 call); SPF_DestroyInstance (1 call); + SPF_DropSamples (1 call); SPF_GetFilteredSample (1 call); + SPF_GetNumberOfSamples (1 call); SPF_SlewSamples (1 call); + +'Extern' global variables (0) +============================= + + +Potential entry points (114) +============================ + CLG_Finalise; CLG_GetClientAccessReportByIndex; CLG_GetNumberOfIndices; + CLG_GetServerStatsReport; CLG_Initialise; CLG_LimitCommandResponseRate; + CLG_LogCommandAccess; CNF_AddBroadcasts; CNF_AddInitSources; + CNF_AddRefclocks; CNF_AddSources; CNF_CreateDirs; + CNF_GetBindCommandAddress; CNF_GetBindCommandPath; CNF_GetCommandPort; + CNF_GetHwclockFile; CNF_GetInitSources; CNF_GetLockMemory; + CNF_GetLogBanner; CNF_GetLogDir; CNF_GetLogRefclocks; CNF_GetLogRtc; + CNF_GetLogTempComp; CNF_GetManualEnabled; CNF_GetMaxSlewRate; + CNF_GetNtpSigndSocket; CNF_GetPidFile; CNF_GetRtcAutotrim; + CNF_GetRtcDevice; CNF_GetRtcFile; CNF_GetRtcOnUtc; CNF_GetRtcSync; + CNF_GetSchedPriority; CNF_GetTempComp; CNF_GetUser; DNS_IPAddress2Name; + DNS_Name2IPAddressAsync; DNS_Reload; DNS_SetAddressFamily; + LCL_AccumulateDeltaFrequency; LCL_GetSysPrecisionAsLog; LCL_MakeStep; + LCL_ReadCookedTime; LCL_SetTempComp; NCR_ChangeRemoteAddress; + NCR_CheckAccessRestriction; NCR_GetLocalRefid; NCR_GetNTPReport; + NCR_GetRemoteAddress; NCR_IncrementActivityCounters; NCR_IsSyncPeer; + NCR_ModifyMaxdelay; NCR_ModifyMaxdelaydevratio; NCR_ModifyMaxdelayratio; + NCR_ModifyMinstratum; NCR_ModifyPolltarget; NCR_ReportSource; + NCR_ResetPoll; NCR_SlewTimes; NIO_CloseClientSocket; NIO_CloseServerSocket; + NIO_OpenClientSocket; NIO_OpenServerSocket; NIO_SendPacket; NSD_Finalise; + NSD_Initialise; REF_DisableLocal; REF_EnableLocal; REF_GetTaiOffset; + REF_GetTrackingReport; REF_ModifyMakestep; REF_ModifyMaxupdateskew; + REF_SetManualReference; REF_SetMode; REF_SetModeEndHandler; + RGR_FindBestRobustRegression; RGR_GetChi2Coef; RGR_WeightedRegression; + SCH_AddTimeoutInClass; SCH_MainLoop; SCH_QuitProgram; + SCH_SetFileHandlerEvent; SMT_Finalise; SMT_GetSmoothingReport; + SMT_Initialise; SRC_ActiveSources; SRC_DumpSources; SRC_GetType; + SRC_ReadNumberOfSources; SRC_ReloadSources; SRC_RemoveDumpFiles; + SRC_ReportSource; SRC_ReportSourcestats; SRC_ResetReachability; + SRC_SetReselectDistance; SST_Finalise; SST_Initialise; TST_SwapAddressBit; + UTI_AddDiffToTimespec; UTI_DoubleToTimespec; UTI_DoubleToTimeval; + UTI_DropRoot; UTI_FloatHostToNetwork; UTI_FloatNetworkToHost; + UTI_IPHostToNetwork; UTI_IPNetworkToHost; UTI_Ntp64ToString; + UTI_SetQuitSignalsHandler; UTI_SockaddrToString; UTI_TimespecHostToNetwork; + UTI_TimespecNetworkToHost; UTI_TimevalToDouble; eva_main; receive_timeout; + +Global metrics +============== +Sloc = 10451 +Decision point = 1910 +Global variables = 254 +If = 1794 +Loop = 169 +Goto = 485 +Assignment = 4646 +Exit point = 521 +Function = 542 +Function call = 2132 +Pointer dereferencing = 2774 +Cyclomatic complexity = 2431 diff --git a/chrony/.frama-c/chrony-ntp-core.parse/warnings.log b/chrony/.frama-c/chrony-ntp-core.parse/warnings.log new file mode 100644 index 0000000000000000000000000000000000000000..d807a37ecfe9e7312394fe893ce7f7961fe96d33 --- /dev/null +++ b/chrony/.frama-c/chrony-ntp-core.parse/warnings.log @@ -0,0 +1,2 @@ +conf.c:94:[kernel:parser:decimal-float] warning: Floating-point constant 1e-4 is not represented exactly. Will use 0x1.a36e2eb1c432dp-14. +(warn-once: no further messages from category 'parser:decimal-float' will be emitted) diff --git a/chrony/.frama-c/chrony-regress.eva/alarms.csv b/chrony/.frama-c/chrony-regress.eva/alarms.csv new file mode 100644 index 0000000000000000000000000000000000000000..7daa2a10311edda2a6205f1f3a9fd285ff07f63d --- /dev/null +++ b/chrony/.frama-c/chrony-regress.eva/alarms.csv @@ -0,0 +1,112 @@ +directory file line function property kind status property +. logging.h 80 LOG_Initialise assigns clause Unknown assigns \nothing; +. logging.h 83 LOG_Finalise assigns clause Unknown assigns \nothing; +. logging.h 100 LOG_SetDebugLevel assigns clause Unknown assigns \nothing; +. regress.c 71 RGR_WeightedRegression initialization Unknown \initialized(w + i) +. regress.c 71 RGR_WeightedRegression initialization Unknown \initialized(x + i) +. regress.c 80 RGR_WeightedRegression initialization Unknown \initialized(x + i) +. regress.c 81 RGR_WeightedRegression initialization Unknown \initialized(w + i) +. regress.c 81 RGR_WeightedRegression initialization Unknown \initialized(y + i) +. regress.c 91 RGR_WeightedRegression initialization Unknown \initialized(x + i) +. regress.c 91 RGR_WeightedRegression initialization Unknown \initialized(y + i) +. regress.c 92 RGR_WeightedRegression initialization Unknown \initialized(w + i) +. regress.c 97 RGR_WeightedRegression precondition of sqrt Unknown arg_positive: x ≥ -0. +. regress.c 97 RGR_WeightedRegression precondition of sqrt Unknown finite_arg: \is_finite(x) +. regress.c 99 RGR_WeightedRegression precondition of sqrt Unknown arg_positive: x ≥ -0. +. regress.c 99 RGR_WeightedRegression precondition of sqrt Unknown finite_arg: \is_finite(x) +. regress.c 183 n_runs_from_residuals initialization Unknown \initialized(resid + (int)(i - 1)) +. regress.c 183 n_runs_from_residuals mem_access Unknown \valid_read(resid + (int)(i - 1)) +. regress.c 183 n_runs_from_residuals initialization Unknown \initialized(resid + i) +. regress.c 183 n_runs_from_residuals mem_access Unknown \valid_read(resid + i) +. regress.c 184 n_runs_from_residuals initialization Unknown \initialized(resid + i) +. regress.c 184 n_runs_from_residuals mem_access Unknown \valid_read(resid + i) +. regress.c 243 RGR_FindBestRegression precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. regress.c 254 RGR_FindBestRegression initialization Unknown \initialized(w + i) +. regress.c 254 RGR_FindBestRegression initialization Unknown \initialized(x + i) +. regress.c 254 RGR_FindBestRegression mem_access Unknown \valid_read(x + i) +. regress.c 262 RGR_FindBestRegression initialization Unknown \initialized(x + i) +. regress.c 262 RGR_FindBestRegression mem_access Unknown \valid_read(x + i) +. regress.c 263 RGR_FindBestRegression initialization Unknown \initialized(w + i) +. regress.c 263 RGR_FindBestRegression initialization Unknown \initialized(y + i) +. regress.c 263 RGR_FindBestRegression mem_access Unknown \valid_read(y + i) +. regress.c 272 RGR_FindBestRegression signed_overflow Unknown n - (int)((int)(n - start) * 2) ≤ 2147483647 +. regress.c 272 RGR_FindBestRegression signed_overflow Unknown -2147483648 ≤ (int)(n - start) * 2 +. regress.c 277 RGR_FindBestRegression index_bound Unknown 0 ≤ (int)(i - resid_start) +. regress.c 277 RGR_FindBestRegression signed_overflow Unknown -2147483648 ≤ i - resid_start +. regress.c 277 RGR_FindBestRegression initialization Unknown \initialized(x + i) +. regress.c 277 RGR_FindBestRegression initialization Unknown \initialized(y + i) +. regress.c 277 RGR_FindBestRegression mem_access Unknown \valid_read(x + i) +. regress.c 277 RGR_FindBestRegression mem_access Unknown \valid_read(y + i) +. regress.c 283 RGR_FindBestRegression index_bound Unknown 0 ≤ (int)(n - resid_start) +. regress.c 304 RGR_FindBestRegression initialization Unknown \initialized(&resid[(int)(i - resid_start)]) +. regress.c 304 RGR_FindBestRegression initialization Unknown \initialized(w + i) +. regress.c 304 RGR_FindBestRegression index_bound Unknown 0 ≤ (int)(i - resid_start) +. regress.c 309 RGR_FindBestRegression precondition of sqrt Unknown arg_positive: x ≥ -0. +. regress.c 309 RGR_FindBestRegression precondition of sqrt Unknown finite_arg: \is_finite(x) +. regress.c 311 RGR_FindBestRegression precondition of sqrt Unknown arg_positive: x ≥ -0. +. regress.c 311 RGR_FindBestRegression precondition of sqrt Unknown finite_arg: \is_finite(x) +. regress.c 350 find_ordered_entry_with_flags precondition of __FC_assert Unknown nonnull_c: c ≢ 0 +. regress.c 353 find_ordered_entry_with_flags initialization Unknown \initialized(flags + index_0) +. regress.c 354 find_ordered_entry_with_flags initialization Unknown \initialized(x + index_0) +. regress.c 359 find_ordered_entry_with_flags initialization Unknown \initialized(flags + u) +. regress.c 360 find_ordered_entry_with_flags initialization Unknown \initialized(flags + u) +. regress.c 362 find_ordered_entry_with_flags initialization Unknown \initialized(flags + v) +. regress.c 363 find_ordered_entry_with_flags initialization Unknown \initialized(flags + v) +. regress.c 363 find_ordered_entry_with_flags mem_access Unknown \valid_read(flags + v) +. regress.c 367 find_ordered_entry_with_flags initialization Unknown \initialized(x + u) +. regress.c 367 find_ordered_entry_with_flags initialization Unknown \initialized(x + v) +. regress.c 367 find_ordered_entry_with_flags mem_access Unknown \valid_read(x + u) +. regress.c 367 find_ordered_entry_with_flags mem_access Unknown \valid_read(x + v) +. regress.c 371 find_ordered_entry_with_flags initialization Unknown \initialized(x + index_0) +. regress.c 374 find_ordered_entry_with_flags initialization Unknown \initialized(x + u) +. regress.c 374 find_ordered_entry_with_flags initialization Unknown \initialized(x + pivind) +. regress.c 374 find_ordered_entry_with_flags mem_access Unknown \valid_read(x + pivind) +. regress.c 375 find_ordered_entry_with_flags initialization Unknown \initialized(x + u) +. regress.c 379 find_ordered_entry_with_flags initialization Unknown \initialized(x + l) +. regress.c 380 find_ordered_entry_with_flags initialization Unknown \initialized(x + r) +. regress.c 380 find_ordered_entry_with_flags mem_access Unknown \valid_read(x + r) +. regress.c 382 find_ordered_entry_with_flags initialization Unknown \initialized(x + l) +. regress.c 386 find_ordered_entry_with_flags initialization Unknown \initialized(x + u) +. regress.c 422 find_median precondition of memset Unknown valid_s: valid_or_empty(s, n) +. regress.c 469 eval_robust_residual initialization Unknown \initialized(x + i) +. regress.c 469 eval_robust_residual initialization Unknown \initialized(y + i) +. regress.c 469 eval_robust_residual mem_access Unknown \valid_read(x + i) +. regress.c 469 eval_robust_residual mem_access Unknown \valid_read(y + i) +. regress.c 476 eval_robust_residual initialization Unknown \initialized(x + i) +. regress.c 476 eval_robust_residual initialization Unknown \initialized(y + i) +. regress.c 476 eval_robust_residual mem_access Unknown \valid_read(x + i) +. regress.c 476 eval_robust_residual mem_access Unknown \valid_read(y + i) +. regress.c 552 RGR_FindBestRobustRegression initialization Unknown \initialized(y + i) +. regress.c 553 RGR_FindBestRobustRegression initialization Unknown \initialized(x + i) +. regress.c 563 RGR_FindBestRobustRegression initialization Unknown \initialized(y + i) +. regress.c 564 RGR_FindBestRobustRegression initialization Unknown \initialized(x + i) +. regress.c 574 RGR_FindBestRobustRegression initialization Unknown \initialized(x + i) +. regress.c 574 RGR_FindBestRobustRegression initialization Unknown \initialized(y + i) +. regress.c 581 RGR_FindBestRobustRegression precondition of sqrt Unknown arg_positive: x ≥ -0. +. regress.c 581 RGR_FindBestRobustRegression precondition of sqrt Unknown finite_arg: \is_finite(x) +. regress.c 616 RGR_FindBestRobustRegression precondition of __FC_assert Invalid or unreachable nonnull_c: c ≢ 0 +. regress.c 630 RGR_FindBestRobustRegression initialization Unknown \initialized(x + i) +. regress.c 630 RGR_FindBestRobustRegression initialization Unknown \initialized(y + i) +. regress.c 635 RGR_FindBestRobustRegression index_bound Unknown 0 ≤ n_points +. regress.c 678 RGR_MultipleRegress initialization Unknown \initialized(x1 + i) +. regress.c 679 RGR_MultipleRegress initialization Unknown \initialized(x2 + i) +. regress.c 683 RGR_MultipleRegress initialization Unknown \initialized(y + i) +. regress.c 698 RGR_MultipleRegress precondition of fabs Unknown finite_arg: \is_finite(x) +. regress.c 698 RGR_MultipleRegress precondition of fabs Unknown finite_arg: \is_finite(x) +FRAMAC_SHARE/libc assert.h 31 __FC_assert precondition Invalid or unreachable nonnull_c: c ≢ 0 +FRAMAC_SHARE/libc math.h 449 fabs precondition Unknown finite_arg: \is_finite(x) +FRAMAC_SHARE/libc math.h 493 sqrt precondition Unknown finite_arg: \is_finite(x) +FRAMAC_SHARE/libc math.h 494 sqrt precondition Unknown arg_positive: x ≥ -0. +FRAMAC_SHARE/libc string.h 115 memset precondition Unknown valid_s: valid_or_empty(s, n) +test/unit regress.c 45 test_unit initialization Unknown \initialized(&x[j]) +test/unit regress.c 52 test_unit precondition of fabs Unknown finite_arg: \is_finite(x) +test/unit regress.c 53 test_unit precondition of fabs Unknown finite_arg: \is_finite(x) +test/unit regress.c 60 test_unit precondition of fabs Unknown finite_arg: \is_finite(x) +test/unit regress.c 61 test_unit precondition of fabs Unknown finite_arg: \is_finite(x) +test/unit regress.c 66 test_unit initialization Unknown \initialized(&b2) +test/unit regress.c 66 test_unit precondition of fabs Unknown finite_arg: \is_finite(x) +test/unit regress.c 70 test_unit initialization Unknown \initialized(&y[(long)(tmp_11 % (long)n)]) +test/unit regress.c 75 test_unit precondition of fabs Unknown finite_arg: \is_finite(x) +test/unit regress.c 76 test_unit precondition of fabs Unknown finite_arg: \is_finite(x) +test/unit regress.c 85 test_unit initialization Unknown \initialized(&x[j]) +test/unit regress.c 102 test_unit initialization Unknown \initialized(&x[(int)(j - 1)]) diff --git a/chrony/.frama-c/chrony-regress.eva/metrics.log b/chrony/.frama-c/chrony-regress.eva/metrics.log new file mode 100644 index 0000000000000000000000000000000000000000..463522c7c649a2284a24201f969d1767e577797d --- /dev/null +++ b/chrony/.frama-c/chrony-regress.eva/metrics.log @@ -0,0 +1,24 @@ +[metrics] Eva coverage statistics +======================= +Syntactically reachable functions = 17 (out of 474) +Semantically reached functions = 17 +Coverage estimation = 100.0% +[metrics] References to non-analyzed functions +------------------------------------ +[metrics] Statements analyzed by Eva +-------------------------- +667 stmts in analyzed functions, 644 stmts analyzed (96.6%) +RGR_MultipleRegress: 43 stmts out of 43 (100.0%) +RGR_WeightedRegression: 44 stmts out of 44 (100.0%) +TST_GetRandomDouble: 5 stmts out of 5 (100.0%) +eva_main: 13 stmts out of 13 (100.0%) +eval_robust_residual: 23 stmts out of 23 (100.0%) +find_median: 14 stmts out of 14 (100.0%) +find_ordered_entry_with_flags: 76 stmts out of 76 (100.0%) +main: 41 stmts out of 41 (100.0%) +n_runs_from_residuals: 19 stmts out of 19 (100.0%) +RGR_FindBestRegression: 81 stmts out of 83 (97.6%) +test_unit: 176 stmts out of 184 (95.7%) +RGR_FindBestRobustRegression: 100 stmts out of 110 (90.9%) +RGR_FindMedian: 7 stmts out of 9 (77.8%) +TST_Fail: 2 stmts out of 3 (66.7%) diff --git a/chrony/.frama-c/chrony-regress.eva/nonterm.log b/chrony/.frama-c/chrony-regress.eva/nonterm.log new file mode 100644 index 0000000000000000000000000000000000000000..eb31a65a607449b109d5b29d3295a6fd9fb6ff92 --- /dev/null +++ b/chrony/.frama-c/chrony-regress.eva/nonterm.log @@ -0,0 +1,10 @@ +test/unit/test.c:33:[nonterm] warning: unreachable implicit return +regress.c:616:[nonterm] warning: non-terminating function call +stack 1: RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +stack 2: RGR_FindBestRobustRegression :: test/unit/regress.c:115 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main diff --git a/chrony/.frama-c/chrony-regress.eva/warnings.log b/chrony/.frama-c/chrony-regress.eva/warnings.log new file mode 100644 index 0000000000000000000000000000000000000000..937181465f3ef75b550702770b00c68c3e7afeff --- /dev/null +++ b/chrony/.frama-c/chrony-regress.eva/warnings.log @@ -0,0 +1,859 @@ +test/unit/test.c:53:[kernel:annot:missing-spec] warning: Neither code nor specification for function LOG_SetDebugLevel, generating default assigns from the prototype +test/unit/test.c:68:[kernel:annot:missing-spec] warning: Neither code nor specification for function LOG_Initialise, generating default assigns from the prototype +test/unit/regress.c:45:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&x[j]); +stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main +test/unit/regress.c:47:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&x[j]); +stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main +regress.c:71:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i); +stack: RGR_WeightedRegression :: test/unit/regress.c:50 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:71:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i); +stack: RGR_WeightedRegression :: test/unit/regress.c:50 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:72:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i); +stack: RGR_WeightedRegression :: test/unit/regress.c:50 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:80:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i); +stack: RGR_WeightedRegression :: test/unit/regress.c:50 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:81:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: RGR_WeightedRegression :: test/unit/regress.c:50 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:81:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i); +stack: RGR_WeightedRegression :: test/unit/regress.c:50 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:82:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: RGR_WeightedRegression :: test/unit/regress.c:50 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:82:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i); +stack: RGR_WeightedRegression :: test/unit/regress.c:50 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:83:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i); +stack: RGR_WeightedRegression :: test/unit/regress.c:50 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:91:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: RGR_WeightedRegression :: test/unit/regress.c:50 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:91:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i); +stack: RGR_WeightedRegression :: test/unit/regress.c:50 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:92:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i); +stack: RGR_WeightedRegression :: test/unit/regress.c:50 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:97:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:97 <- + RGR_WeightedRegression :: test/unit/regress.c:50 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:97:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:97 <- + RGR_WeightedRegression :: test/unit/regress.c:50 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:99:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:99 <- + RGR_WeightedRegression :: test/unit/regress.c:50 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:99:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:99 <- + RGR_WeightedRegression :: test/unit/regress.c:50 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +test/unit/regress.c:52:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: test/unit/regress.c:52 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +test/unit/regress.c:53:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: test/unit/regress.c:53 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:254:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i); +stack: RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:254:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i); +stack: RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:255:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i); +stack: RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:262:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i); +stack: RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:263:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:263:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i); +stack: RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:264:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:264:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i); +stack: RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:265:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i); +stack: RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:277:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:277:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i); +stack: RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:183:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(resid + (int)(i - 1)); +stack: n_runs_from_residuals :: regress.c:281 <- + RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:183:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(resid + i); +stack: n_runs_from_residuals :: regress.c:281 <- + RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:184:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(resid + i); +stack: n_runs_from_residuals :: regress.c:281 <- + RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:184:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(resid + (int)(i - 1)); +stack: n_runs_from_residuals :: regress.c:281 <- + RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:304:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i); +stack: RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:304:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&resid[(int)(i - resid_start)]); +stack: RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +test/unit/regress.c:60:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: test/unit/regress.c:60 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +test/unit/regress.c:61:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: test/unit/regress.c:61 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:552:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:553:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i); +stack: RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:563:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:564:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i); +stack: RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:574:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:574:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i); +stack: RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:581 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:581 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:469:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:469:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i); +stack: eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:374:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + u); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:374:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + pivind); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:380:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + r); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:380:[eva:alarm] warning: out of bounds read. assert \valid_read(x + r); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:382:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + r); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:386:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + r); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:367:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + v); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:367:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + u); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:368:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + v); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:368:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + u); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:371:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + index_0); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:476:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:476:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i); +stack: eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:478:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i); +stack: eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:480:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i); +stack: eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:616:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: regress.c:616 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +test/unit/regress.c:75:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: test/unit/regress.c:75 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +test/unit/regress.c:76:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: test/unit/regress.c:76 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +test/unit/regress.c:85:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&x[j]); +stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main +test/unit/regress.c:87:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&x[j]); +stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main +test/unit/regress.c:102:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&x[(int)(j - 1)]); +stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main +regress.c:97:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:97 <- + RGR_WeightedRegression :: test/unit/regress.c:108 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:97:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:97 <- + RGR_WeightedRegression :: test/unit/regress.c:108 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:99:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:99 <- + RGR_WeightedRegression :: test/unit/regress.c:108 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:99:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:99 <- + RGR_WeightedRegression :: test/unit/regress.c:108 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: test/unit/regress.c:110 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:309 <- + RGR_FindBestRegression :: test/unit/regress.c:110 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: test/unit/regress.c:110 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:311 <- + RGR_FindBestRegression :: test/unit/regress.c:110 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown. +stack: sqrt :: regress.c:581 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:115 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown. +stack: sqrt :: regress.c:581 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:115 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:616:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid. +stack: __FC_assert :: regress.c:616 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:115 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:678:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x1 + i); +stack: RGR_MultipleRegress :: test/unit/regress.c:64 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:679:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x2 + i); +stack: RGR_MultipleRegress :: test/unit/regress.c:64 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:683:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: RGR_MultipleRegress :: test/unit/regress.c:64 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:680:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x1 + i); +stack: RGR_MultipleRegress :: test/unit/regress.c:64 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:681:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x1 + i); +stack: RGR_MultipleRegress :: test/unit/regress.c:64 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:681:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x2 + i); +stack: RGR_MultipleRegress :: test/unit/regress.c:64 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:682:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x2 + i); +stack: RGR_MultipleRegress :: test/unit/regress.c:64 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:683:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x1 + i); +stack: RGR_MultipleRegress :: test/unit/regress.c:64 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:684:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x2 + i); +stack: RGR_MultipleRegress :: test/unit/regress.c:64 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:684:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: RGR_MultipleRegress :: test/unit/regress.c:64 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:685:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: RGR_MultipleRegress :: test/unit/regress.c:64 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: regress.c:698 <- + RGR_MultipleRegress :: test/unit/regress.c:64 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: regress.c:698 <- + RGR_MultipleRegress :: test/unit/regress.c:64 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +test/unit/regress.c:66:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&b2); +stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main +test/unit/regress.c:66:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: test/unit/regress.c:66 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:363:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(flags + v); +stack: find_ordered_entry_with_flags :: regress.c:427 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:379:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + l); +stack: find_ordered_entry_with_flags :: regress.c:427 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:382:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + l); +stack: find_ordered_entry_with_flags :: regress.c:427 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:375:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + u); +stack: find_ordered_entry_with_flags :: regress.c:427 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:386:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + u); +stack: find_ordered_entry_with_flags :: regress.c:427 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:354:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + index_0); +stack: find_ordered_entry_with_flags :: regress.c:428 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:630:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i); +stack: RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:630:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i); +stack: RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:277:[eva:alarm] warning: accessing out of bounds index. assert 0 ≤ (int)(i - resid_start); +stack: RGR_FindBestRegression :: test/unit/regress.c:110 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:277:[eva:alarm] warning: out of bounds read. assert \valid_read(y + i); +stack: RGR_FindBestRegression :: test/unit/regress.c:110 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:277:[eva:alarm] warning: out of bounds read. assert \valid_read(x + i); +stack: RGR_FindBestRegression :: test/unit/regress.c:110 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: regress.c:698 <- + RGR_MultipleRegress :: test/unit/regress.c:113 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown. +stack: fabs :: regress.c:698 <- + RGR_MultipleRegress :: test/unit/regress.c:113 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:362:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(flags + v); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:367:[eva:alarm] warning: out of bounds read. assert \valid_read(x + u); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:243 <- + RGR_FindBestRegression :: test/unit/regress.c:110 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:283:[eva:alarm] warning: accessing out of bounds index. assert 0 ≤ (int)(n - resid_start); +stack: RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:272:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ (int)(n - start) * 2; +stack: RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:272:[eva:alarm] warning: signed overflow. assert n - (int)((int)(n - start) * 2) ≤ 2147483647; +stack: RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:183:[eva:alarm] warning: out of bounds read. assert \valid_read(resid + (int)(i - 1)); +stack: n_runs_from_residuals :: regress.c:288 <- + RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:184:[eva:alarm] warning: out of bounds read. assert \valid_read(resid + (int)(i - 1)); +stack: n_runs_from_residuals :: regress.c:288 <- + RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:183:[eva:alarm] warning: out of bounds read. assert \valid_read(resid + i); +stack: n_runs_from_residuals :: regress.c:288 <- + RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:184:[eva:alarm] warning: out of bounds read. assert \valid_read(resid + i); +stack: n_runs_from_residuals :: regress.c:288 <- + RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:304:[eva:alarm] warning: accessing out of bounds index. assert 0 ≤ (int)(i - resid_start); +stack: RGR_FindBestRegression :: test/unit/regress.c:55 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +test/unit/regress.c:70:[eva:alarm] warning: accessing uninitialized left-value. +assert \initialized(&y[(long)(tmp_11 % (long)n)]); +(tmp_11 from random()) +stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main +regress.c:353:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(flags + index_0); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:359:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(flags + u); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:363:[eva:alarm] warning: out of bounds read. assert \valid_read(flags + v); +stack: find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:360:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(flags + u); +stack: find_ordered_entry_with_flags :: regress.c:428 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:469:[eva:alarm] warning: out of bounds read. assert \valid_read(y + i); +stack: eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:469:[eva:alarm] warning: out of bounds read. assert \valid_read(x + i); +stack: eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:374:[eva:alarm] warning: out of bounds read. assert \valid_read(x + pivind); +stack: find_ordered_entry_with_flags :: regress.c:428 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:367:[eva:alarm] warning: out of bounds read. assert \valid_read(x + v); +stack: find_ordered_entry_with_flags :: regress.c:428 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:476:[eva:alarm] warning: out of bounds read. assert \valid_read(y + i); +stack: eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:476:[eva:alarm] warning: out of bounds read. assert \valid_read(x + i); +stack: eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:478:[eva:alarm] warning: out of bounds read. assert \valid_read(x + i); +stack: eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:480:[eva:alarm] warning: out of bounds read. assert \valid_read(x + i); +stack: eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:350:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:350 <- + find_ordered_entry_with_flags :: regress.c:428 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:422:[eva:alarm] warning: function memset: precondition 'valid_s' got status unknown. +stack: memset :: regress.c:422 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:350:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:350 <- + find_ordered_entry_with_flags :: regress.c:425 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:635:[eva:alarm] warning: accessing out of bounds index. assert 0 ≤ n_points; +stack: RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:350:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown. +stack: __FC_assert :: regress.c:350 <- + find_ordered_entry_with_flags :: regress.c:427 <- + find_median :: regress.c:472 <- + eval_robust_residual :: regress.c:595 <- + RGR_FindBestRobustRegression :: test/unit/regress.c:72 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:254:[eva:alarm] warning: out of bounds read. assert \valid_read(x + i); +stack: RGR_FindBestRegression :: test/unit/regress.c:110 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:262:[eva:alarm] warning: out of bounds read. assert \valid_read(x + i); +stack: RGR_FindBestRegression :: test/unit/regress.c:110 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:263:[eva:alarm] warning: out of bounds read. assert \valid_read(y + i); +stack: RGR_FindBestRegression :: test/unit/regress.c:110 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:264:[eva:alarm] warning: out of bounds read. assert \valid_read(y + i); +stack: RGR_FindBestRegression :: test/unit/regress.c:110 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +regress.c:277:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ i - resid_start; +stack: RGR_FindBestRegression :: test/unit/regress.c:110 <- + test_unit :: test/unit/test.c:70 <- + main :: fc_stubs.c:37 <- + eva_main +test/unit/test.c:72:[kernel:annot:missing-spec] warning: Neither code nor specification for function LOG_Finalise, generating default assigns from the prototype diff --git a/chrony/.frama-c/chrony-regress.parse/framac.ast b/chrony/.frama-c/chrony-regress.parse/framac.ast new file mode 100644 index 0000000000000000000000000000000000000000..2303f6bb3ac9a6b5facf97c1356c782a74bb9ab6 --- /dev/null +++ b/chrony/.frama-c/chrony-regress.parse/framac.ast @@ -0,0 +1,16024 @@ +/* Generated by Frama-C */ +#include "__fc_builtin.h" +#include "assert.h" +#include "ctype.h" +#include "errno.h" +#include "fcntl.h" +#include "glob.c" +#include "glob.h" +#include "grp.h" +#include "inttypes.h" +#include "math.h" +#include "netdb.c" +#include "netdb.h" +#include "netinet/in.h" +#include "pwd.h" +#include "resolv.h" +#include "signal.h" +#include "stdarg.h" +#include "stdint.h" +#include "stdio.c" +#include "stdio.h" +#include "stdlib.c" +#include "stdlib.h" +#include "string.c" +#include "string.h" +#include "strings.h" +#include "stropts.h" +#include "sys/resource.h" +#include "sys/select.h" +#include "sys/socket.h" +#include "sys/stat.h" +#include "sys/time.h" +#include "sys/types.h" +#include "sys/uio.h" +#include "sys/un.h" +#include "sys/wait.h" +#include "syslog.h" +#include "time.h" +#include "unistd.h" +enum __anonenum_LOG_Severity_1 { + LOGS_INFO = 0, + LOGS_WARN = 1, + LOGS_ERR = 2, + LOGS_FATAL = 3, + LOGS_DEBUG = 4 +}; +typedef enum __anonenum_LOG_Severity_1 LOG_Severity; +typedef int LOG_FileID; +union __anonunion_addr_3 { + uint32_t in4 ; + uint8_t in6[16] ; +}; +struct __anonstruct_IPAddr_2 { + union __anonunion_addr_3 addr ; + uint16_t family ; + uint16_t _pad ; +}; +typedef struct __anonstruct_IPAddr_2 IPAddr; +struct __anonstruct_NTP_Remote_Address_4 { + IPAddr ip_addr ; + unsigned short port ; +}; +typedef struct __anonstruct_NTP_Remote_Address_4 NTP_Remote_Address; +struct __anonstruct_NTP_Local_Address_5 { + IPAddr ip_addr ; + int if_index ; + int sock_fd ; +}; +typedef struct __anonstruct_NTP_Local_Address_5 NTP_Local_Address; +struct __anonstruct_NTP_int64_6 { + uint32_t hi ; + uint32_t lo ; +}; +typedef struct __anonstruct_NTP_int64_6 NTP_int64; +typedef uint32_t NTP_int32; +enum __anonenum_NTP_Leap_7 { + LEAP_Normal = 0, + LEAP_InsertSecond = 1, + LEAP_DeleteSecond = 2, + LEAP_Unsynchronised = 3 +}; +typedef enum __anonenum_NTP_Leap_7 NTP_Leap; +struct __anonstruct_NTP_Packet_9 { + uint8_t lvm ; + uint8_t stratum ; + int8_t poll ; + int8_t precision ; + NTP_int32 root_delay ; + NTP_int32 root_dispersion ; + NTP_int32 reference_id ; + NTP_int64 reference_ts ; + NTP_int64 originate_ts ; + NTP_int64 receive_ts ; + NTP_int64 transmit_ts ; + NTP_int32 auth_keyid ; + uint8_t auth_data[(4 + 64) - 4] ; +}; +typedef struct __anonstruct_NTP_Packet_9 NTP_Packet; +struct __anonstruct_NTP_Receive_Buffer_10 { + NTP_Packet ntp_pkt ; + uint8_t extensions[1024] ; +}; +typedef struct __anonstruct_NTP_Receive_Buffer_10 NTP_Receive_Buffer; +struct __anonstruct_NTP_Sample_11 { + struct timespec time ; + double offset ; + double peer_delay ; + double peer_dispersion ; + double root_delay ; + double root_dispersion ; + int stratum ; + NTP_Leap leap ; +}; +typedef struct __anonstruct_NTP_Sample_11 NTP_Sample; +struct __anonstruct_Timespec_12 { + uint32_t tv_sec_high ; + uint32_t tv_sec_low ; + uint32_t tv_nsec ; +}; +typedef struct __anonstruct_Timespec_12 Timespec; +struct __anonstruct_Float_13 { + int32_t f ; +}; +typedef struct __anonstruct_Float_13 Float; +struct ADF_AuthTableInst; +typedef struct ADF_AuthTableInst *ADF_AuthTable; +enum __anonenum_ADF_Status_5 { + ADF_SUCCESS = 0, + ADF_BADSUBNET = 1 +}; +typedef enum __anonenum_ADF_Status_5 ADF_Status; +enum __anonenum_State_6 { + DENY = 0, + ALLOW = 1, + AS_PARENT = 2 +}; +typedef enum __anonenum_State_6 State; +struct _TableNode { + State state ; + struct _TableNode *extended ; +}; +typedef struct _TableNode TableNode; +struct ADF_AuthTableInst { + TableNode base4 ; + TableNode base6 ; +}; +struct ARR_Instance_Record; +typedef struct ARR_Instance_Record *ARR_Instance; +struct ARR_Instance_Record { + void *data ; + unsigned int elem_size ; + unsigned int used ; + unsigned int allocated ; +}; +enum __anonenum_mode_12 { + RPT_NTP_CLIENT = 0, + RPT_NTP_PEER = 1, + RPT_LOCAL_REFERENCE = 2 +}; +enum __anonenum_state_13 { + RPT_SYNC = 0, + RPT_UNREACH = 1, + RPT_FALSETICKER = 2, + RPT_JITTERY = 3, + RPT_CANDIDATE = 4, + RPT_OUTLIER = 5 +}; +struct __anonstruct_RPT_SourceReport_11 { + IPAddr ip_addr ; + int stratum ; + int poll ; + enum __anonenum_mode_12 mode ; + enum __anonenum_state_13 state ; + int sel_options ; + int reachability ; + unsigned long latest_meas_ago ; + double orig_latest_meas ; + double latest_meas ; + double latest_meas_err ; +}; +typedef struct __anonstruct_RPT_SourceReport_11 RPT_SourceReport; +struct __anonstruct_RPT_TrackingReport_14 { + uint32_t ref_id ; + IPAddr ip_addr ; + int stratum ; + NTP_Leap leap_status ; + struct timespec ref_time ; + double current_correction ; + double last_offset ; + double rms_offset ; + double freq_ppm ; + double resid_freq_ppm ; + double skew_ppm ; + double root_delay ; + double root_dispersion ; + double last_update_interval ; +}; +typedef struct __anonstruct_RPT_TrackingReport_14 RPT_TrackingReport; +struct __anonstruct_RPT_SourcestatsReport_15 { + uint32_t ref_id ; + IPAddr ip_addr ; + unsigned long n_samples ; + unsigned long n_runs ; + unsigned long span_seconds ; + double resid_freq_ppm ; + double skew_ppm ; + double sd ; + double est_offset ; + double est_offset_err ; +}; +typedef struct __anonstruct_RPT_SourcestatsReport_15 RPT_SourcestatsReport; +struct __anonstruct_RPT_ClientAccessByIndex_Report_17 { + IPAddr ip_addr ; + uint32_t ntp_hits ; + uint32_t cmd_hits ; + uint16_t ntp_drops ; + uint16_t cmd_drops ; + int8_t ntp_interval ; + int8_t cmd_interval ; + int8_t ntp_timeout_interval ; + uint32_t last_ntp_hit_ago ; + uint32_t last_cmd_hit_ago ; +}; +typedef struct __anonstruct_RPT_ClientAccessByIndex_Report_17 RPT_ClientAccessByIndex_Report; +struct __anonstruct_RPT_ServerStatsReport_18 { + uint32_t ntp_hits ; + uint32_t cmd_hits ; + uint32_t ntp_drops ; + uint32_t cmd_drops ; + uint32_t log_drops ; +}; +typedef struct __anonstruct_RPT_ServerStatsReport_18 RPT_ServerStatsReport; +struct __anonstruct_RPT_SmoothingReport_21 { + int active ; + int leap_only ; + double offset ; + double freq_ppm ; + double wander_ppm ; + double last_update_ago ; + double remaining_time ; +}; +typedef struct __anonstruct_RPT_SmoothingReport_21 RPT_SmoothingReport; +enum __anonenum_REF_LeapMode_23 { + REF_LeapModeSystem = 0, + REF_LeapModeSlew = 1, + REF_LeapModeStep = 2, + REF_LeapModeIgnore = 3 +}; +typedef enum __anonenum_REF_LeapMode_23 REF_LeapMode; +enum __anonenum_REF_Mode_24 { + REF_ModeNormal = 0, + REF_ModeInitStepSlew = 1, + REF_ModeUpdateOnce = 2, + REF_ModePrintOnce = 3, + REF_ModeIgnore = 4 +}; +typedef enum __anonenum_REF_Mode_24 REF_Mode; +enum __anonenum_CNF_HwTs_RxFilter_25 { + CNF_HWTS_RXFILTER_ANY = 0, + CNF_HWTS_RXFILTER_NONE = 1, + CNF_HWTS_RXFILTER_NTP = 2, + CNF_HWTS_RXFILTER_ALL = 3 +}; +typedef enum __anonenum_CNF_HwTs_RxFilter_25 CNF_HwTs_RxFilter; +struct __anonstruct_CNF_HwTsInterface_26 { + char *name ; + int minpoll ; + int min_samples ; + int max_samples ; + int nocrossts ; + CNF_HwTs_RxFilter rxfilter ; + double precision ; + double tx_comp ; + double rx_comp ; +}; +typedef struct __anonstruct_CNF_HwTsInterface_26 CNF_HwTsInterface; +struct __anonstruct_Record_80 { + IPAddr ip_addr ; + uint32_t last_ntp_hit ; + uint32_t last_cmd_hit ; + uint32_t ntp_hits ; + uint32_t cmd_hits ; + uint16_t ntp_drops ; + uint16_t cmd_drops ; + uint16_t ntp_tokens ; + uint16_t cmd_tokens ; + int8_t ntp_rate ; + int8_t cmd_rate ; + int8_t ntp_timeout_rate ; + uint8_t flags ; + NTP_int64 ntp_rx_ts ; + NTP_int64 ntp_tx_ts ; +}; +typedef struct __anonstruct_Record_80 Record; +typedef struct SST_Stats_Record *SST_Stats; +typedef struct SRC_Instance_Record *SRC_Instance; +enum __anonenum_SRC_Type_23 { + SRC_NTP = 0, + SRC_REFCLOCK = 1 +}; +typedef enum __anonenum_SRC_Type_23 SRC_Type; +enum __anonenum_SRC_Connectivity_24 { + SRC_OFFLINE = 0, + SRC_ONLINE = 1, + SRC_MAYBE_ONLINE = 2 +}; +typedef enum __anonenum_SRC_Connectivity_24 SRC_Connectivity; +struct __anonstruct_SourceParameters_25 { + int minpoll ; + int maxpoll ; + SRC_Connectivity connectivity ; + int auto_offline ; + int presend_minpoll ; + int burst ; + int iburst ; + int min_stratum ; + int poll_target ; + int version ; + int max_sources ; + int min_samples ; + int max_samples ; + int filter_length ; + int interleaved ; + int sel_options ; + uint32_t authkey ; + double max_delay ; + double max_delay_ratio ; + double max_delay_dev_ratio ; + double min_delay ; + double asymmetry ; + double offset ; +}; +typedef struct __anonstruct_SourceParameters_25 SourceParameters; +struct __anonstruct_CPS_NTP_Source_26 { + char *name ; + unsigned short port ; + SourceParameters params ; +}; +typedef struct __anonstruct_CPS_NTP_Source_26 CPS_NTP_Source; +enum __anonenum_DNS_Status_27 { + DNS_Success = 0, + DNS_TryAgain = 1, + DNS_Failure = 2 +}; +typedef enum __anonenum_DNS_Status_27 DNS_Status; +enum __anonenum_NTP_Source_Type_30 { + NTP_SERVER = 0, + NTP_PEER = 1 +}; +typedef enum __anonenum_NTP_Source_Type_30 NTP_Source_Type; +enum __anonenum_NTP_Timestamp_Source_31 { + NTP_TS_DAEMON = 0, + NTP_TS_KERNEL = 1, + NTP_TS_HARDWARE = 2 +}; +typedef enum __anonenum_NTP_Timestamp_Source_31 NTP_Timestamp_Source; +struct __anonstruct_NTP_Local_Timestamp_32 { + struct timespec ts ; + double err ; + NTP_Timestamp_Source source ; +}; +typedef struct __anonstruct_NTP_Local_Timestamp_32 NTP_Local_Timestamp; +enum __anonenum_NSR_Status_33 { + NSR_Success = 0, + NSR_NoSuchSource = 1, + NSR_AlreadyInUse = 2, + NSR_TooManySources = 3, + NSR_InvalidAF = 4 +}; +typedef enum __anonenum_NSR_Status_33 NSR_Status; +struct __anonstruct_RefclockParameters_34 { + char *driver_name ; + char *driver_parameter ; + int driver_poll ; + int poll ; + int filter_length ; + int pps_forced ; + int pps_rate ; + int min_samples ; + int max_samples ; + int sel_options ; + int max_lock_age ; + int stratum ; + int tai ; + uint32_t ref_id ; + uint32_t lock_ref_id ; + double offset ; + double delay ; + double precision ; + double max_dispersion ; + double pulse_width ; +}; +typedef struct __anonstruct_RefclockParameters_34 RefclockParameters; +struct __anonstruct_NTP_Source_91 { + NTP_Source_Type type ; + int pool ; + CPS_NTP_Source params ; +}; +typedef struct __anonstruct_NTP_Source_91 NTP_Source; +struct _AllowDeny { + IPAddr ip ; + int subnet_bits ; + int all ; + int allow ; +}; +typedef struct _AllowDeny AllowDeny; +struct __anonstruct_NTP_Broadcast_Destination_92 { + IPAddr addr ; + unsigned short port ; + int interval ; +}; +typedef struct __anonstruct_NTP_Broadcast_Destination_92 NTP_Broadcast_Destination; +typedef uint32_t UINT4; +struct __anonstruct_MD5_CTX_63 { + UINT4 i[2] ; + UINT4 buf[4] ; + unsigned char in[64] ; + unsigned char digest[16] ; +}; +typedef struct __anonstruct_MD5_CTX_63 MD5_CTX; +enum __anonenum_LCL_ChangeType_83 { + LCL_ChangeAdjust = 0, + LCL_ChangeStep = 1, + LCL_ChangeUnknownStep = 2 +}; +typedef enum __anonenum_LCL_ChangeType_83 LCL_ChangeType; +struct __anonstruct_Key_85 { + uint32_t id ; + char *val ; + int len ; + int hash_id ; + int auth_delay ; +}; +typedef struct __anonstruct_Key_85 Key; +struct _ChangeListEntry { + struct _ChangeListEntry *next ; + struct _ChangeListEntry *prev ; + void (*handler)(struct timespec *raw, struct timespec *cooked, + double dfreq, double doffset, LCL_ChangeType change_type, + void *anything) ; + void *anything ; +}; +typedef struct _ChangeListEntry ChangeListEntry; +struct _DispersionNotifyListEntry { + struct _DispersionNotifyListEntry *next ; + struct _DispersionNotifyListEntry *prev ; + void (*handler)(double dispersion, void *anything) ; + void *anything ; +}; +typedef struct _DispersionNotifyListEntry DispersionNotifyListEntry; +typedef unsigned int SCH_TimeoutID; +enum __anonenum_SCH_TimeoutClass_30 { + SCH_ReservedTimeoutValue = 0, + SCH_NtpClientClass = 1, + SCH_NtpPeerClass = 2, + SCH_NtpBroadcastClass = 3, + SCH_NumberOfClasses = 4 +}; +typedef enum __anonenum_SCH_TimeoutClass_30 SCH_TimeoutClass; +typedef void *SCH_ArbitraryArgument; +union sockaddr_in46 { + struct sockaddr_in in4 ; + struct sockaddr u ; +}; +struct Message { + union sockaddr_in46 name ; + struct iovec iov ; + NTP_Receive_Buffer buf ; + struct cmsghdr cmsgbuf[(unsigned long)256 / sizeof(struct cmsghdr)] ; +}; +struct MessageHeader { + struct msghdr msg_hdr ; + unsigned int msg_len ; +}; +struct fb_drift { + double freq ; + double secs ; +}; +struct __anonstruct_FileHandlerEntry_66 { + void (*handler)(int fd, int event, SCH_ArbitraryArgument ) ; + SCH_ArbitraryArgument arg ; + int events ; +}; +typedef struct __anonstruct_FileHandlerEntry_66 FileHandlerEntry; +struct _TimerQueueEntry { + struct _TimerQueueEntry *next ; + struct _TimerQueueEntry *prev ; + struct timespec ts ; + SCH_TimeoutID id ; + SCH_TimeoutClass class ; + void (*handler)(SCH_ArbitraryArgument ) ; + SCH_ArbitraryArgument arg ; +}; +typedef struct _TimerQueueEntry TimerQueueEntry; +struct stage { + double wander ; + double length ; +}; +struct SelectInfo { + NTP_Leap leap ; + int stratum ; + int select_ok ; + double std_dev ; + double root_distance ; + double lo_limit ; + double hi_limit ; + double last_sample_ago ; +}; +enum __anonenum_SRC_Status_90 { + SRC_OK = 0, + SRC_UNSELECTABLE = 1, + SRC_BAD_STATS = 2, + SRC_BAD_DISTANCE = 3, + SRC_JITTERY = 4, + SRC_WAITS_STATS = 5, + SRC_STALE = 6, + SRC_ORPHAN = 7, + SRC_UNTRUSTED = 8, + SRC_FALSETICKER = 9, + SRC_WAITS_SOURCES = 10, + SRC_NONPREFERRED = 11, + SRC_WAITS_UPDATE = 12, + SRC_DISTANT = 13, + SRC_OUTLIER = 14, + SRC_UNSELECTED = 15, + SRC_SELECTED = 16 +}; +typedef enum __anonenum_SRC_Status_90 SRC_Status; +struct SRC_Instance_Record { + SST_Stats stats ; + int index ; + uint32_t ref_id ; + IPAddr *ip_addr ; + int active ; + int reachability ; + int reachability_size ; + int updates ; + int distant ; + SRC_Status status ; + SRC_Type type ; + int sel_options ; + double sel_score ; + struct SelectInfo sel_info ; +}; +enum __anonenum_tag_91 { + LOW = -1, + HIGH = 1 +}; +struct Sort_Element { + int index ; + double offset ; + enum __anonenum_tag_91 tag ; +}; +struct SST_Stats_Record { + uint32_t refid ; + IPAddr *ip_addr ; + int min_samples ; + int max_samples ; + double fixed_min_delay ; + double fixed_asymmetry ; + int n_samples ; + int runs_samples ; + int last_sample ; + int regression_ok ; + int best_single_sample ; + int min_delay_sample ; + double estimated_offset ; + double estimated_offset_sd ; + struct timespec offset_time ; + int nruns ; + int asymmetry_run ; + double asymmetry ; + double estimated_frequency ; + double estimated_frequency_sd ; + double skew ; + double std_dev ; + struct timespec sample_times[64 * 2] ; + double offsets[64 * 2] ; + double orig_offsets[64] ; + double peer_delays[64 * 2] ; + double peer_dispersions[64] ; + double root_delays[64] ; + double root_dispersions[64] ; + int stratum ; + NTP_Leap leap ; +}; +struct DNS_Async_Instance { + char const *name ; + void (*handler)(DNS_Status status, int n_addrs, IPAddr *ip_addrs, + void *anything) ; + void *arg ; + int pipe[2] ; +}; +extern void LOG_Initialise(void); + +extern void LOG_Finalise(void); + +extern void ( /* format attribute */ LOG_Message)(LOG_Severity severity, + char const *format, + void * const *__va_params); + +extern void LOG_SetDebugLevel(int level); + +extern void LOG_OpenFileLog(char const *log_file); + +extern LOG_FileID LOG_FileOpen(char const *name, char const *banner); + +extern void ( /* format attribute */ LOG_FileWrite)(LOG_FileID id, + char const *format, + void * const *__va_params); + +void lcl_InvokeDispersionNotifyHandlers(double dispersion); + +void lcl_RegisterSystemDrivers(double (*read_freq)(void), + double (*set_freq)(double freq_ppm), + void (*accrue_offset_0)(double offset, + double corr_rate), + int (*apply_step_offset_0)(double offset), + void (*offset_convert_0)(struct timespec *raw, + double *corr, + double *err), + void (*set_leap)(int leap, int tai_offset), + void (*set_sync_status)(int synchronised, + double est_error, + double max_error)); + +void test_unit(void); + +void TST_Fail(int line); + +void TST_SuspendLogging(void); + +void TST_ResumeLogging(void); + +double TST_GetRandomDouble(double min, double max); + +void TST_GetRandomAddress(IPAddr *ip, int family, int bits); + +void TST_SwapAddressBit(IPAddr *ip, unsigned int b); + +void TST_RegisterDummyDrivers(void); + +int HSH_GetHashId(char const *name); + +unsigned int HSH_Hash(int id, unsigned char const *in1, unsigned int in1_len, + unsigned char const *in2, unsigned int in2_len, + unsigned char *out, unsigned int out_len); + +void HSH_Finalise(void); + +void UTI_ZeroTimespec(struct timespec *ts); + +int UTI_IsZeroTimespec(struct timespec *ts); + +void UTI_TimevalToTimespec(struct timeval *tv, struct timespec *ts); + +void UTI_TimespecToTimeval(struct timespec *ts, struct timeval *tv); + +double UTI_TimespecToDouble(struct timespec *ts); + +void UTI_DoubleToTimespec(double d, struct timespec *ts); + +void UTI_NormaliseTimespec(struct timespec *ts); + +double UTI_TimevalToDouble(struct timeval *tv); + +void UTI_DoubleToTimeval(double a, struct timeval *b); + +void UTI_NormaliseTimeval(struct timeval *x); + +int UTI_CompareTimespecs(struct timespec *a, struct timespec *b); + +void UTI_DiffTimespecs(struct timespec *result, struct timespec *a, + struct timespec *b); + +double UTI_DiffTimespecsToDouble(struct timespec *a, struct timespec *b); + +void UTI_AddDoubleToTimespec(struct timespec *start, double increment, + struct timespec *end); + +void UTI_AverageDiffTimespecs(struct timespec *earlier, + struct timespec *later, + struct timespec *average, double *diff); + +void UTI_AddDiffToTimespec(struct timespec *a, struct timespec *b, + struct timespec *c, struct timespec *result); + +char *UTI_TimespecToString(struct timespec *ts); + +char *UTI_Ntp64ToString(NTP_int64 *ntp_ts); + +char *UTI_RefidToString(uint32_t ref_id); + +char *UTI_IPToString(IPAddr *addr); + +int UTI_StringToIP(char const *addr, IPAddr *ip); + +uint32_t UTI_IPToRefid(IPAddr *ip); + +uint32_t UTI_IPToHash(IPAddr *ip); + +void UTI_IPHostToNetwork(IPAddr *src, IPAddr *dest); + +void UTI_IPNetworkToHost(IPAddr *src, IPAddr *dest); + +int UTI_CompareIPs(IPAddr *a, IPAddr *b, IPAddr *mask); + +void UTI_SockaddrToIPAndPort(struct sockaddr *sa, IPAddr *ip, + unsigned short *port); + +int UTI_IPAndPortToSockaddr(IPAddr *ip, unsigned short port, + struct sockaddr *sa); + +char *UTI_SockaddrToString(struct sockaddr *sa); + +char const *UTI_SockaddrFamilyToString(int family); + +char *UTI_TimeToLogForm(time_t t); + +void UTI_AdjustTimespec(struct timespec *old_ts, struct timespec *when, + struct timespec *new_ts, double *delta_time, + double dfreq, double doffset); + +void UTI_GetNtp64Fuzz(NTP_int64 *ts, int precision); + +double UTI_Ntp32ToDouble(NTP_int32 x); + +NTP_int32 UTI_DoubleToNtp32(double x); + +void UTI_ZeroNtp64(NTP_int64 *ts); + +int UTI_IsZeroNtp64(NTP_int64 *ts); + +int UTI_CompareNtp64(NTP_int64 *a, NTP_int64 *b); + +int UTI_IsEqualAnyNtp64(NTP_int64 *a, NTP_int64 *b1, NTP_int64 *b2, + NTP_int64 *b3); + +void UTI_TimespecToNtp64(struct timespec *src, NTP_int64 *dest, + NTP_int64 *fuzz); + +void UTI_Ntp64ToTimespec(NTP_int64 *src, struct timespec *dest); + +int UTI_IsTimeOffsetSane(struct timespec *ts, double offset); + +double UTI_Log2ToDouble(int l); + +void UTI_TimespecNetworkToHost(Timespec *src, struct timespec *dest); + +void UTI_TimespecHostToNetwork(struct timespec *src, Timespec *dest); + +double UTI_FloatNetworkToHost(Float f); + +Float UTI_FloatHostToNetwork(double x); + +int UTI_FdSetCloexec(int fd); + +void UTI_SetQuitSignalsHandler(void (*handler)(int ), int ignore_sigpipe); + +char *UTI_PathToDir(char const *path); + +int UTI_CreateDirAndParents(char const *path, mode_t mode_0, uid_t uid, + gid_t gid); + +int UTI_CheckDirPermissions(char const *path, mode_t perm, uid_t uid, + gid_t gid); + +void UTI_DropRoot(uid_t uid, gid_t gid); + +void UTI_GetRandomBytesUrandom(void *buf, unsigned int len); + +void UTI_GetRandomBytes(void *buf, unsigned int len); + +/*@ requires valid_read_string(format); + assigns \result, __fc_stdout->__fc_FILE_data; + assigns \result + \from (indirect: __fc_stdout->__fc_FILE_id), + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); + assigns __fc_stdout->__fc_FILE_data + \from (indirect: __fc_stdout->__fc_FILE_id), + __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), + param0; + */ +int printf_va_1(char const * __restrict format, int param0); + +void TST_Fail(int line) +{ + printf_va_1("FAIL (on line %d)\n",line); + exit(1); + return; +} + +/*@ requires valid_read_string(format); + assigns \result, stream->__fc_FILE_data; + assigns \result + \from (indirect: stream->__fc_FILE_id), + (indirect: stream->__fc_FILE_data), + (indirect: *(format + (0 ..))); + assigns stream->__fc_FILE_data + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))); + */ +int fprintf_va_1(FILE * __restrict stream, char const * __restrict format); + +/*@ requires valid_read_string(format); + requires valid_read_string(param0); + assigns \result, __fc_stdout->__fc_FILE_data; + assigns \result + \from (indirect: __fc_stdout->__fc_FILE_id), + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: *(param0 + (0 ..))); + assigns __fc_stdout->__fc_FILE_data + \from (indirect: __fc_stdout->__fc_FILE_id), + __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))), + *(param0 + (0 ..)); + */ +int printf_va_2(char const * __restrict format, char *param0); + +/*@ requires valid_read_string(format); + assigns \result, __fc_stdout->__fc_FILE_data; + assigns \result + \from (indirect: __fc_stdout->__fc_FILE_id), + (indirect: __fc_stdout->__fc_FILE_data), + (indirect: *(format + (0 ..))); + assigns __fc_stdout->__fc_FILE_data + \from (indirect: __fc_stdout->__fc_FILE_id), + __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))); + */ +int printf_va_3(char const * __restrict format); + +int main(int argc, char **argv) +{ + int __retres; + char *test_name; + char *s; + int i; + struct timeval tv; + long tmp_1; + int seed = 0; + test_name = *(argv + 0); + s = strrchr((char const *)test_name,'.'); + if (s) *s = (char)'\000'; + s = strrchr((char const *)test_name,'/'); + if (s) test_name = s + 1; + i = 1; + while (i < argc) { + { + int tmp_0; + tmp_0 = strcmp((char const *)*(argv + i),"-d"); + if (tmp_0) { + int tmp; + tmp = strcmp((char const *)*(argv + i),"-s"); + if (tmp) { + _LAND: { + fprintf_va_1(__fc_stderr,"Unknown option\n"); + exit(1); + } + } + else + if (i + 1 < argc) { + i ++; + ; + seed = atoi((char const *)*(argv + i)); + } + else goto _LAND; + } + else LOG_SetDebugLevel(2); + } + i ++; + } + gettimeofday(& tv,(void *)0); + if (seed) tmp_1 = (long)seed; + else tmp_1 = tv.tv_sec ^ (long)(tv.tv_usec << 10); + srandom((unsigned int)tmp_1); + printf_va_2("Testing %-30s ",test_name); + fflush(__fc_stdout); + LOG_Initialise(); + test_unit(); + LOG_Finalise(); + printf_va_3("PASS\n"); + __retres = 0; + return __retres; +} + +void TST_SuspendLogging(void) +{ + LOG_OpenFileLog("/dev/null"); + return; +} + +void TST_ResumeLogging(void) +{ + LOG_OpenFileLog((char const *)0); + return; +} + +double TST_GetRandomDouble(double min, double max) +{ + double __retres; + long tmp; + tmp = random(); + ; + __retres = min + ((double)tmp / (double)32767) * (max - min); + return __retres; +} + +void TST_GetRandomAddress(IPAddr *ip, int family, int bits) +{ + if (family != 1) + if (family != 2) { + long tmp; + tmp = random(); + if (tmp % (long)2) family = 1; else family = 2; + } + ip->family = (unsigned short)family; + if (family == 1) { + if (bits < 0) bits = 32; + __FC_assert((bits <= 32) != 0,"test/unit/test.c",106,"bits <= 32"); + if (bits > 16) { + long tmp_0; + long tmp_1; + tmp_0 = random(); + tmp_1 = random(); + ip->addr.in4 = ((unsigned int)tmp_0 % (1U << (bits - 16)) << 16) | + (unsigned int)tmp_1 % (1U << 16); + } + else { + long tmp_2; + tmp_2 = random(); + ip->addr.in4 = (unsigned int)tmp_2 % (1U << bits); + } + } + else { + int i; + int b; + if (bits < 0) bits = 128; + __FC_assert((bits <= 128) != 0,"test/unit/test.c",118,"bits <= 128"); + i = 0; + b = 120; + /*@ loop unroll 16; */ + while (i < 16) { + if (b >= bits) ip->addr.in6[i] = (unsigned char)0; + else { + long tmp_3; + int tmp_4; + tmp_3 = random(); + if (bits - b < 8) tmp_4 = bits - b; else tmp_4 = 8; + ip->addr.in6[i] = (unsigned char)(tmp_3 % (long)(1U << tmp_4)); + } + i ++; + b -= 8; + } + } + return; +} + +void TST_SwapAddressBit(IPAddr *ip, unsigned int b) +{ + if ((int)ip->family == 1) { + __FC_assert((b < (unsigned int)32) != 0,"test/unit/test.c",135,"b < 32"); + ip->addr.in4 ^= 1U << ((unsigned int)31 - b); + } + else + if ((int)ip->family == 2) { + __FC_assert((b < (unsigned int)128) != 0,"test/unit/test.c",138, + "b < 128"); + ip->addr.in6[b / (unsigned int)8] = (unsigned char)((unsigned int)ip->addr.in6[ + b / (unsigned int)8] ^ ( + 1U << ((unsigned int)7 - + b % (unsigned int)8))); + } + else __FC_assert(0 != 0,"test/unit/test.c",141,"0"); + return; +} + +static double read_frequency(void) +{ + double __retres; + __retres = 0.0; + return __retres; +} + +static double set_frequency(double freq_ppm) +{ + double __retres; + __retres = 0.0; + return __retres; +} + +static void accrue_offset(double offset, double corr_rate) +{ + return; +} + +static int apply_step_offset(double offset) +{ + int __retres; + __retres = 0; + return __retres; +} + +static void offset_convert(struct timespec *raw, double *corr, double *err) +{ + *corr = 0.0; + if (err) *err = 0.0; + return; +} + +void TST_RegisterDummyDrivers(void) +{ + lcl_RegisterSystemDrivers(& read_frequency,& set_frequency,& accrue_offset, + & apply_step_offset,& offset_convert, + (void (*)(int leap, int tai_offset))0, + (void (*)(int synchronised, double est_error, + double max_error))0); + return; +} + +ADF_AuthTable ADF_CreateTable(void); + +ADF_Status ADF_Allow(ADF_AuthTable table, IPAddr *ip, int subnet_bits); + +ADF_Status ADF_AllowAll(ADF_AuthTable table, IPAddr *ip, int subnet_bits); + +ADF_Status ADF_Deny(ADF_AuthTable table, IPAddr *ip, int subnet_bits); + +ADF_Status ADF_DenyAll(ADF_AuthTable table, IPAddr *ip, int subnet_bits); + +void ADF_DestroyTable(ADF_AuthTable table); + +int ADF_IsAllowed(ADF_AuthTable table, IPAddr *ip_addr); + +int ADF_IsAnyAllowed(ADF_AuthTable table, int family); + +void *Malloc(size_t size); + +void *Realloc(void *ptr, size_t size); + +void *Malloc2(size_t nmemb, size_t size); + +void *Realloc2(void *ptr, size_t nmemb, size_t size); + +char *Strdup(char const *s); + +static void split_ip6(IPAddr *ip, uint32_t *dst) +{ + int i; + i = 0; + /*@ loop unroll 4; */ + while (i < 4) { + *(dst + i) = ((((unsigned int)ip->addr.in6[i * 4 + 0] << 24) | (unsigned int)( + (int)ip->addr.in6[i * 4 + 1] << 16)) | (unsigned int)( + (int)ip->addr.in6[i * 4 + 2] << 8)) | (unsigned int)ip->addr.in6[ + i * 4 + 3]; + i ++; + } + return; +} + +__inline static uint32_t get_subnet(uint32_t *addr, unsigned int where) +{ + uint32_t __retres; + int off; + off = (int)(where / (unsigned int)32); + where %= (unsigned int)32; + __retres = (unsigned int)((unsigned long)(*(addr + off) >> ((unsigned int)( + 32 - 4) - where)) & ( + (1UL << 4) - (unsigned long)1)); + return __retres; +} + +ADF_AuthTable ADF_CreateTable(void) +{ + ADF_AuthTable result; + result = (ADF_AuthTable)Malloc(sizeof(struct ADF_AuthTableInst)); + result->base4.state = DENY; + result->base4.extended = (struct _TableNode *)0; + result->base6.state = DENY; + result->base6.extended = (struct _TableNode *)0; + return result; +} + +static void close_node(TableNode *node) +{ + int i; + TableNode *child_node; + if (node->extended != (struct _TableNode *)0) { + i = 0; + /*@ loop unroll 16; */ + while ((unsigned long)i < 1UL << 4) { + child_node = node->extended + i; + i ++; + } + free((void *)node->extended); + node->extended = (struct _TableNode *)0; + } + return; +} + +static void open_node(TableNode *node) +{ + int i; + TableNode *child_node; + if (node->extended == (struct _TableNode *)0) { + node->extended = (struct _TableNode *)Malloc2(1UL << 4, + sizeof(struct _TableNode)); + i = 0; + /*@ loop unroll 4; */ + while ((unsigned long)i < 1UL << 4) { + child_node = node->extended + i; + child_node->state = AS_PARENT; + child_node->extended = (struct _TableNode *)0; + i ++; + } + } + return; +} + +static ADF_Status set_subnet(TableNode *start_node, uint32_t *ip, int ip_len, + int subnet_bits, State new_state, + int delete_children) +{ + ADF_Status __retres; + int bits_to_go; + int bits_consumed; + uint32_t subnet; + TableNode *node; + bits_consumed = 0; + bits_to_go = subnet_bits; + node = start_node; + if (subnet_bits < 0) goto _LOR; + else + if (subnet_bits > 32 * ip_len) { + _LOR: { + __retres = ADF_BADSUBNET; + goto return_label; + } + } + else { + if ((bits_to_go & (4 - 1)) == 0) { + /*@ loop unroll 128; */ + while (bits_to_go > 0) { + subnet = get_subnet(ip,(unsigned int)bits_consumed); + if (! node->extended) open_node(node); + node = node->extended + subnet; + bits_to_go -= 4; + bits_consumed += 4; + } + if (delete_children) close_node(node); + node->state = new_state; + } + else { + int N; + int i; + int j; + TableNode *this_node; + uint32_t tmp; + /*@ loop unroll 124; */ + while (bits_to_go >= 4) { + subnet = get_subnet(ip,(unsigned int)bits_consumed); + if (! node->extended) open_node(node); + node = node->extended + subnet; + bits_to_go -= 4; + bits_consumed += 4; + } + N = 1 << (4 - bits_to_go); + tmp = get_subnet(ip,(unsigned int)bits_consumed); + subnet = tmp & (unsigned int)(~ (N - 1)); + __FC_assert(((unsigned long)(subnet + (uint32_t)N) <= 1UL << 4) != 0, + "addrfilt.c",210,"subnet + N <= TABLE_SIZE"); + if (! node->extended) open_node(node); + i = (int)subnet; + j = 0; + /*@ loop unroll 16; */ + while (j < N) { + this_node = node->extended + i; + if (delete_children) close_node(this_node); + this_node->state = new_state; + i ++; + j ++; + } + } + __retres = ADF_SUCCESS; + goto return_label; + } + return_label: return __retres; +} + +static ADF_Status set_subnet_(ADF_AuthTable table, IPAddr *ip_addr, + int subnet_bits, State new_state, + int delete_children) +{ + ADF_Status __retres; + uint32_t ip6[4]; + switch ((int)ip_addr->family) { + ADF_Status tmp; + ADF_Status tmp_0; + ADF_Status tmp_1; + case 1: + tmp = set_subnet(& table->base4,& ip_addr->addr.in4,1,subnet_bits, + new_state,delete_children); + __retres = tmp; + goto return_label; + case 2: split_ip6(ip_addr,ip6); + tmp_0 = set_subnet(& table->base6,ip6,4,subnet_bits,new_state, + delete_children); + __retres = tmp_0; + goto return_label; + case 0: ; + if (subnet_bits != 0) { + __retres = ADF_BADSUBNET; + goto return_label; + } + memset((void *)(ip6),0,sizeof(ip6)); + tmp_1 = set_subnet(& table->base4,ip6,1,0,new_state,delete_children); + if (tmp_1 == (unsigned int)ADF_SUCCESS) { + ADF_Status tmp_2; + tmp_2 = set_subnet(& table->base6,ip6,4,0,new_state,delete_children); + if (tmp_2 == (unsigned int)ADF_SUCCESS) { + __retres = ADF_SUCCESS; + goto return_label; + } + } + break; + } + __retres = ADF_BADSUBNET; + return_label: return __retres; +} + +ADF_Status ADF_Allow(ADF_AuthTable table, IPAddr *ip, int subnet_bits) +{ + ADF_Status tmp; + tmp = set_subnet_(table,ip,subnet_bits,ALLOW,0); + return tmp; +} + +ADF_Status ADF_AllowAll(ADF_AuthTable table, IPAddr *ip, int subnet_bits) +{ + ADF_Status tmp; + tmp = set_subnet_(table,ip,subnet_bits,ALLOW,1); + return tmp; +} + +ADF_Status ADF_Deny(ADF_AuthTable table, IPAddr *ip, int subnet_bits) +{ + ADF_Status tmp; + tmp = set_subnet_(table,ip,subnet_bits,DENY,0); + return tmp; +} + +ADF_Status ADF_DenyAll(ADF_AuthTable table, IPAddr *ip, int subnet_bits) +{ + ADF_Status tmp; + tmp = set_subnet_(table,ip,subnet_bits,DENY,1); + return tmp; +} + +void ADF_DestroyTable(ADF_AuthTable table) +{ + close_node(& table->base4); + close_node(& table->base6); + free((void *)table); + return; +} + +static int check_ip_in_node(TableNode *start_node, uint32_t *ip) +{ + uint32_t subnet; + TableNode *node; + int bits_consumed = 0; + int result = 0; + int finished = 0; + State state = DENY; + node = start_node; + while (1) { + if (node->state != (unsigned int)AS_PARENT) state = node->state; + if (node->extended) { + subnet = get_subnet(ip,(unsigned int)bits_consumed); + node = node->extended + subnet; + bits_consumed += 4; + } + else finished = 1; + if (! (! finished)) break; + } + switch (state) { + case (State)ALLOW: result = 1; + break; + case (State)DENY: result = 0; + break; + case (State)AS_PARENT: __FC_assert(0 != 0,"addrfilt.c",347,"0"); + break; + } + return result; +} + +int ADF_IsAllowed(ADF_AuthTable table, IPAddr *ip_addr) +{ + int __retres; + uint32_t ip6[4]; + switch ((int)ip_addr->family) { + int tmp; + int tmp_0; + case 1: tmp = check_ip_in_node(& table->base4,& ip_addr->addr.in4); + __retres = tmp; + goto return_label; + case 2: split_ip6(ip_addr,ip6); + tmp_0 = check_ip_in_node(& table->base6,ip6); + __retres = tmp_0; + goto return_label; + } + __retres = 0; + return_label: return __retres; +} + +int volatile nondet; +static int is_any_allowed(TableNode *node, State parent) +{ + int __retres; + State state; + int i; + if (node->state != (unsigned int)AS_PARENT) state = node->state; + else state = parent; + __FC_assert((state != (unsigned int)AS_PARENT) != 0,"addrfilt.c",387, + "state != AS_PARENT"); + if (node->extended) { + i = 0; + /*@ loop unroll 16; */ + while ((unsigned long)i < 1UL << 4) { + if (nondet) { + __retres = 1; + goto return_label; + } + i ++; + } + } + else + if (state == (unsigned int)ALLOW) { + __retres = 1; + goto return_label; + } + __retres = 0; + return_label: return __retres; +} + +int ADF_IsAnyAllowed(ADF_AuthTable table, int family) +{ + int __retres; + switch (family) { + int tmp; + int tmp_0; + case 1: tmp = is_any_allowed(& table->base4,AS_PARENT); + __retres = tmp; + goto return_label; + case 2: tmp_0 = is_any_allowed(& table->base6,AS_PARENT); + __retres = tmp_0; + goto return_label; + default: __retres = 0; + goto return_label; + } + return_label: return __retres; +} + +ARR_Instance ARR_CreateInstance(unsigned int elem_size); + +void ARR_DestroyInstance(ARR_Instance array); + +void *ARR_GetNewElement(ARR_Instance array); + +void *ARR_GetElement(ARR_Instance array, unsigned int index_0); + +void *ARR_GetElements(ARR_Instance array); + +void ARR_AppendElement(ARR_Instance array, void *element); + +void ARR_SetSize(ARR_Instance array, unsigned int size); + +unsigned int ARR_GetSize(ARR_Instance array); + +ARR_Instance ARR_CreateInstance(unsigned int elem_size) +{ + ARR_Instance array; + __FC_assert((elem_size > (unsigned int)0) != 0,"array.c",47, + "elem_size > 0"); + array = (ARR_Instance)Malloc(sizeof(struct ARR_Instance_Record)); + array->data = (void *)0; + array->elem_size = elem_size; + array->used = (unsigned int)0; + array->allocated = (unsigned int)0; + return array; +} + +void ARR_DestroyInstance(ARR_Instance array) +{ + free(array->data); + free((void *)array); + return; +} + +static void realloc_array(ARR_Instance array, unsigned int min_size) +{ + __FC_assert((min_size <= (unsigned int)2 * min_size) != 0,"array.c",69, + "min_size <= 2 * min_size"); + if (array->allocated >= min_size) + if (array->allocated <= (unsigned int)2 * min_size) goto return_label; + if (array->allocated < min_size) + while (array->allocated < min_size) + if (array->allocated) array->allocated = (unsigned int)2 * array->allocated; + else array->allocated = (unsigned int)1; + else array->allocated = min_size; + array->data = Realloc2(array->data,(unsigned long)array->allocated, + (unsigned long)array->elem_size); + return_label: return; +} + +void *ARR_GetNewElement(ARR_Instance array) +{ + void *tmp; + (array->used) ++; + realloc_array(array,array->used); + tmp = ARR_GetElement(array,array->used - (unsigned int)1); + return tmp; +} + +void *ARR_GetElement(ARR_Instance array, unsigned int index_0) +{ + void *__retres; + __FC_assert((index_0 < array->used) != 0,"array.c",94, + "index < array->used"); + __retres = (void *)((char *)array->data + (unsigned long)index_0 * (unsigned long)array->elem_size); + return __retres; +} + +void *ARR_GetElements(ARR_Instance array) +{ + void *__retres; + if (! array->data) { + __FC_assert(! array->used != 0,"array.c",103,"!array->used"); + __retres = (void *)array; + goto return_label; + } + __retres = array->data; + return_label: return __retres; +} + +void ARR_AppendElement(ARR_Instance array, void *element) +{ + void *e; + e = ARR_GetNewElement(array); + memcpy(e,(void const *)element,(unsigned long)array->elem_size); + return; +} + +void ARR_SetSize(ARR_Instance array, unsigned int size) +{ + realloc_array(array,size); + array->used = size; + return; +} + +unsigned int ARR_GetSize(ARR_Instance array) +{ + unsigned int __retres; + __retres = array->used; + return __retres; +} + +void CLG_Initialise(void); + +void CLG_Finalise(void); + +int CLG_GetClientIndex(IPAddr *client); + +int CLG_LogNTPAccess(IPAddr *client, struct timespec *now); + +int CLG_LogCommandAccess(IPAddr *client, struct timespec *now); + +int CLG_LimitNTPResponseRate(int index_0); + +int CLG_LimitCommandResponseRate(int index_0); + +void CLG_GetNtpTimestamps(int index_0, NTP_int64 **rx_ts, NTP_int64 **tx_ts); + +int CLG_GetNtpMinPoll(void); + +int CLG_GetNumberOfIndices(void); + +int CLG_GetClientAccessReportByIndex(int index_0, + RPT_ClientAccessByIndex_Report *report, + struct timespec *now); + +void CLG_GetServerStatsReport(RPT_ServerStatsReport *report); + +void REF_Initialise(void); + +void REF_Finalise(void); + +void REF_SetMode(REF_Mode new_mode); + +REF_Mode REF_GetMode(void); + +void REF_SetModeEndHandler(void (*handler)(int result)); + +REF_LeapMode REF_GetLeapMode(void); + +void REF_GetReferenceParams(struct timespec *local_time, + int *is_synchronised, NTP_Leap *leap_status, + int *stratum, uint32_t *ref_id, + struct timespec *ref_time, double *root_delay, + double *root_dispersion); + +void REF_SetReference(int stratum, NTP_Leap leap, int combined_sources, + uint32_t ref_id, IPAddr *ref_ip, + struct timespec *ref_time, double offset, + double offset_sd, double frequency, + double frequency_sd, double skew, double root_delay, + double root_dispersion); + +void REF_SetManualReference(struct timespec *ref_time, double offset, + double frequency, double skew); + +void REF_SetUnsynchronised(void); + +int REF_GetOurStratum(void); + +int REF_GetOrphanStratum(void); + +double REF_GetSkew(void); + +void REF_ModifyMaxupdateskew(double new_max_update_skew); + +void REF_ModifyMakestep(int limit, double threshold); + +void REF_EnableLocal(int stratum, double distance, int orphan); + +void REF_DisableLocal(void); + +int REF_IsLeapSecondClose(void); + +int REF_GetTaiOffset(struct timespec *ts); + +void REF_GetTrackingReport(RPT_TrackingReport *rep); + +void CNF_Initialise(int r, int client_only); + +void CNF_Finalise(void); + +char *CNF_GetRtcDevice(void); + +void CNF_ReadFile(char const *filename); + +void CNF_ParseLine(char const *filename, int number, char *line); + +void CNF_CreateDirs(uid_t uid, gid_t gid); + +void CNF_AddInitSources(void); + +void CNF_AddSources(void); + +void CNF_AddBroadcasts(void); + +void CNF_AddRefclocks(void); + +int CNF_GetAcquisitionPort(void); + +int CNF_GetNTPPort(void); + +char *CNF_GetDriftFile(void); + +char *CNF_GetLogDir(void); + +char *CNF_GetDumpDir(void); + +int CNF_GetLogBanner(void); + +int CNF_GetLogMeasurements(int *raw); + +int CNF_GetLogStatistics(void); + +int CNF_GetLogTracking(void); + +int CNF_GetLogRtc(void); + +int CNF_GetLogRefclocks(void); + +int CNF_GetLogTempComp(void); + +char *CNF_GetKeysFile(void); + +char *CNF_GetRtcFile(void); + +int CNF_GetManualEnabled(void); + +int CNF_GetCommandPort(void); + +int CNF_GetRtcOnUtc(void); + +int CNF_GetRtcSync(void); + +void CNF_GetMakeStep(int *limit, double *threshold); + +void CNF_GetMaxChange(int *delay, int *ignore, double *offset); + +double CNF_GetLogChange(void); + +void CNF_GetMailOnChange(int *enabled_0, double *threshold, char **user_0); + +int CNF_GetNoClientLog(void); + +unsigned long CNF_GetClientLogLimit(void); + +void CNF_GetFallbackDrifts(int *min, int *max); + +void CNF_GetBindAddress(int family, IPAddr *addr); + +void CNF_GetBindAcquisitionAddress(int family, IPAddr *addr); + +void CNF_GetBindCommandAddress(int family, IPAddr *addr); + +char *CNF_GetBindCommandPath(void); + +char *CNF_GetNtpSigndSocket(void); + +char *CNF_GetPidFile(void); + +REF_LeapMode CNF_GetLeapSecMode(void); + +char *CNF_GetLeapSecTimezone(void); + +double CNF_GetMaxUpdateSkew(void); + +double CNF_GetMaxClockError(void); + +double CNF_GetMaxDrift(void); + +double CNF_GetCorrectionTimeRatio(void); + +double CNF_GetMaxSlewRate(void); + +double CNF_GetMaxDistance(void); + +double CNF_GetMaxJitter(void); + +double CNF_GetReselectDistance(void); + +double CNF_GetStratumWeight(void); + +double CNF_GetCombineLimit(void); + +int CNF_AllowLocalReference(int *stratum, int *orphan, double *distance); + +void CNF_SetupAccessRestrictions(void); + +int CNF_GetSchedPriority(void); + +int CNF_GetLockMemory(void); + +int CNF_GetNTPRateLimit(int *interval, int *burst, int *leak); + +int CNF_GetCommandRateLimit(int *interval, int *burst, int *leak); + +void CNF_GetSmooth(double *max_freq_0, double *max_wander_0, int *leap_only); + +void CNF_GetTempComp(char **file, double *interval, char **point_file, + double *T0, double *k0, double *k1, double *k2); + +char *CNF_GetUser(void); + +int CNF_GetMaxSamples(void); + +int CNF_GetMinSamples(void); + +int CNF_GetMinSources(void); + +double CNF_GetRtcAutotrim(void); + +char *CNF_GetHwclockFile(void); + +int CNF_GetInitSources(void); + +double CNF_GetInitStepThreshold(void); + +int CNF_GetHwTsInterface(unsigned int index_0, CNF_HwTsInterface **iface); + +static ARR_Instance records; +static unsigned int slots; +static unsigned int max_slots; +static uint32_t ts_offset; +static uint16_t max_ntp_tokens; +static uint16_t max_cmd_tokens; +static uint16_t ntp_tokens_per_packet; +static uint16_t cmd_tokens_per_packet; +static int ntp_token_shift; +static int cmd_token_shift; +static int ntp_leak_rate; +static int cmd_leak_rate; +static int ntp_limit_interval; +static int active; +static uint32_t total_ntp_hits; +static uint32_t total_cmd_hits; +static uint32_t total_ntp_drops; +static uint32_t total_cmd_drops; +static uint32_t total_record_drops; +static int expand_hashtable(void); + +static int compare_ts(uint32_t x, uint32_t y) +{ + int __retres; + int tmp; + if (x == y) { + __retres = 0; + goto return_label; + } + if (y == (uint32_t)0) { + __retres = 1; + goto return_label; + } + if ((int)(x - y) > 0) tmp = 1; else tmp = -1; + __retres = tmp; + return_label: return __retres; +} + +static Record *get_record(IPAddr *ip) +{ + Record *__retres; + unsigned int first; + unsigned int i; + time_t last_hit; + Record *record; + Record *oldest_record; + uint32_t tmp_4; + uint32_t tmp_5; + uint16_t tmp_6; + int8_t tmp_7; + time_t oldest_hit = (long)0; + if (! active) { + __retres = (Record *)0; + goto return_label; + } + else + if ((int)ip->family != 1) + if ((int)ip->family != 2) { + __retres = (Record *)0; + goto return_label; + } + while (1) { + { + uint32_t tmp; + int tmp_3; + tmp = UTI_IPToHash(ip); + first = (tmp % slots) * (1U << 4); + i = (unsigned int)0; + oldest_record = (Record *)0; + while (i < 1U << 4) { + { + int tmp_0; + int tmp_1; + record = (Record *)ARR_GetElement(records,first + i); + tmp_0 = UTI_CompareIPs(ip,& record->ip_addr,(IPAddr *)0); + if (! tmp_0) { + __retres = record; + goto return_label; + } + if ((int)record->ip_addr.family == 0) break; + tmp_1 = compare_ts(record->last_ntp_hit,record->last_cmd_hit); + if (tmp_1 > 0) last_hit = (long)record->last_ntp_hit; + else last_hit = (long)record->last_cmd_hit; + if (! oldest_record) goto _LOR; + else { + int tmp_2; + tmp_2 = compare_ts((unsigned int)oldest_hit, + (unsigned int)last_hit); + if (tmp_2 > 0) goto _LOR; + else + if (oldest_hit == last_hit) + if (record->ntp_hits + record->cmd_hits < oldest_record->ntp_hits + oldest_record->cmd_hits) { + _LOR: { + oldest_record = record; + oldest_hit = last_hit; + } + } + } + } + i ++; + } + if ((int)record->ip_addr.family == 0) break; + tmp_3 = expand_hashtable(); + if (tmp_3) continue; + record = oldest_record; + total_record_drops += (uint32_t)1; + break; + } + } + record->ip_addr = *ip; + tmp_4 = (unsigned int)0; + record->last_cmd_hit = tmp_4; + record->last_ntp_hit = tmp_4; + tmp_5 = (unsigned int)0; + record->cmd_hits = tmp_5; + record->ntp_hits = tmp_5; + tmp_6 = (unsigned short)0; + record->cmd_drops = tmp_6; + record->ntp_drops = tmp_6; + record->ntp_tokens = max_ntp_tokens; + record->cmd_tokens = max_cmd_tokens; + tmp_7 = (signed char)(-128); + record->cmd_rate = tmp_7; + record->ntp_rate = tmp_7; + record->ntp_timeout_rate = (signed char)(-128); + record->flags = (unsigned char)0; + UTI_ZeroNtp64(& record->ntp_rx_ts); + UTI_ZeroNtp64(& record->ntp_tx_ts); + __retres = record; + return_label: return __retres; +} + +static int expand_hashtable(void) +{ + int __retres; + ARR_Instance old_records; + Record *old_record; + Record *new_record; + unsigned int i; + old_records = records; + if ((unsigned int)2 * slots > max_slots) { + __retres = 0; + goto return_label; + } + records = ARR_CreateInstance((unsigned int)sizeof(Record)); + if ((unsigned int)1 > (unsigned int)2 * slots) slots = (unsigned int)1; + else slots = (unsigned int)2 * slots; + __FC_assert((slots <= max_slots) != 0,"clientlog.c",245, + "slots <= max_slots"); + ARR_SetSize(records,slots * (1U << 4)); + i = (unsigned int)0; + while (i < slots * (1U << 4)) { + new_record = (Record *)ARR_GetElement(records,i); + new_record->ip_addr.family = (unsigned short)0; + i ++; + } + if (! old_records) { + __retres = 1; + goto return_label; + } + i = (unsigned int)0; + while (1) { + unsigned int tmp; + tmp = ARR_GetSize(old_records); + ; + if (! (i < tmp)) break; + old_record = (Record *)ARR_GetElement(old_records,i); + if ((int)old_record->ip_addr.family == 0) goto __Cont; + new_record = get_record(& old_record->ip_addr); + __FC_assert(new_record != (Record *)0,"clientlog.c",266,"new_record"); + *new_record = *old_record; + __Cont: i ++; + } + ARR_DestroyInstance(old_records); + __retres = 1; + return_label: return __retres; +} + +static void set_bucket_params(int interval, int burst, uint16_t *max_tokens, + uint16_t *tokens_per_packet, int *token_shift) +{ + int tmp; + int tmp_1; + if (interval < 12) tmp = interval; else tmp = 12; + if (-15 - 4 > tmp) interval = -15 - 4; + else { + int tmp_0; + if (interval < 12) tmp_0 = interval; else tmp_0 = 12; + interval = tmp_0; + } + if (burst < 255) tmp_1 = burst; else tmp_1 = 255; + if (1 > tmp_1) burst = 1; + else { + int tmp_2; + if (burst < 255) tmp_2 = burst; else tmp_2 = 255; + burst = tmp_2; + } + if (interval >= -4) { + *token_shift = 0; + while (*token_shift < interval + 4) { + if ((unsigned int)(burst << ((4 + interval) - *token_shift)) < 1U << 16) + break; + (*token_shift) ++; + } + } + else { + *token_shift = interval + 4; + *tokens_per_packet = (unsigned short)1; + if (1U << - *token_shift > (unsigned int)burst) burst = (int)(1U << - *token_shift); + else burst = burst; + } + *tokens_per_packet = (unsigned short)(1U << ((4 + interval) - *token_shift)); + *max_tokens = (unsigned short)((int)*tokens_per_packet * burst); + return; +} + +void CLG_Initialise(void) +{ + int interval; + int burst; + int leak_rate; + int tmp_3; + int tmp_6; + int tmp_8; + int tmp_7; + unsigned long tmp_9; + unsigned int tmp_10; + max_cmd_tokens = (unsigned short)0; + max_ntp_tokens = max_cmd_tokens; + cmd_tokens_per_packet = (unsigned short)0; + ntp_tokens_per_packet = cmd_tokens_per_packet; + cmd_token_shift = 0; + ntp_token_shift = cmd_token_shift; + cmd_leak_rate = 0; + ntp_leak_rate = cmd_leak_rate; + ntp_limit_interval = -15 - 4; + tmp_3 = CNF_GetNTPRateLimit(& interval,& burst,& leak_rate); + if (tmp_3) { + int tmp; + int tmp_1; + set_bucket_params(interval,burst,& max_ntp_tokens, + & ntp_tokens_per_packet,& ntp_token_shift); + if (leak_rate < 4) tmp = leak_rate; else tmp = 4; + if (1 > tmp) ntp_leak_rate = 1; + else { + int tmp_0; + if (leak_rate < 4) tmp_0 = leak_rate; else tmp_0 = 4; + ntp_leak_rate = tmp_0; + } + if (interval < 12) tmp_1 = interval; else tmp_1 = 12; + if (-15 - 4 > tmp_1) ntp_limit_interval = -15 - 4; + else { + int tmp_2; + if (interval < 12) tmp_2 = interval; else tmp_2 = 12; + ntp_limit_interval = tmp_2; + } + } + tmp_6 = CNF_GetCommandRateLimit(& interval,& burst,& leak_rate); + if (tmp_6) { + int tmp_4; + set_bucket_params(interval,burst,& max_cmd_tokens, + & cmd_tokens_per_packet,& cmd_token_shift); + if (leak_rate < 4) tmp_4 = leak_rate; else tmp_4 = 4; + if (1 > tmp_4) cmd_leak_rate = 1; + else { + int tmp_5; + if (leak_rate < 4) tmp_5 = leak_rate; else tmp_5 = 4; + cmd_leak_rate = tmp_5; + } + } + tmp_7 = CNF_GetNoClientLog(); + if (tmp_7) tmp_8 = 0; else tmp_8 = 1; + active = tmp_8; + if (! active) { + if (ntp_leak_rate) goto _LOR; + else + if (cmd_leak_rate) { + _LOR: + { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL, + "ratelimit cannot be used with noclientlog", + (void * const *)(__va_args)); + } + exit(1); + } + } + goto return_label; + } + tmp_9 = CNF_GetClientLogLimit(); + max_slots = (unsigned int)(tmp_9 / (((sizeof(Record) * (unsigned long)( + 1U << 4)) * (unsigned long)3) / (unsigned long)2)); + if (max_slots < 1U << (24 - 4)) tmp_10 = max_slots; + else tmp_10 = 1U << (24 - 4); + if ((unsigned int)1 > tmp_10) max_slots = (unsigned int)1; + else { + unsigned int tmp_11; + if (max_slots < 1U << (24 - 4)) tmp_11 = max_slots; + else tmp_11 = 1U << (24 - 4); + max_slots = tmp_11; + } + slots = (unsigned int)0; + records = (struct ARR_Instance_Record *)0; + expand_hashtable(); + UTI_GetRandomBytes((void *)(& ts_offset),(unsigned int)sizeof(ts_offset)); + ts_offset %= 1000000000U / (1U << 4); + return_label: return; +} + +void CLG_Finalise(void) +{ + if (! active) goto return_label; + ARR_DestroyInstance(records); + return_label: return; +} + +static uint32_t get_ts_from_timespec(struct timespec *ts) +{ + uint32_t __retres; + uint32_t sec = (unsigned int)ts->tv_sec; + uint32_t nsec = (unsigned int)ts->tv_nsec; + nsec += ts_offset; + if (nsec >= 1000000000U) { + nsec -= 1000000000U; + sec += (uint32_t)1; + } + __retres = (sec << 4) | (140740U * (nsec >> 15) >> (32 - 4)); + return __retres; +} + +static void update_record(struct timespec *now, uint32_t *last_hit, + uint32_t *hits, uint16_t *tokens, + uint32_t max_tokens, int token_shift, int8_t *rate) +{ + uint32_t interval; + uint32_t now_ts; + uint32_t prev_hit; + uint32_t new_tokens; + int interval2; + now_ts = get_ts_from_timespec(now); + prev_hit = *last_hit; + *last_hit = now_ts; + *hits += (uint32_t)1; + interval = now_ts - prev_hit; + if (prev_hit == (uint32_t)0) goto return_label; + else + if ((int)interval < 0) goto return_label; + if (token_shift >= 0) new_tokens = (now_ts >> token_shift) - (prev_hit >> token_shift); + else + if (now_ts - prev_hit > max_tokens) new_tokens = max_tokens; + else new_tokens = (now_ts - prev_hit) << - token_shift; + if ((uint32_t)*tokens + new_tokens < max_tokens) *tokens = (unsigned short)( + (uint32_t)*tokens + new_tokens); + else *tokens = (unsigned short)max_tokens; + if (interval) { + interval += interval >> 1; + interval2 = -4 * 4; + while (interval2 < - (-14 * 4)) { + if (interval <= (uint32_t)1) break; + interval >>= 1; + interval2 += 4; + } + } + else interval2 = -4 * (4 + 1); + if ((int)*rate == -128) *rate = (signed char)(- interval2); + else + if ((int)*rate < - interval2) *rate = (int8_t)((int)*rate + 1); + else + if ((int)*rate > - interval2) + if ((int)*rate > (4 * 5) / 2 - interval2) *rate = (signed char)( + (4 * 5) / 2 - interval2); + else *rate = (signed char)((((int)*rate - interval2) - 1) / 2); + return_label: return; +} + +static int get_index(Record *record) +{ + int __retres; + void *tmp; + tmp = ARR_GetElements(records); + ; + __retres = (int)(record - (Record *)tmp); + return __retres; +} + +int CLG_GetClientIndex(IPAddr *client) +{ + int __retres; + Record *record; + int tmp; + record = get_record(client); + if (record == (Record *)0) { + __retres = -1; + goto return_label; + } + tmp = get_index(record); + __retres = tmp; + return_label: return __retres; +} + +int CLG_LogNTPAccess(IPAddr *client, struct timespec *now) +{ + int __retres; + Record *record; + int8_t *tmp; + int tmp_0; + total_ntp_hits += (uint32_t)1; + record = get_record(client); + if (record == (Record *)0) { + __retres = -1; + goto return_label; + } + if ((int)record->flags & 0x1) tmp = & record->ntp_timeout_rate; + else tmp = & record->ntp_rate; + ; + ; + ; + ; + ; + ; + update_record(now,& record->last_ntp_hit,& record->ntp_hits, + & record->ntp_tokens,(unsigned int)max_ntp_tokens, + ntp_token_shift,tmp); + tmp_0 = get_index(record); + __retres = tmp_0; + return_label: return __retres; +} + +int CLG_LogCommandAccess(IPAddr *client, struct timespec *now) +{ + int __retres; + Record *record; + int tmp; + total_cmd_hits += (uint32_t)1; + record = get_record(client); + if (record == (Record *)0) { + __retres = -1; + goto return_label; + } + update_record(now,& record->last_cmd_hit,& record->cmd_hits, + & record->cmd_tokens,(unsigned int)max_cmd_tokens, + cmd_token_shift,& record->cmd_rate); + tmp = get_index(record); + __retres = tmp; + return_label: return __retres; +} + +static uint32_t limit_response_random_rnd; +static int limit_response_random(int leak_rate); + +static int limit_response_random_bits_left = 0; +static int limit_response_random(int leak_rate) +{ + int r; + if (limit_response_random_bits_left < leak_rate) { + UTI_GetRandomBytes((void *)(& limit_response_random_rnd), + (unsigned int)sizeof(limit_response_random_rnd)); + limit_response_random_bits_left = (int)((unsigned long)8 * sizeof(limit_response_random_rnd)); + } + if (limit_response_random_rnd % (1U << leak_rate)) r = 1; else r = 0; + limit_response_random_rnd >>= leak_rate; + limit_response_random_bits_left -= leak_rate; + return r; +} + +int CLG_LimitNTPResponseRate(int index_0) +{ + int __retres; + Record *record; + int drop; + if (! ntp_tokens_per_packet) { + __retres = 0; + goto return_label; + } + record = (Record *)ARR_GetElement(records,(unsigned int)index_0); + record->flags = (unsigned char)((int)record->flags & ~ 0x1); + if ((int)record->ntp_tokens >= (int)ntp_tokens_per_packet) { + record->ntp_tokens = (unsigned short)((int)record->ntp_tokens - (int)ntp_tokens_per_packet); + __retres = 0; + goto return_label; + } + drop = limit_response_random(ntp_leak_rate); + if ((int)record->ntp_timeout_rate != -128) + if ((int)record->ntp_timeout_rate > (int)record->ntp_rate + 4) drop = ! drop; + if (! drop) { + record->ntp_tokens = (unsigned short)0; + __retres = 0; + goto return_label; + } + record->flags = (unsigned char)((int)record->flags | 0x1); + record->ntp_drops = (uint16_t)((int)record->ntp_drops + 1); + total_ntp_drops += (uint32_t)1; + __retres = 1; + return_label: return __retres; +} + +int CLG_LimitCommandResponseRate(int index_0) +{ + int __retres; + Record *record; + int tmp; + if (! cmd_tokens_per_packet) { + __retres = 0; + goto return_label; + } + record = (Record *)ARR_GetElement(records,(unsigned int)index_0); + if ((int)record->cmd_tokens >= (int)cmd_tokens_per_packet) { + record->cmd_tokens = (unsigned short)((int)record->cmd_tokens - (int)cmd_tokens_per_packet); + __retres = 0; + goto return_label; + } + tmp = limit_response_random(cmd_leak_rate); + if (! tmp) { + record->cmd_tokens = (unsigned short)0; + __retres = 0; + goto return_label; + } + record->cmd_drops = (uint16_t)((int)record->cmd_drops + 1); + total_cmd_drops += (uint32_t)1; + __retres = 1; + return_label: return __retres; +} + +void CLG_GetNtpTimestamps(int index_0, NTP_int64 **rx_ts, NTP_int64 **tx_ts) +{ + Record *record; + record = (Record *)ARR_GetElement(records,(unsigned int)index_0); + *rx_ts = & record->ntp_rx_ts; + *tx_ts = & record->ntp_tx_ts; + return; +} + +int CLG_GetNtpMinPoll(void) +{ + return ntp_limit_interval; +} + +int CLG_GetNumberOfIndices(void) +{ + int __retres; + unsigned int tmp; + if (! active) { + __retres = -1; + goto return_label; + } + tmp = ARR_GetSize(records); + __retres = (int)tmp; + return_label: return __retres; +} + +static int get_interval(int rate) +{ + int __retres; + int tmp; + if (rate == -128) { + __retres = 127; + goto return_label; + } + if (rate > 0) tmp = 4 / 2; else tmp = -4 / 2; + rate += tmp; + __retres = rate / -4; + return_label: return __retres; +} + +static uint32_t get_last_ago(uint32_t x, uint32_t y) +{ + uint32_t __retres; + if (y == (uint32_t)0) { + __retres = (unsigned int)(-1); + goto return_label; + } + else + if ((int)(x - y) < 0) { + __retres = (unsigned int)(-1); + goto return_label; + } + __retres = (x - y) >> 4; + return_label: return __retres; +} + +int CLG_GetClientAccessReportByIndex(int index_0, + RPT_ClientAccessByIndex_Report *report, + struct timespec *now) +{ + int __retres; + Record *record; + uint32_t now_ts; + int tmp_0; + int tmp_1; + int tmp_2; + if (! active) { + __retres = 0; + goto return_label; + } + else + if (index_0 < 0) { + __retres = 0; + goto return_label; + } + else { + unsigned int tmp; + tmp = ARR_GetSize(records); + ; + if ((unsigned int)index_0 >= tmp) { + __retres = 0; + goto return_label; + } + } + record = (Record *)ARR_GetElement(records,(unsigned int)index_0); + if ((int)record->ip_addr.family == 0) { + __retres = 0; + goto return_label; + } + now_ts = get_ts_from_timespec(now); + report->ip_addr = record->ip_addr; + report->ntp_hits = record->ntp_hits; + report->cmd_hits = record->cmd_hits; + report->ntp_drops = record->ntp_drops; + report->cmd_drops = record->cmd_drops; + tmp_0 = get_interval((int)record->ntp_rate); + report->ntp_interval = (signed char)tmp_0; + tmp_1 = get_interval((int)record->cmd_rate); + report->cmd_interval = (signed char)tmp_1; + tmp_2 = get_interval((int)record->ntp_timeout_rate); + report->ntp_timeout_interval = (signed char)tmp_2; + report->last_ntp_hit_ago = get_last_ago(now_ts,record->last_ntp_hit); + report->last_cmd_hit_ago = get_last_ago(now_ts,record->last_cmd_hit); + __retres = 1; + return_label: return __retres; +} + +void CLG_GetServerStatsReport(RPT_ServerStatsReport *report) +{ + report->ntp_hits = total_ntp_hits; + report->cmd_hits = total_cmd_hits; + report->ntp_drops = total_ntp_drops; + report->cmd_drops = total_cmd_drops; + report->log_drops = total_record_drops; + return; +} + +void SST_Initialise(void); + +void SST_Finalise(void); + +SST_Stats SST_CreateInstance(uint32_t refid, IPAddr *addr, int min_samples_0, + int max_samples_0, double min_delay, + double asymmetry); + +void SST_DeleteInstance(SST_Stats inst); + +void SST_ResetInstance(SST_Stats inst); + +void SST_SetRefid(SST_Stats inst, uint32_t refid, IPAddr *addr); + +void SST_AccumulateSample(SST_Stats inst, NTP_Sample *sample); + +void SST_DoNewRegression(SST_Stats inst); + +void SST_GetFrequencyRange(SST_Stats inst, double *lo, double *hi); + +void SST_GetSelectionData(SST_Stats inst, struct timespec *now, int *stratum, + NTP_Leap *leap, double *offset_lo_limit, + double *offset_hi_limit, double *root_distance, + double *std_dev, double *first_sample_ago, + double *last_sample_ago, int *select_ok); + +void SST_GetTrackingData(SST_Stats inst, struct timespec *ref_time, + double *average_offset, double *offset_sd, + double *frequency, double *frequency_sd, + double *skew, double *root_delay, + double *root_dispersion); + +void SST_SlewSamples(SST_Stats inst, struct timespec *when, double dfreq, + double doffset); + +void SST_AddDispersion(SST_Stats inst, double dispersion); + +double SST_PredictOffset(SST_Stats inst, struct timespec *when); + +double SST_MinRoundTripDelay(SST_Stats inst); + +int SST_GetDelayTestData(SST_Stats inst, struct timespec *sample_time, + double *last_sample_ago, double *predicted_offset, + double *min_delay, double *skew, double *std_dev); + +void SST_SaveToFile(SST_Stats inst, FILE *out); + +int SST_LoadFromFile(SST_Stats inst, FILE *in); + +void SST_DoSourceReport(SST_Stats inst, RPT_SourceReport *report, + struct timespec *now); + +void SST_DoSourcestatsReport(SST_Stats inst, RPT_SourcestatsReport *report, + struct timespec *now); + +int SST_Samples(SST_Stats inst); + +double SST_GetJitterAsymmetry(SST_Stats inst); + +void SRC_Initialise(void); + +void SRC_Finalise(void); + +SRC_Instance SRC_CreateNewInstance(uint32_t ref_id, SRC_Type type, + int sel_options, IPAddr *addr, + int min_samples_0, int max_samples_0, + double min_delay, double asymmetry); + +void SRC_DestroyInstance(SRC_Instance instance); + +void SRC_ResetInstance(SRC_Instance instance); + +void SRC_SetRefid(SRC_Instance instance, uint32_t ref_id, IPAddr *addr); + +SST_Stats SRC_GetSourcestats(SRC_Instance instance); + +void SRC_AccumulateSample(SRC_Instance inst, NTP_Sample *sample); + +void SRC_SetActive(SRC_Instance inst); + +void SRC_UnsetActive(SRC_Instance inst); + +void SRC_UpdateReachability(SRC_Instance inst, int reachable); + +void SRC_ResetReachability(SRC_Instance inst); + +void SRC_SelectSource(SRC_Instance updated_inst); + +void SRC_ReselectSource(void); + +void SRC_SetReselectDistance(double distance); + +void SRC_DumpSources(void); + +void SRC_ReloadSources(void); + +void SRC_RemoveDumpFiles(void); + +int SRC_IsSyncPeer(SRC_Instance inst); + +int SRC_IsReachable(SRC_Instance inst); + +int SRC_ReadNumberOfSources(void); + +int SRC_ActiveSources(void); + +int SRC_ReportSource(int index_0, RPT_SourceReport *report, + struct timespec *now); + +int SRC_ReportSourcestats(int index_0, RPT_SourcestatsReport *report, + struct timespec *now); + +SRC_Type SRC_GetType(int index_0); + +int CPS_ParseNTPSourceAdd(char *line, CPS_NTP_Source *src); + +int CPS_ParseLocal(char *line, int *stratum, int *orphan, double *distance); + +void CPS_NormalizeLine(char *line); + +char *CPS_SplitWord(char *line); + +int CPS_ParseKey(char *line, uint32_t *id, char const **hash, char **key); + +void DNS_SetAddressFamily(int family); + +DNS_Status DNS_Name2IPAddress(char const *name, IPAddr *ip_addrs, + int max_addrs); + +int DNS_IPAddress2Name(IPAddr *ip_addr, char *name, int len); + +void DNS_Reload(void); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_1(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_2(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_3(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_4(char const * __restrict s, char const * __restrict format, + unsigned short *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_5(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_6(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_7(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_8(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_9(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_10(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_11(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_12(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_13(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_14(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_15(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_16(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_17(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_18(char const * __restrict s, char const * __restrict format, + unsigned int *param0, int *param1); + +int CPS_ParseNTPSourceAdd(char *line, CPS_NTP_Source *src) +{ + int __retres; + char *hostname; + char *cmd; + int n; + src->port = (unsigned short)123; + src->params.minpoll = 6; + src->params.maxpoll = 10; + src->params.connectivity = SRC_ONLINE; + src->params.auto_offline = 0; + src->params.presend_minpoll = 100; + src->params.burst = 0; + src->params.iburst = 0; + src->params.min_stratum = 0; + src->params.poll_target = 8; + src->params.version = 0; + src->params.max_sources = 4; + src->params.min_samples = -1; + src->params.max_samples = -1; + src->params.filter_length = 0; + src->params.interleaved = 0; + src->params.sel_options = 0; + src->params.authkey = (unsigned int)0; + src->params.max_delay = 3.0; + src->params.max_delay_ratio = 0.0; + src->params.max_delay_dev_ratio = 10.0; + src->params.min_delay = 0.0; + src->params.asymmetry = 1.0; + src->params.offset = 0.0; + hostname = line; + line = CPS_SplitWord(line); + if (! *hostname) { + __retres = 0; + goto return_label; + } + src->name = hostname; + while (*line) { + { + int tmp_43; + cmd = line; + line = CPS_SplitWord(line); + n = 0; + tmp_43 = strcasecmp((char const *)cmd,"auto_offline"); + if (tmp_43) { + int tmp_42; + tmp_42 = strcasecmp((char const *)cmd,"burst"); + if (tmp_42) { + int tmp_41; + tmp_41 = strcasecmp((char const *)cmd,"iburst"); + if (tmp_41) { + int tmp_40; + tmp_40 = strcasecmp((char const *)cmd,"offline"); + if (tmp_40) { + int tmp_39; + tmp_39 = strcasecmp((char const *)cmd,"noselect"); + if (tmp_39) { + int tmp_38; + tmp_38 = strcasecmp((char const *)cmd,"prefer"); + if (tmp_38) { + int tmp_37; + tmp_37 = strcasecmp((char const *)cmd,"require"); + if (tmp_37) { + int tmp_36; + tmp_36 = strcasecmp((char const *)cmd,"trust"); + if (tmp_36) { + int tmp_35; + tmp_35 = strcasecmp((char const *)cmd,"key"); + if (tmp_35) { + int tmp_34; + tmp_34 = strcasecmp((char const *)cmd,"asymmetry"); + if (tmp_34) { + int tmp_33; + tmp_33 = strcasecmp((char const *)cmd,"filter"); + if (tmp_33) { + int tmp_32; + tmp_32 = strcasecmp((char const *)cmd,"maxdelay"); + if (tmp_32) { + int tmp_31; + tmp_31 = strcasecmp((char const *)cmd, + "maxdelayratio"); + if (tmp_31) { + int tmp_30; + tmp_30 = strcasecmp((char const *)cmd, + "maxdelaydevratio"); + if (tmp_30) { + int tmp_29; + tmp_29 = strcasecmp((char const *)cmd, + "maxpoll"); + if (tmp_29) { + int tmp_28; + tmp_28 = strcasecmp((char const *)cmd, + "maxsamples"); + if (tmp_28) { + int tmp_27; + tmp_27 = strcasecmp((char const *)cmd, + "maxsources"); + if (tmp_27) { + int tmp_26; + tmp_26 = strcasecmp((char const *)cmd, + "mindelay"); + if (tmp_26) { + int tmp_25; + tmp_25 = strcasecmp((char const *)cmd, + "minpoll"); + if (tmp_25) { + int tmp_24; + tmp_24 = strcasecmp((char const *)cmd, + "minsamples"); + if (tmp_24) { + int tmp_23; + tmp_23 = strcasecmp((char const *)cmd, + "minstratum"); + if (tmp_23) { + int tmp_22; + tmp_22 = strcasecmp((char const *)cmd, + "offset"); + if (tmp_22) { + int tmp_21; + tmp_21 = strcasecmp + ((char const *)cmd,"port"); + if (tmp_21) { + int tmp_20; + tmp_20 = strcasecmp + ((char const *)cmd, + "polltarget"); + if (tmp_20) { + int tmp_19; + tmp_19 = strcasecmp + ((char const *)cmd, + "presend"); + if (tmp_19) { + int tmp_18; + tmp_18 = strcasecmp + ((char const *)cmd, + "version"); + if (tmp_18) { + int tmp_17; + tmp_17 = strcasecmp + ((char const *)cmd, + "xleave"); + if (tmp_17) { + __retres = 0; + goto return_label; + } + else src->params.interleaved = 1; + } + else { + int tmp_16; + tmp_16 = sscanf_va_1 + ((char const *)line, + "%d%n", + & src->params.version, + & n); + if (tmp_16 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_15; + tmp_15 = sscanf_va_2 + ((char const *)line, + "%d%n", + & src->params.presend_minpoll, + & n); + if (tmp_15 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_14; + tmp_14 = sscanf_va_3 + ((char const *)line, + "%d%n", + & src->params.poll_target, + & n); + if (tmp_14 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_13; + tmp_13 = sscanf_va_4 + ((char const *)line, + "%hu%n",& src->port,& n); + if (tmp_13 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_12; + tmp_12 = sscanf_va_5 + ((char const *)line, + "%lf%n", + & src->params.offset,& n); + if (tmp_12 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_11; + tmp_11 = sscanf_va_6((char const *)line, + "%d%n", + & src->params.min_stratum, + & n); + if (tmp_11 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_10; + tmp_10 = sscanf_va_7((char const *)line, + "%d%n", + & src->params.min_samples, + & n); + if (tmp_10 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_9; + tmp_9 = sscanf_va_8((char const *)line, + "%d%n", + & src->params.minpoll, + & n); + if (tmp_9 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_8; + tmp_8 = sscanf_va_9((char const *)line, + "%lf%n", + & src->params.min_delay, + & n); + if (tmp_8 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_7; + tmp_7 = sscanf_va_10((char const *)line, + "%d%n", + & src->params.max_sources, + & n); + if (tmp_7 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_6; + tmp_6 = sscanf_va_11((char const *)line, + "%d%n", + & src->params.max_samples, + & n); + if (tmp_6 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_5; + tmp_5 = sscanf_va_12((char const *)line, + "%d%n", + & src->params.maxpoll, + & n); + if (tmp_5 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_4; + tmp_4 = sscanf_va_13((char const *)line, + "%lf%n", + & src->params.max_delay_dev_ratio, + & n); + if (tmp_4 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_3; + tmp_3 = sscanf_va_14((char const *)line, + "%lf%n", + & src->params.max_delay_ratio, + & n); + if (tmp_3 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_2; + tmp_2 = sscanf_va_15((char const *)line, + "%lf%n", + & src->params.max_delay, + & n); + if (tmp_2 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_1; + tmp_1 = sscanf_va_16((char const *)line,"%d%n", + & src->params.filter_length, + & n); + if (tmp_1 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp_0; + tmp_0 = sscanf_va_17((char const *)line,"%lf%n", + & src->params.asymmetry,& n); + if (tmp_0 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + int tmp; + tmp = sscanf_va_18((char const *)line,"%u%n", + (unsigned int *)(& src->params.authkey), + & n); + if (tmp != 1) { + __retres = 0; + goto return_label; + } + else + if (src->params.authkey == (uint32_t)0) { + __retres = 0; + goto return_label; + } + } + } + else src->params.sel_options |= 0x4; + } + else src->params.sel_options |= 0x8; + } + else src->params.sel_options |= 0x2; + } + else src->params.sel_options |= 0x1; + } + else src->params.connectivity = SRC_OFFLINE; + } + else src->params.iburst = 1; + } + else src->params.burst = 1; + } + else src->params.auto_offline = 1; + } + line += n; + } + __retres = 1; + return_label: return __retres; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_19(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_20(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +int CPS_ParseLocal(char *line, int *stratum, int *orphan, double *distance) +{ + int __retres; + int n; + char *cmd; + *stratum = 10; + *distance = 1.0; + *orphan = 0; + while (*line) { + int tmp_3; + cmd = line; + line = CPS_SplitWord(line); + tmp_3 = strcasecmp((char const *)cmd,"stratum"); + if (tmp_3) { + int tmp_2; + tmp_2 = strcasecmp((char const *)cmd,"orphan"); + if (tmp_2) { + int tmp_1; + tmp_1 = strcasecmp((char const *)cmd,"distance"); + if (tmp_1) { + __retres = 0; + goto return_label; + } + else { + int tmp_0; + tmp_0 = sscanf_va_19((char const *)line,"%lf%n",distance,& n); + if (tmp_0 != 1) { + __retres = 0; + goto return_label; + } + } + } + else { + *orphan = 1; + n = 0; + } + } + else { + int tmp; + tmp = sscanf_va_20((char const *)line,"%d%n",stratum,& n); + if (tmp != 1) { + __retres = 0; + goto return_label; + } + else + if (*stratum >= 16) { + __retres = 0; + goto return_label; + } + else + if (*stratum <= 0) { + __retres = 0; + goto return_label; + } + } + line += n; + } + __retres = 1; + return_label: return __retres; +} + +void CPS_NormalizeLine(char *line) +{ + char *p; + char *q; + int space = 1; + int first = 1; + q = line; + p = q; + while (*p) { + { + int tmp_0; + char *tmp_2; + tmp_0 = isspace((int)((unsigned char)*p)); + if (tmp_0) { + if (! space) { + char *tmp; + tmp = q; + q ++; + *tmp = (char)' '; + } + space = 1; + goto __Cont; + } + if (first) { + char *tmp_1; + tmp_1 = strchr("!;#%",(int)*p); + if (tmp_1) break; + } + tmp_2 = q; + q ++; + *tmp_2 = *p; + first = 0; + space = first; + } + __Cont: p ++; + } + if (q > line) + if ((int)*(q + -1) == ' ') q --; + *q = (char)'\000'; + return; +} + +char *CPS_SplitWord(char *line) +{ + char *p = line; + char *q = line; + while (1) { + if (*q) { + int tmp; + tmp = isspace((int)((unsigned char)*q)); + if (! tmp) break; + } + else break; + q ++; + } + while (1) { + char *tmp_0; + char *tmp_1; + if (*q) { + int tmp_2; + tmp_2 = isspace((int)((unsigned char)*q)); + if (tmp_2) break; + } + else break; + tmp_0 = p; + p ++; + tmp_1 = q; + q ++; + *tmp_0 = *tmp_1; + } + while (1) { + if (*q) { + int tmp_3; + tmp_3 = isspace((int)((unsigned char)*q)); + if (! tmp_3) break; + } + else break; + q ++; + } + *p = (char)'\000'; + return q; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_21(char const * __restrict s, char const * __restrict format, + unsigned int *param0); + +int CPS_ParseKey(char *line, uint32_t *id, char const **hash, char **key) +{ + int __retres; + char *s1; + char *s2; + char *s3; + char *s4; + int tmp; + s1 = line; + s2 = CPS_SplitWord(s1); + s3 = CPS_SplitWord(s2); + s4 = CPS_SplitWord(s3); + if (! *s2) { + __retres = 0; + goto return_label; + } + else + if (*s4) { + __retres = 0; + goto return_label; + } + tmp = sscanf_va_21((char const *)s1,"%u",(unsigned int *)id); + if (tmp != 1) { + __retres = 0; + goto return_label; + } + if (*s3) { + *hash = (char const *)s2; + *key = s3; + } + else { + *hash = "MD5"; + *key = s2; + } + __retres = 1; + return_label: return __retres; +} + +extern int NCR_AddAccessRestriction(IPAddr *ip_addr, int subnet_bits, + int allow, int all); + +extern void NCR_AddBroadcastDestination(IPAddr *addr, unsigned short port, + int interval); + +extern NSR_Status NSR_AddSource(NTP_Remote_Address *remote_addr, + NTP_Source_Type type, + SourceParameters *params); + +extern void NSR_AddSourceByName(char *name, int port, int pool, + NTP_Source_Type type, + SourceParameters *params); + +extern void NSR_HandleBadSource(IPAddr *address); + +extern uint32_t NSR_GetLocalRefid(IPAddr *address); + +extern void NSR_ProcessRx(NTP_Remote_Address *remote_addr, + NTP_Local_Address *local_addr, + NTP_Local_Timestamp *rx_ts, NTP_Packet *message, + int length); + +extern int RCL_AddRefclock(RefclockParameters *params); + +extern int CAM_AddAccessRestriction(IPAddr *ip_addr, int subnet_bits, + int allow, int all); + +static int parse_string(char *line, char **result); + +static int parse_int(char *line, int *result); + +static int parse_double(char *line, double *result); + +static int parse_null(char *line); + +static void parse_allow_deny(char *line, ARR_Instance restrictions, int allow); + +static void parse_bindacqaddress(char *line); + +static void parse_bindaddress(char *line); + +static void parse_bindcmdaddress(char *line); + +static void parse_broadcast(char *line); + +static void parse_clientloglimit(char *line); + +static void parse_fallbackdrift(char *line); + +static void parse_hwtimestamp(char *line); + +static void parse_include(char *line); + +static void parse_initstepslew(char *line); + +static void parse_leapsecmode(char *line); + +static void parse_local(char *line); + +static void parse_log(char *line); + +static void parse_mailonchange(char *line); + +static void parse_makestep(char *line); + +static void parse_maxchange(char *line); + +static void parse_ratelimit(char *line, int *enabled_0, int *interval, + int *burst, int *leak); + +static void parse_refclock(char *line); + +static void parse_smoothtime(char *line); + +static void parse_source(char *line, NTP_Source_Type type, int pool); + +static void parse_tempcomp(char *line); + +static int restarted = 0; +static char *rtc_device; +static int acquisition_port = -1; +static int ntp_port = 123; +static char *keys_file = (char *)0; +static char *drift_file = (char *)0; +static char *rtc_file = (char *)0; +static double max_update_skew = 1000.0; +static double correction_time_ratio = 3.0; +static double max_clock_error = 1.0; +static double max_drift = 500000.0; +static double max_slew_rate = 1e6 / 12.0; +static double max_distance = 3.0; +static double max_jitter = 1.0; +static double reselect_distance = 1e-4; +static double stratum_weight = 1e-3; +static double combine_limit = 3.0; +static int cmd_port = 323; +static int raw_measurements = 0; +static int do_log_measurements = 0; +static int do_log_statistics = 0; +static int do_log_tracking = 0; +static int do_log_rtc = 0; +static int do_log_refclocks = 0; +static int do_log_tempcomp = 0; +static int log_banner = 32; +static char *logdir; +static char *dumpdir; +static int enable_local = 0; +static int local_stratum; +static int local_orphan; +static double local_distance; +static double init_slew_threshold; +static ARR_Instance init_sources; +static int enable_manual = 0; +static int rtc_on_utc = 0; +static char *hwclock_file; +static int rtc_sync = 0; +static int make_step_limit = 0; +static double make_step_threshold = 0.0; +static double rtc_autotrim_threshold = 0.0; +static int min_sources = 1; +static int max_offset_delay = -1; +static int max_offset_ignore; +static double max_offset; +static int max_samples = 0; +static int min_samples = 6; +static double log_change_threshold = 1.0; +static char *mail_user_on_change = (char *)0; +static double mail_change_threshold = 0.0; +static int no_client_log = 0; +static unsigned long client_log_limit = (unsigned long)524288; +static int fb_drift_min = 0; +static int fb_drift_max = 0; +static IPAddr bind_address4; +static IPAddr bind_address6; +static IPAddr bind_acq_address4; +static IPAddr bind_acq_address6; +static IPAddr bind_cmd_address4; +static IPAddr bind_cmd_address6; +static char *bind_cmd_path; +static char *ntp_signd_socket = (char *)0; +static char *pidfile; +static int ntp_ratelimit_enabled = 0; +static int ntp_ratelimit_interval = 3; +static int ntp_ratelimit_burst = 8; +static int ntp_ratelimit_leak = 2; +static int cmd_ratelimit_enabled = 0; +static int cmd_ratelimit_interval = -4; +static int cmd_ratelimit_burst = 8; +static int cmd_ratelimit_leak = 2; +static double smooth_max_freq = 0.0; +static double smooth_max_wander = 0.0; +static int smooth_leap_only = 0; +static char *tempcomp_sensor_file = (char *)0; +static char *tempcomp_point_file = (char *)0; +static double tempcomp_interval; +static double tempcomp_T0; +static double tempcomp_k0; +static double tempcomp_k1; +static double tempcomp_k2; +static int sched_priority = 0; +static int lock_memory = 0; +static REF_LeapMode leapsec_mode = REF_LeapModeSystem; +static char *leapsec_tz = (char *)0; +static char *user; +static ARR_Instance hwts_interfaces; +static ARR_Instance ntp_sources; +static ARR_Instance refclock_sources; +static ARR_Instance ntp_restrictions; +static ARR_Instance cmd_restrictions; +static ARR_Instance broadcasts; +static int line_number; +static char const *processed_file; +static char const *processed_command; +static void command_parse_error(void) +{ + char const *tmp; + char const *tmp_0; + if (processed_file) tmp = processed_file; else tmp = ""; + if (processed_file) tmp_0 = " in file "; else tmp_0 = ""; + ; + ; + { + char const *__va_arg0 = processed_command; + int __va_arg1 = line_number; + char const *__va_arg2 = tmp_0; + char const *__va_arg3 = tmp; + void *__va_args[4] = + {& __va_arg0, & __va_arg1, & __va_arg2, & __va_arg3}; + LOG_Message(LOGS_FATAL,"Could not parse %s directive at line %d%s%s", + (void * const *)(__va_args)); + } + exit(1); + return; +} + +static void other_parse_error(char const *message) +{ + char const *tmp; + char const *tmp_0; + if (processed_file) tmp = processed_file; else tmp = ""; + if (processed_file) tmp_0 = " in file "; else tmp_0 = ""; + ; + ; + { + char const *__va_arg0 = message; + int __va_arg1 = line_number; + char const *__va_arg2 = tmp_0; + char const *__va_arg3 = tmp; + void *__va_args[4] = + {& __va_arg0, & __va_arg1, & __va_arg2, & __va_arg3}; + LOG_Message(LOGS_FATAL,"%s at line %d%s%s",(void * const *)(__va_args)); + } + exit(1); + return; +} + +static int get_number_of_args(char *line) +{ + int num = 0; + if ((int)*line == ' ') line ++; + if (*line) num ++; + while (*line) { + if ((int)*line == ' ') num ++; + line ++; + } + return num; +} + +static void check_number_of_args(char *line, int num) +{ + int tmp; + tmp = get_number_of_args(line); + num -= tmp; + if (num) { + char const *tmp_0; + char const *tmp_1; + char const *tmp_2; + if (processed_file) tmp_0 = processed_file; else tmp_0 = ""; + if (processed_file) tmp_1 = " in file "; else tmp_1 = ""; + ; + ; + if (num > 0) tmp_2 = "Missing"; else tmp_2 = "Too many"; + { + char const *__va_arg0 = tmp_2; + char const *__va_arg1 = processed_command; + int __va_arg2 = line_number; + char const *__va_arg3 = tmp_1; + char const *__va_arg4 = tmp_0; + void *__va_args[5] = + {& __va_arg0, & __va_arg1, & __va_arg2, & __va_arg3, & __va_arg4}; + LOG_Message(LOGS_FATAL,"%s arguments for %s directive at line %d%s%s", + (void * const *)(__va_args)); + } + exit(1); + } + return; +} + +void CNF_Initialise(int r, int client_only) +{ + restarted = r; + hwts_interfaces = ARR_CreateInstance((unsigned int)sizeof(CNF_HwTsInterface)); + init_sources = ARR_CreateInstance((unsigned int)sizeof(IPAddr)); + ntp_sources = ARR_CreateInstance((unsigned int)sizeof(NTP_Source)); + refclock_sources = ARR_CreateInstance((unsigned int)sizeof(RefclockParameters)); + broadcasts = ARR_CreateInstance((unsigned int)sizeof(NTP_Broadcast_Destination)); + ntp_restrictions = ARR_CreateInstance((unsigned int)sizeof(AllowDeny)); + cmd_restrictions = ARR_CreateInstance((unsigned int)sizeof(AllowDeny)); + dumpdir = Strdup(""); + logdir = Strdup(""); + rtc_device = Strdup("/dev/rtc"); + hwclock_file = Strdup(""); + user = Strdup("root"); + if (client_only) { + ntp_port = 0; + cmd_port = ntp_port; + bind_cmd_path = Strdup(""); + pidfile = Strdup(""); + } + else { + bind_cmd_path = Strdup("/var/run/chrony/chronyd.sock"); + pidfile = Strdup("/var/run/chronyd.pid"); + } + return; +} + +void CNF_Finalise(void) +{ + unsigned int i; + i = (unsigned int)0; + while (1) { + unsigned int tmp_0; + void *tmp; + tmp_0 = ARR_GetSize(hwts_interfaces); + ; + if (! (i < tmp_0)) break; + tmp = ARR_GetElement(hwts_interfaces,i); + free((void *)((CNF_HwTsInterface *)tmp)->name); + i ++; + } + ARR_DestroyInstance(hwts_interfaces); + i = (unsigned int)0; + while (1) { + unsigned int tmp_2; + void *tmp_1; + tmp_2 = ARR_GetSize(ntp_sources); + ; + if (! (i < tmp_2)) break; + tmp_1 = ARR_GetElement(ntp_sources,i); + free((void *)((NTP_Source *)tmp_1)->params.name); + i ++; + } + ARR_DestroyInstance(init_sources); + ARR_DestroyInstance(ntp_sources); + ARR_DestroyInstance(refclock_sources); + ARR_DestroyInstance(broadcasts); + ARR_DestroyInstance(ntp_restrictions); + ARR_DestroyInstance(cmd_restrictions); + free((void *)drift_file); + free((void *)dumpdir); + free((void *)hwclock_file); + free((void *)keys_file); + free((void *)leapsec_tz); + free((void *)logdir); + free((void *)bind_cmd_path); + free((void *)ntp_signd_socket); + free((void *)pidfile); + free((void *)rtc_device); + free((void *)rtc_file); + free((void *)user); + free((void *)mail_user_on_change); + free((void *)tempcomp_sensor_file); + free((void *)tempcomp_point_file); + return; +} + +void CNF_ReadFile(char const *filename) +{ + FILE *in; + char line[2048]; + int i; + in = fopen(filename,"r"); + if (! in) { + { + char *tmp; + tmp = strerror(__fc_errno); + ; + { + char const *__va_arg0 = filename; + char *__va_arg1 = tmp; + void *__va_args[2] = {& __va_arg0, & __va_arg1}; + LOG_Message(LOGS_FATAL,"Could not open configuration file %s : %s", + (void * const *)(__va_args)); + } + exit(1); + } + goto return_label; + } + i = 1; + while (1) { + char *tmp_0; + tmp_0 = fgets(line,(int)sizeof(line),in); + if (! tmp_0) break; + CNF_ParseLine(filename,i,line); + i ++; + } + fclose(in); + return_label: return; +} + +void CNF_ParseLine(char const *filename, int number, char *line) +{ + char *p; + char *command; + int tmp_66; + processed_file = filename; + line_number = number; + CPS_NormalizeLine(line); + if (! *line) goto return_label; + command = line; + processed_command = (char const *)command; + p = CPS_SplitWord(line); + tmp_66 = strcasecmp((char const *)command,"acquisitionport"); + if (tmp_66) { + int tmp_65; + tmp_65 = strcasecmp((char const *)command,"allow"); + if (tmp_65) { + int tmp_64; + tmp_64 = strcasecmp((char const *)command,"bindacqaddress"); + if (tmp_64) { + int tmp_63; + tmp_63 = strcasecmp((char const *)command,"bindaddress"); + if (tmp_63) { + int tmp_62; + tmp_62 = strcasecmp((char const *)command,"bindcmdaddress"); + if (tmp_62) { + int tmp_61; + tmp_61 = strcasecmp((char const *)command,"broadcast"); + if (tmp_61) { + int tmp_60; + tmp_60 = strcasecmp((char const *)command,"clientloglimit"); + if (tmp_60) { + int tmp_59; + tmp_59 = strcasecmp((char const *)command,"cmdallow"); + if (tmp_59) { + int tmp_58; + tmp_58 = strcasecmp((char const *)command,"cmddeny"); + if (tmp_58) { + int tmp_57; + tmp_57 = strcasecmp((char const *)command,"cmdport"); + if (tmp_57) { + int tmp_56; + tmp_56 = strcasecmp((char const *)command, + "cmdratelimit"); + if (tmp_56) { + int tmp_55; + tmp_55 = strcasecmp((char const *)command, + "combinelimit"); + if (tmp_55) { + int tmp_54; + tmp_54 = strcasecmp((char const *)command, + "corrtimeratio"); + if (tmp_54) { + int tmp_53; + tmp_53 = strcasecmp((char const *)command,"deny"); + if (tmp_53) { + int tmp_52; + tmp_52 = strcasecmp((char const *)command, + "driftfile"); + if (tmp_52) { + int tmp_51; + tmp_51 = strcasecmp((char const *)command, + "dumpdir"); + if (tmp_51) { + int tmp_50; + tmp_50 = strcasecmp((char const *)command, + "dumponexit"); + if (tmp_50) { + int tmp_49; + tmp_49 = strcasecmp((char const *)command, + "fallbackdrift"); + if (tmp_49) { + int tmp_48; + tmp_48 = strcasecmp((char const *)command, + "hwclockfile"); + if (tmp_48) { + int tmp_47; + tmp_47 = strcasecmp((char const *)command, + "hwtimestamp"); + if (tmp_47) { + int tmp_46; + tmp_46 = strcasecmp((char const *)command, + "include"); + if (tmp_46) { + int tmp_45; + tmp_45 = strcasecmp((char const *)command, + "initstepslew"); + if (tmp_45) { + int tmp_44; + tmp_44 = strcasecmp((char const *)command, + "keyfile"); + if (tmp_44) { + int tmp_43; + tmp_43 = strcasecmp((char const *)command, + "leapsecmode"); + if (tmp_43) { + int tmp_42; + tmp_42 = strcasecmp + ((char const *)command, + "leapsectz"); + if (tmp_42) { + int tmp_41; + tmp_41 = strcasecmp + ((char const *)command, + "local"); + if (tmp_41) { + int tmp_40; + tmp_40 = strcasecmp + ((char const *)command, + "lock_all"); + if (tmp_40) { + int tmp_39; + tmp_39 = strcasecmp + ((char const *)command, + "log"); + if (tmp_39) { + int tmp_38; + tmp_38 = strcasecmp + ((char const *)command, + "logbanner"); + if (tmp_38) { + int tmp_37; + tmp_37 = strcasecmp + ((char const *)command, + "logchange"); + if (tmp_37) { + int tmp_36; + tmp_36 = strcasecmp + ((char const *)command, + "logdir"); + if (tmp_36) { + int tmp_35; + tmp_35 = strcasecmp + ((char const *)command, + "mailonchange"); + if (tmp_35) { + int tmp_34; + tmp_34 = strcasecmp + ((char const *)command, + "makestep"); + if (tmp_34) { + int tmp_33; + tmp_33 = strcasecmp + ((char const *)command, + "manual"); + if (tmp_33) { + int tmp_32; + tmp_32 = strcasecmp + ((char const *)command, + "maxchange"); + if (tmp_32) { + int tmp_31; + tmp_31 = strcasecmp + ((char const *)command, + "maxclockerror"); + if (tmp_31) { + int tmp_30; + tmp_30 = strcasecmp + ((char const *)command, + "maxdistance"); + if (tmp_30) { + int tmp_29; + tmp_29 = strcasecmp + ((char const *)command, + "maxdrift"); + if (tmp_29) { + int tmp_28; + tmp_28 = strcasecmp + ((char const *)command, + "maxjitter"); + if (tmp_28) { + int tmp_27; + tmp_27 = strcasecmp + ((char const *)command, + "maxsamples"); + if (tmp_27) { + int tmp_26; + tmp_26 = strcasecmp + ((char const *)command, + "maxslewrate"); + if (tmp_26) { + int tmp_25; + tmp_25 = strcasecmp + ((char const *)command, + "maxupdateskew"); + if (tmp_25) { + int tmp_24; + tmp_24 = strcasecmp + ((char const *)command, + "minsamples"); + if (tmp_24) { + int tmp_23; + tmp_23 = strcasecmp + ((char const *)command, + "minsources"); + if (tmp_23) { + int tmp_22; + tmp_22 = strcasecmp + ((char const *)command, + "noclientlog"); + if (tmp_22) { + int tmp_21; + tmp_21 = strcasecmp + ((char const *)command, + "ntpsigndsocket"); + if (tmp_21) { + int tmp_20; + tmp_20 = strcasecmp + ((char const *)command, + "peer"); + if (tmp_20) { + int tmp_19; + tmp_19 = strcasecmp + ((char const *)command, + "pidfile"); + if (tmp_19) { + int tmp_18; + tmp_18 = strcasecmp + ((char const *)command, + "pool"); + if (tmp_18) { + int tmp_17; + tmp_17 = strcasecmp + ((char const *)command, + "port"); + if (tmp_17) { + int tmp_16; + tmp_16 = strcasecmp + ((char const *)command, + "ratelimit"); + if (tmp_16) { + int tmp_15; + tmp_15 = strcasecmp + ((char const *)command, + "refclock"); + if (tmp_15) { + int tmp_14; + tmp_14 = strcasecmp + ((char const *)command, + "reselectdist"); + if (tmp_14) { + int tmp_13; + tmp_13 = strcasecmp + ((char const *)command, + "rtcautotrim"); + if (tmp_13) { + int tmp_12; + tmp_12 = strcasecmp + ((char const *)command, + "rtcdevice"); + if (tmp_12) { + int tmp_11; + tmp_11 = strcasecmp + ((char const *)command, + "rtcfile"); + if (tmp_11) { + int tmp_10; + tmp_10 = strcasecmp + ((char const *)command, + "rtconutc"); + if (tmp_10) { + int tmp_9; + tmp_9 = strcasecmp + ((char const *)command, + "rtcsync"); + if (tmp_9) { + int tmp_8; + tmp_8 = strcasecmp + ((char const *)command, + "sched_priority"); + if (tmp_8) { + int tmp_7; + tmp_7 = strcasecmp + ((char const *)command, + "server"); + if (tmp_7) { + int tmp_6; + tmp_6 = strcasecmp + ((char const *)command, + "smoothtime"); + if (tmp_6) { + int tmp_5; + tmp_5 = strcasecmp + ((char const *)command, + "stratumweight"); + if (tmp_5) { + int tmp_4; + tmp_4 = strcasecmp + ((char const *)command, + "tempcomp"); + if (tmp_4) { + int tmp_3; + tmp_3 = strcasecmp + ((char const *)command, + "user"); + if (tmp_3) { + int tmp; + tmp = strcasecmp + ((char const *)command, + "commandkey"); + if (tmp) { + int tmp_0; + tmp_0 = strcasecmp + ((char const *)command, + "generatecommandkey"); + if (tmp_0) { + int tmp_1; + tmp_1 = strcasecmp + ((char const *)command, + "linux_freq_scale"); + if (tmp_1) { + int tmp_2; + tmp_2 = strcasecmp + ((char const *)command, + "linux_hz"); + if (tmp_2) + other_parse_error + ("Invalid command"); + else { + _LOR: + { + char *__va_arg0 = + command; + void *__va_args[1] = + {& __va_arg0}; + LOG_Message + (LOGS_WARN, + "%s directive is no longer supported", + (void * const *)(__va_args)); + } + } + } + else + goto _LOR; + } + else + goto _LOR; + } + else + goto _LOR; + } + else + parse_string + (p, + & user); + } + else + parse_tempcomp + (p); + } + else + parse_double + (p, + & stratum_weight); + } + else + parse_smoothtime + (p); + } + else + parse_source + (p, + NTP_SERVER, + 0); + } + else + parse_int + (p, + & sched_priority); + } + else + rtc_sync = parse_null + (p); + } + else + rtc_on_utc = parse_null + (p); + } + else + parse_string + (p, + & rtc_file); + } + else + parse_string + (p, + & rtc_device); + } + else + parse_double + (p, + & rtc_autotrim_threshold); + } + else + parse_double + (p, + & reselect_distance); + } + else + parse_refclock + (p); + } + else + parse_ratelimit + (p, + & ntp_ratelimit_enabled, + & ntp_ratelimit_interval, + & ntp_ratelimit_burst, + & ntp_ratelimit_leak); + } + else + parse_int + (p, + & ntp_port); + } + else + parse_source + (p, + NTP_SERVER, + 1); + } + else + parse_string + (p, + & pidfile); + } + else + parse_source + (p, + NTP_PEER, + 0); + } + else + parse_string + (p, + & ntp_signd_socket); + } + else + no_client_log = parse_null + (p); + } + else + parse_int + (p, + & min_sources); + } + else + parse_int + (p, + & min_samples); + } + else + parse_double + (p, + & max_update_skew); + } + else + parse_double + (p, + & max_slew_rate); + } + else + parse_int + (p, + & max_samples); + } + else + parse_double + (p, + & max_jitter); + } + else + parse_double + (p, + & max_drift); + } + else + parse_double + (p, + & max_distance); + } + else + parse_double + (p, + & max_clock_error); + } + else + parse_maxchange + (p); + } + else + enable_manual = parse_null + (p); + } + else + parse_makestep + (p); + } + else + parse_mailonchange + (p); + } + else parse_string + (p, + & logdir); + } + else parse_double + (p, + & log_change_threshold); + } + else parse_int + (p, + & log_banner); + } + else parse_log(p); + } + else lock_memory = parse_null + (p); + } + else parse_local(p); + } + else parse_string(p, + & leapsec_tz); + } + else parse_leapsecmode(p); + } + else parse_string(p, + & keys_file); + } + else parse_initstepslew(p); + } + else parse_include(p); + } + else parse_hwtimestamp(p); + } + else parse_string(p,& hwclock_file); + } + else parse_fallbackdrift(p); + } + } + else parse_string(p,& dumpdir); + } + else parse_string(p,& drift_file); + } + else parse_allow_deny(p,ntp_restrictions,0); + } + else parse_double(p,& correction_time_ratio); + } + else parse_double(p,& combine_limit); + } + else parse_ratelimit(p,& cmd_ratelimit_enabled, + & cmd_ratelimit_interval, + & cmd_ratelimit_burst, + & cmd_ratelimit_leak); + } + else parse_int(p,& cmd_port); + } + else parse_allow_deny(p,cmd_restrictions,0); + } + else parse_allow_deny(p,cmd_restrictions,1); + } + else parse_clientloglimit(p); + } + else parse_broadcast(p); + } + else parse_bindcmdaddress(p); + } + else parse_bindaddress(p); + } + else parse_bindacqaddress(p); + } + else parse_allow_deny(p,ntp_restrictions,1); + } + else parse_int(p,& acquisition_port); + return_label: return; +} + +static int parse_string(char *line, char **result) +{ + int __retres; + check_number_of_args(line,1); + free((void *)*result); + *result = Strdup((char const *)line); + __retres = 1; + return __retres; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_22(char const * __restrict s, char const * __restrict format, + int *param0); + +static int parse_int(char *line, int *result) +{ + int __retres; + int tmp; + check_number_of_args(line,1); + tmp = sscanf_va_22((char const *)line,"%d",result); + if (tmp != 1) { + command_parse_error(); + __retres = 0; + goto return_label; + } + __retres = 1; + return_label: return __retres; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_23(char const * __restrict s, char const * __restrict format, + double *param0); + +static int parse_double(char *line, double *result) +{ + int __retres; + int tmp; + check_number_of_args(line,1); + tmp = sscanf_va_23((char const *)line,"%lf",result); + if (tmp != 1) { + command_parse_error(); + __retres = 0; + goto return_label; + } + __retres = 1; + return_label: return __retres; +} + +static int parse_null(char *line) +{ + int __retres; + check_number_of_args(line,0); + __retres = 1; + return __retres; +} + +static void parse_source(char *line, NTP_Source_Type type, int pool) +{ + NTP_Source source; + int tmp; + source.type = type; + source.pool = pool; + tmp = CPS_ParseNTPSourceAdd(line,& source.params); + if (! tmp) { + command_parse_error(); + goto return_label; + } + source.params.name = Strdup((char const *)source.params.name); + ARR_AppendElement(ntp_sources,(void *)(& source)); + return_label: return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_24(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +static void parse_ratelimit(char *line, int *enabled_0, int *interval, + int *burst, int *leak) +{ + int n; + int val; + char *opt; + *enabled_0 = 1; + while (*line) { + int tmp; + int tmp_2; + opt = line; + line = CPS_SplitWord(line); + tmp = sscanf_va_24((char const *)line,"%d%n",& val,& n); + if (tmp != 1) { + command_parse_error(); + goto return_label; + } + line += n; + tmp_2 = strcasecmp((char const *)opt,"interval"); + if (tmp_2) { + int tmp_1; + tmp_1 = strcasecmp((char const *)opt,"burst"); + if (tmp_1) { + int tmp_0; + tmp_0 = strcasecmp((char const *)opt,"leak"); + if (tmp_0) command_parse_error(); else *leak = val; + } + else *burst = val; + } + else *interval = val; + } + return_label: return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_25(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_26(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_27(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_28(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_29(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_30(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_31(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_32(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_33(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_34(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_35(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_36(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_37(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + ensures \initialized(param1); + assigns \result, *param1, *(param0 + (0 ..)); + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *(param0 + (0 ..)) + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_38(char const * __restrict s, char const * __restrict format, + char *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + ensures \initialized(param1); + assigns \result, *param1, *(param0 + (0 ..)); + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *(param0 + (0 ..)) + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_39(char const * __restrict s, char const * __restrict format, + char *param0, int *param1); + +static void parse_refclock(char *line) +{ + int n; + int poll; + int dpoll; + int filter_length; + int pps_rate; + int min_samples_0; + int max_samples_0; + int sel_options; + int max_lock_age; + int pps_forced; + int stratum; + int tai; + uint32_t ref_id; + uint32_t lock_ref_id; + double offset; + double delay; + double precision; + double max_dispersion; + double pulse_width; + char *p; + char *cmd; + char *name; + char *param; + unsigned char ref[5]; + RefclockParameters *refclock; + poll = 4; + dpoll = 0; + filter_length = 64; + pps_forced = 0; + pps_rate = 0; + min_samples_0 = -1; + max_samples_0 = -1; + sel_options = 0; + offset = 0.0; + delay = 1e-9; + precision = 0.0; + max_dispersion = 0.0; + pulse_width = 0.0; + ref_id = (unsigned int)0; + max_lock_age = 2; + lock_ref_id = (unsigned int)0; + stratum = 0; + tai = 0; + if (! *line) { + command_parse_error(); + goto return_label; + } + p = line; + line = CPS_SplitWord(line); + if (! *line) { + command_parse_error(); + goto return_label; + } + name = Strdup((char const *)p); + p = line; + line = CPS_SplitWord(line); + param = Strdup((char const *)p); + cmd = line; + while (*cmd) { + { + int tmp_34; + line = CPS_SplitWord(line); + tmp_34 = strcasecmp((char const *)cmd,"refid"); + if (tmp_34) { + int tmp_33; + tmp_33 = strcasecmp((char const *)cmd,"lock"); + if (tmp_33) { + int tmp_32; + tmp_32 = strcasecmp((char const *)cmd,"poll"); + if (tmp_32) { + int tmp_31; + tmp_31 = strcasecmp((char const *)cmd,"dpoll"); + if (tmp_31) { + int tmp_30; + tmp_30 = strcasecmp((char const *)cmd,"filter"); + if (tmp_30) { + int tmp_29; + tmp_29 = strcasecmp((char const *)cmd,"rate"); + if (tmp_29) { + int tmp_28; + tmp_28 = strcasecmp((char const *)cmd,"minsamples"); + if (tmp_28) { + int tmp_27; + tmp_27 = strcasecmp((char const *)cmd,"maxlockage"); + if (tmp_27) { + int tmp_26; + tmp_26 = strcasecmp((char const *)cmd,"maxsamples"); + if (tmp_26) { + int tmp_25; + tmp_25 = strcasecmp((char const *)cmd,"offset"); + if (tmp_25) { + int tmp_24; + tmp_24 = strcasecmp((char const *)cmd,"delay"); + if (tmp_24) { + int tmp_23; + tmp_23 = strcasecmp((char const *)cmd,"pps"); + if (tmp_23) { + int tmp_22; + tmp_22 = strcasecmp((char const *)cmd, + "precision"); + if (tmp_22) { + int tmp_21; + tmp_21 = strcasecmp((char const *)cmd, + "maxdispersion"); + if (tmp_21) { + int tmp_20; + tmp_20 = strcasecmp((char const *)cmd, + "stratum"); + if (tmp_20) { + int tmp_19; + tmp_19 = strcasecmp((char const *)cmd, + "tai"); + if (tmp_19) { + int tmp_18; + tmp_18 = strcasecmp((char const *)cmd, + "width"); + if (tmp_18) { + int tmp_17; + tmp_17 = strcasecmp((char const *)cmd, + "noselect"); + if (tmp_17) { + int tmp_16; + tmp_16 = strcasecmp((char const *)cmd, + "prefer"); + if (tmp_16) { + int tmp_15; + tmp_15 = strcasecmp((char const *)cmd, + "trust"); + if (tmp_15) { + int tmp_14; + tmp_14 = strcasecmp((char const *)cmd, + "require"); + if (tmp_14) { + other_parse_error("Invalid refclock option"); + goto return_label; + } + else { + n = 0; + sel_options |= 0x8; + } + } + else { + n = 0; + sel_options |= 0x4; + } + } + else { + n = 0; + sel_options |= 0x2; + } + } + else { + n = 0; + sel_options |= 0x1; + } + } + else { + int tmp_13; + tmp_13 = sscanf_va_25((char const *)line, + "%lf%n", + & pulse_width, + & n); + if (tmp_13 != 1) break; + } + } + else { + n = 0; + tai = 1; + } + } + else { + int tmp_12; + tmp_12 = sscanf_va_26((char const *)line, + "%d%n",& stratum, + & n); + if (tmp_12 != 1) break; + else + if (stratum >= 16) break; + else + if (stratum < 0) break; + } + } + else { + int tmp_11; + tmp_11 = sscanf_va_27((char const *)line, + "%lf%n", + & max_dispersion,& n); + if (tmp_11 != 1) break; + } + } + else { + int tmp_10; + tmp_10 = sscanf_va_28((char const *)line, + "%lf%n",& precision, + & n); + if (tmp_10 != 1) break; + } + } + else { + n = 0; + pps_forced = 1; + } + } + else { + int tmp_9; + tmp_9 = sscanf_va_29((char const *)line,"%lf%n", + & delay,& n); + if (tmp_9 != 1) break; + } + } + else { + int tmp_8; + tmp_8 = sscanf_va_30((char const *)line,"%lf%n", + & offset,& n); + if (tmp_8 != 1) break; + } + } + else { + int tmp_7; + tmp_7 = sscanf_va_31((char const *)line,"%d%n", + & max_samples_0,& n); + if (tmp_7 != 1) break; + } + } + else { + int tmp_6; + tmp_6 = sscanf_va_32((char const *)line,"%d%n", + & max_lock_age,& n); + if (tmp_6 != 1) break; + } + } + else { + int tmp_5; + tmp_5 = sscanf_va_33((char const *)line,"%d%n", + & min_samples_0,& n); + if (tmp_5 != 1) break; + } + } + else { + int tmp_4; + tmp_4 = sscanf_va_34((char const *)line,"%d%n",& pps_rate, + & n); + if (tmp_4 != 1) break; + } + } + else { + int tmp_3; + tmp_3 = sscanf_va_35((char const *)line,"%d%n", + & filter_length,& n); + if (tmp_3 != 1) break; + } + } + else { + int tmp_2; + tmp_2 = sscanf_va_36((char const *)line,"%d%n",& dpoll,& n); + if (tmp_2 != 1) break; + } + } + else { + int tmp_1; + tmp_1 = sscanf_va_37((char const *)line,"%d%n",& poll,& n); + if (tmp_1 != 1) break; + } + } + else { + int tmp_0; + tmp_0 = sscanf_va_38((char const *)line,"%4s%n",(char *)(ref),& n); + if (tmp_0 != 1) break; + lock_ref_id = ((((unsigned int)ref[0] << 24) | (unsigned int)( + (int)ref[1] << 16)) | (unsigned int)((int)ref[2] << 8)) | (unsigned int)ref[3]; + } + } + else { + int tmp; + tmp = sscanf_va_39((char const *)line,"%4s%n",(char *)(ref),& n); + if (tmp != 1) break; + ref_id = ((((unsigned int)ref[0] << 24) | (unsigned int)((int)ref[1] << 16)) | (unsigned int)( + (int)ref[2] << 8)) | (unsigned int)ref[3]; + } + } + line += n; + cmd = line; + } + if (*cmd) { + command_parse_error(); + goto return_label; + } + refclock = (RefclockParameters *)ARR_GetNewElement(refclock_sources); + refclock->driver_name = name; + refclock->driver_parameter = param; + refclock->driver_poll = dpoll; + refclock->poll = poll; + refclock->filter_length = filter_length; + refclock->pps_forced = pps_forced; + refclock->pps_rate = pps_rate; + refclock->min_samples = min_samples_0; + refclock->max_samples = max_samples_0; + refclock->sel_options = sel_options; + refclock->stratum = stratum; + refclock->tai = tai; + refclock->offset = offset; + refclock->delay = delay; + refclock->precision = precision; + refclock->max_dispersion = max_dispersion; + refclock->pulse_width = pulse_width; + refclock->ref_id = ref_id; + refclock->max_lock_age = max_lock_age; + refclock->lock_ref_id = lock_ref_id; + return_label: return; +} + +static void parse_log(char *line) +{ + char *log_name; + while (1) { + log_name = line; + line = CPS_SplitWord(line); + if (*log_name) { + int tmp_5; + tmp_5 = strcmp((char const *)log_name,"rawmeasurements"); + if (tmp_5) { + int tmp_4; + tmp_4 = strcmp((char const *)log_name,"measurements"); + if (tmp_4) { + int tmp_3; + tmp_3 = strcmp((char const *)log_name,"statistics"); + if (tmp_3) { + int tmp_2; + tmp_2 = strcmp((char const *)log_name,"tracking"); + if (tmp_2) { + int tmp_1; + tmp_1 = strcmp((char const *)log_name,"rtc"); + if (tmp_1) { + int tmp_0; + tmp_0 = strcmp((char const *)log_name,"refclocks"); + if (tmp_0) { + int tmp; + tmp = strcmp((char const *)log_name,"tempcomp"); + if (tmp) { + other_parse_error("Invalid log parameter"); + break; + } + else do_log_tempcomp = 1; + } + else do_log_refclocks = 1; + } + else do_log_rtc = 1; + } + else do_log_tracking = 1; + } + else do_log_statistics = 1; + } + else do_log_measurements = 1; + } + else { + do_log_measurements = 1; + raw_measurements = 1; + } + } + else break; + } + return; +} + +static void parse_local(char *line) +{ + int tmp; + tmp = CPS_ParseLocal(line,& local_stratum,& local_orphan,& local_distance); + if (! tmp) command_parse_error(); + enable_local = 1; + return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_40(char const * __restrict s, char const * __restrict format, + double *param0); + +static void parse_initstepslew(char *line) +{ + char *p; + char *hostname; + IPAddr ip_addr; + int tmp; + if (restarted) goto return_label; + ARR_SetSize(init_sources,(unsigned int)0); + p = CPS_SplitWord(line); + tmp = sscanf_va_40((char const *)line,"%lf",& init_slew_threshold); + if (tmp != 1) { + command_parse_error(); + goto return_label; + } + while (*p) { + hostname = p; + p = CPS_SplitWord(p); + if (*hostname) { + DNS_Status tmp_0; + tmp_0 = DNS_Name2IPAddress((char const *)hostname,& ip_addr,1); + if (tmp_0 == (unsigned int)DNS_Success) ARR_AppendElement(init_sources, + (void *)(& ip_addr)); + else { + { + char *__va_arg0 = hostname; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN, + "Could not resolve address of initstepslew server %s", + (void * const *)(__va_args)); + } + } + } + } + return_label: return; +} + +static void parse_leapsecmode(char *line) +{ + int tmp_2; + tmp_2 = strcasecmp((char const *)line,"system"); + if (tmp_2) { + int tmp_1; + tmp_1 = strcasecmp((char const *)line,"slew"); + if (tmp_1) { + int tmp_0; + tmp_0 = strcasecmp((char const *)line,"step"); + if (tmp_0) { + int tmp; + tmp = strcasecmp((char const *)line,"ignore"); + if (tmp) command_parse_error(); + else leapsec_mode = REF_LeapModeIgnore; + } + else leapsec_mode = REF_LeapModeStep; + } + else leapsec_mode = REF_LeapModeSlew; + } + else leapsec_mode = REF_LeapModeSystem; + return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_41(char const * __restrict s, char const * __restrict format, + unsigned long *param0); + +static void parse_clientloglimit(char *line) +{ + int tmp; + check_number_of_args(line,1); + tmp = sscanf_va_41((char const *)line,"%lu",& client_log_limit); + if (tmp != 1) command_parse_error(); + return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_42(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +static void parse_fallbackdrift(char *line) +{ + int tmp; + check_number_of_args(line,2); + tmp = sscanf_va_42((char const *)line,"%d %d",& fb_drift_min, + & fb_drift_max); + if (tmp != 2) command_parse_error(); + return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_43(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +static void parse_makestep(char *line) +{ + int tmp; + check_number_of_args(line,2); + tmp = sscanf_va_43((char const *)line,"%lf %d",& make_step_threshold, + & make_step_limit); + if (tmp != 2) { + make_step_limit = 0; + command_parse_error(); + } + if (restarted) + if (make_step_limit > 0) make_step_limit = 0; + return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param2); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param2); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param2, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param2 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_44(char const * __restrict s, char const * __restrict format, + double *param0, int *param1, int *param2); + +static void parse_maxchange(char *line) +{ + int tmp; + check_number_of_args(line,3); + tmp = sscanf_va_44((char const *)line,"%lf %d %d",& max_offset, + & max_offset_delay,& max_offset_ignore); + if (tmp != 3) { + max_offset_delay = -1; + command_parse_error(); + } + return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_45(char const * __restrict s, char const * __restrict format, + double *param0); + +static void parse_mailonchange(char *line) +{ + char *address; + int tmp; + check_number_of_args(line,2); + address = line; + line = CPS_SplitWord(line); + free((void *)mail_user_on_change); + tmp = sscanf_va_45((char const *)line,"%lf",& mail_change_threshold); + if (tmp == 1) mail_user_on_change = Strdup((char const *)address); + else { + mail_user_on_change = (char *)0; + command_parse_error(); + } + return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param3); + requires \valid(param2); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param3); + ensures \initialized(param2); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param3, *param2, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param3 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param2 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_46(char const * __restrict s, char const * __restrict format, + unsigned long *param0, unsigned long *param1, + unsigned long *param2, unsigned long *param3); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_47(char const * __restrict s, char const * __restrict format, + int *param0); + +static void parse_allow_deny(char *line, ARR_Instance restrictions, int allow) +{ + char *p; + unsigned long a; + unsigned long b; + unsigned long c; + unsigned long d; + unsigned long n; + IPAddr ip_addr; + int tmp; + int all = 0; + AllowDeny *new_node = (AllowDeny *)0; + p = line; + tmp = strncmp((char const *)p,"all",(unsigned long)3); + if (! tmp) { + all = 1; + p = CPS_SplitWord(line); + } + if (! *p) { + new_node = (AllowDeny *)ARR_GetNewElement(restrictions); + new_node->allow = allow; + new_node->all = all; + new_node->ip.family = (unsigned short)0; + new_node->subnet_bits = 0; + } + else { + char *slashpos; + int tmp_4; + slashpos = strchr((char const *)p,'/'); + if (slashpos) *slashpos = (char)0; + check_number_of_args(p,1); + n = (unsigned long)0; + tmp_4 = UTI_StringToIP((char const *)p,& ip_addr); + if (tmp_4) goto _LOR; + else { + int tmp_5; + tmp_5 = sscanf_va_46((char const *)p,"%lu.%lu.%lu.%lu",& a,& b,& c,& d); + n = (unsigned long)tmp_5; + if (n >= (unsigned long)1) { + _LOR: + { + /*@ assert n ≤ 4; */ ; + new_node = (AllowDeny *)ARR_GetNewElement(restrictions); + new_node->allow = allow; + new_node->all = all; + if (n == (unsigned long)0) { + new_node->ip = ip_addr; + if ((int)ip_addr.family == 2) new_node->subnet_bits = 128; + else new_node->subnet_bits = 32; + } + else { + new_node->ip.family = (unsigned short)1; + a &= (unsigned long)0xff; + b &= (unsigned long)0xff; + c &= (unsigned long)0xff; + d &= (unsigned long)0xff; + switch (n) { + case (unsigned long)1: + new_node->ip.addr.in4 = (unsigned int)(a << 24); + new_node->subnet_bits = 8; + break; + case (unsigned long)2: + new_node->ip.addr.in4 = (unsigned int)((a << 24) | (b << 16)); + new_node->subnet_bits = 16; + break; + case (unsigned long)3: + new_node->ip.addr.in4 = (unsigned int)(((a << 24) | (b << 16)) | ( + c << 8)); + new_node->subnet_bits = 24; + break; + case (unsigned long)4: + new_node->ip.addr.in4 = (unsigned int)((((a << 24) | (b << 16)) | ( + c << 8)) | d); + new_node->subnet_bits = 32; + break; + default: __FC_assert(0 != 0,"conf.c",1073,"0"); + } + } + if (slashpos) { + int specified_subnet_bits; + int n_0; + n_0 = sscanf_va_47((char const *)(slashpos + 1),"%d", + & specified_subnet_bits); + if (n_0 == 1) new_node->subnet_bits = specified_subnet_bits; + else command_parse_error(); + } + } + } + else + if (! slashpos) { + DNS_Status tmp_3; + tmp_3 = DNS_Name2IPAddress((char const *)p,& ip_addr,1); + if (tmp_3 == (unsigned int)DNS_Success) { + new_node = (AllowDeny *)ARR_GetNewElement(restrictions); + new_node->allow = allow; + new_node->all = all; + new_node->ip = ip_addr; + if ((int)ip_addr.family == 2) new_node->subnet_bits = 128; + else new_node->subnet_bits = 32; + } + else goto _LAND; + } + else _LAND: command_parse_error(); + } + } + return; +} + +static void parse_bindacqaddress(char *line) +{ + IPAddr ip; + int tmp; + check_number_of_args(line,1); + tmp = UTI_StringToIP((char const *)line,& ip); + if (tmp) { + if ((int)ip.family == 1) bind_acq_address4 = ip; + else + if ((int)ip.family == 2) bind_acq_address6 = ip; + } + else command_parse_error(); + return; +} + +static void parse_bindaddress(char *line) +{ + IPAddr ip; + int tmp; + check_number_of_args(line,1); + tmp = UTI_StringToIP((char const *)line,& ip); + if (tmp) { + if ((int)ip.family == 1) bind_address4 = ip; + else + if ((int)ip.family == 2) bind_address6 = ip; + } + else command_parse_error(); + return; +} + +static void parse_bindcmdaddress(char *line) +{ + IPAddr ip; + check_number_of_args(line,1); + if ((int)*(line + 0) == '/') { + int tmp; + parse_string(line,& bind_cmd_path); + tmp = strcmp((char const *)bind_cmd_path,"/"); + if (! tmp) *(bind_cmd_path + 0) = (char)'\000'; + } + else { + int tmp_0; + tmp_0 = UTI_StringToIP((char const *)line,& ip); + if (tmp_0) { + if ((int)ip.family == 1) bind_cmd_address4 = ip; + else + if ((int)ip.family == 2) bind_cmd_address6 = ip; + } + else command_parse_error(); + } + return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_48(char const * __restrict s, char const * __restrict format, + int *param0); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_49(char const * __restrict s, char const * __restrict format, + int *param0); + +static void parse_broadcast(char *line) +{ + NTP_Broadcast_Destination *destination; + int port; + int interval; + char *p; + IPAddr ip; + int tmp; + int tmp_0; + p = line; + line = CPS_SplitWord(line); + tmp = sscanf_va_48((char const *)p,"%d",& interval); + if (tmp != 1) { + command_parse_error(); + goto return_label; + } + p = line; + line = CPS_SplitWord(line); + tmp_0 = UTI_StringToIP((char const *)p,& ip); + if (! tmp_0) { + command_parse_error(); + goto return_label; + } + p = line; + line = CPS_SplitWord(line); + if (*p) { + int tmp_1; + tmp_1 = sscanf_va_49((char const *)p,"%d",& port); + if (tmp_1 != 1) goto _LOR; + else + if (*line) { + _LOR: { + command_parse_error(); + goto return_label; + } + } + } + else port = 123; + destination = (NTP_Broadcast_Destination *)ARR_GetNewElement(broadcasts); + destination->addr = ip; + destination->port = (unsigned short)port; + destination->interval = interval; + return_label: return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_50(char const * __restrict s, char const * __restrict format, + double *param0, double *param1); + +static void parse_smoothtime(char *line) +{ + int tmp; + int tmp_0; + char *tmp_1; + tmp = get_number_of_args(line); + if (tmp != 3) check_number_of_args(line,2); + tmp_0 = sscanf_va_50((char const *)line,"%lf %lf",& smooth_max_freq, + & smooth_max_wander); + if (tmp_0 != 2) { + smooth_max_freq = 0.0; + command_parse_error(); + } + tmp_1 = CPS_SplitWord(line); + line = CPS_SplitWord(tmp_1); + smooth_leap_only = 0; + if (*line) { + int tmp_2; + tmp_2 = strcasecmp((char const *)line,"leaponly"); + if (tmp_2) command_parse_error(); else smooth_leap_only = 1; + } + return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_51(char const * __restrict s, char const * __restrict format, + double *param0); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param4); + requires \valid(param3); + requires \valid(param2); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param4); + ensures \initialized(param3); + ensures \initialized(param2); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param4, *param3, *param2, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param4 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param3 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param2 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_52(char const * __restrict s, char const * __restrict format, + double *param0, double *param1, double *param2, + double *param3, double *param4); + +static void parse_tempcomp(char *line) +{ + char *p; + int point_form; + int tmp; + tmp = get_number_of_args(line); + point_form = tmp == 3; + if (! point_form) check_number_of_args(line,6); + p = line; + line = CPS_SplitWord(line); + if (! *p) { + command_parse_error(); + goto return_label; + } + free((void *)tempcomp_point_file); + if (point_form) { + int tmp_0; + char *tmp_1; + tmp_0 = sscanf_va_51((char const *)line,"%lf",& tempcomp_interval); + if (tmp_0 != 1) { + command_parse_error(); + goto return_label; + } + tmp_1 = CPS_SplitWord(line); + tempcomp_point_file = Strdup((char const *)tmp_1); + } + else { + int tmp_2; + tmp_2 = sscanf_va_52((char const *)line,"%lf %lf %lf %lf %lf", + & tempcomp_interval,& tempcomp_T0,& tempcomp_k0, + & tempcomp_k1,& tempcomp_k2); + if (tmp_2 != 5) { + command_parse_error(); + goto return_label; + } + tempcomp_point_file = (char *)0; + } + free((void *)tempcomp_sensor_file); + tempcomp_sensor_file = Strdup((char const *)p); + return_label: return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + ensures \initialized(param1); + assigns \result, *param1, *(param0 + (0 ..)); + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *(param0 + (0 ..)) + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_53(char const * __restrict s, char const * __restrict format, + char *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_54(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_55(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_56(char const * __restrict s, char const * __restrict format, + double *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_57(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_58(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_59(char const * __restrict s, char const * __restrict format, + int *param0, int *param1); + +static void parse_hwtimestamp(char *line) +{ + CNF_HwTsInterface *iface; + char *p; + char filter[5]; + int n; + if (! *line) { + command_parse_error(); + goto return_label; + } + p = line; + line = CPS_SplitWord(line); + iface = (CNF_HwTsInterface *)ARR_GetNewElement(hwts_interfaces); + iface->name = Strdup((char const *)p); + iface->minpoll = 0; + iface->min_samples = 2; + iface->max_samples = 16; + iface->nocrossts = 0; + iface->rxfilter = CNF_HWTS_RXFILTER_ANY; + iface->precision = 100.0e-9; + iface->tx_comp = 0.0; + iface->rx_comp = 0.0; + p = line; + while (*p) { + { + int tmp_16; + line = CPS_SplitWord(line); + tmp_16 = strcasecmp((char const *)p,"maxsamples"); + if (tmp_16) { + int tmp_15; + tmp_15 = strcasecmp((char const *)p,"minpoll"); + if (tmp_15) { + int tmp_14; + tmp_14 = strcasecmp((char const *)p,"minsamples"); + if (tmp_14) { + int tmp_13; + tmp_13 = strcasecmp((char const *)p,"precision"); + if (tmp_13) { + int tmp_12; + tmp_12 = strcasecmp((char const *)p,"rxcomp"); + if (tmp_12) { + int tmp_11; + tmp_11 = strcasecmp((char const *)p,"txcomp"); + if (tmp_11) { + int tmp_10; + tmp_10 = strcasecmp((char const *)p,"rxfilter"); + if (tmp_10) { + int tmp_9; + tmp_9 = strcasecmp((char const *)p,"nocrossts"); + if (tmp_9) break; + else { + n = 0; + iface->nocrossts = 1; + } + } + else { + int tmp_5; + int tmp_8; + tmp_5 = sscanf_va_53((char const *)line,"%4s%n",filter, + & n); + if (tmp_5 != 1) break; + tmp_8 = strcasecmp((char const *)(filter),"none"); + if (tmp_8) { + int tmp_7; + tmp_7 = strcasecmp((char const *)(filter),"ntp"); + if (tmp_7) { + int tmp_6; + tmp_6 = strcasecmp((char const *)(filter),"all"); + if (tmp_6) break; + else iface->rxfilter = CNF_HWTS_RXFILTER_ALL; + } + else iface->rxfilter = CNF_HWTS_RXFILTER_NTP; + } + else iface->rxfilter = CNF_HWTS_RXFILTER_NONE; + } + } + else { + int tmp_4; + tmp_4 = sscanf_va_54((char const *)line,"%lf%n", + & iface->tx_comp,& n); + if (tmp_4 != 1) break; + } + } + else { + int tmp_3; + tmp_3 = sscanf_va_55((char const *)line,"%lf%n", + & iface->rx_comp,& n); + if (tmp_3 != 1) break; + } + } + else { + int tmp_2; + tmp_2 = sscanf_va_56((char const *)line,"%lf%n", + & iface->precision,& n); + if (tmp_2 != 1) break; + } + } + else { + int tmp_1; + tmp_1 = sscanf_va_57((char const *)line,"%d%n", + & iface->min_samples,& n); + if (tmp_1 != 1) break; + } + } + else { + int tmp_0; + tmp_0 = sscanf_va_58((char const *)line,"%d%n",& iface->minpoll, + & n); + if (tmp_0 != 1) break; + } + } + else { + int tmp; + tmp = sscanf_va_59((char const *)line,"%d%n",& iface->max_samples, + & n); + if (tmp != 1) break; + } + } + line += n; + p = line; + } + if (*p) command_parse_error(); + return_label: return; +} + +/*@ assigns \nothing; */ +static void parse_include(char *line) +{ + glob_t gl; + size_t i; + int r; + check_number_of_args(line,1); + r = glob((char const *)line,1 << 0, + (int (*)(char const *epath, int eerrno))0,& gl); + if (r != 0) { + if (r != 3) { + { + char *__va_arg0 = line; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_FATAL,"Could not search for files matching %s", + (void * const *)(__va_args)); + } + exit(1); + } + goto return_label; + } + i = (unsigned long)0; + while (i < gl.gl_pathc) { + CNF_ReadFile((char const *)*(gl.gl_pathv + i)); + i += (size_t)1; + } + globfree(& gl); + return_label: return; +} + +void CNF_CreateDirs(uid_t uid, gid_t gid) +{ + char *dir; + if (*(bind_cmd_path + 0)) { + int tmp; + dir = UTI_PathToDir((char const *)bind_cmd_path); + UTI_CreateDirAndParents((char const *)dir,(unsigned int)0770,uid,gid); + tmp = UTI_CheckDirPermissions((char const *)dir,(unsigned int)0770,uid, + gid); + if (! tmp) { + { + char *__va_arg0 = bind_cmd_path; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN,"Disabled command socket %s", + (void * const *)(__va_args)); + } + *(bind_cmd_path + 0) = (char)'\000'; + } + free((void *)dir); + } + if (*(logdir + 0)) UTI_CreateDirAndParents((char const *)logdir, + (unsigned int)0755,uid,gid); + if (*(dumpdir + 0)) UTI_CreateDirAndParents((char const *)dumpdir, + (unsigned int)0755,uid,gid); + return; +} + +void CNF_AddInitSources(void) +{ + CPS_NTP_Source cps_source; + NTP_Remote_Address ntp_addr; + unsigned int i; + char dummy_hostname[2] = {(char)'H', (char)'\000'}; + i = (unsigned int)0; + while (1) { + unsigned int tmp_0; + tmp_0 = ARR_GetSize(init_sources); + ; + if (! (i < tmp_0)) break; + { + void *tmp; + CPS_ParseNTPSourceAdd(dummy_hostname,& cps_source); + tmp = ARR_GetElement(init_sources,i); + ntp_addr.ip_addr = *((IPAddr *)tmp); + ntp_addr.port = cps_source.port; + cps_source.params.iburst = 1; + cps_source.params.connectivity = SRC_OFFLINE; + NSR_AddSource(& ntp_addr,NTP_SERVER,& cps_source.params); + } + i ++; + } + ARR_SetSize(init_sources,(unsigned int)0); + return; +} + +void CNF_AddSources(void) +{ + NTP_Source *source; + unsigned int i; + i = (unsigned int)0; + while (1) { + unsigned int tmp_0; + tmp_0 = ARR_GetSize(ntp_sources); + ; + if (! (i < tmp_0)) break; + source = (NTP_Source *)ARR_GetElement(ntp_sources,i); + NSR_AddSourceByName(source->params.name,(int)source->params.port, + source->pool,source->type,& source->params.params); + free((void *)source->params.name); + i ++; + } + ARR_SetSize(ntp_sources,(unsigned int)0); + return; +} + +void CNF_AddRefclocks(void) +{ + unsigned int i; + i = (unsigned int)0; + while (1) { + unsigned int tmp_0; + tmp_0 = ARR_GetSize(refclock_sources); + ; + if (! (i < tmp_0)) break; + { + void *tmp; + tmp = ARR_GetElement(refclock_sources,i); + RCL_AddRefclock((RefclockParameters *)tmp); + } + i ++; + } + ARR_SetSize(refclock_sources,(unsigned int)0); + return; +} + +void CNF_AddBroadcasts(void) +{ + unsigned int i; + NTP_Broadcast_Destination *destination; + i = (unsigned int)0; + while (1) { + unsigned int tmp_0; + tmp_0 = ARR_GetSize(broadcasts); + ; + if (! (i < tmp_0)) break; + destination = (NTP_Broadcast_Destination *)ARR_GetElement(broadcasts,i); + NCR_AddBroadcastDestination(& destination->addr,destination->port, + destination->interval); + i ++; + } + ARR_SetSize(broadcasts,(unsigned int)0); + return; +} + +int CNF_GetNTPPort(void) +{ + return ntp_port; +} + +int CNF_GetAcquisitionPort(void) +{ + return acquisition_port; +} + +char *CNF_GetDriftFile(void) +{ + return drift_file; +} + +int CNF_GetLogBanner(void) +{ + return log_banner; +} + +char *CNF_GetLogDir(void) +{ + return logdir; +} + +char *CNF_GetDumpDir(void) +{ + return dumpdir; +} + +int CNF_GetLogMeasurements(int *raw) +{ + *raw = raw_measurements; + return do_log_measurements; +} + +int CNF_GetLogStatistics(void) +{ + return do_log_statistics; +} + +int CNF_GetLogTracking(void) +{ + return do_log_tracking; +} + +int CNF_GetLogRtc(void) +{ + return do_log_rtc; +} + +int CNF_GetLogRefclocks(void) +{ + return do_log_refclocks; +} + +int CNF_GetLogTempComp(void) +{ + return do_log_tempcomp; +} + +char *CNF_GetKeysFile(void) +{ + return keys_file; +} + +double CNF_GetRtcAutotrim(void) +{ + return rtc_autotrim_threshold; +} + +char *CNF_GetRtcFile(void) +{ + return rtc_file; +} + +char *CNF_GetRtcDevice(void) +{ + return rtc_device; +} + +double CNF_GetMaxUpdateSkew(void) +{ + return max_update_skew; +} + +double CNF_GetMaxDrift(void) +{ + return max_drift; +} + +double CNF_GetMaxClockError(void) +{ + return max_clock_error; +} + +double CNF_GetCorrectionTimeRatio(void) +{ + return correction_time_ratio; +} + +double CNF_GetMaxSlewRate(void) +{ + return max_slew_rate; +} + +double CNF_GetMaxDistance(void) +{ + return max_distance; +} + +double CNF_GetMaxJitter(void) +{ + return max_jitter; +} + +double CNF_GetReselectDistance(void) +{ + return reselect_distance; +} + +double CNF_GetStratumWeight(void) +{ + return stratum_weight; +} + +double CNF_GetCombineLimit(void) +{ + return combine_limit; +} + +int CNF_GetManualEnabled(void) +{ + return enable_manual; +} + +int CNF_GetCommandPort(void) +{ + return cmd_port; +} + +int CNF_AllowLocalReference(int *stratum, int *orphan, double *distance) +{ + int __retres; + if (enable_local) { + *stratum = local_stratum; + *orphan = local_orphan; + *distance = local_distance; + __retres = 1; + goto return_label; + } + else { + __retres = 0; + goto return_label; + } + return_label: return __retres; +} + +int CNF_GetRtcOnUtc(void) +{ + return rtc_on_utc; +} + +int CNF_GetRtcSync(void) +{ + return rtc_sync; +} + +void CNF_GetMakeStep(int *limit, double *threshold) +{ + *limit = make_step_limit; + *threshold = make_step_threshold; + return; +} + +void CNF_GetMaxChange(int *delay, int *ignore, double *offset) +{ + *delay = max_offset_delay; + *ignore = max_offset_ignore; + *offset = max_offset; + return; +} + +double CNF_GetLogChange(void) +{ + return log_change_threshold; +} + +void CNF_GetMailOnChange(int *enabled_0, double *threshold, char **user_0) +{ + if (mail_user_on_change) { + *enabled_0 = 1; + *threshold = mail_change_threshold; + *user_0 = mail_user_on_change; + } + else { + *enabled_0 = 0; + *threshold = 0.0; + *user_0 = (char *)0; + } + return; +} + +void CNF_SetupAccessRestrictions(void) +{ + AllowDeny *node; + int status; + unsigned int i; + i = (unsigned int)0; + while (1) { + unsigned int tmp_0; + tmp_0 = ARR_GetSize(ntp_restrictions); + ; + if (! (i < tmp_0)) break; + node = (AllowDeny *)ARR_GetElement(ntp_restrictions,i); + status = NCR_AddAccessRestriction(& node->ip,node->subnet_bits, + node->allow,node->all); + if (! status) { + char *tmp; + ; + tmp = UTI_IPToString(& node->ip); + { + char *__va_arg0 = tmp; + int __va_arg1 = node->subnet_bits; + void *__va_args[2] = {& __va_arg0, & __va_arg1}; + LOG_Message(LOGS_FATAL,"Bad subnet in %s/%d", + (void * const *)(__va_args)); + } + exit(1); + } + i ++; + } + i = (unsigned int)0; + while (1) { + unsigned int tmp_2; + tmp_2 = ARR_GetSize(cmd_restrictions); + ; + if (! (i < tmp_2)) break; + node = (AllowDeny *)ARR_GetElement(cmd_restrictions,i); + status = CAM_AddAccessRestriction(& node->ip,node->subnet_bits, + node->allow,node->all); + if (! status) { + char *tmp_1; + ; + tmp_1 = UTI_IPToString(& node->ip); + { + char *__va_arg0_12 = tmp_1; + int __va_arg1_14 = node->subnet_bits; + void *__va_args_16[2] = {& __va_arg0_12, & __va_arg1_14}; + LOG_Message(LOGS_FATAL,"Bad subnet in %s/%d", + (void * const *)(__va_args_16)); + } + exit(1); + } + i ++; + } + ARR_SetSize(ntp_restrictions,(unsigned int)0); + ARR_SetSize(cmd_restrictions,(unsigned int)0); + return; +} + +int CNF_GetNoClientLog(void) +{ + return no_client_log; +} + +unsigned long CNF_GetClientLogLimit(void) +{ + return client_log_limit; +} + +void CNF_GetFallbackDrifts(int *min, int *max) +{ + *min = fb_drift_min; + *max = fb_drift_max; + return; +} + +void CNF_GetBindAddress(int family, IPAddr *addr) +{ + if (family == 1) *addr = bind_address4; + else + if (family == 2) *addr = bind_address6; + else addr->family = (unsigned short)0; + return; +} + +void CNF_GetBindAcquisitionAddress(int family, IPAddr *addr) +{ + if (family == 1) *addr = bind_acq_address4; + else + if (family == 2) *addr = bind_acq_address6; + else addr->family = (unsigned short)0; + return; +} + +char *CNF_GetBindCommandPath(void) +{ + return bind_cmd_path; +} + +void CNF_GetBindCommandAddress(int family, IPAddr *addr) +{ + if (family == 1) *addr = bind_cmd_address4; + else + if (family == 2) *addr = bind_cmd_address6; + else addr->family = (unsigned short)0; + return; +} + +char *CNF_GetNtpSigndSocket(void) +{ + return ntp_signd_socket; +} + +char *CNF_GetPidFile(void) +{ + return pidfile; +} + +REF_LeapMode CNF_GetLeapSecMode(void) +{ + return leapsec_mode; +} + +char *CNF_GetLeapSecTimezone(void) +{ + return leapsec_tz; +} + +int CNF_GetSchedPriority(void) +{ + return sched_priority; +} + +int CNF_GetLockMemory(void) +{ + return lock_memory; +} + +int CNF_GetNTPRateLimit(int *interval, int *burst, int *leak) +{ + *interval = ntp_ratelimit_interval; + *burst = ntp_ratelimit_burst; + *leak = ntp_ratelimit_leak; + return ntp_ratelimit_enabled; +} + +int CNF_GetCommandRateLimit(int *interval, int *burst, int *leak) +{ + *interval = cmd_ratelimit_interval; + *burst = cmd_ratelimit_burst; + *leak = cmd_ratelimit_leak; + return cmd_ratelimit_enabled; +} + +void CNF_GetSmooth(double *max_freq_0, double *max_wander_0, int *leap_only) +{ + *max_freq_0 = smooth_max_freq; + *max_wander_0 = smooth_max_wander; + *leap_only = smooth_leap_only; + return; +} + +void CNF_GetTempComp(char **file, double *interval, char **point_file, + double *T0, double *k0, double *k1, double *k2) +{ + *file = tempcomp_sensor_file; + *point_file = tempcomp_point_file; + *interval = tempcomp_interval; + *T0 = tempcomp_T0; + *k0 = tempcomp_k0; + *k1 = tempcomp_k1; + *k2 = tempcomp_k2; + return; +} + +char *CNF_GetUser(void) +{ + return user; +} + +int CNF_GetMaxSamples(void) +{ + return max_samples; +} + +int CNF_GetMinSamples(void) +{ + return min_samples; +} + +int CNF_GetMinSources(void) +{ + return min_sources; +} + +char *CNF_GetHwclockFile(void) +{ + return hwclock_file; +} + +int CNF_GetInitSources(void) +{ + int __retres; + unsigned int tmp; + tmp = ARR_GetSize(init_sources); + __retres = (int)tmp; + return __retres; +} + +double CNF_GetInitStepThreshold(void) +{ + return init_slew_threshold; +} + +int CNF_GetHwTsInterface(unsigned int index_0, CNF_HwTsInterface **iface) +{ + int __retres; + unsigned int tmp; + tmp = ARR_GetSize(hwts_interfaces); + ; + if (index_0 >= tmp) { + __retres = 0; + goto return_label; + } + *iface = (CNF_HwTsInterface *)ARR_GetElement(hwts_interfaces,index_0); + __retres = 1; + return_label: return __retres; +} + +void MD5Init(MD5_CTX *mdContext) __attribute__((__FC_OLDSTYLEPROTO__)); + +void MD5Update(MD5_CTX *mdContext, unsigned char const *inBuf, + unsigned int inLen) __attribute__((__FC_OLDSTYLEPROTO__)); + +void MD5Final(MD5_CTX *mdContext) __attribute__((__FC_OLDSTYLEPROTO__)); + +static void Transform(UINT4 *buf, UINT4 *in) __attribute__((__FC_OLDSTYLEPROTO__)); + +static unsigned char const PADDING[64] = + {(unsigned char)0x80, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00, + (unsigned char)0x00}; +void MD5Init(MD5_CTX *mdContext) __attribute__((__FC_OLDSTYLEPROTO__)); +void MD5Init(MD5_CTX *mdContext) +{ + UINT4 tmp; + tmp = (unsigned int)0; + mdContext->i[1] = tmp; + mdContext->i[0] = tmp; + mdContext->buf[0] = (unsigned int)0x67452301; + mdContext->buf[1] = 0xefcdab89; + mdContext->buf[2] = 0x98badcfe; + mdContext->buf[3] = (unsigned int)0x10325476; + return; +} + +void MD5Update(MD5_CTX *mdContext, unsigned char const *inBuf, + unsigned int inLen) __attribute__((__FC_OLDSTYLEPROTO__)); +void MD5Update(MD5_CTX *mdContext, unsigned char const *inBuf, + unsigned int inLen) +{ + UINT4 in[16]; + int mdi; + unsigned int i; + unsigned int ii; + mdi = (int)((mdContext->i[0] >> 3) & (unsigned int)0x3F); + if (mdContext->i[0] + (inLen << 3) < mdContext->i[0]) mdContext->i[1] += (UINT4)1; + mdContext->i[0] += inLen << 3; + mdContext->i[1] += inLen >> 29; + while (1) { + unsigned int tmp_1; + tmp_1 = inLen; + inLen --; + ; + if (! tmp_1) break; + { + int tmp; + unsigned char const *tmp_0; + tmp = mdi; + mdi ++; + tmp_0 = inBuf; + inBuf ++; + mdContext->in[tmp] = *tmp_0; + if (mdi == 0x40) { + i = (unsigned int)0; + ii = (unsigned int)0; + /*@ loop unroll 16; */ + while (i < (unsigned int)16) { + in[i] = ((((unsigned int)mdContext->in[ii + (unsigned int)3] << 24) | ( + (unsigned int)mdContext->in[ii + (unsigned int)2] << 16)) | ( + (unsigned int)mdContext->in[ii + (unsigned int)1] << 8)) | (unsigned int)mdContext->in[ii]; + i ++; + ii += (unsigned int)4; + } + Transform(mdContext->buf,in); + mdi = 0; + } + } + } + return; +} + +void MD5Final(MD5_CTX *mdContext) __attribute__((__FC_OLDSTYLEPROTO__)); +void MD5Final(MD5_CTX *mdContext) +{ + UINT4 in[16]; + int mdi; + unsigned int i; + unsigned int ii; + unsigned int padLen; + in[14] = mdContext->i[0]; + in[15] = mdContext->i[1]; + mdi = (int)((mdContext->i[0] >> 3) & (unsigned int)0x3F); + if (mdi < 56) padLen = (unsigned int)(56 - mdi); + else padLen = (unsigned int)(120 - mdi); + MD5Update(mdContext,PADDING,padLen); + i = (unsigned int)0; + ii = (unsigned int)0; + /*@ loop unroll 14; */ + while (i < (unsigned int)14) { + in[i] = ((((unsigned int)mdContext->in[ii + (unsigned int)3] << 24) | ( + (unsigned int)mdContext->in[ii + (unsigned int)2] << 16)) | ( + (unsigned int)mdContext->in[ii + (unsigned int)1] << 8)) | (unsigned int)mdContext->in[ii]; + i ++; + ii += (unsigned int)4; + } + Transform(mdContext->buf,in); + i = (unsigned int)0; + ii = (unsigned int)0; + /*@ loop unroll 4; */ + while (i < (unsigned int)4) { + mdContext->digest[ii] = (unsigned char)(mdContext->buf[i] & (unsigned int)0xFF); + mdContext->digest[ii + (unsigned int)1] = (unsigned char)((mdContext->buf[i] >> 8) & (unsigned int)0xFF); + mdContext->digest[ii + (unsigned int)2] = (unsigned char)((mdContext->buf[i] >> 16) & (unsigned int)0xFF); + mdContext->digest[ii + (unsigned int)3] = (unsigned char)((mdContext->buf[i] >> 24) & (unsigned int)0xFF); + i ++; + ii += (unsigned int)4; + } + return; +} + +/*@ requires \initialized(in + (0 .. 15)); + assigns *(buf + (0 .. 3)); + assigns *(buf + (0 .. 3)) \from (indirect: in), *(in + (0 .. 15)); + */ +static void Transform(UINT4 *buf, UINT4 *in) __attribute__((__FC_OLDSTYLEPROTO__)); +static void Transform(UINT4 *buf, UINT4 *in) +{ + UINT4 a = *(buf + 0); + UINT4 b = *(buf + 1); + UINT4 c = *(buf + 2); + UINT4 d = *(buf + 3); + a += (((b & c) | (~ b & d)) + *(in + 0)) + 0xd76aa478; + a = (a << 7) | (a >> (32 - 7)); + a += b; + d += (((a & b) | (~ a & c)) + *(in + 1)) + 0xe8c7b756; + d = (d << 12) | (d >> (32 - 12)); + d += a; + c += (((d & a) | (~ d & b)) + *(in + 2)) + (unsigned int)0x242070db; + c = (c << 17) | (c >> (32 - 17)); + c += d; + b += (((c & d) | (~ c & a)) + *(in + 3)) + 0xc1bdceee; + b = (b << 22) | (b >> (32 - 22)); + b += c; + a += (((b & c) | (~ b & d)) + *(in + 4)) + 0xf57c0faf; + a = (a << 7) | (a >> (32 - 7)); + a += b; + d += (((a & b) | (~ a & c)) + *(in + 5)) + (unsigned int)0x4787c62a; + d = (d << 12) | (d >> (32 - 12)); + d += a; + c += (((d & a) | (~ d & b)) + *(in + 6)) + 0xa8304613; + c = (c << 17) | (c >> (32 - 17)); + c += d; + b += (((c & d) | (~ c & a)) + *(in + 7)) + 0xfd469501; + b = (b << 22) | (b >> (32 - 22)); + b += c; + a += (((b & c) | (~ b & d)) + *(in + 8)) + (unsigned int)0x698098d8; + a = (a << 7) | (a >> (32 - 7)); + a += b; + d += (((a & b) | (~ a & c)) + *(in + 9)) + 0x8b44f7af; + d = (d << 12) | (d >> (32 - 12)); + d += a; + c += (((d & a) | (~ d & b)) + *(in + 10)) + 0xffff5bb1; + c = (c << 17) | (c >> (32 - 17)); + c += d; + b += (((c & d) | (~ c & a)) + *(in + 11)) + 0x895cd7be; + b = (b << 22) | (b >> (32 - 22)); + b += c; + a += (((b & c) | (~ b & d)) + *(in + 12)) + (unsigned int)0x6b901122; + a = (a << 7) | (a >> (32 - 7)); + a += b; + d += (((a & b) | (~ a & c)) + *(in + 13)) + 0xfd987193; + d = (d << 12) | (d >> (32 - 12)); + d += a; + c += (((d & a) | (~ d & b)) + *(in + 14)) + 0xa679438e; + c = (c << 17) | (c >> (32 - 17)); + c += d; + b += (((c & d) | (~ c & a)) + *(in + 15)) + (unsigned int)0x49b40821; + b = (b << 22) | (b >> (32 - 22)); + b += c; + a += (((b & d) | (c & ~ d)) + *(in + 1)) + 0xf61e2562; + a = (a << 5) | (a >> (32 - 5)); + a += b; + d += (((a & c) | (b & ~ c)) + *(in + 6)) + 0xc040b340; + d = (d << 9) | (d >> (32 - 9)); + d += a; + c += (((d & b) | (a & ~ b)) + *(in + 11)) + (unsigned int)0x265e5a51; + c = (c << 14) | (c >> (32 - 14)); + c += d; + b += (((c & a) | (d & ~ a)) + *(in + 0)) + 0xe9b6c7aa; + b = (b << 20) | (b >> (32 - 20)); + b += c; + a += (((b & d) | (c & ~ d)) + *(in + 5)) + 0xd62f105d; + a = (a << 5) | (a >> (32 - 5)); + a += b; + d += (((a & c) | (b & ~ c)) + *(in + 10)) + (unsigned int)0x2441453; + d = (d << 9) | (d >> (32 - 9)); + d += a; + c += (((d & b) | (a & ~ b)) + *(in + 15)) + 0xd8a1e681; + c = (c << 14) | (c >> (32 - 14)); + c += d; + b += (((c & a) | (d & ~ a)) + *(in + 4)) + 0xe7d3fbc8; + b = (b << 20) | (b >> (32 - 20)); + b += c; + a += (((b & d) | (c & ~ d)) + *(in + 9)) + (unsigned int)0x21e1cde6; + a = (a << 5) | (a >> (32 - 5)); + a += b; + d += (((a & c) | (b & ~ c)) + *(in + 14)) + 0xc33707d6; + d = (d << 9) | (d >> (32 - 9)); + d += a; + c += (((d & b) | (a & ~ b)) + *(in + 3)) + 0xf4d50d87; + c = (c << 14) | (c >> (32 - 14)); + c += d; + b += (((c & a) | (d & ~ a)) + *(in + 8)) + (unsigned int)0x455a14ed; + b = (b << 20) | (b >> (32 - 20)); + b += c; + a += (((b & d) | (c & ~ d)) + *(in + 13)) + 0xa9e3e905; + a = (a << 5) | (a >> (32 - 5)); + a += b; + d += (((a & c) | (b & ~ c)) + *(in + 2)) + 0xfcefa3f8; + d = (d << 9) | (d >> (32 - 9)); + d += a; + c += (((d & b) | (a & ~ b)) + *(in + 7)) + (unsigned int)0x676f02d9; + c = (c << 14) | (c >> (32 - 14)); + c += d; + b += (((c & a) | (d & ~ a)) + *(in + 12)) + 0x8d2a4c8a; + b = (b << 20) | (b >> (32 - 20)); + b += c; + a += (((b ^ c) ^ d) + *(in + 5)) + 0xfffa3942; + a = (a << 4) | (a >> (32 - 4)); + a += b; + d += (((a ^ b) ^ c) + *(in + 8)) + 0x8771f681; + d = (d << 11) | (d >> (32 - 11)); + d += a; + c += (((d ^ a) ^ b) + *(in + 11)) + (unsigned int)0x6d9d6122; + c = (c << 16) | (c >> (32 - 16)); + c += d; + b += (((c ^ d) ^ a) + *(in + 14)) + 0xfde5380c; + b = (b << 23) | (b >> (32 - 23)); + b += c; + a += (((b ^ c) ^ d) + *(in + 1)) + 0xa4beea44; + a = (a << 4) | (a >> (32 - 4)); + a += b; + d += (((a ^ b) ^ c) + *(in + 4)) + (unsigned int)0x4bdecfa9; + d = (d << 11) | (d >> (32 - 11)); + d += a; + c += (((d ^ a) ^ b) + *(in + 7)) + 0xf6bb4b60; + c = (c << 16) | (c >> (32 - 16)); + c += d; + b += (((c ^ d) ^ a) + *(in + 10)) + 0xbebfbc70; + b = (b << 23) | (b >> (32 - 23)); + b += c; + a += (((b ^ c) ^ d) + *(in + 13)) + (unsigned int)0x289b7ec6; + a = (a << 4) | (a >> (32 - 4)); + a += b; + d += (((a ^ b) ^ c) + *(in + 0)) + 0xeaa127fa; + d = (d << 11) | (d >> (32 - 11)); + d += a; + c += (((d ^ a) ^ b) + *(in + 3)) + 0xd4ef3085; + c = (c << 16) | (c >> (32 - 16)); + c += d; + b += (((c ^ d) ^ a) + *(in + 6)) + (unsigned int)0x4881d05; + b = (b << 23) | (b >> (32 - 23)); + b += c; + a += (((b ^ c) ^ d) + *(in + 9)) + 0xd9d4d039; + a = (a << 4) | (a >> (32 - 4)); + a += b; + d += (((a ^ b) ^ c) + *(in + 12)) + 0xe6db99e5; + d = (d << 11) | (d >> (32 - 11)); + d += a; + c += (((d ^ a) ^ b) + *(in + 15)) + (unsigned int)0x1fa27cf8; + c = (c << 16) | (c >> (32 - 16)); + c += d; + b += (((c ^ d) ^ a) + *(in + 2)) + 0xc4ac5665; + b = (b << 23) | (b >> (32 - 23)); + b += c; + a += ((c ^ (b | ~ d)) + *(in + 0)) + 0xf4292244; + a = (a << 6) | (a >> (32 - 6)); + a += b; + d += ((b ^ (a | ~ c)) + *(in + 7)) + (unsigned int)0x432aff97; + d = (d << 10) | (d >> (32 - 10)); + d += a; + c += ((a ^ (d | ~ b)) + *(in + 14)) + 0xab9423a7; + c = (c << 15) | (c >> (32 - 15)); + c += d; + b += ((d ^ (c | ~ a)) + *(in + 5)) + 0xfc93a039; + b = (b << 21) | (b >> (32 - 21)); + b += c; + a += ((c ^ (b | ~ d)) + *(in + 12)) + (unsigned int)0x655b59c3; + a = (a << 6) | (a >> (32 - 6)); + a += b; + d += ((b ^ (a | ~ c)) + *(in + 3)) + 0x8f0ccc92; + d = (d << 10) | (d >> (32 - 10)); + d += a; + c += ((a ^ (d | ~ b)) + *(in + 10)) + 0xffeff47d; + c = (c << 15) | (c >> (32 - 15)); + c += d; + b += ((d ^ (c | ~ a)) + *(in + 1)) + 0x85845dd1; + b = (b << 21) | (b >> (32 - 21)); + b += c; + a += ((c ^ (b | ~ d)) + *(in + 8)) + (unsigned int)0x6fa87e4f; + a = (a << 6) | (a >> (32 - 6)); + a += b; + d += ((b ^ (a | ~ c)) + *(in + 15)) + 0xfe2ce6e0; + d = (d << 10) | (d >> (32 - 10)); + d += a; + c += ((a ^ (d | ~ b)) + *(in + 6)) + 0xa3014314; + c = (c << 15) | (c >> (32 - 15)); + c += d; + b += ((d ^ (c | ~ a)) + *(in + 13)) + (unsigned int)0x4e0811a1; + b = (b << 21) | (b >> (32 - 21)); + b += c; + a += ((c ^ (b | ~ d)) + *(in + 4)) + 0xf7537e82; + a = (a << 6) | (a >> (32 - 6)); + a += b; + d += ((b ^ (a | ~ c)) + *(in + 11)) + 0xbd3af235; + d = (d << 10) | (d >> (32 - 10)); + d += a; + c += ((a ^ (d | ~ b)) + *(in + 2)) + (unsigned int)0x2ad7d2bb; + c = (c << 15) | (c >> (32 - 15)); + c += d; + b += ((d ^ (c | ~ a)) + *(in + 9)) + 0xeb86d391; + b = (b << 21) | (b >> (32 - 21)); + b += c; + *(buf + 0) += a; + *(buf + 1) += b; + *(buf + 2) += c; + *(buf + 3) += d; + return; +} + +static MD5_CTX ctx; +int HSH_GetHashId(char const *name) +{ + int __retres; + int tmp; + tmp = strcmp(name,"MD5"); + if (tmp) { + __retres = -1; + goto return_label; + } + __retres = 0; + return_label: return __retres; +} + +unsigned int HSH_Hash(int id, unsigned char const *in1, unsigned int in1_len, + unsigned char const *in2, unsigned int in2_len, + unsigned char *out, unsigned int out_len) +{ + MD5Init(& ctx); + MD5Update(& ctx,in1,in1_len); + if (in2) MD5Update(& ctx,in2,in2_len); + MD5Final(& ctx); + if (out_len < (unsigned int)16) out_len = out_len; + else out_len = (unsigned int)16; + memcpy((void *)out,(void const *)(ctx.digest),(unsigned long)out_len); + return out_len; +} + +void HSH_Finalise(void) +{ + return; +} + +void KEY_Initialise(void); + +void KEY_Finalise(void); + +void KEY_Reload(void); + +int KEY_KeyKnown(uint32_t key_id); + +int KEY_GetAuthDelay(uint32_t key_id); + +int KEY_GetAuthLength(uint32_t key_id); + +int KEY_CheckKeyLength(uint32_t key_id); + +int KEY_GenerateAuth(uint32_t key_id, unsigned char const *data, + int data_len, unsigned char *auth, int auth_len); + +int KEY_CheckAuth(uint32_t key_id, unsigned char const *data, int data_len, + unsigned char const *auth, int auth_len, int trunc_len); + +void LCL_ReadRawTime(struct timespec *ts); + +void LCL_ReadCookedTime(struct timespec *result, double *err); + +void LCL_CookTime(struct timespec *raw, struct timespec *cooked, double *err); + +void LCL_GetOffsetCorrection(struct timespec *raw, double *correction, + double *err); + +void LCL_AddParameterChangeHandler(void (*handler)(struct timespec *raw, + struct timespec *cooked, + double dfreq, + double doffset, + LCL_ChangeType change_type, + void *anything), + void *anything); + +void LCL_RemoveParameterChangeHandler(void (*handler)(struct timespec *raw, + struct timespec *cooked, + double dfreq, + double doffset, + LCL_ChangeType change_type, + void *anything), + void *anything); + +int LCL_IsFirstParameterChangeHandler(void (*handler)(struct timespec *raw, + struct timespec *cooked, + double dfreq, + double doffset, + LCL_ChangeType change_type, + void *anything)); + +void LCL_AddDispersionNotifyHandler(void (*handler)(double dispersion, + void *anything), + void *anything); + +extern void LCL_RemoveDispersionNotifyHandler(void (*handler)(double dispersion, + void *anything), + void *anything); + +double LCL_ReadAbsoluteFrequency(void); + +void LCL_SetAbsoluteFrequency(double afreq_ppm); + +void LCL_AccumulateDeltaFrequency(double dfreq); + +void LCL_AccumulateOffset(double offset, double corr_rate); + +int LCL_ApplyStepOffset(double offset); + +void LCL_NotifyExternalTimeStep(struct timespec *raw, + struct timespec *cooked, double offset, + double dispersion); + +void LCL_NotifyLeap(int leap); + +void LCL_AccumulateFrequencyAndOffset(double dfreq, double doffset, + double corr_rate); + +int LCL_GetSysPrecisionAsLog(void); + +double LCL_GetSysPrecisionAsQuantum(void); + +double LCL_GetMaxClockError(void); + +void LCL_Initialise(void); + +void LCL_Finalise(void); + +int LCL_MakeStep(void); + +int LCL_CanSystemLeap(void); + +void LCL_SetSystemLeap(int leap, int tai_offset); + +double LCL_SetTempComp(double comp); + +void LCL_SetSyncStatus(int synchronised, double est_error, double max_error); + +static ARR_Instance keys; +static int cache_valid; +static uint32_t cache_key_id; +static int cache_key_pos; +static void free_keys(void) +{ + unsigned int i; + i = (unsigned int)0; + while (1) { + unsigned int tmp_0; + void *tmp; + tmp_0 = ARR_GetSize(keys); + ; + if (! (i < tmp_0)) break; + tmp = ARR_GetElement(keys,i); + free((void *)((Key *)tmp)->val); + i ++; + } + ARR_SetSize(keys,(unsigned int)0); + cache_valid = 0; + return; +} + +void KEY_Initialise(void) +{ + keys = ARR_CreateInstance((unsigned int)sizeof(Key)); + cache_valid = 0; + KEY_Reload(); + return; +} + +void KEY_Finalise(void) +{ + free_keys(); + ARR_DestroyInstance(keys); + return; +} + +static Key *get_key(unsigned int index_0) +{ + Key *__retres; + void *tmp; + tmp = ARR_GetElements(keys); + ; + __retres = (Key *)tmp + index_0; + return __retres; +} + +static int determine_hash_delay(uint32_t key_id) +{ + NTP_Packet pkt; + struct timespec before; + struct timespec after; + double diff; + double min_diff; + int i; + int nsecs; + memset((void *)(& pkt),0,sizeof(pkt)); + i = 0; + /*@ loop unroll 10; */ + while (i < 10) { + LCL_ReadRawTime(& before); + KEY_GenerateAuth(key_id,(unsigned char const *)(& pkt),48, + (unsigned char *)(& pkt.auth_data), + (int)sizeof(pkt.auth_data)); + LCL_ReadRawTime(& after); + diff = UTI_DiffTimespecsToDouble(& after,& before); + if (i == 0) min_diff = diff; + else + if (min_diff > diff) min_diff = diff; + i ++; + } + nsecs = (int)(1.0625e9 * min_diff); + return nsecs; +} + +static int decode_password(char *key) +{ + int __retres; + int i; + int j; + size_t tmp; + char buf[3]; + char *p; + int tmp_2; + tmp = strlen((char const *)key); + int len = (int)tmp; + tmp_2 = strncmp((char const *)key,"ASCII:",(unsigned long)6); + if (tmp_2) { + int tmp_1; + tmp_1 = strncmp((char const *)key,"HEX:",(unsigned long)4); + if (tmp_1) { + __retres = len; + goto return_label; + } + else { + if ((len - 4) % 2) { + __retres = 0; + goto return_label; + } + i = 0; + j = 4; + while (j + 1 < len) { + { + long tmp_0; + buf[0] = *(key + j); + buf[1] = *(key + (j + 1)); + buf[2] = (char)'\000'; + tmp_0 = strtol((char const *)(buf),& p,16); + *(key + i) = (char)tmp_0; + if (p != & buf[2]) { + __retres = 0; + goto return_label; + } + } + i ++; + j += 2; + } + __retres = i; + goto return_label; + } + } + else { + memmove((void *)key,(void const *)(key + 6),(unsigned long)(len - 6)); + __retres = len - 6; + goto return_label; + } + return_label: return __retres; +} + +static int compare_keys_by_id(void const *a, void const *b) +{ + int __retres; + Key const *c = (Key const *)a; + Key const *d = (Key const *)b; + if (c->id < d->id) { + __retres = -1; + goto return_label; + } + else + if (c->id > d->id) { + __retres = 1; + goto return_label; + } + else { + __retres = 0; + goto return_label; + } + return_label: return __retres; +} + +void KEY_Reload(void) +{ + unsigned int i; + unsigned int line_number_0; + FILE *in; + uint32_t key_id; + char line[2048]; + char *keyval; + char *key_file; + char const *hashname; + Key key; + unsigned int tmp_2; + void *tmp_3; + free_keys(); + key_file = CNF_GetKeysFile(); + line_number_0 = (unsigned int)0; + if (! key_file) goto return_label; + in = fopen((char const *)key_file,"r"); + if (! in) { + { + char *__va_arg0 = key_file; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN,"Could not open keyfile %s", + (void * const *)(__va_args)); + } + goto return_label; + } + while (1) { + char *tmp_1; + tmp_1 = fgets(line,(int)sizeof(line),in); + if (! tmp_1) break; + { + int tmp; + line_number_0 ++; + CPS_NormalizeLine(line); + if (! line[0]) continue; + tmp = CPS_ParseKey(line,& key_id,& hashname,& keyval); + if (! tmp) { + { + unsigned int __va_arg0_25 = line_number_0; + char *__va_arg1 = key_file; + void *__va_args_28[2] = {& __va_arg0_25, & __va_arg1}; + LOG_Message(LOGS_WARN,"Could not parse key at line %u in file %s", + (void * const *)(__va_args_28)); + } + continue; + } + key.hash_id = HSH_GetHashId(hashname); + if (key.hash_id < 0) { + { + uint32_t __va_arg0_30 = key_id; + void *__va_args_32[1] = {& __va_arg0_30}; + LOG_Message(LOGS_WARN,"Unknown hash function in key %u", + (void * const *)(__va_args_32)); + } + continue; + } + key.len = decode_password(keyval); + if (! key.len) { + { + uint32_t __va_arg0_34 = key_id; + void *__va_args_36[1] = {& __va_arg0_34}; + LOG_Message(LOGS_WARN,"Could not decode password in key %u", + (void * const *)(__va_args_36)); + } + continue; + } + key.id = key_id; + key.val = (char *)Malloc2((unsigned long)key.len,sizeof(char)); + memcpy((void *)key.val,(void const *)keyval,(unsigned long)key.len); + ARR_AppendElement(keys,(void *)(& key)); + } + } + fclose(in); + tmp_2 = ARR_GetSize(keys); + tmp_3 = ARR_GetElements(keys); + qsort(tmp_3,(unsigned long)tmp_2,sizeof(Key),& compare_keys_by_id); + i = (unsigned int)1; + while (1) { + unsigned int tmp_7; + tmp_7 = ARR_GetSize(keys); + ; + if (! (i < tmp_7)) break; + { + Key *tmp_5; + Key *tmp_6; + tmp_5 = get_key(i - (unsigned int)1); + tmp_6 = get_key(i); + ; + if (tmp_5->id == tmp_6->id) { + Key *tmp_4; + tmp_4 = get_key(i - (unsigned int)1); + { + uint32_t __va_arg0_38 = tmp_4->id; + void *__va_args_40[1] = {& __va_arg0_38}; + LOG_Message(LOGS_WARN,"Detected duplicate key %u", + (void * const *)(__va_args_40)); + } + } + } + i ++; + } + memset((void *)(line),0,sizeof(line)); + i = (unsigned int)0; + while (1) { + unsigned int tmp_10; + Key *tmp_8; + Key *tmp_9; + tmp_10 = ARR_GetSize(keys); + ; + if (! (i < tmp_10)) break; + tmp_8 = get_key(i); + tmp_9 = get_key(i); + tmp_8->auth_delay = determine_hash_delay(tmp_9->id); + i ++; + } + return_label: return; +} + +static int lookup_key(uint32_t id) +{ + int __retres; + Key specimen; + Key *where; + Key *keys_ptr; + int pos; + void *tmp_0; + unsigned int tmp; + keys_ptr = (Key *)ARR_GetElements(keys); + specimen.id = id; + tmp = ARR_GetSize(keys); + ; + tmp_0 = bsearch((void const *)(& specimen),(void const *)keys_ptr, + (unsigned long)tmp,sizeof(Key),& compare_keys_by_id); + where = (Key *)tmp_0; + if (! where) { + __retres = -1; + goto return_label; + } + else { + pos = (int)(where - keys_ptr); + __retres = pos; + goto return_label; + } + return_label: return __retres; +} + +static Key *get_key_by_id(uint32_t key_id) +{ + Key *__retres; + int position; + if (cache_valid) + if (key_id == cache_key_id) { + Key *tmp; + tmp = get_key((unsigned int)cache_key_pos); + __retres = tmp; + goto return_label; + } + position = lookup_key(key_id); + if (position >= 0) { + Key *tmp_0; + cache_valid = 1; + cache_key_pos = position; + cache_key_id = key_id; + tmp_0 = get_key((unsigned int)position); + __retres = tmp_0; + goto return_label; + } + __retres = (Key *)0; + return_label: return __retres; +} + +int KEY_KeyKnown(uint32_t key_id) +{ + int __retres; + Key *tmp; + tmp = get_key_by_id(key_id); + __retres = tmp != (Key *)0; + return __retres; +} + +int KEY_GetAuthDelay(uint32_t key_id) +{ + int __retres; + Key *key; + key = get_key_by_id(key_id); + if (! key) { + __retres = 0; + goto return_label; + } + __retres = key->auth_delay; + return_label: return __retres; +} + +int KEY_GetAuthLength(uint32_t key_id) +{ + int __retres; + unsigned char buf[64]; + Key *key; + unsigned int tmp; + key = get_key_by_id(key_id); + if (! key) { + __retres = 0; + goto return_label; + } + tmp = HSH_Hash(key->hash_id,(unsigned char const *)(buf),(unsigned int)0, + (unsigned char const *)(buf),(unsigned int)0,buf, + (unsigned int)sizeof(buf)); + __retres = (int)tmp; + return_label: return __retres; +} + +int KEY_CheckKeyLength(uint32_t key_id) +{ + int __retres; + Key *key; + key = get_key_by_id(key_id); + if (! key) { + __retres = 0; + goto return_label; + } + __retres = key->len >= 10; + return_label: return __retres; +} + +static int generate_ntp_auth(int hash_id, unsigned char const *key, + int key_len, unsigned char const *data, + int data_len, unsigned char *auth, int auth_len) +{ + int __retres; + unsigned int tmp; + tmp = HSH_Hash(hash_id,key,(unsigned int)key_len,data, + (unsigned int)data_len,auth,(unsigned int)auth_len); + __retres = (int)tmp; + return __retres; +} + +static int check_ntp_auth(int hash_id, unsigned char const *key, int key_len, + unsigned char const *data, int data_len, + unsigned char const *auth, int auth_len, + int trunc_len) +{ + unsigned char buf[64]; + int hash_len; + int tmp_1; + int tmp; + hash_len = generate_ntp_auth(hash_id,key,key_len,data,data_len,buf, + (int)sizeof(buf)); + if (hash_len < trunc_len) tmp = hash_len; else tmp = trunc_len; + ; + if (tmp == auth_len) { + int tmp_0; + tmp_0 = memcmp((void const *)(buf),(void const *)auth, + (unsigned long)auth_len); + if (tmp_0) tmp_1 = 0; else tmp_1 = 1; + } + else tmp_1 = 0; + return tmp_1; +} + +int KEY_GenerateAuth(uint32_t key_id, unsigned char const *data, + int data_len, unsigned char *auth, int auth_len) +{ + int __retres; + Key *key; + int tmp; + key = get_key_by_id(key_id); + if (! key) { + __retres = 0; + goto return_label; + } + tmp = generate_ntp_auth(key->hash_id,(unsigned char const *)key->val, + key->len,data,data_len,auth,auth_len); + __retres = tmp; + return_label: return __retres; +} + +int KEY_CheckAuth(uint32_t key_id, unsigned char const *data, int data_len, + unsigned char const *auth, int auth_len, int trunc_len) +{ + int __retres; + Key *key; + int tmp; + key = get_key_by_id(key_id); + if (! key) { + __retres = 0; + goto return_label; + } + tmp = check_ntp_auth(key->hash_id,(unsigned char const *)key->val,key->len, + data,data_len,auth,auth_len,trunc_len); + __retres = tmp; + return_label: return __retres; +} + +void SMT_Initialise(void); + +void SMT_Finalise(void); + +int SMT_IsEnabled(void); + +double SMT_GetOffset(struct timespec *now); + +void SMT_Activate(struct timespec *now); + +void SMT_Reset(struct timespec *now); + +void SMT_Leap(struct timespec *now, int leap); + +int SMT_GetSmoothingReport(RPT_SmoothingReport *report, struct timespec *now); + +static double current_freq_ppm; +static double max_freq_ppm; +static double temp_comp_ppm; +static double (*drv_read_freq)(void); +static double (*drv_set_freq)(double freq_ppm); +static void (*drv_accrue_offset)(double offset, double corr_rate); +static int (*drv_apply_step_offset)(double offset); +static void (*drv_offset_convert)(struct timespec *raw, double *corr, + double *err); +static void (*drv_set_leap)(int leap, int tai_offset); +static void (*drv_set_sync_status)(int synchronised, double est_error, + double max_error); +static ChangeListEntry change_list; +static DispersionNotifyListEntry dispersion_notify_list; +static int precision_log; +static double precision_quantum; +static double max_clock_error_0; +static void calculate_sys_precision(void) +{ + struct timespec ts; + struct timespec old_ts; + int iters; + int diff; + int best; + LCL_ReadRawTime(& old_ts); + best = 1000000000; + iters = 0; + while (1) { + LCL_ReadRawTime(& ts); + diff = (int)((long)1000000000 * (ts.tv_sec - old_ts.tv_sec) + (ts.tv_nsec - old_ts.tv_nsec)); + old_ts = ts; + if (diff > 0) { + if (diff < best) best = diff; + iters ++; + } + if (! (iters < 100)) break; + } + __FC_assert((best > 0) != 0,"local.c",136,"best > 0"); + precision_quantum = 1.0e-9 * (double)best; + precision_log = 0; + while (best < 707106781) { + precision_log --; + best *= 2; + } + __FC_assert((precision_log >= -30) != 0,"local.c",147, + "precision_log >= -30"); + return; +} + +void LCL_Initialise(void) +{ + double tmp; + double tmp_1; + change_list.prev = & change_list; + change_list.next = change_list.prev; + dispersion_notify_list.prev = & dispersion_notify_list; + dispersion_notify_list.next = dispersion_notify_list.prev; + drv_read_freq = (double (*)(void))0; + drv_set_freq = (double (*)(double freq_ppm))0; + drv_accrue_offset = (void (*)(double offset, double corr_rate))0; + drv_offset_convert = (void (*)(struct timespec *raw, double *corr, + double *err))0; + current_freq_ppm = 0.0; + temp_comp_ppm = 0.0; + calculate_sys_precision(); + max_freq_ppm = CNF_GetMaxDrift(); + if (max_freq_ppm < 500000.0) tmp = max_freq_ppm; else tmp = 500000.0; + if (0.0 > tmp) max_freq_ppm = 0.0; + else { + double tmp_0; + if (max_freq_ppm < 500000.0) tmp_0 = max_freq_ppm; else tmp_0 = 500000.0; + max_freq_ppm = tmp_0; + } + tmp_1 = CNF_GetMaxClockError(); + max_clock_error_0 = tmp_1 * 1e-6; + return; +} + +void LCL_Finalise(void) +{ + while (change_list.next != & change_list) LCL_RemoveParameterChangeHandler + ((change_list.next)->handler, + (change_list.next)->anything); + while (dispersion_notify_list.next != & dispersion_notify_list) LCL_RemoveDispersionNotifyHandler + ((dispersion_notify_list.next)->handler, + (dispersion_notify_list.next)->anything); + return; +} + +int LCL_GetSysPrecisionAsLog(void) +{ + return precision_log; +} + +double LCL_GetSysPrecisionAsQuantum(void) +{ + return precision_quantum; +} + +double LCL_GetMaxClockError(void) +{ + return max_clock_error_0; +} + +void LCL_AddParameterChangeHandler(void (*handler)(struct timespec *raw, + struct timespec *cooked, + double dfreq, + double doffset, + LCL_ChangeType change_type, + void *anything), + void *anything) +{ + ChangeListEntry *ptr; + ChangeListEntry *new_entry; + ptr = change_list.next; + while (ptr != & change_list) { + if (! (ptr->handler != handler)) + if (! (ptr->anything != anything)) __FC_assert(0 != 0,"local.c",233, + "0"); + ptr = ptr->next; + } + new_entry = (ChangeListEntry *)Malloc(sizeof(ChangeListEntry)); + new_entry->handler = handler; + new_entry->anything = anything; + new_entry->next = & change_list; + new_entry->prev = change_list.prev; + (change_list.prev)->next = new_entry; + change_list.prev = new_entry; + return; +} + +void LCL_RemoveParameterChangeHandler(void (*handler)(struct timespec *raw, + struct timespec *cooked, + double dfreq, + double doffset, + LCL_ChangeType change_type, + void *anything), + void *anything) +{ + ChangeListEntry *ptr; + int ok; + ptr = (ChangeListEntry *)0; + ok = 0; + ptr = change_list.next; + while (ptr != & change_list) { + if (ptr->handler == handler) + if (ptr->anything == anything) { + ok = 1; + break; + } + ptr = ptr->next; + } + __FC_assert(ok != 0,"local.c",268,"ok"); + (ptr->next)->prev = ptr->prev; + (ptr->prev)->next = ptr->next; + free((void *)ptr); + return; +} + +int LCL_IsFirstParameterChangeHandler(void (*handler)(struct timespec *raw, + struct timespec *cooked, + double dfreq, + double doffset, + LCL_ChangeType change_type, + void *anything)) +{ + int __retres; + __retres = (change_list.next)->handler == handler; + return __retres; +} + +static void invoke_parameter_change_handlers(struct timespec *raw, + struct timespec *cooked, + double dfreq, double doffset, + LCL_ChangeType change_type) +{ + ChangeListEntry *ptr; + ptr = change_list.next; + while (ptr != & change_list) { + (*(ptr->handler))(raw,cooked,dfreq,doffset,change_type,ptr->anything); + ptr = ptr->next; + } + return; +} + +void LCL_AddDispersionNotifyHandler(void (*handler)(double dispersion, + void *anything), + void *anything) +{ + DispersionNotifyListEntry *ptr; + DispersionNotifyListEntry *new_entry; + ptr = dispersion_notify_list.next; + while (ptr != & dispersion_notify_list) { + if (! (ptr->handler != handler)) + if (! (ptr->anything != anything)) __FC_assert(0 != 0,"local.c",309, + "0"); + ptr = ptr->next; + } + new_entry = (DispersionNotifyListEntry *)Malloc(sizeof(DispersionNotifyListEntry)); + new_entry->handler = handler; + new_entry->anything = anything; + new_entry->next = & dispersion_notify_list; + new_entry->prev = dispersion_notify_list.prev; + (dispersion_notify_list.prev)->next = new_entry; + dispersion_notify_list.prev = new_entry; + return; +} + +extern void LCL_RemoveDispersionNotifyHandler(void (*handler)(double dispersion, + void *anything), + void *anything) +{ + DispersionNotifyListEntry *ptr; + int ok; + ptr = (DispersionNotifyListEntry *)0; + ok = 0; + ptr = dispersion_notify_list.next; + while (ptr != & dispersion_notify_list) { + if (ptr->handler == handler) + if (ptr->anything == anything) { + ok = 1; + break; + } + ptr = ptr->next; + } + __FC_assert(ok != 0,"local.c",345,"ok"); + (ptr->next)->prev = ptr->prev; + (ptr->prev)->next = ptr->next; + free((void *)ptr); + return; +} + +void LCL_ReadRawTime(struct timespec *ts) +{ + int tmp_0; + tmp_0 = clock_gettime(666,ts); + if (tmp_0 < 0) { + char *tmp; + tmp = strerror(__fc_errno); + { + char *__va_arg0 = tmp; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_FATAL,"clock_gettime() failed : %s", + (void * const *)(__va_args)); + } + exit(1); + } + return; +} + +void LCL_ReadCookedTime(struct timespec *result, double *err) +{ + struct timespec raw; + LCL_ReadRawTime(& raw); + LCL_CookTime(& raw,result,err); + return; +} + +void LCL_CookTime(struct timespec *raw, struct timespec *cooked, double *err) +{ + double correction; + LCL_GetOffsetCorrection(raw,& correction,err); + UTI_AddDoubleToTimespec(raw,correction,cooked); + return; +} + +void LCL_GetOffsetCorrection(struct timespec *raw, double *correction, + double *err) +{ + (*drv_offset_convert)(raw,correction,err); + return; +} + +double LCL_ReadAbsoluteFrequency(void) +{ + double freq; + freq = current_freq_ppm; + if (temp_comp_ppm != 0.0) freq = (freq + temp_comp_ppm) / (1.0 - 1.0e-6 * temp_comp_ppm); + return freq; +} + +static double clamp_freq(double freq) +{ + double __retres; + double tmp_1; + double tmp; + if (freq <= max_freq_ppm) + if (freq >= - max_freq_ppm) { + __retres = freq; + goto return_label; + } + { + double __va_arg0 = freq; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN,"Frequency %.1f ppm exceeds allowed maximum", + (void * const *)(__va_args)); + } + if (freq < max_freq_ppm) tmp = freq; else tmp = max_freq_ppm; + ; + if (- max_freq_ppm > tmp) tmp_1 = - max_freq_ppm; + else { + double tmp_0; + if (freq < max_freq_ppm) tmp_0 = freq; else tmp_0 = max_freq_ppm; + tmp_1 = tmp_0; + } + __retres = tmp_1; + return_label: return __retres; +} + +static int check_offset(struct timespec *now, double offset) +{ + int __retres; + int tmp; + tmp = UTI_IsTimeOffsetSane(now,- offset); + if (tmp) { + __retres = 1; + goto return_label; + } + { + double __va_arg0 = - offset; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN,"Adjustment of %.1f seconds is invalid", + (void * const *)(__va_args)); + } + __retres = 0; + return_label: return __retres; +} + +void LCL_SetAbsoluteFrequency(double afreq_ppm) +{ + struct timespec raw; + struct timespec cooked; + double dfreq; + afreq_ppm = clamp_freq(afreq_ppm); + if (temp_comp_ppm != 0.0) afreq_ppm = afreq_ppm * (1.0 - 1.0e-6 * temp_comp_ppm) - temp_comp_ppm; + afreq_ppm = (*drv_set_freq)(afreq_ppm); + dfreq = (afreq_ppm - current_freq_ppm) / (1.0e6 - current_freq_ppm); + LCL_ReadRawTime(& raw); + LCL_CookTime(& raw,& cooked,(double *)0); + invoke_parameter_change_handlers(& raw,& cooked,dfreq,0.0,LCL_ChangeAdjust); + current_freq_ppm = afreq_ppm; + return; +} + +void LCL_AccumulateDeltaFrequency(double dfreq) +{ + struct timespec raw; + struct timespec cooked; + double old_freq_ppm; + old_freq_ppm = current_freq_ppm; + current_freq_ppm += dfreq * (1.0e6 - current_freq_ppm); + current_freq_ppm = clamp_freq(current_freq_ppm); + current_freq_ppm = (*drv_set_freq)(current_freq_ppm); + dfreq = (current_freq_ppm - old_freq_ppm) / (1.0e6 - old_freq_ppm); + LCL_ReadRawTime(& raw); + LCL_CookTime(& raw,& cooked,(double *)0); + invoke_parameter_change_handlers(& raw,& cooked,dfreq,0.0,LCL_ChangeAdjust); + return; +} + +void LCL_AccumulateOffset(double offset, double corr_rate) +{ + struct timespec raw; + struct timespec cooked; + int tmp; + LCL_ReadRawTime(& raw); + LCL_CookTime(& raw,& cooked,(double *)0); + tmp = check_offset(& cooked,offset); + if (! tmp) goto return_label; + (*drv_accrue_offset)(offset,corr_rate); + invoke_parameter_change_handlers(& raw,& cooked,0.0,offset, + LCL_ChangeAdjust); + return_label: return; +} + +int LCL_ApplyStepOffset(double offset) +{ + int __retres; + struct timespec raw; + struct timespec cooked; + int tmp; + int tmp_0; + LCL_ReadRawTime(& raw); + LCL_CookTime(& raw,& cooked,(double *)0); + tmp = check_offset(& raw,offset); + if (! tmp) { + __retres = 0; + goto return_label; + } + tmp_0 = (*drv_apply_step_offset)(offset); + if (! tmp_0) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_ERR,"Could not step system clock", + (void * const *)(__va_args)); + } + __retres = 0; + goto return_label; + } + SMT_Reset(& cooked); + invoke_parameter_change_handlers(& raw,& cooked,0.0,offset,LCL_ChangeStep); + __retres = 1; + return_label: return __retres; +} + +void LCL_NotifyExternalTimeStep(struct timespec *raw, + struct timespec *cooked, double offset, + double dispersion) +{ + invoke_parameter_change_handlers(raw,cooked,0.0,offset, + LCL_ChangeUnknownStep); + lcl_InvokeDispersionNotifyHandlers(dispersion); + return; +} + +void LCL_NotifyLeap(int leap) +{ + struct timespec raw; + struct timespec cooked; + LCL_ReadRawTime(& raw); + LCL_CookTime(& raw,& cooked,(double *)0); + SMT_Leap(& cooked,leap); + invoke_parameter_change_handlers(& raw,& cooked,0.0,(double)(- leap), + LCL_ChangeStep); + return; +} + +void LCL_AccumulateFrequencyAndOffset(double dfreq, double doffset, + double corr_rate) +{ + struct timespec raw; + struct timespec cooked; + double old_freq_ppm; + int tmp; + LCL_ReadRawTime(& raw); + LCL_CookTime(& raw,& cooked,(double *)0); + tmp = check_offset(& cooked,doffset); + if (! tmp) goto return_label; + old_freq_ppm = current_freq_ppm; + current_freq_ppm += dfreq * (1.0e6 - current_freq_ppm); + current_freq_ppm = clamp_freq(current_freq_ppm); + current_freq_ppm = (*drv_set_freq)(current_freq_ppm); + dfreq = (current_freq_ppm - old_freq_ppm) / (1.0e6 - old_freq_ppm); + (*drv_accrue_offset)(doffset,corr_rate); + invoke_parameter_change_handlers(& raw,& cooked,dfreq,doffset, + LCL_ChangeAdjust); + return_label: return; +} + +void lcl_InvokeDispersionNotifyHandlers(double dispersion) +{ + DispersionNotifyListEntry *ptr; + ptr = dispersion_notify_list.next; + while (ptr != & dispersion_notify_list) { + (*(ptr->handler))(dispersion,ptr->anything); + ptr = ptr->next; + } + return; +} + +void lcl_RegisterSystemDrivers(double (*read_freq)(void), + double (*set_freq)(double freq_ppm), + void (*accrue_offset_0)(double offset, + double corr_rate), + int (*apply_step_offset_0)(double offset), + void (*offset_convert_0)(struct timespec *raw, + double *corr, + double *err), + void (*set_leap)(int leap, int tai_offset), + void (*set_sync_status)(int synchronised, + double est_error, + double max_error)) +{ + drv_read_freq = read_freq; + drv_set_freq = set_freq; + drv_accrue_offset = accrue_offset_0; + drv_apply_step_offset = apply_step_offset_0; + drv_offset_convert = offset_convert_0; + drv_set_leap = set_leap; + drv_set_sync_status = set_sync_status; + current_freq_ppm = (*drv_read_freq)(); + return; +} + +int LCL_MakeStep(void) +{ + int __retres; + struct timespec raw; + double correction; + int tmp; + int tmp_0; + LCL_ReadRawTime(& raw); + LCL_GetOffsetCorrection(& raw,& correction,(double *)0); + tmp = check_offset(& raw,- correction); + if (! tmp) { + __retres = 0; + goto return_label; + } + LCL_AccumulateOffset(correction,0.0); + tmp_0 = LCL_ApplyStepOffset(- correction); + if (! tmp_0) { + __retres = 0; + goto return_label; + } + { + double __va_arg0 = correction; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN,"System clock was stepped by %.6f seconds", + (void * const *)(__va_args)); + } + __retres = 1; + return_label: return __retres; +} + +int LCL_CanSystemLeap(void) +{ + int tmp; + if (drv_set_leap) tmp = 1; else tmp = 0; + return tmp; +} + +void LCL_SetSystemLeap(int leap, int tai_offset) +{ + if (drv_set_leap) (*drv_set_leap)(leap,tai_offset); + return; +} + +double LCL_SetTempComp(double comp) +{ + double __retres; + double uncomp_freq_ppm; + if (temp_comp_ppm == comp) { + __retres = comp; + goto return_label; + } + current_freq_ppm = (current_freq_ppm + temp_comp_ppm) / (1.0 - 1.0e-6 * temp_comp_ppm); + uncomp_freq_ppm = current_freq_ppm; + current_freq_ppm = current_freq_ppm * (1.0 - 1.0e-6 * comp) - comp; + current_freq_ppm = (*drv_set_freq)(current_freq_ppm); + temp_comp_ppm = (uncomp_freq_ppm - current_freq_ppm) / (1.0e-6 * uncomp_freq_ppm + 1.0); + __retres = temp_comp_ppm; + return_label: return __retres; +} + +void LCL_SetSyncStatus(int synchronised, double est_error, double max_error) +{ + if (drv_set_sync_status) (*drv_set_sync_status)(synchronised,est_error, + max_error); + return; +} + +void *Malloc(size_t size) +{ + void *r; + r = malloc(size); + if (! r) + if (size) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"Could not allocate memory", + (void * const *)(__va_args)); + } + exit(1); + } + return r; +} + +void *Realloc(void *ptr, size_t size) +{ + void *r; + r = realloc(ptr,size); + if (! r) + if (size) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"Could not allocate memory", + (void * const *)(__va_args)); + } + exit(1); + } + return r; +} + +static size_t get_array_size(size_t nmemb, size_t size) +{ + size_t array_size; + array_size = nmemb * size; + if (nmemb > (size_t)0) + if (array_size / nmemb != size) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"Could not allocate memory", + (void * const *)(__va_args)); + } + exit(1); + } + return array_size; +} + +void *Malloc2(size_t nmemb, size_t size) +{ + void *tmp_0; + size_t tmp; + tmp = get_array_size(nmemb,size); + tmp_0 = Malloc(tmp); + return tmp_0; +} + +void *Realloc2(void *ptr, size_t nmemb, size_t size) +{ + void *tmp_0; + size_t tmp; + tmp = get_array_size(nmemb,size); + ; + tmp_0 = Realloc(ptr,tmp); + return tmp_0; +} + +char *Strdup(char const *s) +{ + char *__retres; + void *r; + r = (void *)strdup(s); + if (! r) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"Could not allocate memory", + (void * const *)(__va_args)); + } + exit(1); + } + __retres = (char *)r; + return __retres; +} + +static int address_family = 0; +void DNS_SetAddressFamily(int family) +{ + address_family = family; + return; +} + +DNS_Status DNS_Name2IPAddress(char const *name, IPAddr *ip_addrs, + int max_addrs) +{ + DNS_Status __retres; + struct hostent *host; + int i; + if (address_family != 0) + if (address_family != 1) { + __retres = DNS_Failure; + goto return_label; + } + if (max_addrs < 16) max_addrs = max_addrs; else max_addrs = 16; + host = gethostbyname(name); + if (host == (struct hostent *)0) { + if (h_errno == 2) { + __retres = DNS_TryAgain; + goto return_label; + } + } + else { + if (host->h_addrtype != 2) { + __retres = DNS_Failure; + goto return_label; + } + else + if (! *(host->h_addr_list + 0)) { + __retres = DNS_Failure; + goto return_label; + } + i = 0; + while (1) { + if (*(host->h_addr_list + i)) { + if (! (i < max_addrs)) break; + } + else break; + (ip_addrs + i)->family = (unsigned short)1; + (ip_addrs + i)->addr.in4 = ntohl(*((uint32_t *)*(host->h_addr_list + i))); + i ++; + } + while (i < max_addrs) { + (ip_addrs + i)->family = (unsigned short)0; + i ++; + } + __retres = DNS_Success; + goto return_label; + } + __retres = DNS_TryAgain; + return_label: return __retres; +} + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + requires valid_read_string(param0); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: *(param0 + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..)); + */ +int snprintf_va_1(char * __restrict s, size_t n, + char const * __restrict format, char *param0); + +int DNS_IPAddress2Name(IPAddr *ip_addr, char *name, int len) +{ + int __retres; + struct hostent *host; + uint32_t addr; + int tmp; + char *result = (char *)0; + switch ((int)ip_addr->family) { + case 1: addr = htonl(ip_addr->addr.in4); + host = gethostbyaddr((void const *)(& addr), + (unsigned int)sizeof(ip_addr),2); + break; + default: host = (struct hostent *)0; + } + if (host) result = host->h_name; + if (result == (char *)0) result = UTI_IPToString(ip_addr); + tmp = snprintf_va_1(name,(unsigned long)len,"%s",result); + ; + if (tmp >= len) { + __retres = 0; + goto return_label; + } + __retres = 1; + return_label: return __retres; +} + +void DNS_Reload(void) +{ + res_init(); + return; +} + +void NIO_Initialise(int family); + +void NIO_Finalise(void); + +int NIO_OpenClientSocket(NTP_Remote_Address *remote_addr); + +int NIO_OpenServerSocket(NTP_Remote_Address *remote_addr); + +void NIO_CloseClientSocket(int sock_fd); + +void NIO_CloseServerSocket(int sock_fd); + +int NIO_IsServerSocket(int sock_fd); + +int NIO_IsServerConnectable(NTP_Remote_Address *remote_addr); + +int NIO_SendPacket(NTP_Packet *packet, NTP_Remote_Address *remote_addr, + NTP_Local_Address *local_addr, int length, int process_tx); + +void SCH_Initialise(void); + +void SCH_Finalise(void); + +void SCH_AddFileHandler(int fd, int events, + void (*handler)(int fd, int event, + SCH_ArbitraryArgument ), + SCH_ArbitraryArgument arg); + +void SCH_RemoveFileHandler(int fd); + +void SCH_SetFileHandlerEvent(int fd, int event, int enable); + +void SCH_GetLastEventTime(struct timespec *cooked, double *err, + struct timespec *raw); + +SCH_TimeoutID SCH_AddTimeout(struct timespec *ts, + void (*handler)(SCH_ArbitraryArgument ), + SCH_ArbitraryArgument arg); + +SCH_TimeoutID SCH_AddTimeoutByDelay(double delay, + void (*handler)(SCH_ArbitraryArgument ), + SCH_ArbitraryArgument arg); + +SCH_TimeoutID SCH_AddTimeoutInClass(double min_delay, double separation, + double randomness, + SCH_TimeoutClass class, + void (*handler)(SCH_ArbitraryArgument ), + SCH_ArbitraryArgument arg); + +void SCH_RemoveTimeout(SCH_TimeoutID id); + +void SCH_MainLoop(void); + +void SCH_QuitProgram(void); + +static ARR_Instance recv_messages; +static ARR_Instance recv_headers; +static int server_sock_fd4; +static int client_sock_fd4; +static int server_sock_ref4; +static int separate_client_sockets; +static int permanent_server_sockets; +static int initialised = 0; +static void read_from_socket(int sock_fd, int event, void *anything); + +static int prepare_socket(int family, int port_number, int client_only) +{ + int __retres; + union sockaddr_in46 my_addr; + socklen_t my_addr_len; + int sock_fd; + IPAddr bind_address; + int tmp_8; + int events = 1; + int on_off = 1; + sock_fd = socket(family,2,0); + if (sock_fd < 0) { + if (! client_only) { + char *tmp; + char const *tmp_0; + tmp = strerror(__fc_errno); + tmp_0 = UTI_SockaddrFamilyToString(family); + { + char const *__va_arg0 = tmp_0; + char *__va_arg1 = tmp; + void *__va_args[2] = {& __va_arg0, & __va_arg1}; + LOG_Message(LOGS_ERR,"Could not open %s NTP socket : %s", + (void * const *)(__va_args)); + } + } + __retres = -1; + goto return_label; + } + UTI_FdSetCloexec(sock_fd); + if (! client_only) { + int tmp_4; + tmp_4 = __va_fcntl_int(sock_fd,4,0x800); + if (tmp_4) ; + } + memset((void *)(& my_addr),0,sizeof(my_addr)); + my_addr_len = (unsigned int)0; + switch (family) { + case 2: + if (! client_only) CNF_GetBindAddress(1,& bind_address); + else CNF_GetBindAcquisitionAddress(1,& bind_address); + if ((int)bind_address.family == 1) my_addr.in4.sin_addr.s_addr = htonl + (bind_address.addr.in4); + else + if (port_number) my_addr.in4.sin_addr.s_addr = htonl((unsigned int)0); + else break; + my_addr.in4.sin_family = (unsigned short)family; + my_addr.in4.sin_port = htons((unsigned short)port_number); + my_addr_len = (unsigned int)sizeof(my_addr.in4); + break; + default: __FC_assert(0 != 0,"ntp_io.c",194,"0"); + } + if (port_number) { + int tmp_5; + tmp_5 = setsockopt(sock_fd,1,2,(void const *)(& on_off), + (unsigned int)sizeof(on_off)); + if (tmp_5 < 0) { + { + char const *__va_arg0_25 = "SO_REUSEADDR"; + void *__va_args_27[1] = {& __va_arg0_25}; + LOG_Message(LOGS_ERR,"Could not set %s socket option", + (void * const *)(__va_args_27)); + } + } + } + if (! client_only) { + int tmp_6; + tmp_6 = setsockopt(sock_fd,1,6,(void const *)(& on_off), + (unsigned int)sizeof(on_off)); + if (tmp_6 < 0) { + { + char const *__va_arg0_29 = "SO_BROADCAST"; + void *__va_args_31[1] = {& __va_arg0_29}; + LOG_Message(LOGS_ERR,"Could not set %s socket option", + (void * const *)(__va_args_31)); + } + } + } + tmp_8 = setsockopt(sock_fd,1,35,(void const *)(& on_off), + (unsigned int)sizeof(on_off)); + if (tmp_8 < 0) { + int tmp_7; + tmp_7 = setsockopt(sock_fd,1,29,(void const *)(& on_off), + (unsigned int)sizeof(on_off)); + if (tmp_7 < 0) { + { + char const *__va_arg0_33 = "SO_TIMESTAMP"; + void *__va_args_35[1] = {& __va_arg0_33}; + LOG_Message(LOGS_ERR,"Could not set %s socket option", + (void * const *)(__va_args_35)); + } + } + } + if (my_addr_len > (socklen_t)0) { + int tmp_9; + tmp_9 = setsockopt(sock_fd,IPPROTO_IP,15,(void const *)(& on_off), + (unsigned int)sizeof(on_off)); + if (tmp_9 < 0) { + { + char const *__va_arg0_37 = "IP_FREEBIND"; + void *__va_args_39[1] = {& __va_arg0_37}; + LOG_Message(LOGS_ERR,"Could not set %s socket option", + (void * const *)(__va_args_39)); + } + } + } + if (family == 2) ; + if (my_addr_len > (socklen_t)0) { + int tmp_12; + tmp_12 = bind(sock_fd,(struct sockaddr const *)(& my_addr.u),my_addr_len); + if (tmp_12 < 0) { + char *tmp_10; + char const *tmp_11; + tmp_10 = strerror(__fc_errno); + tmp_11 = UTI_SockaddrFamilyToString(family); + { + char const *__va_arg0_41 = tmp_11; + char *__va_arg1_43 = tmp_10; + void *__va_args_45[2] = {& __va_arg0_41, & __va_arg1_43}; + LOG_Message(LOGS_ERR,"Could not bind %s NTP socket : %s", + (void * const *)(__va_args_45)); + } + close(sock_fd); + __retres = -1; + goto return_label; + } + } + SCH_AddFileHandler(sock_fd,events,& read_from_socket,(void *)0); + __retres = sock_fd; + return_label: return __retres; +} + +static int prepare_separate_client_socket(int family) +{ + int __retres; + switch (family) { + int tmp; + case 1: tmp = prepare_socket(2,0,1); + __retres = tmp; + goto return_label; + default: __retres = -1; + goto return_label; + } + return_label: return __retres; +} + +static int connect_socket(int sock_fd, NTP_Remote_Address *remote_addr) +{ + int __retres; + union sockaddr_in46 addr; + socklen_t addr_len; + int tmp; + int tmp_2; + tmp = UTI_IPAndPortToSockaddr(& remote_addr->ip_addr,remote_addr->port, + & addr.u); + addr_len = (unsigned int)tmp; + __FC_assert(addr_len != (socklen_t)0,"ntp_io.c",305,"addr_len"); + tmp_2 = connect(sock_fd,(struct sockaddr const *)(& addr.u),addr_len); + if (tmp_2 < 0) { + __retres = 0; + goto return_label; + } + __retres = 1; + return_label: return __retres; +} + +static void close_socket(int sock_fd) +{ + if (sock_fd == -1) goto return_label; + SCH_RemoveFileHandler(sock_fd); + close(sock_fd); + return_label: return; +} + +static void prepare_buffers(unsigned int n) +{ + struct MessageHeader *hdr; + struct Message *msg; + unsigned int i; + i = (unsigned int)0; + while (i < n) { + msg = (struct Message *)ARR_GetElement(recv_messages,i); + hdr = (struct MessageHeader *)ARR_GetElement(recv_headers,i); + msg->iov.iov_base = (void *)(& msg->buf); + msg->iov.iov_len = sizeof(msg->buf); + hdr->msg_hdr.msg_name = (void *)(& msg->name); + hdr->msg_hdr.msg_namelen = (unsigned int)sizeof(msg->name); + hdr->msg_hdr.msg_iov = & msg->iov; + hdr->msg_hdr.msg_iovlen = 1; + hdr->msg_hdr.msg_control = (void *)(& msg->cmsgbuf); + hdr->msg_hdr.msg_controllen = (unsigned int)sizeof(msg->cmsgbuf); + hdr->msg_hdr.msg_flags = 0; + hdr->msg_len = (unsigned int)0; + i ++; + } + return; +} + +void NIO_Initialise(int family) +{ + int server_port; + int client_port; + int tmp_0; + __FC_assert(! initialised != 0,"ntp_io.c",365,"!initialised"); + initialised = 1; + { + CNF_HwTsInterface *conf_iface; + int tmp; + tmp = CNF_GetHwTsInterface((unsigned int)0,& conf_iface); + if (tmp) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"HW timestamping not supported", + (void * const *)(__va_args)); + } + exit(1); + } + } + recv_messages = ARR_CreateInstance((unsigned int)sizeof(struct Message)); + ARR_SetSize(recv_messages,(unsigned int)1); + recv_headers = ARR_CreateInstance((unsigned int)sizeof(struct MessageHeader)); + ARR_SetSize(recv_headers,(unsigned int)1); + prepare_buffers((unsigned int)1); + server_port = CNF_GetNTPPort(); + client_port = CNF_GetAcquisitionPort(); + separate_client_sockets = client_port < 0; + if (client_port < 0) client_port = 0; + if (! server_port) tmp_0 = 1; + else + if (! separate_client_sockets) + if (client_port == server_port) tmp_0 = 1; else tmp_0 = 0; + else tmp_0 = 0; + permanent_server_sockets = tmp_0; + server_sock_fd4 = -1; + client_sock_fd4 = -1; + server_sock_ref4 = 0; + if (family == 0) goto _LOR; + else + if (family == 1) { + _LOR: + { + if (permanent_server_sockets) + if (server_port) server_sock_fd4 = prepare_socket(2,server_port,0); + if (! separate_client_sockets) + if (client_port != server_port) client_sock_fd4 = prepare_socket + (2,client_port,1); + else + if (! server_port) client_sock_fd4 = prepare_socket(2, + client_port, + 1); + else client_sock_fd4 = server_sock_fd4; + } + } + if (server_port) { + if (server_sock_fd4 == -1) { + if (permanent_server_sockets) goto _LOR_0; else goto _LAND_0; + } + else goto _LAND_0; + } + else + _LAND_0: + if (! separate_client_sockets) + if (client_sock_fd4 == -1) { + _LOR_0: + { + { + void *__va_args_9[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"Could not open NTP sockets", + (void * const *)(__va_args_9)); + } + exit(1); + } + } + return; +} + +void NIO_Finalise(void) +{ + if (server_sock_fd4 != client_sock_fd4) close_socket(client_sock_fd4); + close_socket(server_sock_fd4); + client_sock_fd4 = -1; + server_sock_fd4 = client_sock_fd4; + ARR_DestroyInstance(recv_headers); + ARR_DestroyInstance(recv_messages); + initialised = 0; + return; +} + +int NIO_OpenClientSocket(NTP_Remote_Address *remote_addr) +{ + int __retres; + if (separate_client_sockets) { + int tmp_0; + int sock_fd = + prepare_separate_client_socket((int)remote_addr->ip_addr.family); + if (sock_fd == -1) { + __retres = -1; + goto return_label; + } + tmp_0 = connect_socket(sock_fd,remote_addr); + if (! tmp_0) { + close_socket(sock_fd); + __retres = -1; + goto return_label; + } + __retres = sock_fd; + goto return_label; + } + else + switch ((int)remote_addr->ip_addr.family) { + case 1: ; + __retres = client_sock_fd4; + goto return_label; + default: __retres = -1; + goto return_label; + } + return_label: return __retres; +} + +int NIO_OpenServerSocket(NTP_Remote_Address *remote_addr) +{ + int __retres; + switch ((int)remote_addr->ip_addr.family) { + case 1: ; + if (permanent_server_sockets) { + __retres = server_sock_fd4; + goto return_label; + } + if (server_sock_fd4 == -1) { + int tmp; + tmp = CNF_GetNTPPort(); + server_sock_fd4 = prepare_socket(2,tmp,0); + } + if (server_sock_fd4 != -1) server_sock_ref4 ++; + __retres = server_sock_fd4; + goto return_label; + default: __retres = -1; + goto return_label; + } + return_label: return __retres; +} + +void NIO_CloseClientSocket(int sock_fd) +{ + if (separate_client_sockets) close_socket(sock_fd); + return; +} + +void NIO_CloseServerSocket(int sock_fd) +{ + if (permanent_server_sockets) goto return_label; + else + if (sock_fd == -1) goto return_label; + if (sock_fd == server_sock_fd4) { + server_sock_ref4 --; + if (server_sock_ref4 <= 0) { + close_socket(server_sock_fd4); + server_sock_fd4 = -1; + } + } + else __FC_assert(0 != 0,"ntp_io.c",558,"0"); + return_label: return; +} + +int NIO_IsServerSocket(int sock_fd) +{ + int tmp; + if (sock_fd != -1) + if (sock_fd == server_sock_fd4) tmp = 1; else tmp = 0; + else tmp = 0; + return tmp; +} + +int NIO_IsServerConnectable(NTP_Remote_Address *remote_addr) +{ + int __retres; + int sock_fd; + int r; + sock_fd = prepare_separate_client_socket((int)remote_addr->ip_addr.family); + if (sock_fd == -1) { + __retres = 0; + goto return_label; + } + r = connect_socket(sock_fd,remote_addr); + close_socket(sock_fd); + __retres = r; + return_label: return __retres; +} + +static void process_message(struct msghdr *hdr, int length, int sock_fd) +{ + NTP_Remote_Address remote_addr; + NTP_Local_Address local_addr; + NTP_Local_Timestamp local_ts; + struct timespec sched_ts; + struct cmsghdr *cmsg; + SCH_GetLastEventTime(& local_ts.ts,& local_ts.err,(struct timespec *)0); + local_ts.source = NTP_TS_DAEMON; + sched_ts = local_ts.ts; + if ((unsigned long)hdr->msg_namelen > sizeof(union sockaddr_in46)) + goto return_label; + if ((unsigned long)hdr->msg_namelen >= sizeof(((struct sockaddr *)hdr->msg_name)->sa_family)) + UTI_SockaddrToIPAndPort((struct sockaddr *)hdr->msg_name, + & remote_addr.ip_addr,& remote_addr.port); + else { + remote_addr.ip_addr.family = (unsigned short)0; + remote_addr.port = (unsigned short)0; + } + local_addr.ip_addr.family = (unsigned short)0; + local_addr.if_index = -1; + local_addr.sock_fd = sock_fd; + if (hdr->msg_flags & 0x20) goto return_label; + if (hdr->msg_flags & 0x8) ; + cmsg = CMSG_FIRSTHDR(hdr); + while (cmsg) { + if (cmsg->cmsg_level == 1) + if (cmsg->cmsg_type == 29) { + struct timeval tv; + struct timespec ts; + unsigned char *tmp_0; + tmp_0 = CMSG_DATA(cmsg); + memcpy((void *)(& tv),(void const *)tmp_0,sizeof(tv)); + UTI_TimevalToTimespec(& tv,& ts); + LCL_CookTime(& ts,& local_ts.ts,& local_ts.err); + local_ts.source = NTP_TS_KERNEL; + } + if (cmsg->cmsg_level == 1) + if (cmsg->cmsg_type == 35) { + struct timespec ts_0; + unsigned char *tmp_1; + tmp_1 = CMSG_DATA(cmsg); + memcpy((void *)(& ts_0),(void const *)tmp_1,sizeof(ts_0)); + LCL_CookTime(& ts_0,& local_ts.ts,& local_ts.err); + local_ts.source = NTP_TS_KERNEL; + } + cmsg = CMSG_NXTHDR(hdr,cmsg); + } + if (length < 48) goto return_label; + else + if ((unsigned long)length > sizeof(NTP_Receive_Buffer)) goto return_label; + NSR_ProcessRx(& remote_addr,& local_addr,& local_ts, + (NTP_Packet *)(hdr->msg_iov + 0)->iov_base,length); + return_label: return; +} + +static void read_from_socket(int sock_fd, int event, void *anything) +{ + struct MessageHeader *hdr; + unsigned int i; + unsigned int n; + int status; + ssize_t tmp; + int flags = 0; + hdr = (struct MessageHeader *)ARR_GetElements(recv_headers); + n = ARR_GetSize(recv_headers); + __FC_assert((n >= (unsigned int)1) != 0,"ntp_io.c",727,"n >= 1"); + if (event == 4) __FC_assert(0 != 0,"ntp_io.c",733,"0"); + n = (unsigned int)1; + tmp = recvmsg(sock_fd,& (hdr + 0)->msg_hdr,flags); + status = (int)tmp; + if (status >= 0) (hdr + 0)->msg_len = (unsigned int)status; + if (status < 0) goto return_label; + i = (unsigned int)0; + while (i < n) { + hdr = (struct MessageHeader *)ARR_GetElement(recv_headers,i); + process_message(& hdr->msg_hdr,(int)hdr->msg_len,sock_fd); + i ++; + } + prepare_buffers(n); + return_label: return; +} + +int NIO_SendPacket(NTP_Packet *packet, NTP_Remote_Address *remote_addr, + NTP_Local_Address *local_addr, int length, int process_tx) +{ + int __retres; + union sockaddr_in46 remote; + struct msghdr msg; + struct iovec iov; + struct cmsghdr *cmsg; + struct cmsghdr cmsgbuf[(unsigned long)256 / sizeof(struct cmsghdr)]; + int cmsglen; + int tmp_1; + ssize_t tmp_5; + socklen_t addrlen = (unsigned int)0; + __FC_assert(initialised != 0,"ntp_io.c",791,"initialised"); + if (local_addr->sock_fd == -1) { + __retres = 0; + goto return_label; + } + tmp_1 = NIO_IsServerSocket(local_addr->sock_fd); + if (tmp_1) goto _LOR; + else + if (! separate_client_sockets) { + _LOR: + { + int tmp_0; + tmp_0 = UTI_IPAndPortToSockaddr(& remote_addr->ip_addr, + remote_addr->port,& remote.u); + addrlen = (unsigned int)tmp_0; + if (! addrlen) { + __retres = 0; + goto return_label; + } + } + } + if (addrlen) { + msg.msg_name = (void *)(& remote.u); + msg.msg_namelen = addrlen; + } + else { + msg.msg_name = (void *)0; + msg.msg_namelen = (unsigned int)0; + } + iov.iov_base = (void *)packet; + iov.iov_len = (unsigned long)length; + msg.msg_iov = & iov; + msg.msg_iovlen = 1; + msg.msg_control = (void *)(cmsgbuf); + msg.msg_controllen = (unsigned int)sizeof(cmsgbuf); + msg.msg_flags = 0; + cmsglen = 0; + if ((int)local_addr->ip_addr.family == 1) ; + msg.msg_controllen = (unsigned int)cmsglen; + if (! cmsglen) msg.msg_control = (void *)0; + tmp_5 = sendmsg(local_addr->sock_fd,(struct msghdr const *)(& msg),0); + if (tmp_5 < (ssize_t)0) { + __retres = 0; + goto return_label; + } + __retres = 1; + return_label: return __retres; +} + +static int are_we_synchronised; +static int enable_local_stratum; +static int local_stratum_0; +static int local_orphan_0; +static double local_distance_0; +static NTP_Leap our_leap_status; +static int our_leap_sec; +static int our_tai_offset; +static int our_stratum; +static uint32_t our_ref_id; +static IPAddr our_ref_ip; +static struct timespec our_ref_time; +static double our_skew; +static double our_residual_freq; +static double our_root_delay; +static double our_root_dispersion; +static double max_update_skew_0; +static double last_offset; +static double avg2_offset; +static int avg2_moving; +static double correction_time_ratio_0; +static int initialised_0 = 0; +static REF_Mode mode; +static int make_step_limit_0; +static double make_step_threshold_0; +static int max_offset_delay_0; +static int max_offset_ignore_0; +static double max_offset_0; +static double log_change_threshold_0; +static int do_mail_change; +static double mail_change_threshold_0; +static char *mail_change_user; +static void (*mode_end_handler)(int result) = (void (*)(int result))0; +static char *drift_file_0 = (char *)0; +static double drift_file_age; +static void update_drift_file(double freq_ppm, double skew); + +static REF_LeapMode leap_mode; +static int leap_in_progress; +static SCH_TimeoutID leap_timeout_id; +static char *leap_tzname; +static LOG_FileID logfileid; +static int fb_drift_min_0; +static int fb_drift_max_0; +static struct fb_drift *fb_drifts = (struct fb_drift *)0; +static int next_fb_drift; +static SCH_TimeoutID fb_drift_timeout_id; +static struct timespec last_ref_update; +static double last_ref_update_interval; +static NTP_Leap get_tz_leap(time_t when, int *tai_offset); + +static void update_leap_status(NTP_Leap leap, time_t now, int reset); + +static void handle_slew(struct timespec *raw, struct timespec *cooked, + double dfreq, double doffset, + LCL_ChangeType change_type, void *anything) +{ + double delta; + struct timespec now; + int tmp; + tmp = UTI_IsZeroTimespec(& our_ref_time); + if (! tmp) UTI_AdjustTimespec(& our_ref_time,cooked,& our_ref_time,& delta, + dfreq,doffset); + if (change_type == (unsigned int)LCL_ChangeUnknownStep) UTI_ZeroTimespec + (& last_ref_update); + else + if (last_ref_update.tv_sec) UTI_AdjustTimespec(& last_ref_update,cooked, + & last_ref_update,& delta, + dfreq,doffset); + if (change_type != (unsigned int)LCL_ChangeAdjust) + if (our_leap_sec) + if (! leap_in_progress) { + LCL_ReadRawTime(& now); + update_leap_status(our_leap_status,now.tv_sec,1); + } + return; +} + +/*@ requires valid_read_string(format); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, stream->__fc_FILE_data, *param1, *param0; + assigns \result + \from (indirect: stream->__fc_FILE_id), + (indirect: stream->__fc_FILE_data), + (indirect: *(format + (0 ..))); + assigns stream->__fc_FILE_data + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))); + */ +int fscanf_va_1(FILE * __restrict stream, char const * __restrict format, + double *param0, double *param1); + +void REF_Initialise(void) +{ + FILE *in; + double file_freq_ppm; + double file_skew_ppm; + double our_frequency_ppm; + int tai_offset; + int tmp_0; + double tmp_3; + double tmp_2; + mode = REF_ModeNormal; + are_we_synchronised = 0; + our_leap_status = LEAP_Unsynchronised; + our_leap_sec = 0; + our_tai_offset = 0; + initialised_0 = 1; + our_root_dispersion = 1.0; + our_root_delay = 1.0; + our_frequency_ppm = 0.0; + our_skew = 1.0; + our_residual_freq = 0.0; + drift_file_age = 0.0; + drift_file_0 = CNF_GetDriftFile(); + if (drift_file_0) { + in = fopen((char const *)drift_file_0,"r"); + if (in) { + int tmp; + tmp = fscanf_va_1(in,"%lf%lf",& file_freq_ppm,& file_skew_ppm); + if (tmp == 2) { + our_frequency_ppm = file_freq_ppm; + our_skew = 1.0e-6 * file_skew_ppm; + if (our_skew < 1.0e-12) our_skew = 1.0e-12; + { + double __va_arg0 = file_freq_ppm; + double __va_arg1 = file_skew_ppm; + char *__va_arg2 = drift_file_0; + void *__va_args[3] = {& __va_arg0, & __va_arg1, & __va_arg2}; + LOG_Message(LOGS_INFO,"Frequency %.3f +/- %.3f ppm read from %s", + (void * const *)(__va_args)); + } + LCL_SetAbsoluteFrequency(our_frequency_ppm); + } + else { + { + char *__va_arg0_20 = drift_file_0; + void *__va_args_22[1] = {& __va_arg0_20}; + LOG_Message(LOGS_WARN, + "Could not read valid frequency and skew from driftfile %s", + (void * const *)(__va_args_22)); + } + } + fclose(in); + } + } + if (our_frequency_ppm == 0.0) { + our_frequency_ppm = LCL_ReadAbsoluteFrequency(); + if (our_frequency_ppm != 0.0) { + { + double __va_arg0_24 = our_frequency_ppm; + void *__va_args_26[1] = {& __va_arg0_24}; + LOG_Message(LOGS_INFO,"Initial frequency %.3f ppm", + (void * const *)(__va_args_26)); + } + } + } + tmp_0 = CNF_GetLogTracking(); + if (tmp_0) logfileid = LOG_FileOpen("tracking", + " Date (UTC) Time IP Address St Freq ppm Skew ppm Offset L Co Offset sd Rem. corr. Root delay Root disp. Max. error"); + else logfileid = -1; + tmp_2 = CNF_GetMaxUpdateSkew(); + tmp_3 = fabs(tmp_2); + max_update_skew_0 = tmp_3 * 1.0e-6; + correction_time_ratio_0 = CNF_GetCorrectionTimeRatio(); + enable_local_stratum = CNF_AllowLocalReference(& local_stratum_0, + & local_orphan_0, + & local_distance_0); + leap_timeout_id = (unsigned int)0; + leap_in_progress = 0; + leap_mode = CNF_GetLeapSecMode(); + if (leap_mode == (unsigned int)REF_LeapModeSystem) { + int tmp_4; + tmp_4 = LCL_CanSystemLeap(); + if (! tmp_4) leap_mode = REF_LeapModeStep; + } + leap_tzname = CNF_GetLeapSecTimezone(); + if (leap_tzname) { + NTP_Leap tmp_5; + tmp_5 = get_tz_leap((long)1341014400,& tai_offset); + if (tmp_5 == (unsigned int)LEAP_InsertSecond) { + if (tai_offset == 34) { + NTP_Leap tmp_6; + tmp_6 = get_tz_leap((long)1356912000,& tai_offset); + if (tmp_6 == (unsigned int)LEAP_Normal) { + if (tai_offset == 35) { + { + char *__va_arg0_28 = leap_tzname; + void *__va_args_30[1] = {& __va_arg0_28}; + LOG_Message(LOGS_INFO, + "Using %s timezone to obtain leap second data", + (void * const *)(__va_args_30)); + } + } + else goto _LAND_1; + } + else goto _LAND_1; + } + else goto _LAND_1; + } + else { + _LAND_1: + { + { + char *__va_arg0_32 = leap_tzname; + void *__va_args_34[1] = {& __va_arg0_32}; + LOG_Message(LOGS_WARN, + "Timezone %s failed leap second check, ignoring", + (void * const *)(__va_args_34)); + } + leap_tzname = (char *)0; + } + } + } + CNF_GetMakeStep(& make_step_limit_0,& make_step_threshold_0); + CNF_GetMaxChange(& max_offset_delay_0,& max_offset_ignore_0,& max_offset_0); + CNF_GetMailOnChange(& do_mail_change,& mail_change_threshold_0, + & mail_change_user); + log_change_threshold_0 = CNF_GetLogChange(); + CNF_GetFallbackDrifts(& fb_drift_min_0,& fb_drift_max_0); + if (fb_drift_max_0 >= fb_drift_min_0) + if (fb_drift_min_0 > 0) { + fb_drifts = (struct fb_drift *)Malloc2((unsigned long)((fb_drift_max_0 - fb_drift_min_0) + 1), + sizeof(struct fb_drift)); + memset((void *)fb_drifts,0, + sizeof(struct fb_drift) * (unsigned long)((fb_drift_max_0 - fb_drift_min_0) + 1)); + next_fb_drift = 0; + fb_drift_timeout_id = (unsigned int)0; + } + UTI_ZeroTimespec(& our_ref_time); + UTI_ZeroTimespec(& last_ref_update); + last_ref_update_interval = 0.0; + LCL_AddParameterChangeHandler(& handle_slew,(void *)0); + REF_SetUnsynchronised(); + return; +} + +void REF_Finalise(void) +{ + update_leap_status(LEAP_Unsynchronised,(long)0,0); + if (drift_file_0) { + double tmp; + ; + tmp = LCL_ReadAbsoluteFrequency(); + update_drift_file(tmp,our_skew); + } + free((void *)fb_drifts); + initialised_0 = 0; + return; +} + +void REF_SetMode(REF_Mode new_mode) +{ + mode = new_mode; + return; +} + +REF_Mode REF_GetMode(void) +{ + return mode; +} + +void REF_SetModeEndHandler(void (*handler)(int result)) +{ + mode_end_handler = handler; + return; +} + +REF_LeapMode REF_GetLeapMode(void) +{ + return leap_mode; +} + +/*@ requires valid_read_string(format); + assigns \result, stream->__fc_FILE_data; + assigns \result + \from (indirect: stream->__fc_FILE_id), + (indirect: stream->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param1), + (indirect: param0); + assigns stream->__fc_FILE_data + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))), param1, param0; + */ +int fprintf_va_2(FILE * __restrict stream, char const * __restrict format, + double param0, double param1); + +static void update_drift_file(double freq_ppm, double skew) +{ + struct stat buf; + char *temp_drift_file; + FILE *out; + int r1; + int r2; + void *tmp_0; + size_t tmp; + int tmp_3; + int tmp_4; + tmp = strlen((char const *)drift_file_0); + tmp_0 = Malloc(tmp + (size_t)8); + temp_drift_file = (char *)tmp_0; + if (! temp_drift_file) goto return_label; + strcpy(temp_drift_file,(char const *)drift_file_0); + strcat(temp_drift_file,".tmp"); + out = fopen((char const *)temp_drift_file,"w"); + if (! out) { + free((void *)temp_drift_file); + { + char *__va_arg0 = drift_file_0; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN, + "Could not open temporary driftfile %s.tmp for writing", + (void * const *)(__va_args)); + } + goto return_label; + } + r1 = fprintf_va_2(out,"%20.6f %20.6f\n",freq_ppm,1.0e6 * skew); + r2 = fclose(out); + if (r1 < 0) goto _LOR; + else + if (r2) { + _LOR: + { + free((void *)temp_drift_file); + { + char *__va_arg0_17 = drift_file_0; + void *__va_args_19[1] = {& __va_arg0_17}; + LOG_Message(LOGS_WARN, + "Could not write to temporary driftfile %s.tmp", + (void * const *)(__va_args_19)); + } + goto return_label; + } + } + tmp_3 = stat((char const *)drift_file_0,& buf); + if (! tmp_3) { + int tmp_1; + tmp_1 = chown((char const *)temp_drift_file,buf.st_uid,buf.st_gid); + if (tmp_1) goto _LOR_0; + else { + int tmp_2; + tmp_2 = chmod((char const *)temp_drift_file, + buf.st_mode & (unsigned int)0777); + if (tmp_2) { + _LOR_0: + { + char *__va_arg0_21 = drift_file_0; + void *__va_args_23[1] = {& __va_arg0_21}; + LOG_Message(LOGS_WARN, + "Could not change ownership or permissions of temporary driftfile %s.tmp", + (void * const *)(__va_args_23)); + } + } + } + } + tmp_4 = rename((char const *)temp_drift_file,(char const *)drift_file_0); + if (tmp_4) { + unlink((char const *)temp_drift_file); + free((void *)temp_drift_file); + { + char *__va_arg0_25 = drift_file_0; + char *__va_arg1 = drift_file_0; + void *__va_args_28[2] = {& __va_arg0_25, & __va_arg1}; + LOG_Message(LOGS_WARN, + "Could not replace old driftfile %s with new one %s.tmp", + (void * const *)(__va_args_28)); + } + goto return_label; + } + free((void *)temp_drift_file); + return_label: return; +} + +static void update_fb_drifts(double freq_ppm, double update_interval) +{ + int i; + int secs; + __FC_assert(are_we_synchronised != 0,"reference.c",398, + "are_we_synchronised"); + if (next_fb_drift > 0) next_fb_drift = 0; + SCH_RemoveTimeout(fb_drift_timeout_id); + fb_drift_timeout_id = (unsigned int)0; + if (update_interval < 1.0) goto return_label; + else + if (update_interval > last_ref_update_interval * 4.0) goto return_label; + i = 0; + while (i < (fb_drift_max_0 - fb_drift_min_0) + 1) { + secs = 1 << (i + fb_drift_min_0); + if ((fb_drifts + i)->secs < (double)secs) { + (fb_drifts + i)->freq = ((fb_drifts + i)->freq * (fb_drifts + i)->secs + + (update_interval * 0.5) * freq_ppm) / ( + update_interval * 0.5 + (fb_drifts + i)->secs); + (fb_drifts + i)->secs += update_interval * 0.5; + } + else { + double tmp; + tmp = exp(update_interval / (double)secs); + (fb_drifts + i)->freq += ((double)1 - 1.0 / tmp) * (freq_ppm - ( + fb_drifts + i)->freq); + } + i ++; + } + return_label: return; +} + +static void fb_drift_timeout(void *arg) +{ + int tmp; + if (next_fb_drift >= fb_drift_min_0) + if (next_fb_drift <= fb_drift_max_0) tmp = 1; else tmp = 0; + else tmp = 0; + __FC_assert(tmp != 0,"reference.c",441, + "next_fb_drift >= fb_drift_min && next_fb_drift <= fb_drift_max"); + fb_drift_timeout_id = (unsigned int)0; + LCL_SetAbsoluteFrequency((fb_drifts + (next_fb_drift - fb_drift_min_0))->freq); + REF_SetUnsynchronised(); + return; +} + +static void schedule_fb_drift(struct timespec *now) +{ + int i; + int c; + int secs; + double unsynchronised; + struct timespec when; + if (fb_drift_timeout_id) goto return_label; + unsynchronised = UTI_DiffTimespecsToDouble(now,& last_ref_update); + secs = 0; + c = secs; + i = fb_drift_min_0; + while (i <= fb_drift_max_0) { + secs = 1 << i; + if ((fb_drifts + (i - fb_drift_min_0))->secs < (double)secs) goto __Cont; + if (unsynchronised < (double)secs) + if (i > next_fb_drift) break; + c = i; + __Cont: i ++; + } + if (c > next_fb_drift) { + LCL_SetAbsoluteFrequency((fb_drifts + (c - fb_drift_min_0))->freq); + next_fb_drift = c; + } + if (i <= fb_drift_max_0) { + next_fb_drift = i; + UTI_AddDoubleToTimespec(now,(double)secs - unsynchronised,& when); + fb_drift_timeout_id = SCH_AddTimeout(& when,& fb_drift_timeout,(void *)0); + } + return_label: return; +} + +static void end_ref_mode(int result) +{ + mode = REF_ModeIgnore; + if (mode_end_handler) (*mode_end_handler)(result); + return; +} + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + requires valid_read_string(param0); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: *(param0 + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..)); + */ +int snprintf_va_2(char * __restrict s, size_t n, + char const * __restrict format, char *param0); + +/*@ requires valid_read_string(format); + requires valid_read_string(param0); + assigns \result, stream->__fc_FILE_data; + assigns \result + \from (indirect: stream->__fc_FILE_id), + (indirect: stream->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: *(param0 + (0 ..))); + assigns stream->__fc_FILE_data + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))), *(param0 + (0 ..)); + */ +int fprintf_va_3(FILE * __restrict stream, char const * __restrict format, + char *param0); + +/*@ requires valid_read_string(format); + requires valid_read_string(param0); + assigns \result, stream->__fc_FILE_data; + assigns \result + \from (indirect: stream->__fc_FILE_id), + (indirect: stream->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: *(param0 + (0 ..))); + assigns stream->__fc_FILE_data + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))), *(param0 + (0 ..)); + */ +int fprintf_va_4(FILE * __restrict stream, char const * __restrict format, + char *param0); + +/*@ requires valid_read_string(format); + assigns \result, stream->__fc_FILE_data; + assigns \result + \from (indirect: stream->__fc_FILE_id), + (indirect: stream->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param1), + (indirect: param0); + assigns stream->__fc_FILE_data + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))), param1, param0; + */ +int fprintf_va_5(FILE * __restrict stream, char const * __restrict format, + double param0, double param1); + +static void maybe_log_offset(double offset, time_t now) +{ + double abs_offset; + FILE *p; + char buffer[255]; + char host[255]; + struct tm *tm; + abs_offset = fabs(offset); + if (abs_offset > log_change_threshold_0) { + { + double __va_arg0 = - offset; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN, + "System clock wrong by %.6f seconds, adjustment started", + (void * const *)(__va_args)); + } + } + if (do_mail_change) + if (abs_offset > mail_change_threshold_0) { + snprintf_va_2(buffer,sizeof(buffer),"%s -t", + (char *)"/usr/lib/sendmail"); + p = popen((char const *)(buffer),"w"); + if (p) { + int tmp; + tmp = gethostname(host,sizeof(host)); + if (tmp < 0) strcpy(host,"<UNKNOWN>"); + host[sizeof(host) - (unsigned long)1] = (char)'\000'; + fprintf_va_3(p,"To: %s\n",mail_change_user); + fprintf_va_4(p, + "Subject: chronyd reports change to system clock on node [%s]\n", + host); + fputs("\n",p); + tm = localtime((time_t const *)(& now)); + if (tm) { + strftime(buffer,sizeof(buffer), + "On %A, %d %B %Y\n with the system clock reading %H:%M:%S (%Z)", + (struct tm const *)tm); + fputs((char const *)(buffer),p); + } + fprintf_va_5(p, + "\n\nchronyd started to apply an adjustment of %.3f seconds to it,\n which exceeded the reporting threshold of %.3f seconds\n\n", + - offset,mail_change_threshold_0); + pclose(p); + } + else { + { + char *__va_arg0_12 = mail_change_user; + void *__va_args_14[1] = {& __va_arg0_12}; + LOG_Message(LOGS_ERR, + "Could not send mail notification to user %s\n", + (void * const *)(__va_args_14)); + } + } + } + return; +} + +static int is_step_limit_reached(double offset, double offset_correction) +{ + int __retres; + double tmp; + if (make_step_limit_0 == 0) { + __retres = 0; + goto return_label; + } + else + if (make_step_limit_0 > 0) make_step_limit_0 --; + tmp = fabs(offset - offset_correction); + ; + __retres = tmp > make_step_threshold_0; + return_label: return __retres; +} + +static int is_offset_ok(double offset) +{ + int __retres; + if (max_offset_delay_0 < 0) { + __retres = 1; + goto return_label; + } + if (max_offset_delay_0 > 0) { + max_offset_delay_0 --; + __retres = 1; + goto return_label; + } + offset = fabs(offset); + if (offset > max_offset_0) { + char const *tmp; + if (! max_offset_ignore_0) tmp = "exiting"; else tmp = "ignored"; + ; + ; + { + double __va_arg0 = - offset; + double __va_arg1 = max_offset_0; + char const *__va_arg2 = tmp; + void *__va_args[3] = {& __va_arg0, & __va_arg1, & __va_arg2}; + LOG_Message(LOGS_WARN, + "Adjustment of %.3f seconds exceeds the allowed maximum of %.3f seconds (%s) ", + (void * const *)(__va_args)); + } + if (! max_offset_ignore_0) end_ref_mode(0); + else + if (max_offset_ignore_0 > 0) max_offset_ignore_0 --; + __retres = 0; + goto return_label; + } + __retres = 1; + return_label: return __retres; +} + +static int is_leap_second_day(time_t when) +{ + int __retres; + struct tm *stm; + int tmp; + stm = gmtime((time_t const *)(& when)); + if (! stm) { + __retres = 0; + goto return_label; + } + if (stm->tm_mon == 5) { + if (stm->tm_mday == 30) tmp = 1; else goto _LAND; + } + else { + _LAND: ; + if (stm->tm_mon == 11) + if (stm->tm_mday == 31) tmp = 1; else tmp = 0; + else tmp = 0; + } + __retres = tmp; + return_label: return __retres; +} + +static time_t get_tz_leap_last_tz_leap_check; +static NTP_Leap get_tz_leap_tz_leap; +static int get_tz_leap_tz_tai_offset; +static NTP_Leap get_tz_leap(time_t when, int *tai_offset) +{ + NTP_Leap __retres; + struct tm stm; + struct tm *tm; + time_t t; + char *tz_env; + char tz_orig[128]; + *tai_offset = get_tz_leap_tz_tai_offset; + when = (when / (time_t)(12 * 3600)) * (time_t)(12 * 3600); + if (get_tz_leap_last_tz_leap_check == when) { + __retres = get_tz_leap_tz_leap; + goto return_label; + } + get_tz_leap_last_tz_leap_check = when; + get_tz_leap_tz_leap = LEAP_Normal; + get_tz_leap_tz_tai_offset = 0; + tm = gmtime((time_t const *)(& when)); + if (! tm) { + __retres = get_tz_leap_tz_leap; + goto return_label; + } + stm = *tm; + tz_env = getenv("TZ"); + if (tz_env) { + size_t tmp; + tmp = strlen((char const *)tz_env); + if (tmp >= sizeof(tz_orig)) { + __retres = get_tz_leap_tz_leap; + goto return_label; + } + strcpy(tz_orig,(char const *)tz_env); + } + setenv("TZ",(char const *)leap_tzname,1); + tzset(); + t = mktime(& stm); + if (t != (time_t)(-1)) get_tz_leap_tz_tai_offset = (int)((t - when) + (time_t)10); + stm.tm_sec = 60; + stm.tm_min = 59; + stm.tm_hour = 23; + t = mktime(& stm); + if (tz_env) setenv("TZ",(char const *)(tz_orig),1); else unsetenv("TZ"); + tzset(); + if (t == (time_t)(-1)) { + __retres = get_tz_leap_tz_leap; + goto return_label; + } + if (stm.tm_sec == 60) get_tz_leap_tz_leap = LEAP_InsertSecond; + else + if (stm.tm_sec == 1) get_tz_leap_tz_leap = LEAP_DeleteSecond; + *tai_offset = get_tz_leap_tz_tai_offset; + __retres = get_tz_leap_tz_leap; + return_label: return __retres; +} + +static void leap_end_timeout(void *arg) +{ + leap_timeout_id = (unsigned int)0; + leap_in_progress = 0; + if (our_tai_offset) our_tai_offset += our_leap_sec; + our_leap_sec = 0; + if (leap_mode == (unsigned int)REF_LeapModeSystem) LCL_SetSystemLeap + (our_leap_sec, + our_tai_offset); + if (our_leap_status == (unsigned int)LEAP_InsertSecond) our_leap_status = LEAP_Normal; + else + if (our_leap_status == (unsigned int)LEAP_DeleteSecond) our_leap_status = LEAP_Normal; + return; +} + +static void leap_start_timeout(void *arg) +{ + leap_in_progress = 1; + switch (leap_mode) { + case (REF_LeapMode)REF_LeapModeSystem: ; + break; + case (REF_LeapMode)REF_LeapModeSlew: LCL_NotifyLeap(our_leap_sec); + LCL_AccumulateOffset((double)our_leap_sec,0.0); + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_WARN,"Adjusting system clock for leap second", + (void * const *)(__va_args)); + } + break; + case (REF_LeapMode)REF_LeapModeStep: LCL_NotifyLeap(our_leap_sec); + LCL_ApplyStepOffset((double)our_leap_sec); + { + void *__va_args_4[1] = {(void *)0}; + LOG_Message(LOGS_WARN,"System clock was stepped for leap second", + (void * const *)(__va_args_4)); + } + break; + case (REF_LeapMode)REF_LeapModeIgnore: + { + void *__va_args_6[1] = {(void *)0}; + LOG_Message(LOGS_WARN,"Ignoring leap second", + (void * const *)(__va_args_6)); + } + break; + default: break; + } + leap_timeout_id = SCH_AddTimeoutByDelay(2.0,& leap_end_timeout,(void *)0); + return; +} + +static void set_leap_timeout(time_t now) +{ + struct timespec when; + SCH_RemoveTimeout(leap_timeout_id); + leap_timeout_id = (unsigned int)0; + leap_in_progress = 0; + if (! our_leap_sec) goto return_label; + when.tv_sec = (now / (time_t)(24 * 3600) + (time_t)1) * (time_t)(24 * 3600); + when.tv_nsec = (long)0; + if (our_leap_sec < 0) (when.tv_sec) --; + if (leap_mode == (unsigned int)REF_LeapModeSystem) { + (when.tv_sec) --; + when.tv_nsec = (long)500000000; + } + leap_timeout_id = SCH_AddTimeout(& when,& leap_start_timeout,(void *)0); + return_label: return; +} + +static void update_leap_status(NTP_Leap leap, time_t now, int reset) +{ + NTP_Leap tz_leap; + int leap_sec; + int tai_offset; + leap_sec = 0; + tai_offset = 0; + if (leap_tzname) + if (now) { + tz_leap = get_tz_leap(now,& tai_offset); + if (leap == (unsigned int)LEAP_Normal) leap = tz_leap; + } + if (leap == (unsigned int)LEAP_InsertSecond) goto _LOR; + else + if (leap == (unsigned int)LEAP_DeleteSecond) { + _LOR: + { + int tmp; + tmp = is_leap_second_day(now); + if (tmp) + if (leap == (unsigned int)LEAP_InsertSecond) leap_sec = 1; + else leap_sec = -1; + else leap = LEAP_Normal; + } + } + if (leap_sec != our_leap_sec) goto _LOR_0; + else + if (tai_offset != our_tai_offset) { + int tmp_0; + _LOR_0: tmp_0 = REF_IsLeapSecondClose(); + if (tmp_0) goto _LAND; + else { + our_leap_sec = leap_sec; + our_tai_offset = tai_offset; + switch (leap_mode) { + case (REF_LeapMode)REF_LeapModeSystem: + LCL_SetSystemLeap(our_leap_sec,our_tai_offset); + case (REF_LeapMode)REF_LeapModeSlew: + case (REF_LeapMode)REF_LeapModeStep: + case (REF_LeapMode)REF_LeapModeIgnore: + set_leap_timeout(now); + break; + default: __FC_assert(0 != 0,"reference.c",815,"0"); + break; + } + } + } + else { + _LAND: ; + if (reset) set_leap_timeout(now); + } + our_leap_status = leap; + return; +} + +static double get_root_dispersion(struct timespec *ts) +{ + double __retres; + int tmp; + double tmp_1; + double tmp_0; + double tmp_2; + double tmp_3; + tmp = UTI_IsZeroTimespec(& our_ref_time); + if (tmp) { + __retres = 1.0; + goto return_label; + } + tmp_0 = UTI_DiffTimespecsToDouble(ts,& our_ref_time); + tmp_1 = fabs(tmp_0); + tmp_2 = fabs(our_residual_freq); + tmp_3 = LCL_GetMaxClockError(); + ; + __retres = our_root_dispersion + tmp_1 * ((our_skew + tmp_2) + tmp_3); + return_label: return __retres; +} + +static void write_log(struct timespec *now, int combined_sources, + double freq, double offset, double offset_sd, + double uncorrected_offset, double orig_root_distance); + +static double write_log_last_sys_offset = 0.0; +static void write_log(struct timespec *now, int combined_sources, + double freq, double offset, double offset_sd, + double uncorrected_offset, double orig_root_distance) +{ + double root_dispersion; + double max_error; + double tmp; + char *tmp_2; + char *tmp_3; + char const leap_codes[4] = {(char)'N', (char)'+', (char)'-', (char)'?'}; + if (logfileid == -1) goto return_label; + tmp = fabs(write_log_last_sys_offset); + max_error = orig_root_distance + tmp; + root_dispersion = get_root_dispersion(now); + write_log_last_sys_offset = offset - uncorrected_offset; + ; + ; + ; + ; + ; + ; + ; + ; + ; + ; + ; + if ((int)our_ref_ip.family != 0) tmp_2 = UTI_IPToString(& our_ref_ip); + else tmp_2 = UTI_RefidToString(our_ref_id); + tmp_3 = UTI_TimeToLogForm(now->tv_sec); + ; + { + char *__va_arg0 = tmp_3; + char *__va_arg1 = tmp_2; + int __va_arg2 = our_stratum; + double __va_arg3 = freq; + double __va_arg4 = 1.0e6 * our_skew; + double __va_arg5 = offset; + int __va_arg6 = (int)leap_codes[our_leap_status]; + int __va_arg7 = combined_sources; + double __va_arg8 = offset_sd; + double __va_arg9 = uncorrected_offset; + double __va_arg10 = our_root_delay; + double __va_arg11 = root_dispersion; + double __va_arg12 = max_error; + void *__va_args[13] = + {& __va_arg0, + & __va_arg1, + & __va_arg2, + & __va_arg3, + & __va_arg4, + & __va_arg5, + & __va_arg6, + & __va_arg7, + & __va_arg8, + & __va_arg9, + & __va_arg10, + & __va_arg11, + & __va_arg12}; + LOG_FileWrite(logfileid, + "%s %-15s %2d %10.3f %10.3f %10.3e %1c %2d %10.3e %10.3e %10.3e %10.3e %10.3e", + (void * const *)(__va_args)); + } + return_label: return; +} + +static void special_mode_sync(int valid, double offset) +{ + int step; + switch (mode) { + double tmp; + double tmp_0; + char const *tmp_1; + char const *tmp_2; + double tmp_3; + char const *tmp_4; + case (REF_Mode)REF_ModeInitStepSlew: + if (! valid) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_WARN,"No suitable source for initstepslew", + (void * const *)(__va_args)); + } + end_ref_mode(0); + break; + } + tmp = fabs(offset); + tmp_0 = CNF_GetInitStepThreshold(); + step = tmp >= tmp_0; + if (step) tmp_1 = "step"; else tmp_1 = "slew"; + if (offset >= (double)0) tmp_2 = "fast"; else tmp_2 = "slow"; + tmp_3 = fabs(offset); + { + double __va_arg0 = tmp_3; + char const *__va_arg1 = tmp_2; + char const *__va_arg2 = tmp_1; + void *__va_args_15[3] = {& __va_arg0, & __va_arg1, & __va_arg2}; + LOG_Message(LOGS_INFO, + "System\'s initial offset : %.6f seconds %s of true (%s)", + (void * const *)(__va_args_15)); + } + if (step) LCL_ApplyStepOffset(offset); + else LCL_AccumulateOffset(offset,0.0); + end_ref_mode(1); + break; + case (REF_Mode)REF_ModeUpdateOnce: case (REF_Mode)REF_ModePrintOnce: + if (! valid) { + { + void *__va_args_17[1] = {(void *)0}; + LOG_Message(LOGS_WARN,"No suitable source for synchronisation", + (void * const *)(__va_args_17)); + } + end_ref_mode(0); + break; + } + step = mode == (unsigned int)REF_ModeUpdateOnce; + if (step) tmp_4 = "step"; else tmp_4 = "ignored"; + ; + { + double __va_arg0_19 = - offset; + char const *__va_arg1_21 = tmp_4; + void *__va_args_23[2] = {& __va_arg0_19, & __va_arg1_21}; + LOG_Message(LOGS_INFO,"System clock wrong by %.6f seconds (%s)", + (void * const *)(__va_args_23)); + } + if (step) LCL_ApplyStepOffset(offset); + end_ref_mode(1); + break; + case (REF_Mode)REF_ModeIgnore: break; + default: __FC_assert(0 != 0,"reference.c",917,"0"); + } + return; +} + +static void get_clock_estimates(int manual, double measured_freq, + double measured_skew, double *estimated_freq, + double *estimated_skew, double *residual_freq) +{ + double gain; + double expected_freq; + double expected_skew; + double extra_skew; + double tmp_0; + expected_freq = 0.0; + expected_skew = our_skew; + if (manual) gain = 1.0; + else { + double tmp; + tmp = fabs(measured_skew); + ; + if (tmp > max_update_skew_0) gain = 0.0; + else gain = (3.0 * (expected_skew * expected_skew)) / (3.0 * (expected_skew * expected_skew) + + measured_skew * measured_skew); + } + if (gain < 1.0) tmp_0 = gain; else tmp_0 = 1.0; + if (0.0 > tmp_0) gain = 0.0; + else { + double tmp_1; + if (gain < 1.0) tmp_1 = gain; else tmp_1 = 1.0; + gain = tmp_1; + } + *estimated_freq = expected_freq + gain * (measured_freq - expected_freq); + *residual_freq = measured_freq - *estimated_freq; + extra_skew = sqrt(((expected_freq - *estimated_freq) * (expected_freq - *estimated_freq)) * ( + 1.0 - gain) + ((measured_freq - *estimated_freq) * ( + measured_freq - *estimated_freq)) * gain); + *estimated_skew = (expected_skew + gain * (measured_skew - expected_skew)) + extra_skew; + return; +} + +void REF_SetReference(int stratum, NTP_Leap leap, int combined_sources, + uint32_t ref_id, IPAddr *ref_ip, + struct timespec *ref_time, double offset, + double offset_sd, double frequency, + double frequency_sd, double skew, double root_delay, + double root_dispersion) +{ + double uncorrected_offset; + double accumulate_offset; + double step_offset; + double residual_frequency; + double local_abs_frequency; + double elapsed; + double update_interval; + double correction_rate; + double orig_root_distance; + struct timespec now; + struct timespec raw_now; + NTP_int64 ref_fuzz; + int manual; + int tmp; + double tmp_0; + int tmp_1; + double tmp_3; + int tmp_4; + __FC_assert(initialised_0 != 0,"reference.c",976,"initialised"); + if (mode != (unsigned int)REF_ModeNormal) { + special_mode_sync(1,offset); + goto return_label; + } + manual = leap == (unsigned int)LEAP_Unsynchronised; + LCL_ReadRawTime(& raw_now); + LCL_GetOffsetCorrection(& raw_now,& uncorrected_offset,(double *)0); + UTI_AddDoubleToTimespec(& raw_now,uncorrected_offset,& now); + elapsed = UTI_DiffTimespecsToDouble(& now,ref_time); + offset += elapsed * frequency; + offset_sd += elapsed * frequency_sd; + if (last_ref_update.tv_sec) { + update_interval = UTI_DiffTimespecsToDouble(& now,& last_ref_update); + if (update_interval > 0.0) update_interval = update_interval; + else update_interval = 0.0; + } + else update_interval = 0.0; + get_clock_estimates(manual,frequency,skew,& frequency,& skew, + & residual_frequency); + tmp = is_offset_ok(offset); + if (! tmp) goto return_label; + tmp_0 = get_root_dispersion(& now); + orig_root_distance = our_root_delay / 2.0 + tmp_0; + are_we_synchronised = leap != (unsigned int)LEAP_Unsynchronised; + our_stratum = stratum + 1; + our_ref_id = ref_id; + if (ref_ip) our_ref_ip = *ref_ip; + else our_ref_ip.family = (unsigned short)0; + our_ref_time = *ref_time; + our_skew = skew; + our_residual_freq = residual_frequency; + our_root_delay = root_delay; + our_root_dispersion = root_dispersion; + last_ref_update = now; + last_ref_update_interval = update_interval; + last_offset = offset; + correction_rate = ((correction_time_ratio_0 * 0.5) * offset_sd) * update_interval; + tmp_1 = is_step_limit_reached(offset,uncorrected_offset); + if (tmp_1) { + accumulate_offset = uncorrected_offset; + step_offset = offset - uncorrected_offset; + } + else { + accumulate_offset = offset; + step_offset = 0.0; + } + LCL_AccumulateFrequencyAndOffset(frequency,accumulate_offset, + correction_rate); + update_leap_status(leap,raw_now.tv_sec,0); + maybe_log_offset(offset,raw_now.tv_sec); + if (step_offset != 0.0) { + int tmp_2; + tmp_2 = LCL_ApplyStepOffset(step_offset); + if (tmp_2) { + { + double __va_arg0 = - step_offset; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN,"System clock was stepped by %.6f seconds", + (void * const *)(__va_args)); + } + } + } + tmp_3 = get_root_dispersion(& now); + ; + ; + ; + LCL_SetSyncStatus(are_we_synchronised,offset_sd,root_delay / 2.0 + tmp_3); + UTI_GetNtp64Fuzz(& ref_fuzz,0); + UTI_TimespecToNtp64(& our_ref_time,& ref_fuzz,& ref_fuzz); + UTI_Ntp64ToTimespec(& ref_fuzz,& our_ref_time); + tmp_4 = UTI_CompareTimespecs(& our_ref_time,ref_time); + if (tmp_4 >= 0) (our_ref_time.tv_sec) --; + local_abs_frequency = LCL_ReadAbsoluteFrequency(); + write_log(& now,combined_sources,local_abs_frequency,offset,offset_sd, + uncorrected_offset,orig_root_distance); + if (drift_file_0) { + drift_file_age += update_interval; + if (drift_file_age < 0.0) goto _LOR; + else + if (drift_file_age > 3600.0) { + _LOR: + { + update_drift_file(local_abs_frequency,our_skew); + drift_file_age = 0.0; + } + } + } + if (fb_drifts) + if (are_we_synchronised) { + update_fb_drifts(local_abs_frequency,update_interval); + schedule_fb_drift(& now); + } + if (avg2_moving) avg2_offset += 0.1 * (offset * offset - avg2_offset); + else { + if (avg2_offset > 0.0) + if (avg2_offset < offset * offset) avg2_moving = 1; + avg2_offset = offset * offset; + } + return_label: return; +} + +void REF_SetManualReference(struct timespec *ref_time, double offset, + double frequency, double skew) +{ + REF_SetReference(0,LEAP_Unsynchronised,1,(unsigned int)0x4D414E55UL, + (IPAddr *)0,ref_time,offset,0.0,frequency,skew,skew,0.0, + 0.0); + return; +} + +void REF_SetUnsynchronised(void) +{ + struct timespec now; + struct timespec now_raw; + double uncorrected_offset; + double tmp; + double tmp_0; + __FC_assert(initialised_0 != 0,"reference.c",1131,"initialised"); + if (mode != (unsigned int)REF_ModeNormal) { + special_mode_sync(0,0.0); + goto return_label; + } + LCL_ReadRawTime(& now_raw); + LCL_GetOffsetCorrection(& now_raw,& uncorrected_offset,(double *)0); + UTI_AddDoubleToTimespec(& now_raw,uncorrected_offset,& now); + if (fb_drifts) schedule_fb_drift(& now); + update_leap_status(LEAP_Unsynchronised,(long)0,0); + our_ref_ip.family = (unsigned short)1; + our_ref_ip.addr.in4 = (unsigned int)0; + our_stratum = 0; + are_we_synchronised = 0; + LCL_SetSyncStatus(0,0.0,0.0); + tmp = get_root_dispersion(& now); + ; + ; + tmp_0 = LCL_ReadAbsoluteFrequency(); + write_log(& now,0,tmp_0,0.0,0.0,uncorrected_offset, + our_root_delay / 2.0 + tmp); + return_label: return; +} + +void REF_GetReferenceParams(struct timespec *local_time, + int *is_synchronised, NTP_Leap *leap_status, + int *stratum, uint32_t *ref_id, + struct timespec *ref_time, double *root_delay, + double *root_dispersion) +{ + double dispersion; + __FC_assert(initialised_0 != 0,"reference.c",1176,"initialised"); + if (are_we_synchronised) dispersion = get_root_dispersion(local_time); + else dispersion = 0.0; + if (are_we_synchronised) + if (enable_local_stratum) { + if (our_root_delay / (double)2 + dispersion > local_distance_0) + goto _LAND; + else goto _LAND_0; + } + else { + _LAND_0: + { + *is_synchronised = 1; + *stratum = our_stratum; + if (! leap_in_progress) *leap_status = our_leap_status; + else *leap_status = LEAP_Unsynchronised; + *ref_id = our_ref_id; + *ref_time = our_ref_time; + *root_delay = our_root_delay; + *root_dispersion = dispersion; + } + } + else { + _LAND: ; + if (enable_local_stratum) { + *is_synchronised = 0; + *stratum = local_stratum_0; + *ref_id = (unsigned int)0x7F7F0101UL; + *ref_time = *local_time; + (ref_time->tv_sec) --; + *leap_status = LEAP_Normal; + *root_delay = 0.0; + *root_dispersion = 0.0; + } + else { + *is_synchronised = 0; + *leap_status = LEAP_Unsynchronised; + *stratum = 16; + *ref_id = (unsigned int)0x0UL; + UTI_ZeroTimespec(ref_time); + *root_dispersion = 1.0; + *root_delay = 1.0; + } + } + return; +} + +int REF_GetOurStratum(void) +{ + struct timespec now_cooked; + struct timespec ref_time; + int synchronised; + int stratum; + NTP_Leap leap_status; + uint32_t ref_id; + double root_delay; + double root_dispersion; + SCH_GetLastEventTime(& now_cooked,(double *)0,(struct timespec *)0); + REF_GetReferenceParams(& now_cooked,& synchronised,& leap_status,& stratum, + & ref_id,& ref_time,& root_delay,& root_dispersion); + return stratum; +} + +int REF_GetOrphanStratum(void) +{ + int __retres; + if (! enable_local_stratum) { + __retres = 16; + goto return_label; + } + else + if (! local_orphan_0) { + __retres = 16; + goto return_label; + } + else + if (mode != (unsigned int)REF_ModeNormal) { + __retres = 16; + goto return_label; + } + __retres = local_stratum_0; + return_label: return __retres; +} + +double REF_GetSkew(void) +{ + return our_skew; +} + +void REF_ModifyMaxupdateskew(double new_max_update_skew) +{ + max_update_skew_0 = new_max_update_skew * 1.0e-6; + return; +} + +void REF_ModifyMakestep(int limit, double threshold) +{ + make_step_limit_0 = limit; + make_step_threshold_0 = threshold; + return; +} + +void REF_EnableLocal(int stratum, double distance, int orphan) +{ + int tmp; + enable_local_stratum = 1; + if (stratum < 16 - 1) tmp = stratum; else tmp = 16 - 1; + if (1 > tmp) local_stratum_0 = 1; + else { + int tmp_0; + if (stratum < 16 - 1) tmp_0 = stratum; else tmp_0 = 16 - 1; + local_stratum_0 = tmp_0; + } + local_distance_0 = distance; + local_orphan_0 = ! (! orphan); + return; +} + +void REF_DisableLocal(void) +{ + enable_local_stratum = 0; + return; +} + +int REF_IsLeapSecondClose(void) +{ + int __retres; + struct timespec now; + struct timespec now_raw; + time_t t; + if (! our_leap_sec) { + __retres = 0; + goto return_label; + } + SCH_GetLastEventTime(& now,(double *)0,& now_raw); + if (now.tv_sec > (long)0) t = now.tv_sec; else t = - now.tv_sec; + if ((t + (time_t)5) % (long)(24 * 3600) < (long)(2 * 5)) { + __retres = 1; + goto return_label; + } + if (now_raw.tv_sec > (long)0) t = now_raw.tv_sec; + else t = - now_raw.tv_sec; + if ((t + (time_t)5) % (long)(24 * 3600) < (long)(2 * 5)) { + __retres = 1; + goto return_label; + } + __retres = 0; + return_label: return __retres; +} + +int REF_GetTaiOffset(struct timespec *ts) +{ + int tai_offset; + get_tz_leap(ts->tv_sec,& tai_offset); + return tai_offset; +} + +void REF_GetTrackingReport(RPT_TrackingReport *rep) +{ + struct timespec now_raw; + struct timespec now_cooked; + double correction; + int synchronised; + LCL_ReadRawTime(& now_raw); + LCL_GetOffsetCorrection(& now_raw,& correction,(double *)0); + UTI_AddDoubleToTimespec(& now_raw,correction,& now_cooked); + REF_GetReferenceParams(& now_cooked,& synchronised,& rep->leap_status, + & rep->stratum,& rep->ref_id,& rep->ref_time, + & rep->root_delay,& rep->root_dispersion); + if (rep->stratum == 16) + if (! synchronised) rep->stratum = 0; + rep->ip_addr.family = (unsigned short)0; + rep->current_correction = correction; + rep->freq_ppm = LCL_ReadAbsoluteFrequency(); + rep->resid_freq_ppm = 0.0; + rep->skew_ppm = 0.0; + rep->last_update_interval = last_ref_update_interval; + rep->last_offset = last_offset; + rep->rms_offset = sqrt(avg2_offset); + if (synchronised) { + rep->ip_addr = our_ref_ip; + rep->resid_freq_ppm = 1.0e6 * our_residual_freq; + rep->skew_ppm = 1.0e6 * our_skew; + } + return; +} + +static int initialised_1 = 0; +static unsigned int one_highest_fd; +static ARR_Instance file_handlers; +static struct timespec last_select_ts; +static struct timespec last_select_ts_raw; +static double last_select_ts_err; +static TimerQueueEntry timer_queue; +static unsigned long n_timer_queue_entries; +static SCH_TimeoutID next_tqe_id; +static TimerQueueEntry *tqe_free_list = (TimerQueueEntry *)0; +static struct timespec last_class_dispatch[SCH_NumberOfClasses]; +static int need_to_exit; +static void handle_slew_0(struct timespec *raw, struct timespec *cooked, + double dfreq, double doffset, + LCL_ChangeType change_type, void *anything); + +void SCH_Initialise(void) +{ + file_handlers = ARR_CreateInstance((unsigned int)sizeof(FileHandlerEntry)); + n_timer_queue_entries = (unsigned long)0; + next_tqe_id = (unsigned int)0; + timer_queue.next = & timer_queue; + timer_queue.prev = & timer_queue; + need_to_exit = 0; + LCL_AddParameterChangeHandler(& handle_slew_0,(void *)0); + LCL_ReadRawTime(& last_select_ts_raw); + last_select_ts = last_select_ts_raw; + initialised_1 = 1; + return; +} + +void SCH_Finalise(void) +{ + ARR_DestroyInstance(file_handlers); + initialised_1 = 0; + return; +} + +void SCH_AddFileHandler(int fd, int events, + void (*handler)(int fd, int event, + SCH_ArbitraryArgument ), + SCH_ArbitraryArgument arg) +{ + FileHandlerEntry *ptr; + __FC_assert(initialised_1 != 0,"sched.c",161,"initialised"); + __FC_assert(events != 0,"sched.c",162,"events"); + __FC_assert((fd >= 0) != 0,"sched.c",163,"fd >= 0"); + if (fd >= 1024) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"Too many file descriptors", + (void * const *)(__va_args)); + } + exit(1); + } + while (1) { + unsigned int tmp; + tmp = ARR_GetSize(file_handlers); + ; + if (! (tmp <= (unsigned int)fd)) break; + ptr = (FileHandlerEntry *)ARR_GetNewElement(file_handlers); + ptr->handler = (void (*)(int fd, int event, SCH_ArbitraryArgument ))0; + ptr->arg = (void *)0; + ptr->events = 0; + } + ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers,(unsigned int)fd); + __FC_assert(! ptr->handler != 0,"sched.c",181,"!ptr->handler"); + ptr->handler = handler; + ptr->arg = arg; + ptr->events = events; + if (one_highest_fd < (unsigned int)(fd + 1)) one_highest_fd = (unsigned int)( + fd + 1); + return; +} + +void SCH_RemoveFileHandler(int fd) +{ + FileHandlerEntry *ptr; + __FC_assert(initialised_1 != 0,"sched.c",199,"initialised"); + ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers,(unsigned int)fd); + __FC_assert(ptr->handler != (void (*)(int fd, int event, + SCH_ArbitraryArgument ))0,"sched.c", + 204,"ptr->handler"); + ptr->handler = (void (*)(int fd, int event, SCH_ArbitraryArgument ))0; + ptr->arg = (void *)0; + ptr->events = 0; + while (one_highest_fd > (unsigned int)0) { + ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers, + one_highest_fd - (unsigned int)1); + if (ptr->handler) break; + one_highest_fd --; + } + return; +} + +void SCH_SetFileHandlerEvent(int fd, int event, int enable) +{ + FileHandlerEntry *ptr; + ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers,(unsigned int)fd); + if (enable) ptr->events |= event; else ptr->events &= ~ event; + return; +} + +void SCH_GetLastEventTime(struct timespec *cooked, double *err, + struct timespec *raw) +{ + if (cooked) { + *cooked = last_select_ts; + if (err) *err = last_select_ts_err; + } + if (raw) *raw = last_select_ts_raw; + return; +} + +static TimerQueueEntry *allocate_tqe(void) +{ + TimerQueueEntry *new_block; + TimerQueueEntry *result; + int i; + if (tqe_free_list == (TimerQueueEntry *)0) { + new_block = (TimerQueueEntry *)Malloc2((unsigned long)32, + sizeof(TimerQueueEntry)); + i = 1; + while (i < 32) { + (new_block + i)->next = new_block + (i - 1); + i ++; + } + (new_block + 0)->next = (struct _TimerQueueEntry *)0; + tqe_free_list = new_block + (32 - 1); + } + result = tqe_free_list; + tqe_free_list = tqe_free_list->next; + return result; +} + +static void release_tqe(TimerQueueEntry *node) +{ + node->next = tqe_free_list; + tqe_free_list = node; + return; +} + +static SCH_TimeoutID get_new_tqe_id(void) +{ + TimerQueueEntry *ptr; + try_again: next_tqe_id ++; + if (! next_tqe_id) goto try_again; + ptr = timer_queue.next; + while (ptr != & timer_queue) { + if (ptr->id == next_tqe_id) goto try_again; + ptr = ptr->next; + } + return next_tqe_id; +} + +/*@ assigns \result; + assigns \result \from \nothing; */ +SCH_TimeoutID SCH_AddTimeout(struct timespec *ts, + void (*handler)(SCH_ArbitraryArgument ), + SCH_ArbitraryArgument arg) +{ + SCH_TimeoutID __retres; + TimerQueueEntry *new_tqe; + TimerQueueEntry *ptr; + __FC_assert(initialised_1 != 0,"sched.c",313,"initialised"); + new_tqe = allocate_tqe(); + new_tqe->id = get_new_tqe_id(); + new_tqe->handler = handler; + new_tqe->arg = arg; + new_tqe->ts = *ts; + new_tqe->class = SCH_ReservedTimeoutValue; + ptr = timer_queue.next; + while (ptr != & timer_queue) { + { + int tmp; + tmp = UTI_CompareTimespecs(& new_tqe->ts,& ptr->ts); + if (tmp == -1) break; + } + ptr = ptr->next; + } + new_tqe->next = ptr; + new_tqe->prev = ptr->prev; + (ptr->prev)->next = new_tqe; + ptr->prev = new_tqe; + n_timer_queue_entries ++; + __retres = new_tqe->id; + return __retres; +} + +SCH_TimeoutID SCH_AddTimeoutByDelay(double delay, + void (*handler)(SCH_ArbitraryArgument ), + SCH_ArbitraryArgument arg) +{ + struct timespec now; + struct timespec then; + int tmp; + SCH_TimeoutID tmp_0; + __FC_assert(initialised_1 != 0,"sched.c",354,"initialised"); + __FC_assert((delay >= 0.0) != 0,"sched.c",355,"delay >= 0.0"); + LCL_ReadRawTime(& now); + UTI_AddDoubleToTimespec(& now,delay,& then); + tmp = UTI_CompareTimespecs(& now,& then); + if (tmp > 0) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"Timeout overflow",(void * const *)(__va_args)); + } + exit(1); + } + tmp_0 = SCH_AddTimeout(& then,handler,arg); + return tmp_0; +} + +SCH_TimeoutID SCH_AddTimeoutInClass(double min_delay, double separation, + double randomness, + SCH_TimeoutClass class, + void (*handler)(SCH_ArbitraryArgument ), + SCH_ArbitraryArgument arg) +{ + SCH_TimeoutID __retres; + TimerQueueEntry *new_tqe; + TimerQueueEntry *ptr; + struct timespec now; + double diff; + double r; + double new_min_delay; + __FC_assert(initialised_1 != 0,"sched.c",380,"initialised"); + __FC_assert((min_delay >= 0.0) != 0,"sched.c",381,"min_delay >= 0.0"); + __FC_assert((class < (unsigned int)SCH_NumberOfClasses) != 0,"sched.c",382, + "class < SCH_NumberOfClasses"); + if (randomness > 0.0) { + uint32_t rnd; + UTI_GetRandomBytes((void *)(& rnd),(unsigned int)sizeof(rnd)); + r = (double)rnd * (randomness / (double)((unsigned int)(-1))) + 1.0; + min_delay *= r; + separation *= r; + } + LCL_ReadRawTime(& now); + new_min_delay = min_delay; + diff = UTI_DiffTimespecsToDouble(& now,& last_class_dispatch[class]); + if (diff < separation) + if (diff >= 0.0) + if (diff + new_min_delay < separation) new_min_delay = separation - diff; + ptr = timer_queue.next; + while (ptr != & timer_queue) { + if (ptr->class == class) { + diff = UTI_DiffTimespecsToDouble(& ptr->ts,& now); + if (new_min_delay > diff) { + if (new_min_delay - diff < separation) new_min_delay = diff + separation; + } + else + if (diff - new_min_delay < separation) new_min_delay = diff + separation; + } + ptr = ptr->next; + } + ptr = timer_queue.next; + while (ptr != & timer_queue) { + diff = UTI_DiffTimespecsToDouble(& ptr->ts,& now); + if (diff > new_min_delay) break; + ptr = ptr->next; + } + new_tqe = allocate_tqe(); + new_tqe->id = get_new_tqe_id(); + new_tqe->handler = handler; + new_tqe->arg = arg; + UTI_AddDoubleToTimespec(& now,new_min_delay,& new_tqe->ts); + new_tqe->class = class; + new_tqe->next = ptr; + new_tqe->prev = ptr->prev; + (ptr->prev)->next = new_tqe; + ptr->prev = new_tqe; + n_timer_queue_entries ++; + __retres = new_tqe->id; + return __retres; +} + +void SCH_RemoveTimeout(SCH_TimeoutID id) +{ + TimerQueueEntry *ptr; + __FC_assert(initialised_1 != 0,"sched.c",451,"initialised"); + if (! id) goto return_label; + ptr = timer_queue.next; + while (ptr != & timer_queue) { + if (ptr->id == id) { + (ptr->next)->prev = ptr->prev; + (ptr->prev)->next = ptr->next; + n_timer_queue_entries --; + release_tqe(ptr); + goto return_label; + } + ptr = ptr->next; + } + __FC_assert(0 != 0,"sched.c",476,"0"); + return_label: return; +} + +static void dispatch_timeouts(struct timespec *now) +{ + TimerQueueEntry *ptr; + void (*handler)(SCH_ArbitraryArgument ); + SCH_ArbitraryArgument arg; + int n_done = 0; + int n_entries_on_start = (int)n_timer_queue_entries; + while (1) { + LCL_ReadRawTime(now); + if (n_timer_queue_entries > (unsigned long)0) { + int tmp; + tmp = UTI_CompareTimespecs(now,& (timer_queue.next)->ts); + if (! (tmp >= 0)) goto _LAND; + } + else _LAND: break; + ptr = timer_queue.next; + last_class_dispatch[ptr->class] = *now; + handler = ptr->handler; + arg = ptr->arg; + SCH_RemoveTimeout(ptr->id); + (*handler)(arg); + n_done ++; + if ((unsigned long)n_done > n_timer_queue_entries * (unsigned long)4) + if (n_done > n_entries_on_start * 4) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"Possible infinite loop in scheduling", + (void * const *)(__va_args)); + } + exit(1); + } + } + return; +} + +static void dispatch_filehandlers(int nfd, fd_set *read_fds, + fd_set *write_fds, fd_set *except_fds) +{ + FileHandlerEntry *ptr; + int fd; + fd = 0; + while (1) { + if (nfd) { + if (! ((unsigned int)fd < one_highest_fd)) break; + } + else break; + if (except_fds) { + int tmp_1; + tmp_1 = FD_ISSET(fd,(fd_set const *)except_fds); + if (tmp_1) { + ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers, + (unsigned int)fd); + if (ptr->handler) (*(ptr->handler))(fd,4,ptr->arg); + nfd --; + if (read_fds) { + int tmp_0; + tmp_0 = FD_ISSET(fd,(fd_set const *)read_fds); + if (tmp_0) { + FD_CLR(fd,read_fds); + nfd --; + } + } + } + } + if (read_fds) { + int tmp_3; + tmp_3 = FD_ISSET(fd,(fd_set const *)read_fds); + if (tmp_3) { + ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers, + (unsigned int)fd); + if (ptr->handler) (*(ptr->handler))(fd,1,ptr->arg); + nfd --; + } + } + if (write_fds) { + int tmp_5; + tmp_5 = FD_ISSET(fd,(fd_set const *)write_fds); + if (tmp_5) { + ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers, + (unsigned int)fd); + if (ptr->handler) (*(ptr->handler))(fd,2,ptr->arg); + nfd --; + } + } + fd ++; + } + return; +} + +static void handle_slew_0(struct timespec *raw, struct timespec *cooked, + double dfreq, double doffset, + LCL_ChangeType change_type, void *anything) +{ + TimerQueueEntry *ptr; + double delta; + int i; + if (change_type != (unsigned int)LCL_ChangeAdjust) { + int tmp; + tmp = LCL_IsFirstParameterChangeHandler(& handle_slew_0); + __FC_assert(tmp != 0,"sched.c",587, + "LCL_IsFirstParameterChangeHandler(handle_slew)"); + ptr = timer_queue.next; + while (ptr != & timer_queue) { + UTI_AddDoubleToTimespec(& ptr->ts,- doffset,& ptr->ts); + ptr = ptr->next; + } + i = 0; + while (i < SCH_NumberOfClasses) { + UTI_AddDoubleToTimespec(& last_class_dispatch[i],- doffset, + & last_class_dispatch[i]); + i ++; + } + UTI_AddDoubleToTimespec(& last_select_ts_raw,- doffset, + & last_select_ts_raw); + } + UTI_AdjustTimespec(& last_select_ts,cooked,& last_select_ts,& delta,dfreq, + doffset); + return; +} + +static void fill_fd_sets(fd_set **read_fds, fd_set **write_fds, + fd_set **except_fds) +{ + FileHandlerEntry *handlers; + fd_set *rd; + fd_set *wr; + fd_set *ex; + int i; + int n; + int events; + unsigned int tmp; + tmp = ARR_GetSize(file_handlers); + n = (int)tmp; + handlers = (FileHandlerEntry *)ARR_GetElements(file_handlers); + ex = (fd_set *)0; + wr = ex; + rd = wr; + i = 0; + while (i < n) { + events = (handlers + i)->events; + if (! events) goto __Cont; + if (events & 1) { + if (! rd) { + rd = *read_fds; + FD_ZERO(rd); + } + FD_SET(i,rd); + } + if (events & 2) { + if (! wr) { + wr = *write_fds; + FD_ZERO(wr); + } + FD_SET(i,wr); + } + if (events & 4) { + if (! ex) { + ex = *except_fds; + FD_ZERO(ex); + } + FD_SET(i,ex); + } + __Cont: i ++; + } + if (! rd) *read_fds = (fd_set *)0; + if (! wr) *write_fds = (fd_set *)0; + if (! ex) *except_fds = (fd_set *)0; + return; +} + +static int check_current_time(struct timespec *prev_raw, + struct timespec *raw, int timeout, + struct timeval *orig_select_tv, + struct timeval *rem_select_tv) +{ + int __retres; + struct timespec elapsed_min; + struct timespec elapsed_max; + struct timespec orig_select_ts; + struct timespec rem_select_ts; + double step; + double elapsed; + double tmp; + UTI_TimevalToTimespec(orig_select_tv,& orig_select_ts); + if (timeout) { + elapsed_min = orig_select_ts; + elapsed_max = elapsed_min; + } + else + if (rem_select_tv) { + if (rem_select_tv->tv_sec >= (time_t)0) { + if (rem_select_tv->tv_sec <= orig_select_tv->tv_sec) { + if (rem_select_tv->tv_sec != orig_select_tv->tv_sec) goto _LOR; + else + if (rem_select_tv->tv_usec != orig_select_tv->tv_usec) { + _LOR: + { + UTI_TimevalToTimespec(rem_select_tv,& rem_select_ts); + UTI_DiffTimespecs(& elapsed_min,& orig_select_ts, + & rem_select_ts); + elapsed_max = elapsed_min; + } + } + else goto _LAND_1; + } + else goto _LAND_1; + } + else goto _LAND_1; + } + else { + _LAND_1: + { + if (rem_select_tv) elapsed_max = orig_select_ts; + else UTI_DiffTimespecs(& elapsed_max,raw,prev_raw); + UTI_ZeroTimespec(& elapsed_min); + } + } + if (last_select_ts_raw.tv_sec + elapsed_min.tv_sec > raw->tv_sec + (long)10) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_WARN,"Backward time jump detected!", + (void * const *)(__va_args)); + } + } + else + if ((prev_raw->tv_sec + elapsed_max.tv_sec) + (long)10 < raw->tv_sec) { + { + void *__va_args_15[1] = {(void *)0}; + LOG_Message(LOGS_WARN,"Forward time jump detected!", + (void * const *)(__va_args_15)); + } + } + else { + __retres = 1; + goto return_label; + } + step = UTI_DiffTimespecsToDouble(& last_select_ts_raw,raw); + elapsed = UTI_TimespecToDouble(& elapsed_min); + step += elapsed; + tmp = fabs(step); + ; + ; + ; + LCL_NotifyExternalTimeStep(raw,raw,step,tmp); + __retres = 0; + return_label: return __retres; +} + +void SCH_MainLoop(void) +{ + fd_set read_fds; + fd_set write_fds; + fd_set except_fds; + fd_set *p_read_fds; + fd_set *p_write_fds; + fd_set *p_except_fds; + int status; + int errsv; + struct timeval tv; + struct timeval saved_tv; + struct timeval *ptv; + struct timespec ts; + struct timespec now; + struct timespec saved_now; + struct timespec cooked; + double err; + __FC_assert(initialised_1 != 0,"sched.c",723,"initialised"); + while (! need_to_exit) { + int tmp_0; + dispatch_timeouts(& now); + saved_now = now; + if (need_to_exit) break; + if (n_timer_queue_entries > (unsigned long)0) { + int tmp; + UTI_DiffTimespecs(& ts,& (timer_queue.next)->ts,& now); + if (ts.tv_sec > (long)0) tmp = 1; + else + if (ts.tv_nsec > (long)0) tmp = 1; else tmp = 0; + __FC_assert(tmp != 0,"sched.c",737,"ts.tv_sec > 0 || ts.tv_nsec > 0"); + UTI_TimespecToTimeval(& ts,& tv); + ptv = & tv; + saved_tv = tv; + } + else { + ptv = (struct timeval *)0; + saved_tv.tv_usec = 0; + saved_tv.tv_sec = (long)saved_tv.tv_usec; + } + p_read_fds = & read_fds; + p_write_fds = & write_fds; + p_except_fds = & except_fds; + fill_fd_sets(& p_read_fds,& p_write_fds,& p_except_fds); + if (! ptv) + if (! p_read_fds) + if (! p_write_fds) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"Nothing to do", + (void * const *)(__va_args)); + } + exit(1); + } + status = select((int)one_highest_fd,p_read_fds,p_write_fds,p_except_fds, + ptv); + errsv = __fc_errno; + LCL_ReadRawTime(& now); + LCL_CookTime(& now,& cooked,& err); + tmp_0 = check_current_time(& saved_now,& now,status == 0,& saved_tv,ptv); + if (! tmp_0) LCL_CookTime(& now,& cooked,& err); + last_select_ts_raw = now; + last_select_ts = cooked; + last_select_ts_err = err; + if (status < 0) { + if (! need_to_exit) + if (errsv != 4) { + char *tmp_1; + tmp_1 = strerror(errsv); + { + char *__va_arg0 = tmp_1; + void *__va_args_23[1] = {& __va_arg0}; + LOG_Message(LOGS_FATAL,"select() failed : %s", + (void * const *)(__va_args_23)); + } + exit(1); + } + } + else + if (status > 0) dispatch_filehandlers(status,p_read_fds,p_write_fds, + p_except_fds); + else __FC_assert(ptv != (struct timeval *)0,"sched.c",783,"ptv"); + } + return; +} + +void SCH_QuitProgram(void) +{ + need_to_exit = 1; + return; +} + +static struct stage stages[3]; +static int enabled; +static int leap_only_mode; +static int locked; +static double max_wander; +static double max_freq; +static double smooth_freq; +static double smooth_offset; +static struct timespec last_update; +static void get_smoothing(struct timespec *now, double *poffset, + double *pfreq, double *pwander) +{ + double elapsed; + double length; + double offset; + double freq; + double wander; + int i; + elapsed = UTI_DiffTimespecsToDouble(now,& last_update); + offset = smooth_offset; + freq = smooth_freq; + wander = 0.0; + i = 0; + while (i < 3) { + if (elapsed <= 0.0) break; + length = stages[i].length; + if (length >= elapsed) length = elapsed; + wander = stages[i].wander; + offset -= (length * (2.0 * freq + wander * length)) / 2.0; + freq += wander * length; + elapsed -= length; + i ++; + } + if (elapsed > 0.0) { + wander = 0.0; + offset -= elapsed * freq; + } + *poffset = offset; + *pfreq = freq; + if (pwander) *pwander = wander; + return; +} + +static void update_stages(void) +{ + double s1; + double s2; + double s; + double l1; + double l2; + double l3; + double lc; + double f; + double f2; + double l1t[2]; + double l3t[2]; + double err[2]; + int i; + int dir; + s1 = smooth_offset / max_wander; + s2 = (smooth_freq * smooth_freq) / (2.0 * (max_wander * max_wander)); + i = 0; + dir = -1; + while (i <= 1) { + err[i] = 0.0; + s = (double)dir * s1 + s2; + if (s < 0.0) { + err[i] += - s; + s = 0.0; + } + l3t[i] = sqrt(s); + l1t[i] = l3t[i] - ((double)dir * smooth_freq) / max_wander; + if (l1t[i] < 0.0) { + err[i] += l1t[i] * l1t[i]; + l1t[i] = 0.0; + } + i ++; + dir += 2; + } + if (err[0] < err[1]) { + l1 = l1t[0]; + l3 = l3t[0]; + dir = -1; + } + else { + l1 = l1t[1]; + l3 = l3t[1]; + dir = 1; + } + l2 = 0.0; + f = ((double)dir * smooth_freq + l1 * max_wander) - max_freq; + if (f > 0.0) { + lc = f / max_wander; + if (lc > l1) { + lc = l1; + f2 = (double)dir * smooth_freq; + } + else f2 = max_freq; + l2 = lc * (2.0 + f / f2); + l1 -= lc; + l3 -= lc; + } + stages[0].wander = (double)dir * max_wander; + stages[0].length = l1; + stages[1].wander = 0.0; + stages[1].length = l2; + stages[2].wander = (double)(- dir) * max_wander; + stages[2].length = l3; + i = 0; + while (i < 3) i ++; + return; +} + +static void update_smoothing(struct timespec *now, double offset, double freq) +{ + if (locked) { + double tmp; + tmp = REF_GetSkew(); + ; + if (tmp / max_wander < (double)10000) SMT_Activate(now); + else + if (leap_only_mode) SMT_Activate(now); + goto return_label; + } + get_smoothing(now,& smooth_offset,& smooth_freq,(double *)0); + smooth_offset += offset; + smooth_freq = (smooth_freq - freq) / (1.0 - freq); + last_update = *now; + update_stages(); + return_label: return; +} + +static void handle_slew_1(struct timespec *raw, struct timespec *cooked, + double dfreq, double doffset, + LCL_ChangeType change_type, void *anything) +{ + double delta; + int tmp; + if (change_type == (unsigned int)LCL_ChangeAdjust) + if (leap_only_mode) update_smoothing(cooked,0.0,0.0); + else update_smoothing(cooked,doffset,dfreq); + tmp = UTI_IsZeroTimespec(& last_update); + if (! tmp) UTI_AdjustTimespec(& last_update,cooked,& last_update,& delta, + dfreq,doffset); + return; +} + +void SMT_Initialise(void) +{ + CNF_GetSmooth(& max_freq,& max_wander,& leap_only_mode); + if (max_freq <= 0.0) goto _LOR; + else + if (max_wander <= 0.0) { + _LOR: { + enabled = 0; + goto return_label; + } + } + enabled = 1; + locked = 1; + max_freq *= 1e-6; + max_wander *= 1e-6; + UTI_ZeroTimespec(& last_update); + LCL_AddParameterChangeHandler(& handle_slew_1,(void *)0); + return_label: return; +} + +void SMT_Finalise(void) +{ + return; +} + +int SMT_IsEnabled(void) +{ + return enabled; +} + +double SMT_GetOffset(struct timespec *now) +{ + double __retres; + double offset; + double freq; + if (! enabled) { + __retres = 0.0; + goto return_label; + } + get_smoothing(now,& offset,& freq,(double *)0); + __retres = offset; + return_label: return __retres; +} + +void SMT_Activate(struct timespec *now) +{ + char const *tmp; + if (! enabled) goto return_label; + else + if (! locked) goto return_label; + if (leap_only_mode) tmp = " (leap seconds only)"; else tmp = ""; + { + char const *__va_arg0 = tmp; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_INFO,"Time smoothing activated%s", + (void * const *)(__va_args)); + } + locked = 0; + last_update = *now; + return_label: return; +} + +void SMT_Reset(struct timespec *now) +{ + int i; + if (! enabled) goto return_label; + smooth_offset = 0.0; + smooth_freq = 0.0; + last_update = *now; + i = 0; + while (i < 3) { + double tmp; + tmp = 0.0; + stages[i].length = tmp; + stages[i].wander = tmp; + i ++; + } + return_label: return; +} + +void SMT_Leap(struct timespec *now, int leap) +{ + if (! enabled) goto return_label; + else + if (! leap_only_mode) goto return_label; + update_smoothing(now,(double)leap,0.0); + return_label: return; +} + +int SMT_GetSmoothingReport(RPT_SmoothingReport *report, struct timespec *now) +{ + int __retres; + double length; + double elapsed; + int i; + if (! enabled) { + __retres = 0; + goto return_label; + } + report->active = ! locked; + report->leap_only = leap_only_mode; + get_smoothing(now,& report->offset,& report->freq_ppm,& report->wander_ppm); + report->freq_ppm *= - 1.0e6; + report->wander_ppm *= - 1.0e6; + elapsed = UTI_DiffTimespecsToDouble(now,& last_update); + if (! locked) { + if (elapsed >= 0.0) { + i = 0; + length = 0.0; + while (i < 3) { + length += stages[i].length; + i ++; + } + report->last_update_ago = elapsed; + if (elapsed < length) report->remaining_time = length - elapsed; + else report->remaining_time = 0.0; + } + else goto _LAND; + } + else { + _LAND: { + report->last_update_ago = 0.0; + report->remaining_time = 0.0; + } + } + __retres = 1; + return_label: return __retres; +} + +void RGR_WeightedRegression(double *x, double *y, double *w, int n, + double *b0, double *b1, double *s2, double *sb0, + double *sb1); + +double RGR_GetTCoef(int dof); + +double RGR_GetChi2Coef(int dof); + +int RGR_FindBestRegression(double *x, double *y, double *w, int n, int m, + int min_samples_0, double *b0, double *b1, + double *s2, double *sb0, double *sb1, + int *new_start, int *n_runs, int *dof); + +int RGR_FindBestRobustRegression(double *x, double *y, int n, double tol, + double *b0, double *b1, int *n_runs, + int *best_start); + +int RGR_MultipleRegress(double *x1, double *x2, double *y, int n, double *b2); + +double RGR_FindMedian(double *x, int n); + +static int initialised_2 = 0; +static struct SRC_Instance_Record **sources; +static struct Sort_Element *sort_list; +static int *sel_sources; +static int n_sources; +static int max_n_sources; +static int selected_source_index; +static double max_distance_0; +static double max_jitter_0; +static double reselect_distance_0; +static double stratum_weight_0; +static double combine_limit_0; +static void slew_sources(struct timespec *raw, struct timespec *cooked, + double dfreq, double doffset, + LCL_ChangeType change_type, void *anything); + +static void add_dispersion(double dispersion, void *anything); + +static char *source_to_string(SRC_Instance inst); + +void SRC_Initialise(void) +{ + sources = (struct SRC_Instance_Record **)0; + sort_list = (struct Sort_Element *)0; + sel_sources = (int *)0; + n_sources = 0; + max_n_sources = 0; + selected_source_index = -1; + max_distance_0 = CNF_GetMaxDistance(); + max_jitter_0 = CNF_GetMaxJitter(); + reselect_distance_0 = CNF_GetReselectDistance(); + stratum_weight_0 = CNF_GetStratumWeight(); + combine_limit_0 = CNF_GetCombineLimit(); + initialised_2 = 1; + LCL_AddParameterChangeHandler(& slew_sources,(void *)0); + LCL_AddDispersionNotifyHandler(& add_dispersion,(void *)0); + return; +} + +void SRC_Finalise(void) +{ + LCL_RemoveParameterChangeHandler(& slew_sources,(void *)0); + LCL_RemoveDispersionNotifyHandler(& add_dispersion,(void *)0); + free((void *)sources); + free((void *)sort_list); + free((void *)sel_sources); + initialised_2 = 0; + return; +} + +SRC_Instance SRC_CreateNewInstance(uint32_t ref_id, SRC_Type type, + int sel_options, IPAddr *addr, + int min_samples_0, int max_samples_0, + double min_delay, double asymmetry) +{ + SRC_Instance result; + __FC_assert(initialised_2 != 0,"sources.c",222,"initialised"); + if (min_samples_0 == -1) min_samples_0 = CNF_GetMinSamples(); + if (max_samples_0 == -1) max_samples_0 = CNF_GetMaxSamples(); + result = (SRC_Instance)Malloc(sizeof(struct SRC_Instance_Record)); + result->stats = SST_CreateInstance(ref_id,addr,min_samples_0,max_samples_0, + min_delay,asymmetry); + if (n_sources == max_n_sources) { + if (max_n_sources > 0) max_n_sources = 2 * max_n_sources; + else max_n_sources = 4; + if (sources) { + sources = (struct SRC_Instance_Record **)Realloc2((void *)sources, + (unsigned long)max_n_sources, + sizeof(struct SRC_Instance_Record *)); + sort_list = (struct Sort_Element *)Realloc2((void *)sort_list, + (unsigned long)(3 * max_n_sources), + sizeof(struct Sort_Element)); + sel_sources = (int *)Realloc2((void *)sel_sources, + (unsigned long)max_n_sources,sizeof(int)); + } + else { + sources = (struct SRC_Instance_Record **)Malloc2((unsigned long)max_n_sources, + sizeof(struct SRC_Instance_Record *)); + sort_list = (struct Sort_Element *)Malloc2((unsigned long)(3 * max_n_sources), + sizeof(struct Sort_Element)); + sel_sources = (int *)Malloc2((unsigned long)max_n_sources,sizeof(int)); + } + } + *(sources + n_sources) = result; + result->index = n_sources; + result->type = type; + result->sel_options = sel_options; + SRC_SetRefid(result,ref_id,addr); + SRC_ResetInstance(result); + n_sources ++; + return result; +} + +void SRC_DestroyInstance(SRC_Instance instance) +{ + int dead_index; + int i; + __FC_assert(initialised_2 != 0,"sources.c",271,"initialised"); + SST_DeleteInstance(instance->stats); + dead_index = instance->index; + i = dead_index; + while (i < n_sources - 1) { + *(sources + i) = *(sources + (i + 1)); + (*(sources + i))->index = i; + i ++; + } + n_sources --; + free((void *)instance); + if (selected_source_index == dead_index) SRC_ReselectSource(); + else + if (selected_source_index > dead_index) selected_source_index --; + return; +} + +void SRC_ResetInstance(SRC_Instance instance) +{ + instance->active = 0; + instance->updates = 0; + instance->reachability = 0; + instance->reachability_size = 0; + instance->distant = 0; + instance->status = SRC_BAD_STATS; + instance->sel_score = 1.0; + SST_ResetInstance(instance->stats); + return; +} + +void SRC_SetRefid(SRC_Instance instance, uint32_t ref_id, IPAddr *addr) +{ + instance->ref_id = ref_id; + instance->ip_addr = addr; + SST_SetRefid(instance->stats,ref_id,addr); + return; +} + +SST_Stats SRC_GetSourcestats(SRC_Instance instance) +{ + SST_Stats __retres; + __FC_assert(initialised_2 != 0,"sources.c",320,"initialised"); + __retres = instance->stats; + return __retres; +} + +void SRC_AccumulateSample(SRC_Instance inst, NTP_Sample *sample) +{ + int tmp_1; + __FC_assert(initialised_2 != 0,"sources.c",338,"initialised"); + tmp_1 = REF_IsLeapSecondClose(); + if (tmp_1) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_INFO,"Dropping sample around leap second", + (void * const *)(__va_args)); + } + goto return_label; + } + SST_AccumulateSample(inst->stats,sample); + SST_DoNewRegression(inst->stats); + return_label: return; +} + +void SRC_SetActive(SRC_Instance inst) +{ + inst->active = 1; + return; +} + +void SRC_UnsetActive(SRC_Instance inst) +{ + inst->active = 0; + return; +} + +static int special_mode_end(void) +{ + int __retres; + int i; + i = 0; + while (i < n_sources) { + { + int tmp; + if (! (*(sources + i))->active) goto __Cont; + if ((*(sources + i))->reachability_size >= 8 - 1) goto __Cont; + tmp = SST_Samples((*(sources + i))->stats); + ; + if (((8 - 1) - (*(sources + i))->reachability_size) + tmp >= 3) { + __retres = 0; + goto return_label; + } + } + __Cont: i ++; + } + __retres = 1; + return_label: return __retres; +} + +void SRC_UpdateReachability(SRC_Instance inst, int reachable) +{ + REF_Mode tmp; + inst->reachability <<= 1; + inst->reachability |= ! (! reachable); + inst->reachability = (int)((unsigned int)inst->reachability % (1U << 8)); + if (inst->reachability_size < 8) (inst->reachability_size) ++; + if (! reachable) + if (inst->index == selected_source_index) SRC_SelectSource((struct SRC_Instance_Record *)0); + tmp = REF_GetMode(); + if (tmp != (unsigned int)REF_ModeNormal) { + int tmp_0; + tmp_0 = special_mode_end(); + if (tmp_0) REF_SetUnsynchronised(); + } + if (inst->type == (unsigned int)SRC_NTP) + if (! inst->reachability) { + if (inst->reachability_size == 8) goto _LOR; else goto _LAND; + } + else { + _LAND: ; + if (inst->status == (unsigned int)SRC_BAD_DISTANCE) goto _LOR; + else + if (inst->status == (unsigned int)SRC_JITTERY) goto _LOR; + else + if (inst->status == (unsigned int)SRC_FALSETICKER) _LOR: + NSR_HandleBadSource + (inst->ip_addr); + } + return; +} + +void SRC_ResetReachability(SRC_Instance inst) +{ + inst->reachability = 0; + inst->reachability_size = 0; + SRC_UpdateReachability(inst,0); + return; +} + +static void log_selection_message(char *format, char *arg) +{ + REF_Mode tmp; + tmp = REF_GetMode(); + if (tmp != (unsigned int)REF_ModeNormal) goto return_label; + { + char *__va_arg0 = arg; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_INFO,(char const *)format,(void * const *)(__va_args)); + } + return_label: return; +} + +static int compare_sort_elements(void const *a, void const *b) +{ + int __retres; + struct Sort_Element const *u = (struct Sort_Element const *)a; + struct Sort_Element const *v = (struct Sort_Element const *)b; + if (u->offset < v->offset) { + __retres = -1; + goto return_label; + } + else + if (u->offset > v->offset) { + __retres = 1; + goto return_label; + } + else + if (u->tag < v->tag) { + __retres = -1; + goto return_label; + } + else + if (u->tag > v->tag) { + __retres = 1; + goto return_label; + } + else { + __retres = 0; + goto return_label; + } + return_label: return __retres; +} + +static char *source_to_string(SRC_Instance inst) +{ + char *__retres; + switch (inst->type) { + char *tmp; + char *tmp_0; + case (SRC_Type)SRC_NTP: tmp = UTI_IPToString(inst->ip_addr); + __retres = tmp; + goto return_label; + case (SRC_Type)SRC_REFCLOCK: tmp_0 = UTI_RefidToString(inst->ref_id); + __retres = tmp_0; + goto return_label; + default: __FC_assert(0 != 0,"sources.c",476,"0"); + } + __retres = (char *)0; + return_label: return __retres; +} + +static void mark_ok_sources(SRC_Status status) +{ + int i; + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + if ((*(sources + i))->status != (unsigned int)SRC_OK) goto __Cont; + (*(sources + i))->status = status; + __Cont: i ++; + } + return; +} + +static int combine_sources(int n_sel_sources, struct timespec *ref_time, + double *offset, double *offset_sd, + double *frequency, double *frequency_sd, + double *skew) +{ + int __retres; + struct timespec src_ref_time; + double src_offset; + double src_offset_sd; + double src_frequency; + double src_frequency_sd; + double src_skew; + double src_root_delay; + double src_root_dispersion; + double sel_src_distance; + double elapsed; + double offset_weight; + double sum_offset_weight; + double sum_offset; + double sum2_offset_sd; + double frequency_weight; + double sum_frequency_weight; + double sum_frequency; + double inv_sum2_frequency_sd; + double inv_sum2_skew; + int i; + int index_0; + int combined; + double tmp_1; + double tmp_2; + if (n_sel_sources == 1) { + __retres = 1; + goto return_label; + } + sum2_offset_sd = 0.0; + sum_offset = sum2_offset_sd; + sum_offset_weight = sum_offset; + inv_sum2_skew = 0.0; + inv_sum2_frequency_sd = inv_sum2_skew; + sum_frequency = inv_sum2_frequency_sd; + sum_frequency_weight = sum_frequency; + sel_src_distance = (*(sources + selected_source_index))->sel_info.root_distance; + if ((*(sources + selected_source_index))->type == (unsigned int)SRC_NTP) + sel_src_distance += reselect_distance_0; + combined = 0; + i = combined; + /*@ loop unroll 2; */ + while (i < n_sel_sources) { + index_0 = *(sel_sources + i); + SST_GetTrackingData((*(sources + index_0))->stats,& src_ref_time, + & src_offset,& src_offset_sd,& src_frequency, + & src_frequency_sd,& src_skew,& src_root_delay, + & src_root_dispersion); + if (index_0 != selected_source_index) { + if ((*(sources + index_0))->sel_info.root_distance > combine_limit_0 * sel_src_distance) + goto _LOR; + else { + double tmp; + double tmp_0; + tmp = fabs(*frequency - src_frequency); + tmp_0 = LCL_GetMaxClockError(); + ; + if (tmp > combine_limit_0 * ((*skew + src_skew) + tmp_0)) + _LOR: + if ((*(sources + index_0))->reachability_size >= 8) (*(sources + index_0))->distant = 32; + else (*(sources + index_0))->distant = 1; + else goto _LAND; + } + } + else { + _LAND: ; + if ((*(sources + index_0))->distant) ((*(sources + index_0))->distant) --; + } + if ((*(sources + index_0))->distant) { + (*(sources + index_0))->status = SRC_DISTANT; + goto __Cont; + } + if ((*(sources + index_0))->status == (unsigned int)SRC_OK) (*(sources + index_0))->status = SRC_UNSELECTED; + elapsed = UTI_DiffTimespecsToDouble(ref_time,& src_ref_time); + src_offset += elapsed * src_frequency; + src_offset_sd += elapsed * src_frequency_sd; + offset_weight = 1.0 / (*(sources + index_0))->sel_info.root_distance; + frequency_weight = 1.0 / (src_frequency_sd * src_frequency_sd); + sum_offset_weight += offset_weight; + sum_offset += offset_weight * src_offset; + sum2_offset_sd += offset_weight * (src_offset_sd * src_offset_sd + + (src_offset - *offset) * (src_offset - *offset)); + sum_frequency_weight += frequency_weight; + sum_frequency += frequency_weight * src_frequency; + inv_sum2_frequency_sd += 1.0 / (src_frequency_sd * src_frequency_sd); + inv_sum2_skew += 1.0 / (src_skew * src_skew); + combined ++; + __Cont: i ++; + } + __FC_assert(combined != 0,"sources.c",574,"combined"); + *offset = sum_offset / sum_offset_weight; + *offset_sd = sqrt(sum2_offset_sd / sum_offset_weight); + *frequency = sum_frequency / sum_frequency_weight; + tmp_1 = sqrt(inv_sum2_frequency_sd); + *frequency_sd = 1.0 / tmp_1; + tmp_2 = sqrt(inv_sum2_skew); + *skew = 1.0 / tmp_2; + __retres = combined; + return_label: return __retres; +} + +void SRC_SelectSource(SRC_Instance updated_inst) +{ + struct SelectInfo *si; + struct timespec now; + struct timespec ref_time; + int i; + int j; + int j1; + int j2; + int index_0; + int sel_prefer; + int n_endpoints; + int n_sel_sources; + int sel_req_source; + int n_badstats_sources; + int max_sel_reach; + int max_sel_reach_size; + int max_badstat_reach; + int depth; + int best_depth; + int trust_depth; + int best_trust_depth; + int combined; + int stratum; + int min_stratum; + int max_score_index; + int orphan_stratum; + int orphan_source; + int leap_votes; + int leap_ins; + int leap_del; + double src_offset; + double src_offset_sd; + double src_frequency; + double src_frequency_sd; + double src_skew; + double src_root_delay; + double src_root_dispersion; + double best_lo; + double best_hi; + double distance; + double sel_src_distance; + double max_score; + double first_sample_ago; + double max_reach_sample_ago; + NTP_Leap leap_status; + if (updated_inst) (updated_inst->updates) ++; + if (n_sources == 0) { + if (selected_source_index != -1) { + log_selection_message((char *)"Can\'t synchronise: no sources", + (char *)0); + selected_source_index = -1; + } + goto return_label; + } + SCH_GetLastEventTime(& now,(double *)0,(struct timespec *)0); + n_endpoints = 0; + n_sel_sources = 0; + n_badstats_sources = 0; + sel_req_source = 0; + max_badstat_reach = 0; + max_sel_reach = max_badstat_reach; + max_sel_reach_size = 0; + max_reach_sample_ago = 0.0; + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + __FC_assert(((*(sources + i))->status != (unsigned int)SRC_OK) != 0, + "sources.c",634,"sources[i]->status != SRC_OK"); + if ((*(sources + i))->sel_options & 0x8) sel_req_source = 1; + if ((*(sources + i))->sel_options & 0x1) { + (*(sources + i))->status = SRC_UNSELECTABLE; + goto __Cont; + } + si = & (*(sources + i))->sel_info; + SST_GetSelectionData((*(sources + i))->stats,& now,& si->stratum, + & si->leap,& si->lo_limit,& si->hi_limit, + & si->root_distance,& si->std_dev, + & first_sample_ago,& si->last_sample_ago, + & si->select_ok); + if (! si->select_ok) { + n_badstats_sources ++; + (*(sources + i))->status = SRC_BAD_STATS; + if (max_badstat_reach < (*(sources + i))->reachability) max_badstat_reach = (*( + sources + i))->reachability; + goto __Cont; + } + if (first_sample_ago < 2.0 * si->last_sample_ago) { + double tmp; + tmp = LCL_GetMaxClockError(); + double extra_disp = + tmp * (2.0 * si->last_sample_ago - first_sample_ago); + si->root_distance += extra_disp; + si->lo_limit -= extra_disp; + si->hi_limit += extra_disp; + } + if (si->root_distance > max_distance_0) { + (*(sources + i))->status = SRC_BAD_DISTANCE; + goto __Cont; + } + if (si->std_dev > max_jitter_0) { + (*(sources + i))->status = SRC_JITTERY; + goto __Cont; + } + (*(sources + i))->status = SRC_OK; + if ((*(sources + i))->reachability) + if (max_reach_sample_ago < first_sample_ago) max_reach_sample_ago = first_sample_ago; + if (max_sel_reach < (*(sources + i))->reachability) max_sel_reach = (*( + sources + i))->reachability; + if (max_sel_reach_size < (*(sources + i))->reachability_size) max_sel_reach_size = (*( + sources + i))->reachability_size; + __Cont: i ++; + } + orphan_stratum = REF_GetOrphanStratum(); + orphan_source = -1; + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + if ((*(sources + i))->status != (unsigned int)SRC_OK) goto __Cont_0; + si = & (*(sources + i))->sel_info; + if (! (*(sources + i))->reachability) + if (max_reach_sample_ago < si->last_sample_ago) { + (*(sources + i))->status = SRC_STALE; + goto __Cont_0; + } + if (si->stratum >= orphan_stratum) + if ((*(sources + i))->type == (unsigned int)SRC_NTP) { + (*(sources + i))->status = SRC_ORPHAN; + if (si->stratum == orphan_stratum) + if ((*(sources + i))->reachability) + if (orphan_source == -1) orphan_source = i; + else + if ((*(sources + i))->ref_id < (*(sources + orphan_source))->ref_id) + orphan_source = i; + goto __Cont_0; + } + n_sel_sources ++; + __Cont_0: i ++; + } + if (! n_sel_sources) + if (orphan_source != -1) { + uint32_t local_ref_id = + NSR_GetLocalRefid((*(sources + orphan_source))->ip_addr); + if (! local_ref_id) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_ERR,"Unknown local refid in orphan mode", + (void * const *)(__va_args)); + } + } + else + if ((*(sources + orphan_source))->ref_id < local_ref_id) { + (*(sources + orphan_source))->status = SRC_OK; + n_sel_sources = 1; + } + } + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + if ((*(sources + i))->status != (unsigned int)SRC_OK) goto __Cont_1; + si = & (*(sources + i))->sel_info; + j1 = n_endpoints; + j2 = j1 + 1; + (sort_list + j1)->index = i; + (sort_list + j1)->offset = si->lo_limit; + (sort_list + j1)->tag = LOW; + (sort_list + j2)->index = i; + (sort_list + j2)->offset = si->hi_limit; + (sort_list + j2)->tag = HIGH; + n_endpoints += 2; + __Cont_1: i ++; + } + if (n_badstats_sources) + if (n_sel_sources) + if (selected_source_index == -1) + if (max_sel_reach_size < 8) + if (max_sel_reach >> 1 == max_badstat_reach) { + mark_ok_sources(SRC_WAITS_STATS); + goto return_label; + } + if (n_endpoints == 0) { + if (selected_source_index != -1) { + log_selection_message((char *)"Can\'t synchronise: no selectable sources", + (char *)0); + selected_source_index = -1; + } + goto return_label; + } + qsort((void *)sort_list,(unsigned long)n_endpoints, + sizeof(struct Sort_Element),& compare_sort_elements); + best_trust_depth = 0; + trust_depth = best_trust_depth; + best_depth = 0; + depth = best_depth; + best_hi = 0.0; + best_lo = best_hi; + i = 0; + /*@ loop unroll 4; */ + while (i < n_endpoints) { + switch ((sort_list + i)->tag) { + case LOW: depth ++; + if ((*(sources + (sort_list + i)->index))->sel_options & 0x4) trust_depth ++; + if (trust_depth > best_trust_depth) goto _LOR; + else + if (trust_depth == best_trust_depth) + if (depth > best_depth) { + _LOR: + { + best_trust_depth = trust_depth; + best_depth = depth; + best_lo = (sort_list + i)->offset; + } + } + break; + case HIGH: ; + if (trust_depth == best_trust_depth) + if (depth == best_depth) best_hi = (sort_list + i)->offset; + if ((*(sources + (sort_list + i)->index))->sel_options & 0x4) trust_depth --; + depth --; + break; + default: __FC_assert(0 != 0,"sources.c",858,"0"); + } + i ++; + } + if (best_depth <= n_sel_sources / 2) + if (! best_trust_depth) { + if (selected_source_index != -1) { + log_selection_message((char *)"Can\'t synchronise: no majority", + (char *)0); + REF_SetUnsynchronised(); + selected_source_index = -1; + } + mark_ok_sources(SRC_FALSETICKER); + goto return_label; + } + n_sel_sources = 0; + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + if ((*(sources + i))->status != (unsigned int)SRC_OK) goto __Cont_2; + if (! best_trust_depth) goto _LOR_1; + else + if ((*(sources + i))->sel_options & 0x4) { + _LOR_1: ; + if ((*(sources + i))->sel_info.lo_limit <= best_lo) { + if ((*(sources + i))->sel_info.hi_limit >= best_hi) goto _LOR_0; + else goto _LAND_2; + } + else goto _LAND_2; + } + else { + _LAND_2: ; + if ((*(sources + i))->sel_info.lo_limit >= best_lo) { + if ((*(sources + i))->sel_info.hi_limit <= best_hi) { + _LOR_0: + { + int tmp_1; + tmp_1 = n_sel_sources; + n_sel_sources ++; + *(sel_sources + tmp_1) = i; + if ((*(sources + i))->sel_options & 0x8) sel_req_source = 0; + } + } + else goto _LAND_0; + } + else { + _LAND_0: ; + if ((*(sources + i))->sel_info.lo_limit <= best_lo) { + if ((*(sources + i))->sel_info.hi_limit >= best_hi) (*(sources + i))->status = SRC_UNTRUSTED; + else goto _LAND; + } + else _LAND: (*(sources + i))->status = SRC_FALSETICKER; + } + } + __Cont_2: i ++; + } + if (! n_sel_sources) goto _LOR_2; + else + if (sel_req_source) goto _LOR_2; + else { + int tmp_4; + tmp_4 = CNF_GetMinSources(); + ; + if (n_sel_sources < tmp_4) { + _LOR_2: + { + if (selected_source_index != -1) { + char const *tmp_3; + if (! n_sel_sources) tmp_3 = "no"; + else { + char const *tmp_2; + if (sel_req_source) tmp_2 = "no required source in"; + else tmp_2 = "not enough"; + tmp_3 = tmp_2; + } + log_selection_message((char *)"Can\'t synchronise: %s selectable sources", + (char *)tmp_3); + selected_source_index = -1; + } + mark_ok_sources(SRC_WAITS_SOURCES); + goto return_label; + } + } + } + leap_votes = 0; + leap_del = leap_votes; + leap_ins = leap_del; + i = leap_ins; + /*@ loop unroll 2; */ + while (i < n_sel_sources) { + index_0 = *(sel_sources + i); + if (best_trust_depth) + if (! ((*(sources + index_0))->sel_options & 0x4)) goto __Cont_3; + leap_votes ++; + if ((*(sources + index_0))->sel_info.leap == (unsigned int)LEAP_InsertSecond) + leap_ins ++; + else + if ((*(sources + index_0))->sel_info.leap == (unsigned int)LEAP_DeleteSecond) + leap_del ++; + __Cont_3: i ++; + } + if (leap_ins > leap_votes / 2) leap_status = LEAP_InsertSecond; + else + if (leap_del > leap_votes / 2) leap_status = LEAP_DeleteSecond; + else leap_status = LEAP_Normal; + i = 0; + /*@ loop unroll 2; */ + while (i < n_sel_sources) { + if ((*(sources + *(sel_sources + i)))->sel_options & 0x2) break; + i ++; + } + if (i < n_sel_sources) { + j = 0; + i = j; + /*@ loop unroll 2; */ + while (i < n_sel_sources) { + if (! ((*(sources + *(sel_sources + i)))->sel_options & 0x2)) (*( + sources + *( + sel_sources + i)))->status = SRC_NONPREFERRED; + else { + int tmp_5; + tmp_5 = j; + j ++; + *(sel_sources + tmp_5) = *(sel_sources + i); + } + i ++; + } + __FC_assert((j > 0) != 0,"sources.c",960,"j > 0"); + n_sel_sources = j; + sel_prefer = 1; + } + else sel_prefer = 0; + index_0 = *(sel_sources + 0); + min_stratum = (*(sources + index_0))->sel_info.stratum; + i = 1; + /*@ loop unroll 2; */ + while (i < n_sel_sources) { + index_0 = *(sel_sources + i); + stratum = (*(sources + index_0))->sel_info.stratum; + if (stratum < min_stratum) min_stratum = stratum; + i ++; + } + max_score_index = -1; + max_score = 0.0; + sel_src_distance = 0.0; + if (selected_source_index != -1) sel_src_distance = (*(sources + selected_source_index))->sel_info.root_distance + + (double)((*(sources + selected_source_index))->sel_info.stratum - min_stratum) * stratum_weight_0; + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + if ((*(sources + i))->status != (unsigned int)SRC_OK) goto _LOR_3; + else + if (sel_prefer) + if (! ((*(sources + i))->sel_options & 0x2)) { + _LOR_3: + { + (*(sources + i))->sel_score = 1.0; + (*(sources + i))->distant = 32; + goto __Cont_4; + } + } + distance = (*(sources + i))->sel_info.root_distance + (double)((*( + sources + i))->sel_info.stratum - min_stratum) * stratum_weight_0; + if ((*(sources + i))->type == (unsigned int)SRC_NTP) distance += reselect_distance_0; + if (selected_source_index != -1) { + if (*(sources + i) == updated_inst) goto _LOR_4; + else + if (*(sources + selected_source_index) == updated_inst) { + _LOR_4: + { + (*(sources + i))->sel_score *= sel_src_distance / distance; + if ((*(sources + i))->sel_score < 1.0) (*(sources + i))->sel_score = 1.0; + } + } + } + else (*(sources + i))->sel_score = 1.0 / distance; + if (max_score < (*(sources + i))->sel_score) { + max_score = (*(sources + i))->sel_score; + max_score_index = i; + } + __Cont_4: i ++; + } + __FC_assert((max_score_index != -1) != 0,"sources.c",1033, + "max_score_index != INVALID_SOURCE"); + if (selected_source_index == -1) goto _LOR_5; + else + if ((*(sources + selected_source_index))->status != (unsigned int)SRC_OK) + goto _LOR_5; + else + if (max_score_index != selected_source_index) + if (max_score > 10.0) { + _LOR_5: + { + char *tmp_7; + if ((*(sources + max_score_index))->updates == 0) { + selected_source_index = -1; + mark_ok_sources(SRC_WAITS_UPDATE); + goto return_label; + } + selected_source_index = max_score_index; + tmp_7 = source_to_string(*(sources + selected_source_index)); + log_selection_message((char *)"Selected source %s",tmp_7); + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + (*(sources + i))->sel_score = 1.0; + (*(sources + i))->distant = 0; + i ++; + } + } + } + (*(sources + selected_source_index))->status = SRC_SELECTED; + if ((*(sources + selected_source_index))->updates == 0) { + i = 0; + /*@ loop unroll 2; */ + while (i < n_sel_sources) { + index_0 = *(sel_sources + i); + if ((*(sources + index_0))->status == (unsigned int)SRC_OK) + if ((*(sources + index_0))->distant) (*(sources + index_0))->status = SRC_DISTANT; + else (*(sources + index_0))->status = SRC_UNSELECTED; + i ++; + } + goto return_label; + } + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + (*(sources + i))->updates = 0; + i ++; + } + SST_GetTrackingData((*(sources + selected_source_index))->stats,& ref_time, + & src_offset,& src_offset_sd,& src_frequency, + & src_frequency_sd,& src_skew,& src_root_delay, + & src_root_dispersion); + combined = combine_sources(n_sel_sources,& ref_time,& src_offset, + & src_offset_sd,& src_frequency, + & src_frequency_sd,& src_skew); + REF_SetReference((*(sources + selected_source_index))->sel_info.stratum, + leap_status,combined, + (*(sources + selected_source_index))->ref_id, + (*(sources + selected_source_index))->ip_addr,& ref_time, + src_offset,src_offset_sd,src_frequency,src_frequency_sd, + src_skew,src_root_delay,src_root_dispersion); + return_label: return; +} + +void SRC_ReselectSource(void) +{ + selected_source_index = -1; + SRC_SelectSource((struct SRC_Instance_Record *)0); + return; +} + +void SRC_SetReselectDistance(double distance) +{ + if (reselect_distance_0 != distance) { + reselect_distance_0 = distance; + { + double __va_arg0 = distance; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_INFO,"New reselect distance %f", + (void * const *)(__va_args)); + } + } + return; +} + +static void slew_sources(struct timespec *raw, struct timespec *cooked, + double dfreq, double doffset, + LCL_ChangeType change_type, void *anything) +{ + int i; + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + if (change_type == (unsigned int)LCL_ChangeUnknownStep) SST_ResetInstance + ((*(sources + i))->stats); + else SST_SlewSamples((*(sources + i))->stats,cooked,dfreq,doffset); + i ++; + } + if (change_type == (unsigned int)LCL_ChangeUnknownStep) SRC_SelectSource + ((struct SRC_Instance_Record *)0); + return; +} + +static void add_dispersion(double dispersion, void *anything) +{ + int i; + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + SST_AddDispersion((*(sources + i))->stats,dispersion); + i ++; + } + return; +} + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + requires valid_read_string(param1); + requires valid_read_string(param0); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: *(param1 + (0 ..))), (indirect: *(param0 + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), + *(param1 + (0 ..)), *(param0 + (0 ..)); + */ +int snprintf_va_3(char * __restrict s, size_t n, + char const * __restrict format, char *param0, char *param1); + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + requires valid_read_string(param0); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: param1), (indirect: *(param0 + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), param1, + *(param0 + (0 ..)); + */ +int snprintf_va_4(char * __restrict s, size_t n, + char const * __restrict format, char *param0, + unsigned int param1); + +static FILE *open_dumpfile(SRC_Instance inst, char const *mode_0) +{ + FILE *__retres; + FILE *f; + char filename[1024]; + char *dumpdir_0; + dumpdir_0 = CNF_GetDumpDir(); + if ((int)*(dumpdir_0 + 0) == '\000') { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_WARN,"dumpdir not specified", + (void * const *)(__va_args)); + } + __retres = (FILE *)0; + goto return_label; + } + if (inst->type == (unsigned int)SRC_NTP) { + int tmp_0; + char *tmp; + tmp = source_to_string(inst); + ; + tmp_0 = snprintf_va_3(filename,sizeof(filename),"%s/%s.dat",dumpdir_0, + tmp); + if ((unsigned long)tmp_0 >= sizeof(filename)) goto _LOR; else goto _LAND; + } + else { + _LAND: ; + if (inst->type != (unsigned int)SRC_NTP) { + int tmp_1; + tmp_1 = snprintf_va_4(filename,sizeof(filename),"%s/refid:%08x.dat", + dumpdir_0,inst->ref_id); + if ((unsigned long)tmp_1 >= sizeof(filename)) { + _LOR: + { + { + void *__va_args_12[1] = {(void *)0}; + LOG_Message(LOGS_WARN,"dumpdir too long", + (void * const *)(__va_args_12)); + } + __retres = (FILE *)0; + goto return_label; + } + } + } + } + f = fopen((char const *)(filename),mode_0); + if (! f) + if ((int)*(mode_0 + 0) != 'r') { + char *tmp_2; + tmp_2 = source_to_string(inst); + { + char *__va_arg0 = tmp_2; + void *__va_args_15[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN,"Could not open dump file for %s", + (void * const *)(__va_args_15)); + } + } + __retres = f; + return_label: return __retres; +} + +void SRC_DumpSources(void) +{ + FILE *out; + int i; + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + out = open_dumpfile(*(sources + i),"w"); + if (! out) goto __Cont; + SST_SaveToFile((*(sources + i))->stats,out); + fclose(out); + __Cont: i ++; + } + return; +} + +void SRC_ReloadSources(void) +{ + FILE *in; + int i; + i = 0; + /*@ loop unroll 2; */ + while (i < n_sources) { + { + int tmp_1; + in = open_dumpfile(*(sources + i),"r"); + if (! in) goto __Cont; + tmp_1 = SST_LoadFromFile((*(sources + i))->stats,in); + if (tmp_1) { + char *tmp_0; + tmp_0 = source_to_string(*(sources + i)); + { + char *__va_arg0 = tmp_0; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_INFO,"Loaded dump file for %s", + (void * const *)(__va_args)); + } + } + else { + char *tmp; + tmp = source_to_string(*(sources + i)); + { + char *__va_arg0_9 = tmp; + void *__va_args_11[1] = {& __va_arg0_9}; + LOG_Message(LOGS_WARN,"Could not load dump file for %s", + (void * const *)(__va_args_11)); + } + } + fclose(in); + } + __Cont: i ++; + } + return; +} + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + requires valid_read_string(param0); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: *(param0 + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..)); + */ +int snprintf_va_5(char * __restrict s, size_t n, + char const * __restrict format, char *param0); + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + requires valid_read_string(param0); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: *(param0 + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..)); + */ +int snprintf_va_6(char * __restrict s, size_t n, + char const * __restrict format, char *param0); + +void SRC_RemoveDumpFiles(void) +{ + char pattern[1024]; + char name[64]; + char *dumpdir_0; + char *s; + IPAddr ip_addr; + glob_t gl; + size_t i; + int tmp_0; + dumpdir_0 = CNF_GetDumpDir(); + if ((int)*(dumpdir_0 + 0) == '\000') goto return_label; + else { + int tmp; + tmp = snprintf_va_5(pattern,sizeof(pattern),"%s/*.dat",dumpdir_0); + if ((unsigned long)tmp >= sizeof(pattern)) goto return_label; + } + tmp_0 = glob((char const *)(pattern),0, + (int (*)(char const *epath, int eerrno))0,& gl); + if (tmp_0) goto return_label; + i = (unsigned long)0; + while (i < gl.gl_pathc) { + { + size_t tmp_2; + size_t tmp_3; + int tmp_4; + s = strrchr((char const *)*(gl.gl_pathv + i),'/'); + if (! s) goto __Cont; + else { + int tmp_1; + tmp_1 = snprintf_va_6(name,sizeof(name),"%s",s + 1); + if ((unsigned long)tmp_1 >= sizeof(name)) goto __Cont; + } + tmp_2 = strlen((char const *)(name)); + if (tmp_2 < (size_t)4) goto __Cont; + tmp_3 = strlen((char const *)(name)); + name[tmp_3 - (size_t)4] = (char)'\000'; + tmp_4 = strncmp((char const *)(name),"refid:",(unsigned long)6); + if (tmp_4) { + int tmp_5; + tmp_5 = UTI_StringToIP((char const *)(name),& ip_addr); + if (! tmp_5) goto __Cont; + } + unlink((char const *)*(gl.gl_pathv + i)); + } + __Cont: i += (size_t)1; + } + globfree(& gl); + return_label: return; +} + +int SRC_IsSyncPeer(SRC_Instance inst) +{ + int __retres; + if (inst->index == selected_source_index) { + __retres = 1; + goto return_label; + } + else { + __retres = 0; + goto return_label; + } + return_label: return __retres; +} + +int SRC_IsReachable(SRC_Instance inst) +{ + int __retres; + __retres = inst->reachability != 0; + return __retres; +} + +int SRC_ReadNumberOfSources(void) +{ + return n_sources; +} + +int SRC_ActiveSources(void) +{ + int i; + int r; + r = 0; + i = r; + /*@ loop unroll 2; */ + while (i < n_sources) { + if ((*(sources + i))->active) r ++; + i ++; + } + return r; +} + +int SRC_ReportSource(int index_0, RPT_SourceReport *report, + struct timespec *now) +{ + int __retres; + SRC_Instance src; + if (index_0 >= n_sources) goto _LOR; + else + if (index_0 < 0) { + _LOR: { + __retres = 0; + goto return_label; + } + } + else { + src = *(sources + index_0); + if (src->ip_addr) report->ip_addr = *(src->ip_addr); + else { + report->ip_addr.addr.in4 = src->ref_id; + report->ip_addr.family = (unsigned short)1; + } + switch (src->status) { + case (SRC_Status)SRC_FALSETICKER: report->state = RPT_FALSETICKER; + break; + case (SRC_Status)SRC_JITTERY: report->state = RPT_JITTERY; + break; + case (SRC_Status)SRC_UNTRUSTED: case (SRC_Status)SRC_WAITS_SOURCES: + case (SRC_Status)SRC_NONPREFERRED: case (SRC_Status)SRC_WAITS_UPDATE: + case (SRC_Status)SRC_DISTANT: case (SRC_Status)SRC_OUTLIER: + report->state = RPT_OUTLIER; + break; + case (SRC_Status)SRC_UNSELECTED: report->state = RPT_CANDIDATE; + break; + case (SRC_Status)SRC_SELECTED: report->state = RPT_SYNC; + break; + default: report->state = RPT_UNREACH; + break; + } + report->sel_options = src->sel_options; + report->reachability = src->reachability; + SST_DoSourceReport(src->stats,report,now); + __retres = 1; + goto return_label; + } + return_label: return __retres; +} + +int SRC_ReportSourcestats(int index_0, RPT_SourcestatsReport *report, + struct timespec *now) +{ + int __retres; + SRC_Instance src; + if (index_0 >= n_sources) goto _LOR; + else + if (index_0 < 0) { + _LOR: { + __retres = 0; + goto return_label; + } + } + else { + src = *(sources + index_0); + report->ref_id = src->ref_id; + if (src->ip_addr) report->ip_addr = *(src->ip_addr); + else report->ip_addr.family = (unsigned short)0; + SST_DoSourcestatsReport(src->stats,report,now); + __retres = 1; + goto return_label; + } + return_label: return __retres; +} + +SRC_Type SRC_GetType(int index_0) +{ + SRC_Type __retres; + if (index_0 >= n_sources) { + __retres = (enum __anonenum_SRC_Type_23)(-1); + goto return_label; + } + else + if (index_0 < 0) { + __retres = (enum __anonenum_SRC_Type_23)(-1); + goto return_label; + } + __retres = (*(sources + index_0))->type; + return_label: return __retres; +} + +static LOG_FileID logfileid_0; +static void find_min_delay_sample(SST_Stats inst); + +static int get_buf_index(SST_Stats inst, int i); + +void SST_Initialise(void) +{ + int tmp; + tmp = CNF_GetLogStatistics(); + if (tmp) logfileid_0 = LOG_FileOpen("statistics", + " Date (UTC) Time IP Address Std dev\'n Est offset Offset sd Diff freq Est skew Stress Ns Bs Nr Asym"); + else logfileid_0 = -1; + return; +} + +void SST_Finalise(void) +{ + return; +} + +SST_Stats SST_CreateInstance(uint32_t refid, IPAddr *addr, int min_samples_0, + int max_samples_0, double min_delay, + double asymmetry) +{ + SST_Stats inst; + inst = (SST_Stats)Malloc(sizeof(struct SST_Stats_Record)); + inst->min_samples = min_samples_0; + inst->max_samples = max_samples_0; + inst->fixed_min_delay = min_delay; + inst->fixed_asymmetry = asymmetry; + SST_SetRefid(inst,refid,addr); + SST_ResetInstance(inst); + return inst; +} + +void SST_DeleteInstance(SST_Stats inst) +{ + free((void *)inst); + return; +} + +void SST_ResetInstance(SST_Stats inst) +{ + inst->n_samples = 0; + inst->runs_samples = 0; + inst->last_sample = 0; + inst->regression_ok = 0; + inst->best_single_sample = 0; + inst->min_delay_sample = 0; + inst->estimated_frequency = (double)0; + inst->estimated_frequency_sd = 2000.0 / 1.0e6; + inst->skew = 2000.0 / 1.0e6; + inst->estimated_offset = 0.0; + inst->estimated_offset_sd = 86400.0; + UTI_ZeroTimespec(& inst->offset_time); + inst->std_dev = 4.0; + inst->nruns = 0; + inst->asymmetry_run = 0; + inst->asymmetry = 0.0; + inst->leap = LEAP_Unsynchronised; + return; +} + +void SST_SetRefid(SST_Stats inst, uint32_t refid, IPAddr *addr) +{ + inst->refid = refid; + inst->ip_addr = addr; + return; +} + +static void prune_register(SST_Stats inst, int new_oldest) +{ + if (! new_oldest) goto return_label; + __FC_assert((inst->n_samples >= new_oldest) != 0,"sourcestats.c",280, + "inst->n_samples >= new_oldest"); + inst->n_samples -= new_oldest; + inst->runs_samples += new_oldest; + if (inst->runs_samples > inst->n_samples * (2 - 1)) inst->runs_samples = + inst->n_samples * ( + 2 - 1); + __FC_assert((inst->n_samples + inst->runs_samples <= 64 * 2) != 0, + "sourcestats.c",286, + "inst->n_samples + inst->runs_samples <= MAX_SAMPLES * REGRESS_RUNS_RATIO"); + find_min_delay_sample(inst); + return_label: return; +} + +void SST_AccumulateSample(SST_Stats inst, NTP_Sample *sample) +{ + int n; + int m; + int tmp_3; + if (inst->n_samples > 0) + if (inst->n_samples == 64) goto _LOR; + else + if (inst->n_samples == inst->max_samples) _LOR: prune_register(inst,1); + if (inst->n_samples) { + int tmp_2; + tmp_2 = UTI_CompareTimespecs(& inst->sample_times[inst->last_sample], + & sample->time); + if (tmp_2 >= 0) { + char *tmp_1; + if (inst->ip_addr) tmp_1 = UTI_IPToString(inst->ip_addr); + else tmp_1 = UTI_RefidToString(inst->refid); + { + char *__va_arg0 = tmp_1; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_WARN, + "Out of order sample detected, discarding history for %s", + (void * const *)(__va_args)); + } + SST_ResetInstance(inst); + } + } + tmp_3 = (inst->last_sample + 1) % (64 * 2); + inst->last_sample = tmp_3; + n = tmp_3; + m = n % 64; + inst->sample_times[n] = sample->time; + inst->offsets[n] = - sample->offset; + inst->orig_offsets[m] = - sample->offset; + inst->peer_delays[n] = sample->peer_delay; + inst->peer_dispersions[m] = sample->peer_dispersion; + inst->root_delays[m] = sample->root_delay; + inst->root_dispersions[m] = sample->root_dispersion; + inst->stratum = sample->stratum; + inst->leap = sample->leap; + if (inst->peer_delays[n] < inst->fixed_min_delay) inst->peer_delays[n] = + 2.0 * inst->fixed_min_delay - inst->peer_delays[n]; + if (! inst->n_samples) inst->min_delay_sample = n; + else + if (inst->peer_delays[n] < inst->peer_delays[inst->min_delay_sample]) + inst->min_delay_sample = n; + (inst->n_samples) ++; + return; +} + +static int get_runsbuf_index(SST_Stats inst, int i) +{ + int __retres; + __retres = (int)((unsigned int)((((inst->last_sample + (2 * 64) * 2) - inst->n_samples) + i) + 1) % (unsigned int)( + 64 * 2)); + return __retres; +} + +static int get_buf_index(SST_Stats inst, int i) +{ + int __retres; + __retres = (int)((unsigned int)((((inst->last_sample + 64 * 2) - inst->n_samples) + i) + 1) % (unsigned int)64); + return __retres; +} + +static void convert_to_intervals(SST_Stats inst, double *times_back) +{ + struct timespec *ts; + int i; + ts = & inst->sample_times[inst->last_sample]; + i = - inst->runs_samples; + while (i < inst->n_samples) { + { + int tmp; + ; + tmp = get_runsbuf_index(inst,i); + ; + *(times_back + i) = UTI_DiffTimespecsToDouble(& inst->sample_times[tmp], + ts); + } + i ++; + } + return; +} + +static void find_best_sample_index(SST_Stats inst, double *times_back) +{ + double root_distance; + double best_root_distance; + double elapsed; + int i; + int j; + int best_index; + if (! inst->n_samples) goto return_label; + best_index = -1; + best_root_distance = 0x1.fffffffffffffp+1023; + i = 0; + while (i < inst->n_samples) { + j = get_buf_index(inst,i); + elapsed = - *(times_back + i); + __FC_assert((elapsed >= 0.0) != 0,"sourcestats.c",398,"elapsed >= 0.0"); + root_distance = (inst->root_dispersions[j] + elapsed * inst->skew) + + 0.5 * inst->root_delays[j]; + if (root_distance < best_root_distance) { + best_root_distance = root_distance; + best_index = i; + } + i ++; + } + __FC_assert((best_index >= 0) != 0,"sourcestats.c",407,"best_index >= 0"); + inst->best_single_sample = best_index; + return_label: return; +} + +static void find_min_delay_sample(SST_Stats inst) +{ + int i; + int index_0; + inst->min_delay_sample = get_runsbuf_index(inst,- inst->runs_samples); + i = - inst->runs_samples + 1; + while (i < inst->n_samples) { + index_0 = get_runsbuf_index(inst,i); + if (inst->peer_delays[index_0] < inst->peer_delays[inst->min_delay_sample]) + inst->min_delay_sample = index_0; + i ++; + } + return; +} + +static int estimate_asymmetry(double *times_back, double *offsets, + double *delays, int n, double *asymmetry, + int *asymmetry_run) +{ + int __retres; + double a; + int tmp; + int tmp_0; + double tmp_1; + tmp = RGR_MultipleRegress(times_back,delays,offsets,n,& a); + if (tmp) { + if (a * (double)*asymmetry_run < 0.0) { + _LOR: + { + *asymmetry = (double)0; + *asymmetry_run = (int)0.0; + __retres = 0; + goto return_label; + } + } + } + else goto _LOR; + if (a <= - 0.45) { + if (*asymmetry_run > -1000) (*asymmetry_run) --; else goto _LAND; + } + else { + _LAND: ; + if (a >= 0.45) + if (*asymmetry_run < 1000) (*asymmetry_run) ++; + } + tmp_0 = abs(*asymmetry_run); + if (tmp_0 < 10) { + __retres = 0; + goto return_label; + } + if (a < 0.5) tmp_1 = a; else tmp_1 = 0.5; + if (- 0.5 > tmp_1) *asymmetry = - 0.5; + else { + double tmp_2; + if (a < 0.5) tmp_2 = a; else tmp_2 = 0.5; + *asymmetry = tmp_2; + } + __retres = 1; + return_label: return __retres; +} + +static void correct_asymmetry(SST_Stats inst, double *times_back, + double *offsets) +{ + double min_delay; + double delays[64 * 2]; + int i; + int n; + double tmp_1; + if (inst->fixed_asymmetry == 0.0) goto return_label; + min_delay = SST_MinRoundTripDelay(inst); + n = inst->runs_samples + inst->n_samples; + i = 0; + while (i < n) { + int tmp; + tmp = get_runsbuf_index(inst,i - inst->runs_samples); + delays[i] = inst->peer_delays[tmp] - min_delay; + i ++; + } + tmp_1 = fabs(inst->fixed_asymmetry); + if (tmp_1 <= 0.5) inst->asymmetry = inst->fixed_asymmetry; + else { + int tmp_0; + tmp_0 = estimate_asymmetry(times_back,offsets,delays,n,& inst->asymmetry, + & inst->asymmetry_run); + if (! tmp_0) goto return_label; + } + i = 0; + while (i < n) { + *(offsets + i) -= inst->asymmetry * delays[i]; + i ++; + } + return_label: return; +} + +void SST_DoNewRegression(SST_Stats inst) +{ + double times_back[64 * 2]; + double offsets[64 * 2]; + double peer_distances[64]; + double weights[64]; + int degrees_of_freedom; + int best_start; + int times_back_start; + double est_intercept; + double est_slope; + double est_var; + double est_intercept_sd; + double est_slope_sd; + int i; + int j; + int nruns; + double min_distance; + double median_distance; + double sd_weight; + double sd; + double old_skew; + double old_freq; + double stress; + double precision; + convert_to_intervals(inst,& times_back[inst->runs_samples]); + if (inst->n_samples > 0) { + double tmp_1; + i = - inst->runs_samples; + while (i < inst->n_samples) { + { + int tmp; + tmp = get_runsbuf_index(inst,i); + offsets[i + inst->runs_samples] = inst->offsets[tmp]; + } + i ++; + } + i = 0; + min_distance = 0x1.fffffffffffffp+1023; + while (i < inst->n_samples) { + { + int tmp_0; + j = get_buf_index(inst,i); + tmp_0 = get_runsbuf_index(inst,i); + peer_distances[i] = 0.5 * inst->peer_delays[tmp_0] + inst->peer_dispersions[j]; + if (peer_distances[i] < min_distance) min_distance = peer_distances[i]; + } + i ++; + } + precision = LCL_GetSysPrecisionAsQuantum(); + median_distance = RGR_FindMedian(peer_distances,inst->n_samples); + sd = (median_distance - min_distance) / 0.7; + if (sd < min_distance) tmp_1 = sd; else tmp_1 = min_distance; + ; + if (precision > tmp_1) sd = precision; + else { + double tmp_2; + if (sd < min_distance) tmp_2 = sd; else tmp_2 = min_distance; + sd = tmp_2; + } + min_distance += precision; + i = 0; + while (i < inst->n_samples) { + sd_weight = 1.0; + if (peer_distances[i] > min_distance) sd_weight += (peer_distances[i] - min_distance) / sd; + weights[i] = sd_weight * sd_weight; + i ++; + } + } + correct_asymmetry(inst,times_back,offsets); + inst->regression_ok = RGR_FindBestRegression(& times_back[inst->runs_samples], + & offsets[inst->runs_samples], + weights,inst->n_samples, + inst->runs_samples, + inst->min_samples, + & est_intercept,& est_slope, + & est_var,& est_intercept_sd, + & est_slope_sd,& best_start, + & nruns,& degrees_of_freedom); + if (inst->regression_ok) { + double tmp_3; + double tmp_5; + double tmp_6; + double tmp_8; + double tmp_10; + old_skew = inst->skew; + old_freq = inst->estimated_frequency; + inst->estimated_frequency = est_slope; + if (est_slope_sd < 1.0e+02) tmp_3 = est_slope_sd; else tmp_3 = 1.0e+02; + if (1.0e-12 > tmp_3) inst->estimated_frequency_sd = 1.0e-12; + else { + double tmp_4; + if (est_slope_sd < 1.0e+02) tmp_4 = est_slope_sd; else tmp_4 = 1.0e+02; + inst->estimated_frequency_sd = tmp_4; + } + tmp_5 = RGR_GetTCoef(degrees_of_freedom); + inst->skew = est_slope_sd * tmp_5; + inst->estimated_offset = est_intercept; + inst->offset_time = inst->sample_times[inst->last_sample]; + inst->estimated_offset_sd = est_intercept_sd; + tmp_6 = sqrt(est_var); + if (1.0e-9 > tmp_6) inst->std_dev = 1.0e-9; + else inst->std_dev = sqrt(est_var); + inst->nruns = nruns; + if (inst->skew < 1.0e+02) tmp_8 = inst->skew; else tmp_8 = 1.0e+02; + if (1.0e-12 > tmp_8) inst->skew = 1.0e-12; + else { + double tmp_9; + if (inst->skew < 1.0e+02) tmp_9 = inst->skew; else tmp_9 = 1.0e+02; + inst->skew = tmp_9; + } + tmp_10 = fabs(old_freq - inst->estimated_frequency); + stress = tmp_10 / old_skew; + if (logfileid_0 != -1) { + char *tmp_13; + char *tmp_14; + ; + ; + ; + ; + ; + ; + ; + ; + ; + ; + if (inst->ip_addr) tmp_13 = UTI_IPToString(inst->ip_addr); + else tmp_13 = UTI_RefidToString(inst->refid); + tmp_14 = UTI_TimeToLogForm(inst->offset_time.tv_sec); + ; + { + char *__va_arg0 = tmp_14; + char *__va_arg1 = tmp_13; + double __va_arg2 = inst->std_dev; + double __va_arg3 = inst->estimated_offset; + double __va_arg4 = inst->estimated_offset_sd; + double __va_arg5 = inst->estimated_frequency; + double __va_arg6 = inst->skew; + double __va_arg7 = stress; + int __va_arg8 = inst->n_samples; + int __va_arg9 = best_start; + int __va_arg10 = inst->nruns; + double __va_arg11 = inst->asymmetry; + void *__va_args[12] = + {& __va_arg0, + & __va_arg1, + & __va_arg2, + & __va_arg3, + & __va_arg4, + & __va_arg5, + & __va_arg6, + & __va_arg7, + & __va_arg8, + & __va_arg9, + & __va_arg10, + & __va_arg11}; + LOG_FileWrite(logfileid_0, + "%s %-15s %10.3e %10.3e %10.3e %10.3e %10.3e %7.1e %3d %3d %3d %5.2f", + (void * const *)(__va_args)); + } + } + times_back_start = inst->runs_samples + best_start; + prune_register(inst,best_start); + } + else { + inst->estimated_frequency = 0.0; + inst->estimated_frequency_sd = 2000.0 / 1.0e6; + inst->skew = 2000.0 / 1.0e6; + times_back_start = 0; + } + find_best_sample_index(inst,& times_back[times_back_start]); + return; +} + +void SST_GetFrequencyRange(SST_Stats inst, double *lo, double *hi) +{ + double freq; + double skew; + freq = inst->estimated_frequency; + skew = inst->skew; + *lo = freq - skew; + *hi = freq + skew; + if (skew > 2000.0 / 1.0e6) { + *lo = - (2000.0 / 1.0e6); + *hi = 2000.0 / 1.0e6; + } + return; +} + +void SST_GetSelectionData(SST_Stats inst, struct timespec *now, int *stratum, + NTP_Leap *leap, double *offset_lo_limit, + double *offset_hi_limit, double *root_distance, + double *std_dev, double *first_sample_ago, + double *last_sample_ago, int *select_ok) +{ + double offset; + double sample_elapsed; + int i; + int j; + double tmp; + if (! inst->n_samples) { + *select_ok = 0; + goto return_label; + } + i = get_runsbuf_index(inst,inst->best_single_sample); + j = get_buf_index(inst,inst->best_single_sample); + *stratum = inst->stratum; + *leap = inst->leap; + *std_dev = inst->std_dev; + tmp = UTI_DiffTimespecsToDouble(now,& inst->sample_times[i]); + sample_elapsed = fabs(tmp); + offset = inst->offsets[i] + sample_elapsed * inst->estimated_frequency; + *root_distance = (0.5 * inst->root_delays[j] + inst->root_dispersions[j]) + + sample_elapsed * inst->skew; + *offset_lo_limit = offset - *root_distance; + *offset_hi_limit = offset + *root_distance; + i = get_runsbuf_index(inst,0); + *first_sample_ago = UTI_DiffTimespecsToDouble(now,& inst->sample_times[i]); + i = get_runsbuf_index(inst,inst->n_samples - 1); + *last_sample_ago = UTI_DiffTimespecsToDouble(now,& inst->sample_times[i]); + *select_ok = inst->regression_ok; + return_label: return; +} + +void SST_GetTrackingData(SST_Stats inst, struct timespec *ref_time, + double *average_offset, double *offset_sd, + double *frequency, double *frequency_sd, + double *skew, double *root_delay, + double *root_dispersion) +{ + int i; + int j; + double elapsed_sample; + __FC_assert((inst->n_samples > 0) != 0,"sourcestats.c",713, + "inst->n_samples > 0"); + i = get_runsbuf_index(inst,inst->best_single_sample); + j = get_buf_index(inst,inst->best_single_sample); + *ref_time = inst->offset_time; + *average_offset = inst->estimated_offset; + *offset_sd = inst->estimated_offset_sd; + *frequency = inst->estimated_frequency; + *frequency_sd = inst->estimated_frequency_sd; + *skew = inst->skew; + *root_delay = inst->root_delays[j]; + elapsed_sample = UTI_DiffTimespecsToDouble(& inst->offset_time, + & inst->sample_times[i]); + *root_dispersion = (inst->root_dispersions[j] + inst->skew * elapsed_sample) + *offset_sd; + return; +} + +void SST_SlewSamples(SST_Stats inst, struct timespec *when, double dfreq, + double doffset) +{ + int m; + int i; + double delta_time; + struct timespec *sample; + struct timespec prev; + double prev_offset; + double prev_freq; + if (! inst->n_samples) goto return_label; + m = - inst->runs_samples; + while (m < inst->n_samples) { + i = get_runsbuf_index(inst,m); + sample = & inst->sample_times[i]; + prev = *sample; + UTI_AdjustTimespec(sample,when,sample,& delta_time,dfreq,doffset); + inst->offsets[i] += delta_time; + m ++; + } + prev = inst->offset_time; + prev_offset = inst->estimated_offset; + prev_freq = inst->estimated_frequency; + UTI_AdjustTimespec(& inst->offset_time,when,& inst->offset_time, + & delta_time,dfreq,doffset); + inst->estimated_offset += delta_time; + inst->estimated_frequency = (inst->estimated_frequency - dfreq) / ( + 1.0 - dfreq); + return_label: return; +} + +void SST_AddDispersion(SST_Stats inst, double dispersion) +{ + int m; + int i; + m = 0; + while (m < inst->n_samples) { + i = get_buf_index(inst,m); + inst->root_dispersions[i] += dispersion; + inst->peer_dispersions[i] += dispersion; + m ++; + } + return; +} + +double SST_PredictOffset(SST_Stats inst, struct timespec *when) +{ + double __retres; + double elapsed; + if (inst->n_samples < 3) + if (inst->n_samples > 0) { + __retres = inst->offsets[inst->last_sample]; + goto return_label; + } + else { + __retres = 0.0; + goto return_label; + } + else { + elapsed = UTI_DiffTimespecsToDouble(when,& inst->offset_time); + __retres = inst->estimated_offset + elapsed * inst->estimated_frequency; + goto return_label; + } + return_label: return __retres; +} + +double SST_MinRoundTripDelay(SST_Stats inst) +{ + double __retres; + if (inst->fixed_min_delay > 0.0) { + __retres = inst->fixed_min_delay; + goto return_label; + } + if (! inst->n_samples) { + __retres = 0x1.fffffffffffffp+1023; + goto return_label; + } + __retres = inst->peer_delays[inst->min_delay_sample]; + return_label: return __retres; +} + +int SST_GetDelayTestData(SST_Stats inst, struct timespec *sample_time, + double *last_sample_ago, double *predicted_offset, + double *min_delay, double *skew, double *std_dev) +{ + int __retres; + if (inst->n_samples < 6) { + __retres = 0; + goto return_label; + } + *last_sample_ago = UTI_DiffTimespecsToDouble(sample_time, + & inst->offset_time); + *predicted_offset = inst->estimated_offset + *last_sample_ago * inst->estimated_frequency; + *min_delay = SST_MinRoundTripDelay(inst); + *skew = inst->skew; + *std_dev = inst->std_dev; + __retres = 1; + return_label: return __retres; +} + +/*@ requires valid_read_string(format); + assigns \result, stream->__fc_FILE_data; + assigns \result + \from (indirect: stream->__fc_FILE_id), + (indirect: stream->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); + assigns stream->__fc_FILE_data + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))), param0; + */ +int fprintf_va_6(FILE * __restrict stream, char const * __restrict format, + int param0); + +/*@ requires valid_read_string(format); + assigns \result, stream->__fc_FILE_data; + assigns \result + \from (indirect: stream->__fc_FILE_id), + (indirect: stream->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param9), + (indirect: param8), (indirect: param7), (indirect: param6), + (indirect: param5), (indirect: param4), (indirect: param3), + (indirect: param2), (indirect: param1), (indirect: param0); + assigns stream->__fc_FILE_data + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))), param9, param8, param7, param6, + param5, param4, param3, param2, param1, param0; + */ +int fprintf_va_7(FILE * __restrict stream, char const * __restrict format, + unsigned long param0, unsigned long param1, double param2, + double param3, double param4, double param5, double param6, + double param7, double param8, int param9); + +/*@ requires valid_read_string(format); + assigns \result, stream->__fc_FILE_data; + assigns \result + \from (indirect: stream->__fc_FILE_id), + (indirect: stream->__fc_FILE_data), + (indirect: *(format + (0 ..))), (indirect: param0); + assigns stream->__fc_FILE_data + \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data, + (indirect: *(format + (0 ..))), param0; + */ +int fprintf_va_8(FILE * __restrict stream, char const * __restrict format, + int param0); + +void SST_SaveToFile(SST_Stats inst, FILE *out) +{ + int m; + int i; + int j; + fprintf_va_6(out,"%d\n",inst->n_samples); + m = 0; + while (m < inst->n_samples) { + i = get_runsbuf_index(inst,m); + j = get_buf_index(inst,m); + fprintf_va_7(out,"%08lx %08lx %.6e %.6e %.6e %.6e %.6e %.6e %.6e %d\n", + (unsigned long)inst->sample_times[i].tv_sec, + (unsigned long)inst->sample_times[i].tv_nsec / (unsigned long)1000, + inst->offsets[i],inst->orig_offsets[j],inst->peer_delays[i], + inst->peer_dispersions[j],inst->root_delays[j], + inst->root_dispersions[j],1.0,inst->stratum); + m ++; + } + fprintf_va_8(out,"%d\n",inst->asymmetry_run); + return; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_60(char const * __restrict s, char const * __restrict format, + int *param0); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param9); + requires \valid(param8); + requires \valid(param7); + requires \valid(param6); + requires \valid(param5); + requires \valid(param4); + requires \valid(param3); + requires \valid(param2); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param9); + ensures \initialized(param8); + ensures \initialized(param7); + ensures \initialized(param6); + ensures \initialized(param5); + ensures \initialized(param4); + ensures \initialized(param3); + ensures \initialized(param2); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param9, *param8, *param7, *param6, *param5, *param4, + *param3, *param2, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param9 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param8 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param7 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param6 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param5 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param4 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param3 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param2 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_61(char const * __restrict s, char const * __restrict format, + unsigned long *param0, unsigned long *param1, + double *param2, double *param3, double *param4, + double *param5, double *param6, double *param7, + double *param8, int *param9); + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param0); + ensures \initialized(param0); + assigns \result, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_62(char const * __restrict s, char const * __restrict format, + int *param0); + +int SST_LoadFromFile(SST_Stats inst, FILE *in) +{ + int __retres; + uint64_t sec; + unsigned long usec; + int i; + char line[1024]; + double weight; + char *tmp_3; + SST_ResetInstance(inst); + tmp_3 = fgets(line,(int)sizeof(line),in); + if (tmp_3) { + int tmp_4; + tmp_4 = sscanf_va_60((char const *)(line),"%d",& inst->n_samples); + if (tmp_4 == 1) { + if (inst->n_samples >= 0) { + if (inst->n_samples <= 64) { + char *tmp_1; + i = 0; + while (i < inst->n_samples) { + { + char *tmp; + tmp = fgets(line,(int)sizeof(line),in); + if (tmp) { + int tmp_0; + tmp_0 = sscanf_va_61((char const *)(line), + "%lx%lx%lf%lf%lf%lf%lf%lf%lf%d\n", + (unsigned long *)(& sec),& usec, + & inst->offsets[i], + & inst->orig_offsets[i], + & inst->peer_delays[i], + & inst->peer_dispersions[i], + & inst->root_delays[i], + & inst->root_dispersions[i],& weight, + & inst->stratum); + if (tmp_0 != 10) { + _LOR: + { + inst->n_samples = 0; + __retres = 0; + goto return_label; + } + } + else { + inst->sample_times[i].tv_sec = (long)sec; + inst->sample_times[i].tv_nsec = (long)((unsigned long)1000 * usec); + UTI_NormaliseTimespec(& inst->sample_times[i]); + } + } + else goto _LOR; + } + i ++; + } + tmp_1 = fgets(line,(int)sizeof(line),in); + if (tmp_1) { + int tmp_2; + tmp_2 = sscanf_va_62((char const *)(line),"%d\n", + & inst->asymmetry_run); + if (tmp_2 != 1) inst->asymmetry_run = 0; + } + else inst->asymmetry_run = 0; + } + else goto _LAND_1; + } + else goto _LAND_1; + } + else goto _LAND_1; + } + else { + _LAND_1: { + inst->n_samples = 0; + __retres = 0; + goto return_label; + } + } + if (! inst->n_samples) { + __retres = 1; + goto return_label; + } + inst->last_sample = inst->n_samples - 1; + find_min_delay_sample(inst); + SST_DoNewRegression(inst); + __retres = 1; + return_label: return __retres; +} + +void SST_DoSourceReport(SST_Stats inst, RPT_SourceReport *report, + struct timespec *now) +{ + int i; + int j; + struct timespec last_sample_time; + if (inst->n_samples > 0) { + double tmp; + i = get_runsbuf_index(inst,inst->n_samples - 1); + j = get_buf_index(inst,inst->n_samples - 1); + report->orig_latest_meas = inst->orig_offsets[j]; + report->latest_meas = inst->offsets[i]; + report->latest_meas_err = 0.5 * inst->root_delays[j] + inst->root_dispersions[j]; + report->stratum = inst->stratum; + last_sample_time = inst->sample_times[i]; + last_sample_time.tv_nsec = (long)0; + tmp = UTI_DiffTimespecsToDouble(now,& last_sample_time); + report->latest_meas_ago = (unsigned long)tmp; + } + else { + report->latest_meas_ago = (unsigned long)((unsigned int)(-1)); + report->orig_latest_meas = (double)0; + report->latest_meas = (double)0; + report->latest_meas_err = (double)0; + report->stratum = 0; + } + return; +} + +int SST_Samples(SST_Stats inst) +{ + int __retres; + __retres = inst->n_samples; + return __retres; +} + +void SST_DoSourcestatsReport(SST_Stats inst, RPT_SourcestatsReport *report, + struct timespec *now) +{ + double dspan; + double elapsed; + double sample_elapsed; + int li; + int lj; + int bi; + int bj; + report->n_samples = (unsigned long)inst->n_samples; + report->n_runs = (unsigned long)inst->nruns; + if (inst->n_samples > 1) { + int tmp; + li = get_runsbuf_index(inst,inst->n_samples - 1); + lj = get_buf_index(inst,inst->n_samples - 1); + tmp = get_runsbuf_index(inst,0); + ; + ; + dspan = UTI_DiffTimespecsToDouble(& inst->sample_times[li], + & inst->sample_times[tmp]); + report->span_seconds = (unsigned long)(dspan + 0.5); + if (inst->n_samples > 3) { + elapsed = UTI_DiffTimespecsToDouble(now,& inst->offset_time); + bi = get_runsbuf_index(inst,inst->best_single_sample); + bj = get_buf_index(inst,inst->best_single_sample); + sample_elapsed = UTI_DiffTimespecsToDouble(now, + & inst->sample_times[bi]); + report->est_offset = inst->estimated_offset + elapsed * inst->estimated_frequency; + report->est_offset_err = (inst->estimated_offset_sd + sample_elapsed * inst->skew) + ( + 0.5 * inst->root_delays[bj] + inst->root_dispersions[bj]); + } + else { + report->est_offset = inst->offsets[li]; + report->est_offset_err = 0.5 * inst->root_delays[lj] + inst->root_dispersions[lj]; + } + } + else { + report->span_seconds = (unsigned long)0; + report->est_offset = (double)0; + report->est_offset_err = (double)0; + } + report->resid_freq_ppm = 1.0e6 * inst->estimated_frequency; + report->skew_ppm = 1.0e6 * inst->skew; + report->sd = inst->std_dev; + return; +} + +double SST_GetJitterAsymmetry(SST_Stats inst) +{ + double __retres; + __retres = inst->asymmetry; + return __retres; +} + +void UTI_ZeroTimespec(struct timespec *ts) +{ + ts->tv_sec = (long)0; + ts->tv_nsec = (long)0; + return; +} + +int UTI_IsZeroTimespec(struct timespec *ts) +{ + int tmp; + if (! ts->tv_sec) + if (! ts->tv_nsec) tmp = 1; else tmp = 0; + else tmp = 0; + return tmp; +} + +void UTI_TimevalToTimespec(struct timeval *tv, struct timespec *ts) +{ + ts->tv_sec = tv->tv_sec; + ts->tv_nsec = (long)(1000 * tv->tv_usec); + return; +} + +void UTI_TimespecToTimeval(struct timespec *ts, struct timeval *tv) +{ + tv->tv_sec = ts->tv_sec; + tv->tv_usec = (int)(ts->tv_nsec / (long)1000); + return; +} + +double UTI_TimespecToDouble(struct timespec *ts) +{ + double __retres; + __retres = (double)ts->tv_sec + 1.0e-9 * (double)ts->tv_nsec; + return __retres; +} + +void UTI_DoubleToTimespec(double d, struct timespec *ts) +{ + ts->tv_sec = (long)d; + ts->tv_nsec = (long)(1.0e9 * (d - (double)ts->tv_sec)); + UTI_NormaliseTimespec(ts); + return; +} + +void UTI_NormaliseTimespec(struct timespec *ts) +{ + if (ts->tv_nsec >= (long)1000000000) goto _LOR; + else + if (ts->tv_nsec < (long)0) { + _LOR: + { + ts->tv_sec += ts->tv_nsec / (long)1000000000; + ts->tv_nsec %= (long)1000000000; + if (ts->tv_nsec < (long)0) { + (ts->tv_sec) --; + ts->tv_nsec += (long)1000000000; + } + } + } + return; +} + +double UTI_TimevalToDouble(struct timeval *tv) +{ + double __retres; + __retres = (double)tv->tv_sec + 1.0e-6 * (double)tv->tv_usec; + return __retres; +} + +void UTI_DoubleToTimeval(double a, struct timeval *b) +{ + double frac_part; + b->tv_sec = (long)a; + frac_part = 1.0e6 * (a - (double)b->tv_sec); + if (frac_part > (double)0) b->tv_usec = (int)(frac_part + 0.5); + else b->tv_usec = (int)(frac_part - 0.5); + UTI_NormaliseTimeval(b); + return; +} + +void UTI_NormaliseTimeval(struct timeval *x) +{ + if (x->tv_usec >= 1000000) goto _LOR; + else + if (x->tv_usec <= -1000000) { + _LOR: + { + x->tv_sec += (time_t)(x->tv_usec / 1000000); + x->tv_usec %= 1000000; + } + } + if (x->tv_usec < 0) { + x->tv_sec -= (time_t)1; + x->tv_usec += 1000000; + } + return; +} + +int UTI_CompareTimespecs(struct timespec *a, struct timespec *b) +{ + int __retres; + if (a->tv_sec < b->tv_sec) { + __retres = -1; + goto return_label; + } + if (a->tv_sec > b->tv_sec) { + __retres = 1; + goto return_label; + } + if (a->tv_nsec < b->tv_nsec) { + __retres = -1; + goto return_label; + } + if (a->tv_nsec > b->tv_nsec) { + __retres = 1; + goto return_label; + } + __retres = 0; + return_label: return __retres; +} + +void UTI_DiffTimespecs(struct timespec *result, struct timespec *a, + struct timespec *b) +{ + result->tv_sec = a->tv_sec - b->tv_sec; + result->tv_nsec = a->tv_nsec - b->tv_nsec; + UTI_NormaliseTimespec(result); + return; +} + +double UTI_DiffTimespecsToDouble(struct timespec *a, struct timespec *b) +{ + double __retres; + __retres = ((double)a->tv_sec - (double)b->tv_sec) + 1.0e-9 * (double)( + a->tv_nsec - b->tv_nsec); + return __retres; +} + +void UTI_AddDoubleToTimespec(struct timespec *start, double increment, + struct timespec *end) +{ + time_t int_part; + int_part = (long)increment; + end->tv_sec = start->tv_sec + int_part; + end->tv_nsec = (long)((double)start->tv_nsec + 1.0e9 * (increment - (double)int_part)); + UTI_NormaliseTimespec(end); + return; +} + +void UTI_AverageDiffTimespecs(struct timespec *earlier, + struct timespec *later, + struct timespec *average, double *diff) +{ + *diff = UTI_DiffTimespecsToDouble(later,earlier); + UTI_AddDoubleToTimespec(earlier,*diff / 2.0,average); + return; +} + +void UTI_AddDiffToTimespec(struct timespec *a, struct timespec *b, + struct timespec *c, struct timespec *result) +{ + double diff; + diff = UTI_DiffTimespecsToDouble(a,b); + UTI_AddDoubleToTimespec(c,diff,result); + return; +} + +static char buffer_pool[16][64]; +static int pool_ptr = 0; +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: param1), (indirect: param0); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), param1, param0; + */ +int snprintf_va_7(char * __restrict s, size_t n, + char const * __restrict format, long param0, + unsigned long param1); + +char *UTI_TimespecToString(struct timespec *ts) +{ + char *result; + pool_ptr = (pool_ptr + 1) % 16; + result = buffer_pool[pool_ptr]; + snprintf_va_7(result,(unsigned long)64,"%ld.%09lu",ts->tv_sec, + (unsigned long)ts->tv_nsec); + return result; +} + +char *UTI_Ntp64ToString(NTP_int64 *ntp_ts) +{ + struct timespec ts; + char *tmp; + UTI_Ntp64ToTimespec(ntp_ts,& ts); + tmp = UTI_TimespecToString(& ts); + return tmp; +} + +char *UTI_RefidToString(uint32_t ref_id) +{ + unsigned int i; + unsigned int j; + unsigned int c; + char *result; + pool_ptr = (pool_ptr + 1) % 16; + result = buffer_pool[pool_ptr]; + j = (unsigned int)0; + i = j; + while (1) { + if (i < (unsigned int)4) { + if (! (i < (unsigned int)(64 - 1))) break; + } + else break; + { + int tmp_0; + c = (ref_id >> ((unsigned int)24 - i * (unsigned int)8)) & (unsigned int)0xff; + tmp_0 = isprint((int)c); + if (tmp_0) { + unsigned int tmp; + tmp = j; + j ++; + *(result + tmp) = (char)c; + } + } + i ++; + } + *(result + j) = (char)'\000'; + return result; +} + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + assigns \result, *(s + (0 ..)); + assigns \result \from (indirect: n), (indirect: *(format + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))); + */ +int snprintf_va_8(char * __restrict s, size_t n, + char const * __restrict format); + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: param3), (indirect: param2), (indirect: param1), + (indirect: param0); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), param3, param2, + param1, param0; + */ +int snprintf_va_9(char * __restrict s, size_t n, + char const * __restrict format, unsigned long param0, + unsigned long param1, unsigned long param2, + unsigned long param3); + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), (indirect: param0); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), param0; + */ +int snprintf_va_10(char * __restrict s, size_t n, + char const * __restrict format, unsigned int param0); + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + assigns \result, *(s + (0 ..)); + assigns \result \from (indirect: n), (indirect: *(format + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))); + */ +int snprintf_va_11(char * __restrict s, size_t n, + char const * __restrict format); + +char *UTI_IPToString(IPAddr *addr) +{ + unsigned long a; + unsigned long b; + unsigned long c; + unsigned long d; + unsigned long ip; + uint8_t *ip6; + char *result; + pool_ptr = (pool_ptr + 1) % 16; + result = buffer_pool[pool_ptr]; + switch ((int)addr->family) { + case 0: snprintf_va_8(result,(unsigned long)64,"[UNSPEC]"); + break; + case 1: ip = (unsigned long)addr->addr.in4; + a = (ip >> 24) & (unsigned long)0xff; + b = (ip >> 16) & (unsigned long)0xff; + c = (ip >> 8) & (unsigned long)0xff; + d = (ip >> 0) & (unsigned long)0xff; + snprintf_va_9(result,(unsigned long)64,"%lu.%lu.%lu.%lu",a,b,c,d); + break; + case 2: ip6 = addr->addr.in6; + __FC_assert((64 >= 40) != 0,"util.c",308,"BUFFER_LENGTH >= 40"); + a = (unsigned long)0; + while (a < (unsigned long)8) { + snprintf_va_10(result + a * (unsigned long)5, + (unsigned long)40 - a * (unsigned long)5,"%04x:", + (unsigned int)(((int)*(ip6 + (unsigned long)2 * a) << 8) | (int)*( + ip6 + ((unsigned long)2 * a + (unsigned long)1)))); + a ++; + } + break; + default: snprintf_va_11(result,(unsigned long)64,"[UNKNOWN]"); + } + return result; +} + +/*@ requires valid_read_string(s); + requires valid_read_string(format); + requires \valid(param3); + requires \valid(param2); + requires \valid(param1); + requires \valid(param0); + ensures \initialized(param3); + ensures \initialized(param2); + ensures \initialized(param1); + ensures \initialized(param0); + assigns \result, *param3, *param2, *param1, *param0; + assigns \result + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param3 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param2 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param1 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + assigns *param0 + \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..))); + */ +int sscanf_va_63(char const * __restrict s, char const * __restrict format, + unsigned long *param0, unsigned long *param1, + unsigned long *param2, unsigned long *param3); + +int UTI_StringToIP(char const *addr, IPAddr *ip) +{ + int __retres; + unsigned long a; + unsigned long b; + unsigned long c; + unsigned long d; + unsigned long n; + int tmp; + tmp = sscanf_va_63(addr,"%lu.%lu.%lu.%lu",& a,& b,& c,& d); + n = (unsigned long)tmp; + if (n == (unsigned long)4) { + ip->family = (unsigned short)1; + ip->_pad = (unsigned short)0; + ip->addr.in4 = (unsigned int)(((((a & (unsigned long)0xff) << 24) | ( + (b & (unsigned long)0xff) << 16)) | ( + (c & (unsigned long)0xff) << 8)) | ( + d & (unsigned long)0xff)); + __retres = 1; + goto return_label; + } + __retres = 0; + return_label: return __retres; +} + +static int UTI_IPToRefid_MD5_hash = -1; +uint32_t UTI_IPToRefid(IPAddr *ip) +{ + uint32_t __retres; + unsigned char buf[16]; + switch ((int)ip->family) { + case 1: ; + __retres = ip->addr.in4; + goto return_label; + case 2: ; + if (UTI_IPToRefid_MD5_hash < 0) UTI_IPToRefid_MD5_hash = HSH_GetHashId + ("MD5"); + if (UTI_IPToRefid_MD5_hash < 0) goto _LOR; + else { + unsigned int tmp; + tmp = HSH_Hash(UTI_IPToRefid_MD5_hash, + (unsigned char const *)(ip->addr.in6), + (unsigned int)sizeof(ip->addr.in6), + (unsigned char const *)0,(unsigned int)0,buf, + (unsigned int)sizeof(buf)); + if ((unsigned long)tmp != sizeof(buf)) { + _LOR: + { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"Could not get MD5", + (void * const *)(__va_args)); + } + exit(1); + } + } + } + __retres = ((((unsigned int)buf[0] << 24) | (unsigned int)((int)buf[1] << 16)) | (unsigned int)( + (int)buf[2] << 8)) | (unsigned int)buf[3]; + goto return_label; + } + __retres = (unsigned int)0; + return_label: return __retres; +} + +static uint32_t UTI_IPToHash_seed = (unsigned int)0; +uint32_t UTI_IPToHash(IPAddr *ip) +{ + uint32_t __retres; + unsigned char *addr; + unsigned int i; + unsigned int len; + uint32_t hash; + switch ((int)ip->family) { + case 1: addr = (unsigned char *)(& ip->addr.in4); + len = (unsigned int)sizeof(ip->addr.in4); + break; + case 2: addr = (unsigned char *)(ip->addr.in6); + len = (unsigned int)sizeof(ip->addr.in6); + break; + default: __retres = (unsigned int)0; + goto return_label; + } + while (! UTI_IPToHash_seed) UTI_GetRandomBytes((void *)(& UTI_IPToHash_seed), + (unsigned int)sizeof(UTI_IPToHash_seed)); + i = (unsigned int)0; + hash = UTI_IPToHash_seed; + while (i < len) { + hash = (uint32_t)71 * hash + (uint32_t)*(addr + i); + i ++; + } + __retres = hash + UTI_IPToHash_seed; + return_label: return __retres; +} + +void UTI_IPHostToNetwork(IPAddr *src, IPAddr *dest) +{ + memset((void *)dest,0,sizeof(IPAddr)); + dest->family = htons(src->family); + switch ((int)src->family) { + case 1: dest->addr.in4 = htonl(src->addr.in4); + break; + case 2: + memcpy((void *)(dest->addr.in6),(void const *)(src->addr.in6), + sizeof(dest->addr.in6)); + break; + default: dest->family = htons((unsigned short)0); + } + return; +} + +void UTI_IPNetworkToHost(IPAddr *src, IPAddr *dest) +{ + dest->family = ntohs(src->family); + dest->_pad = (unsigned short)0; + switch ((int)dest->family) { + case 1: dest->addr.in4 = ntohl(src->addr.in4); + break; + case 2: + memcpy((void *)(dest->addr.in6),(void const *)(src->addr.in6), + sizeof(dest->addr.in6)); + break; + default: dest->family = (unsigned short)0; + } + return; +} + +int UTI_CompareIPs(IPAddr *a, IPAddr *b, IPAddr *mask) +{ + int __retres; + int i; + int d; + if ((int)a->family != (int)b->family) { + __retres = (int)a->family - (int)b->family; + goto return_label; + } + if (mask) + if ((int)mask->family != (int)b->family) mask = (IPAddr *)0; + switch ((int)a->family) { + case 0: __retres = 0; + goto return_label; + case 1: ; + if (mask) { + __retres = (int)((a->addr.in4 & mask->addr.in4) - (b->addr.in4 & mask->addr.in4)); + goto return_label; + } + else { + __retres = (int)(a->addr.in4 - b->addr.in4); + goto return_label; + } + case 2: i = 0; + d = 0; + while (1) { + if (! d) { + if (! (i < 16)) break; + } + else break; + if (mask) d = ((int)a->addr.in6[i] & (int)mask->addr.in6[i]) - ( + (int)b->addr.in6[i] & (int)mask->addr.in6[i]); + else d = (int)a->addr.in6[i] - (int)b->addr.in6[i]; + i ++; + } + __retres = d; + goto return_label; + } + __retres = 0; + return_label: return __retres; +} + +void UTI_SockaddrToIPAndPort(struct sockaddr *sa, IPAddr *ip, + unsigned short *port) +{ + switch ((int)sa->sa_family) { + case 2: ip->family = (unsigned short)1; + ip->addr.in4 = ntohl(((struct sockaddr_in *)sa)->sin_addr.s_addr); + *port = ntohs(((struct sockaddr_in *)sa)->sin_port); + break; + default: ip->family = (unsigned short)0; + *port = (unsigned short)0; + } + return; +} + +int UTI_IPAndPortToSockaddr(IPAddr *ip, unsigned short port, + struct sockaddr *sa) +{ + int __retres; + switch ((int)ip->family) { + case 1: memset((void *)sa,0,sizeof(struct sockaddr_in)); + sa->sa_family = (unsigned short)2; + ((struct sockaddr_in *)sa)->sin_addr.s_addr = htonl(ip->addr.in4); + ((struct sockaddr_in *)sa)->sin_port = htons(port); + __retres = (int)sizeof(struct sockaddr_in); + goto return_label; + default: memset((void *)sa,0,sizeof(struct sockaddr)); + sa->sa_family = (unsigned short)0; + __retres = 0; + goto return_label; + } + return_label: return __retres; +} + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + requires valid_read_string(param0); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: param1), (indirect: *(param0 + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), param1, + *(param0 + (0 ..)); + */ +int snprintf_va_12(char * __restrict s, size_t n, + char const * __restrict format, char *param0, int param1); + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + requires valid_read_nstring(param1, param0); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: *(param1 + (0 ..))), (indirect: param0); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), + *(param1 + (0 ..)), param0; + */ +int snprintf_va_13(char * __restrict s, size_t n, + char const * __restrict format, int param0, char *param1); + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + assigns \result, *(s + (0 ..)); + assigns \result \from (indirect: n), (indirect: *(format + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))); + */ +int snprintf_va_14(char * __restrict s, size_t n, + char const * __restrict format); + +char *UTI_SockaddrToString(struct sockaddr *sa) +{ + unsigned short port; + IPAddr ip; + char *result; + char *sun_path; + pool_ptr = (pool_ptr + 1) % 16; + result = buffer_pool[pool_ptr]; + switch ((int)sa->sa_family) { + char *tmp; + size_t tmp_0; + case 2: case 10: UTI_SockaddrToIPAndPort(sa,& ip,& port); + ; + tmp = UTI_IPToString(& ip); + ; + snprintf_va_12(result,(unsigned long)64,"%s:%hu",tmp,(int)port); + break; + case 1: sun_path = ((struct sockaddr_un *)sa)->sun_path; + snprintf_va_13(result,(unsigned long)64,"%.*s",64 - 1,sun_path); + tmp_0 = strlen((char const *)sun_path); + if (tmp_0 >= (size_t)64) *(result + (64 - 2)) = (char)'>'; + break; + default: snprintf_va_14(result,(unsigned long)64,"[UNKNOWN]"); + } + return result; +} + +char const *UTI_SockaddrFamilyToString(int family) +{ + char const *__retres; + switch (family) { + case 2: __retres = "IPv4"; + goto return_label; + case 10: __retres = "IPv6"; + goto return_label; + case 1: __retres = "Unix"; + goto return_label; + case 0: __retres = "UNSPEC"; + goto return_label; + default: __retres = "?"; + goto return_label; + } + return_label: return __retres; +} + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + assigns \result, *(s + (0 ..)); + assigns \result \from (indirect: n), (indirect: *(format + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))); + */ +int snprintf_va_15(char * __restrict s, size_t n, + char const * __restrict format); + +char *UTI_TimeToLogForm(time_t t) +{ + struct tm *stm; + char *result; + pool_ptr = (pool_ptr + 1) % 16; + result = buffer_pool[pool_ptr]; + stm = gmtime((time_t const *)(& t)); + if (stm) strftime(result,(unsigned long)64,"%Y-%m-%d %H:%M:%S", + (struct tm const *)stm); + else snprintf_va_15(result,(unsigned long)64,"INVALID INVALID "); + return result; +} + +void UTI_AdjustTimespec(struct timespec *old_ts, struct timespec *when, + struct timespec *new_ts, double *delta_time, + double dfreq, double doffset) +{ + double elapsed; + elapsed = UTI_DiffTimespecsToDouble(when,old_ts); + *delta_time = elapsed * dfreq - doffset; + UTI_AddDoubleToTimespec(old_ts,*delta_time,new_ts); + return; +} + +void UTI_GetNtp64Fuzz(NTP_int64 *ts, int precision) +{ + int start; + int bits; + int tmp; + uint32_t tmp_0; + if (precision >= -32) + if (precision <= 32) tmp = 1; else tmp = 0; + else tmp = 0; + __FC_assert(tmp != 0,"util.c",644,"precision >= -32 && precision <= 32"); + __FC_assert((sizeof(*ts) == (unsigned long)8) != 0,"util.c",645, + "sizeof (*ts) == 8"); + start = (int)(sizeof(*ts) - (unsigned long)(((precision + 32) + 7) / 8)); + tmp_0 = (unsigned int)0; + ts->lo = tmp_0; + ts->hi = tmp_0; + UTI_GetRandomBytes((void *)((unsigned char *)ts + start), + (unsigned int)(sizeof(*ts) - (unsigned long)start)); + bits = (precision + 32) % 8; + if (bits) *((unsigned char *)ts + start) = (unsigned char)((unsigned int)*( + (unsigned char *)ts + start) % ( + 1U << bits)); + return; +} + +double UTI_Ntp32ToDouble(NTP_int32 x) +{ + double __retres; + uint32_t tmp; + tmp = ntohl(x); + __retres = (double)tmp / 65536.0; + return __retres; +} + +NTP_int32 UTI_DoubleToNtp32(double x) +{ + NTP_int32 r; + NTP_int32 tmp; + if (x >= 4294967295.0 / 65536.0) r = 0xffffffff; + else + if (x <= 0.0) r = (unsigned int)0; + else { + x *= 65536.0; + r = (unsigned int)x; + if ((double)r < x) r += (NTP_int32)1; + } + tmp = htonl(r); + return tmp; +} + +void UTI_ZeroNtp64(NTP_int64 *ts) +{ + uint32_t tmp; + tmp = htonl((unsigned int)0); + ts->lo = tmp; + ts->hi = tmp; + return; +} + +int UTI_IsZeroNtp64(NTP_int64 *ts) +{ + int tmp; + if (! ts->hi) + if (! ts->lo) tmp = 1; else tmp = 0; + else tmp = 0; + return tmp; +} + +int UTI_CompareNtp64(NTP_int64 *a, NTP_int64 *b) +{ + int __retres; + int32_t diff; + uint32_t tmp; + uint32_t tmp_0; + int tmp_3; + uint32_t tmp_1; + uint32_t tmp_2; + if (a->hi == b->hi) + if (a->lo == b->lo) { + __retres = 0; + goto return_label; + } + tmp = ntohl(a->hi); + tmp_0 = ntohl(b->hi); + diff = (int)(tmp - tmp_0); + if (diff < 0) { + __retres = -1; + goto return_label; + } + if (diff > 0) { + __retres = 1; + goto return_label; + } + tmp_1 = ntohl(a->lo); + tmp_2 = ntohl(b->lo); + if (tmp_1 < tmp_2) tmp_3 = -1; else tmp_3 = 1; + __retres = tmp_3; + return_label: return __retres; +} + +int UTI_IsEqualAnyNtp64(NTP_int64 *a, NTP_int64 *b1, NTP_int64 *b2, + NTP_int64 *b3) +{ + int __retres; + if (b1) + if (a->lo == b1->lo) + if (a->hi == b1->hi) { + __retres = 1; + goto return_label; + } + if (b2) + if (a->lo == b2->lo) + if (a->hi == b2->hi) { + __retres = 1; + goto return_label; + } + if (b3) + if (a->lo == b3->lo) + if (a->hi == b3->hi) { + __retres = 1; + goto return_label; + } + __retres = 0; + return_label: return __retres; +} + +void UTI_TimespecToNtp64(struct timespec *src, NTP_int64 *dest, + NTP_int64 *fuzz) +{ + uint32_t hi; + uint32_t lo; + uint32_t sec; + uint32_t nsec; + sec = (unsigned int)src->tv_sec; + nsec = (unsigned int)src->tv_nsec; + if (! nsec) { + if (! sec) { + lo = (unsigned int)0; + hi = lo; + } + else goto _LAND; + } + else { + _LAND: + { + hi = htonl((unsigned int)((unsigned long)sec + 0x83aa7e80UL)); + lo = htonl((unsigned int)(4.294967296 * (double)nsec)); + if (fuzz) { + hi ^= fuzz->hi; + lo ^= fuzz->lo; + } + } + } + dest->hi = hi; + dest->lo = lo; + return; +} + +void UTI_Ntp64ToTimespec(NTP_int64 *src, struct timespec *dest) +{ + uint32_t ntp_sec; + uint32_t ntp_frac; + int tmp; + tmp = UTI_IsZeroNtp64(src); + if (tmp) { + UTI_ZeroTimespec(dest); + goto return_label; + } + ntp_sec = ntohl(src->hi); + ntp_frac = ntohl(src->lo); + dest->tv_sec = (long)(ntp_sec - (unsigned int)((unsigned long long)( + 1516643532LL - (long long)( + (18250 * 24) * 3600)) + (unsigned long long)0x83aa7e80UL)) + (long)( + 1516643532LL - (long long)((18250 * 24) * 3600)); + dest->tv_nsec = (long)((double)ntp_frac / 4.294967296); + return_label: return; +} + +int UTI_IsTimeOffsetSane(struct timespec *ts, double offset) +{ + int __retres; + double t; + double tmp; + if (offset > - 4294967296.0) { + if (! (offset < 4294967296.0)) { + __retres = 0; + goto return_label; + } + } + else { + __retres = 0; + goto return_label; + } + tmp = UTI_TimespecToDouble(ts); + t = tmp + offset; + if (t < 0.0) { + __retres = 0; + goto return_label; + } + if (t < (double)(1516643532LL - (long long)((18250 * 24) * 3600))) { + __retres = 0; + goto return_label; + } + else + if (t > (double)((1516643532LL - (long long)((18250 * 24) * 3600)) + ( + 1LL << 32))) { + __retres = 0; + goto return_label; + } + __retres = 1; + return_label: return __retres; +} + +double UTI_Log2ToDouble(int l) +{ + double __retres; + if (l >= 0) { + if (l > 31) l = 31; + __retres = (double)((unsigned int)1 << l); + goto return_label; + } + else { + if (l < -31) l = -31; + __retres = 1.0 / (double)((unsigned int)1 << - l); + goto return_label; + } + return_label: return __retres; +} + +void UTI_TimespecNetworkToHost(Timespec *src, struct timespec *dest) +{ + uint32_t sec_low; + uint32_t nsec; + uint32_t sec_high; + sec_low = ntohl(src->tv_sec_low); + sec_high = ntohl(src->tv_sec_high); + if (sec_high == (uint32_t)0x7fffffff) sec_high = (unsigned int)0; + dest->tv_sec = (long)(((unsigned long)sec_high << 32) | (unsigned long)sec_low); + nsec = ntohl(src->tv_nsec); + if (nsec < 999999999U) dest->tv_nsec = (long)nsec; + else dest->tv_nsec = (long)999999999U; + return; +} + +void UTI_TimespecHostToNetwork(struct timespec *src, Timespec *dest) +{ + dest->tv_nsec = htonl((unsigned int)src->tv_nsec); + dest->tv_sec_high = htonl((unsigned int)((unsigned long)src->tv_sec >> 32)); + dest->tv_sec_low = htonl((unsigned int)src->tv_sec); + return; +} + +double UTI_FloatNetworkToHost(Float f) +{ + double __retres; + int32_t exp_0; + int32_t coef; + uint32_t x; + double tmp; + x = ntohl((unsigned int)f.f); + exp_0 = (int)(x >> ((int)sizeof(int32_t) * 8 - 7)); + if (exp_0 >= 1 << (7 - 1)) exp_0 -= 1 << 7; + exp_0 -= (int)sizeof(int32_t) * 8 - 7; + coef = (int)(x % (1U << ((int)sizeof(int32_t) * 8 - 7))); + if (coef >= 1 << (((int)sizeof(int32_t) * 8 - 7) - 1)) coef -= 1 << ( + (int)sizeof(int32_t) * 8 - 7); + tmp = pow(2.0,(double)exp_0); + ; + __retres = (double)coef * tmp; + return __retres; +} + +Float UTI_FloatHostToNetwork(double x) +{ + int32_t exp_0; + int32_t coef; + int32_t neg; + Float f; + uint32_t tmp_2; + if (x < 0.0) { + x = - x; + neg = 1; + } + else + if (x >= 0.0) neg = 0; + else { + x = 0.0; + neg = 0; + } + if (x < 1.0e-100) { + coef = 0; + exp_0 = coef; + } + else + if (x > 1.0e100) { + exp_0 = - (- (1 << (7 - 1))) - 1; + coef = (- (- (1 << (((int)sizeof(int32_t) * 8 - 7) - 1))) - 1) + neg; + } + else { + double tmp; + double tmp_0; + double tmp_1; + tmp = log(x); + tmp_0 = log((double)2); + exp_0 = (int)(tmp / tmp_0 + (double)1); + tmp_1 = pow(2.0,(double)(- exp_0 + ((int)sizeof(int32_t) * 8 - 7))); + coef = (int)(x * tmp_1 + 0.5); + __FC_assert((coef > 0) != 0,"util.c",949,"coef > 0"); + while (coef > (- (- (1 << (((int)sizeof(int32_t) * 8 - 7) - 1))) - 1) + neg) { + coef >>= 1; + exp_0 ++; + } + if (exp_0 > - (- (1 << (7 - 1))) - 1) { + exp_0 = - (- (1 << (7 - 1))) - 1; + coef = (- (- (1 << (((int)sizeof(int32_t) * 8 - 7) - 1))) - 1) + neg; + } + else + if (exp_0 < - (1 << (7 - 1))) + if (exp_0 + ((int)sizeof(int32_t) * 8 - 7) >= - (1 << (7 - 1))) { + coef >>= - (1 << (7 - 1)) - exp_0; + exp_0 = - (1 << (7 - 1)); + } + else { + coef = 0; + exp_0 = coef; + } + } + if (neg) coef = (int)(((unsigned int)(- coef) << 7) >> 7); + tmp_2 = htonl(((unsigned int)exp_0 << ((int)sizeof(int32_t) * 8 - 7)) | (unsigned int)coef); + f.f = (int)tmp_2; + return f; +} + +int UTI_FdSetCloexec(int fd) +{ + int __retres; + int flags; + flags = __va_fcntl_void(fd,1); + if (flags != -1) { + int tmp_0; + int tmp; + flags |= 1; + tmp = __va_fcntl_int(fd,2,flags); + if (tmp) tmp_0 = 0; else tmp_0 = 1; + __retres = tmp_0; + goto return_label; + } + __retres = 0; + return_label: return __retres; +} + +void UTI_SetQuitSignalsHandler(void (*handler)(int ), int ignore_sigpipe) +{ + struct sigaction sa; + int tmp; + int tmp_0; + int tmp_1; + int tmp_2; + int tmp_3; + int tmp_4; + sa.sa_handler = handler; + sa.sa_flags = 0x10000000; + tmp = sigemptyset(& sa.sa_mask); + if (tmp < 0) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"sigemptyset() failed", + (void * const *)(__va_args)); + } + exit(1); + } + tmp_0 = sigaction(2,(struct sigaction const *)(& sa),(struct sigaction *)0); + if (tmp_0 < 0) { + { + int __va_arg0 = 2; + void *__va_args_13[1] = {& __va_arg0}; + LOG_Message(LOGS_FATAL,"sigaction(%d) failed", + (void * const *)(__va_args_13)); + } + exit(1); + } + tmp_1 = sigaction(15,(struct sigaction const *)(& sa), + (struct sigaction *)0); + if (tmp_1 < 0) { + { + int __va_arg0_15 = 15; + void *__va_args_17[1] = {& __va_arg0_15}; + LOG_Message(LOGS_FATAL,"sigaction(%d) failed", + (void * const *)(__va_args_17)); + } + exit(1); + } + tmp_2 = sigaction(3,(struct sigaction const *)(& sa),(struct sigaction *)0); + if (tmp_2 < 0) { + { + int __va_arg0_19 = 3; + void *__va_args_21[1] = {& __va_arg0_19}; + LOG_Message(LOGS_FATAL,"sigaction(%d) failed", + (void * const *)(__va_args_21)); + } + exit(1); + } + tmp_3 = sigaction(1,(struct sigaction const *)(& sa),(struct sigaction *)0); + if (tmp_3 < 0) { + { + int __va_arg0_23 = 1; + void *__va_args_25[1] = {& __va_arg0_23}; + LOG_Message(LOGS_FATAL,"sigaction(%d) failed", + (void * const *)(__va_args_25)); + } + exit(1); + } + if (ignore_sigpipe) sa.sa_handler = SIG_IGN; + tmp_4 = sigaction(13,(struct sigaction const *)(& sa), + (struct sigaction *)0); + if (tmp_4 < 0) { + { + int __va_arg0_27 = 13; + void *__va_args_29[1] = {& __va_arg0_27}; + LOG_Message(LOGS_FATAL,"sigaction(%d) failed", + (void * const *)(__va_args_29)); + } + exit(1); + } + return; +} + +/*@ requires + \valid(s + (0 .. n - 1)) ∨ + \valid(s + (0 .. format_length(format) - 1)); + requires valid_read_string(format); + requires valid_read_string(param0); + assigns \result, *(s + (0 ..)); + assigns \result + \from (indirect: n), (indirect: *(format + (0 ..))), + (indirect: *(param0 + (0 ..))); + assigns *(s + (0 ..)) + \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..)); + */ +int snprintf_va_16(char * __restrict s, size_t n, + char const * __restrict format, char *param0); + +char *UTI_PathToDir(char const *path) +{ + char *__retres; + char *dir; + char *slash; + slash = strrchr(path,'/'); + if (! slash) { + char *tmp; + tmp = Strdup("."); + __retres = tmp; + goto return_label; + } + if ((void *)slash == (void *)path) { + char *tmp_0; + tmp_0 = Strdup("/"); + __retres = tmp_0; + goto return_label; + } + dir = (char *)Malloc((unsigned long)((slash - path) + (long)1)); + snprintf_va_16(dir,(unsigned long)((slash - path) + (long)1),"%s", + (char *)path); + __retres = dir; + return_label: return __retres; +} + +static int create_dir(char *p, mode_t mode_0, uid_t uid, gid_t gid) +{ + int __retres; + int status; + struct stat buf; + int tmp_1; + int tmp_3; + status = stat((char const *)p,& buf); + if (status < 0) { + if (__fc_errno != 2) { + char *tmp; + tmp = strerror(__fc_errno); + ; + { + char *__va_arg0 = p; + char *__va_arg1 = tmp; + void *__va_args[2] = {& __va_arg0, & __va_arg1}; + LOG_Message(LOGS_ERR,"Could not access %s : %s", + (void * const *)(__va_args)); + } + __retres = 0; + goto return_label; + } + } + else { + if ((buf.st_mode & (unsigned int)0170000) == (unsigned int)0040000) { + __retres = 1; + goto return_label; + } + { + char *__va_arg0_16 = p; + void *__va_args_18[1] = {& __va_arg0_16}; + LOG_Message(LOGS_ERR,"%s is not directory", + (void * const *)(__va_args_18)); + } + __retres = 0; + goto return_label; + } + tmp_1 = mkdir((char const *)p,mode_0); + if (tmp_1 < 0) { + char *tmp_0; + tmp_0 = strerror(__fc_errno); + ; + { + char *__va_arg0_20 = p; + char *__va_arg1_22 = tmp_0; + void *__va_args_24[2] = {& __va_arg0_20, & __va_arg1_22}; + LOG_Message(LOGS_ERR,"Could not create directory %s : %s", + (void * const *)(__va_args_24)); + } + __retres = 0; + goto return_label; + } + tmp_3 = chown((char const *)p,uid,gid); + if (tmp_3 < 0) { + char *tmp_2; + tmp_2 = strerror(__fc_errno); + ; + { + char *__va_arg0_26 = p; + char *__va_arg1_28 = tmp_2; + void *__va_args_30[2] = {& __va_arg0_26, & __va_arg1_28}; + LOG_Message(LOGS_ERR,"Could not change ownership of %s : %s", + (void * const *)(__va_args_30)); + } + rmdir((char const *)p); + __retres = 0; + goto return_label; + } + __retres = 1; + return_label: return __retres; +} + +int UTI_CreateDirAndParents(char const *path, mode_t mode_0, uid_t uid, + gid_t gid) +{ + int __retres; + char *p; + int i; + int j; + int k; + int last; + int tmp; + void *tmp_1; + size_t tmp_0; + tmp = strcmp(path,"."); + if (! tmp) { + __retres = 1; + goto return_label; + } + tmp_0 = strlen(path); + tmp_1 = Malloc((size_t)1 + tmp_0); + p = (char *)tmp_1; + k = 0; + i = k; + while (1) { + { + int tmp_2; + int tmp_3; + tmp_2 = i; + i ++; + tmp_3 = k; + k ++; + *(p + tmp_2) = *(path + tmp_3); + if ((int)*(path + k) == '/') goto _LOR; + else + if (! *(path + k)) { + _LOR: + { + int tmp_7; + gid_t tmp_4; + uid_t tmp_5; + mode_t tmp_6; + last = 1; + j = k; + while (*(path + j)) { + if ((int)*(path + j) != '/') { + k = j - 1; + last = 0; + break; + } + j ++; + } + *(p + i) = (char)0; + if (last) tmp_4 = gid; else tmp_4 = (unsigned int)0; + if (last) tmp_5 = uid; else tmp_5 = (unsigned int)0; + if (last) tmp_6 = mode_0; else tmp_6 = (unsigned int)0755; + ; + tmp_7 = create_dir(p,tmp_6,tmp_5,tmp_4); + if (! tmp_7) { + free((void *)p); + __retres = 0; + goto return_label; + } + if (last) break; + } + } + if (! *(path + k)) break; + } + } + free((void *)p); + __retres = 1; + return_label: return __retres; +} + +int UTI_CheckDirPermissions(char const *path, mode_t perm, uid_t uid, + gid_t gid) +{ + int __retres; + struct stat buf; + int tmp_0; + tmp_0 = stat(path,& buf); + if (tmp_0) { + char *tmp; + tmp = strerror(__fc_errno); + ; + { + char const *__va_arg0 = path; + char *__va_arg1 = tmp; + void *__va_args[2] = {& __va_arg0, & __va_arg1}; + LOG_Message(LOGS_ERR,"Could not access %s : %s", + (void * const *)(__va_args)); + } + __retres = 0; + goto return_label; + } + if (! ((buf.st_mode & (unsigned int)0170000) == (unsigned int)0040000)) { + { + char const *__va_arg0_12 = path; + void *__va_args_14[1] = {& __va_arg0_12}; + LOG_Message(LOGS_ERR,"%s is not directory", + (void * const *)(__va_args_14)); + } + __retres = 0; + goto return_label; + } + if ((buf.st_mode & (unsigned int)0777) & ~ perm) { + { + char const *__va_arg0_16 = path; + void *__va_args_18[1] = {& __va_arg0_16}; + LOG_Message(LOGS_ERR,"Wrong permissions on %s", + (void * const *)(__va_args_18)); + } + __retres = 0; + goto return_label; + } + if (buf.st_uid != uid) { + { + char const *__va_arg0_20 = path; + char const *__va_arg1_22 = "UID"; + uid_t __va_arg2 = uid; + void *__va_args_25[3] = {& __va_arg0_20, & __va_arg1_22, & __va_arg2}; + LOG_Message(LOGS_ERR,"Wrong owner of %s (%s != %u)", + (void * const *)(__va_args_25)); + } + __retres = 0; + goto return_label; + } + if (buf.st_gid != gid) { + { + char const *__va_arg0_27 = path; + char const *__va_arg1_29 = "GID"; + gid_t __va_arg2_31 = gid; + void *__va_args_33[3] = + {& __va_arg0_27, & __va_arg1_29, & __va_arg2_31}; + LOG_Message(LOGS_ERR,"Wrong owner of %s (%s != %u)", + (void * const *)(__va_args_33)); + } + __retres = 0; + goto return_label; + } + __retres = 1; + return_label: return __retres; +} + +void UTI_DropRoot(uid_t uid, gid_t gid) +{ + int tmp_0; + int tmp_2; + int tmp_4; + tmp_0 = setgroups((unsigned long)0,(gid_t const *)0); + if (tmp_0) { + char *tmp; + tmp = strerror(__fc_errno); + { + char *__va_arg0 = tmp; + void *__va_args[1] = {& __va_arg0}; + LOG_Message(LOGS_FATAL,"setgroups() failed : %s", + (void * const *)(__va_args)); + } + exit(1); + } + tmp_2 = setgid(gid); + if (tmp_2) { + char *tmp_1; + tmp_1 = strerror(__fc_errno); + ; + { + gid_t __va_arg0_12 = gid; + char *__va_arg1 = tmp_1; + void *__va_args_15[2] = {& __va_arg0_12, & __va_arg1}; + LOG_Message(LOGS_FATAL,"setgid(%u) failed : %s", + (void * const *)(__va_args_15)); + } + exit(1); + } + tmp_4 = setuid(uid); + if (tmp_4) { + char *tmp_3; + tmp_3 = strerror(__fc_errno); + ; + { + uid_t __va_arg0_17 = uid; + char *__va_arg1_19 = tmp_3; + void *__va_args_21[2] = {& __va_arg0_17, & __va_arg1_19}; + LOG_Message(LOGS_FATAL,"setuid(%u) failed : %s", + (void * const *)(__va_args_21)); + } + exit(1); + } + return; +} + +static FILE *UTI_GetRandomBytesUrandom_f = (FILE *)0; +void UTI_GetRandomBytesUrandom(void *buf, unsigned int len) +{ + size_t tmp_0; + if (! UTI_GetRandomBytesUrandom_f) UTI_GetRandomBytesUrandom_f = fopen + ("/dev/urandom","r"); + if (! UTI_GetRandomBytesUrandom_f) { + char *tmp; + tmp = strerror(__fc_errno); + { + char const *__va_arg0 = "/dev/urandom"; + char *__va_arg1 = tmp; + void *__va_args[2] = {& __va_arg0, & __va_arg1}; + LOG_Message(LOGS_FATAL,"Can\'t open %s : %s", + (void * const *)(__va_args)); + } + exit(1); + } + tmp_0 = fread(buf,(unsigned long)1,(unsigned long)len, + UTI_GetRandomBytesUrandom_f); + ; + if (tmp_0 != (size_t)len) { + { + char const *__va_arg0_9 = "/dev/urandom"; + void *__va_args_11[1] = {& __va_arg0_9}; + LOG_Message(LOGS_FATAL,"Can\'t read from %s", + (void * const *)(__va_args_11)); + } + exit(1); + } + return; +} + +void UTI_GetRandomBytes(void *buf, unsigned int len) +{ + UTI_GetRandomBytesUrandom(buf,len); + return; +} + +void DNS_Name2IPAddressAsync(char const *name, + void (*handler)(DNS_Status status, int n_addrs, + IPAddr *ip_addrs, void *anything), + void *anything); + +void NSD_Initialise(void); + +void NSD_Finalise(void); + +int NSD_GetAuthDelay(uint32_t key_id); + +int NSD_SignAndSendPacket(uint32_t key_id, NTP_Packet *packet, + NTP_Remote_Address *remote_addr, + NTP_Local_Address *local_addr, int length); + +static void resolve_name(int fd, int event, void *anything) +{ + struct DNS_Async_Instance *inst; + IPAddr addrs[16]; + DNS_Status status; + int i; + inst = (struct DNS_Async_Instance *)anything; + SCH_RemoveFileHandler(inst->pipe[0]); + close(inst->pipe[0]); + close(inst->pipe[1]); + status = DNS_Name2IPAddress(inst->name,addrs,16); + i = 0; + while (1) { + if (status == (unsigned int)DNS_Success) + if (i < 16) { + if (! ((int)addrs[i].family != 0)) break; + } + else break; + else break; + i ++; + } + (*(inst->handler))(status,i,addrs,inst->arg); + free((void *)inst); + return; +} + +void DNS_Name2IPAddressAsync(char const *name, + void (*handler)(DNS_Status status, int n_addrs, + IPAddr *ip_addrs, void *anything), + void *anything) +{ + struct DNS_Async_Instance *inst; + int tmp_0; + ssize_t tmp_1; + inst = (struct DNS_Async_Instance *)Malloc(sizeof(struct DNS_Async_Instance)); + inst->name = name; + inst->handler = handler; + inst->arg = anything; + tmp_0 = pipe(inst->pipe); + if (tmp_0) { + { + void *__va_args[1] = {(void *)0}; + LOG_Message(LOGS_FATAL,"pipe() failed",(void * const *)(__va_args)); + } + exit(1); + } + UTI_FdSetCloexec(inst->pipe[0]); + UTI_FdSetCloexec(inst->pipe[1]); + SCH_AddFileHandler(inst->pipe[0],1,& resolve_name,(void *)inst); + tmp_1 = write(inst->pipe[1],(void const *)"",(unsigned long)1); + return; +} + +void NSD_Initialise(void) +{ + return; +} + +void NSD_Finalise(void) +{ + return; +} + +int NSD_GetAuthDelay(uint32_t key_id) +{ + int __retres; + __retres = 0; + return __retres; +} + +int NSD_SignAndSendPacket(uint32_t key_id, NTP_Packet *packet, + NTP_Remote_Address *remote_addr, + NTP_Local_Address *local_addr, int length) +{ + int __retres; + __retres = 0; + return __retres; +} + +int volatile qsort_nondet; +int eva_main(void) +{ + char argv0[256]; + char argv1[256]; + char argv2[256]; + char argv3[256]; + char argv4[256]; + int tmp_0; + int argc = Frama_C_interval(0,5); + char *argv[6] = {argv0, argv1, argv2, argv3, argv4, (char *)0}; + { + int i = 0; + /*@ loop unroll 5; */ + while (i < 5) { + Frama_C_make_unknown(argv[i],(unsigned long)255); + *(argv[i] + 255) = (char)0; + i ++; + } + } + tmp_0 = main(argc,argv); + return tmp_0; +} + +void RGR_WeightedRegression(double *x, double *y, double *w, int n, + double *b0, double *b1, double *s2, double *sb0, + double *sb1) +{ + double P; + double Q; + double U; + double V; + double W; + double diff; + double u; + double ui; + double aa; + int i; + __FC_assert((n >= 3) != 0,"regress.c",67,"n >= 3"); + U = (double)0; + W = U; + i = 0; + while (i < n) { + U += *(x + i) / *(w + i); + W += 1.0 / *(w + i); + i ++; + } + u = U / W; + V = 0.0; + Q = V; + P = Q; + i = 0; + while (i < n) { + ui = *(x + i) - u; + P += *(y + i) / *(w + i); + Q += (*(y + i) * ui) / *(w + i); + V += (ui * ui) / *(w + i); + i ++; + } + *b1 = Q / V; + *b0 = P / W - *b1 * u; + *s2 = 0.0; + i = 0; + while (i < n) { + diff = (*(y + i) - *b0) - *b1 * *(x + i); + *s2 += (diff * diff) / *(w + i); + i ++; + } + *s2 /= (double)(n - 2); + *sb1 = sqrt(*s2 / V); + aa = u * *sb1; + *sb0 = sqrt(*s2 / W + aa * aa); + *s2 *= (double)n / W; + return; +} + +static float const RGR_GetTCoef_coefs[40] = + {(float)636.6, + (float)31.6, + (float)12.92, + (float)8.61, + (float)6.869, + (float)5.959, + (float)5.408, + (float)5.041, + (float)4.781, + (float)4.587, + (float)4.437, + (float)4.318, + (float)4.221, + (float)4.140, + (float)4.073, + (float)4.015, + (float)3.965, + (float)3.922, + (float)3.883, + (float)3.850, + (float)3.819, + (float)3.792, + (float)3.768, + (float)3.745, + (float)3.725, + (float)3.707, + (float)3.690, + (float)3.674, + (float)3.659, + (float)3.646, + (float)3.633, + (float)3.622, + (float)3.611, + (float)3.601, + (float)3.591, + (float)3.582, + (float)3.574, + (float)3.566, + (float)3.558, + (float)3.551}; +double RGR_GetTCoef(int dof) +{ + double __retres; + if (dof <= 40) { + __retres = (double)RGR_GetTCoef_coefs[dof - 1]; + goto return_label; + } + else { + __retres = 3.5; + goto return_label; + } + return_label: return __retres; +} + +static float const RGR_GetChi2Coef_coefs[64] = + {(float)2.706, + (float)4.605, + (float)6.251, + (float)7.779, + (float)9.236, + (float)10.645, + (float)12.017, + (float)13.362, + (float)14.684, + (float)15.987, + (float)17.275, + (float)18.549, + (float)19.812, + (float)21.064, + (float)22.307, + (float)23.542, + (float)24.769, + (float)25.989, + (float)27.204, + (float)28.412, + (float)29.615, + (float)30.813, + (float)32.007, + (float)33.196, + (float)34.382, + (float)35.563, + (float)36.741, + (float)37.916, + (float)39.087, + (float)40.256, + (float)41.422, + (float)42.585, + (float)43.745, + (float)44.903, + (float)46.059, + (float)47.212, + (float)48.363, + (float)49.513, + (float)50.660, + (float)51.805, + (float)52.949, + (float)54.090, + (float)55.230, + (float)56.369, + (float)57.505, + (float)58.641, + (float)59.774, + (float)60.907, + (float)62.038, + (float)63.167, + (float)64.295, + (float)65.422, + (float)66.548, + (float)67.673, + (float)68.796, + (float)69.919, + (float)71.040, + (float)72.160, + (float)73.279, + (float)74.397, + (float)75.514, + (float)76.630, + (float)77.745, + (float)78.860}; +double RGR_GetChi2Coef(int dof) +{ + double __retres; + if (dof <= 64) { + __retres = (double)RGR_GetChi2Coef_coefs[dof - 1]; + goto return_label; + } + else { + __retres = 1.2 * (double)dof; + goto return_label; + } + return_label: return __retres; +} + +static char critical_runs[130] = + {(char)0, + (char)0, + (char)0, + (char)0, + (char)0, + (char)0, + (char)0, + (char)0, + (char)2, + (char)3, + (char)3, + (char)3, + (char)4, + (char)4, + (char)5, + (char)5, + (char)5, + (char)6, + (char)6, + (char)7, + (char)7, + (char)7, + (char)8, + (char)8, + (char)9, + (char)9, + (char)9, + (char)10, + (char)10, + (char)11, + (char)11, + (char)11, + (char)12, + (char)12, + (char)13, + (char)13, + (char)14, + (char)14, + (char)14, + (char)15, + (char)15, + (char)16, + (char)16, + (char)17, + (char)17, + (char)18, + (char)18, + (char)18, + (char)19, + (char)19, + (char)20, + (char)20, + (char)21, + (char)21, + (char)21, + (char)22, + (char)22, + (char)23, + (char)23, + (char)24, + (char)24, + (char)25, + (char)25, + (char)26, + (char)26, + (char)26, + (char)27, + (char)27, + (char)28, + (char)28, + (char)29, + (char)29, + (char)30, + (char)30, + (char)30, + (char)31, + (char)31, + (char)32, + (char)32, + (char)33, + (char)33, + (char)34, + (char)34, + (char)35, + (char)35, + (char)35, + (char)36, + (char)36, + (char)37, + (char)37, + (char)38, + (char)38, + (char)39, + (char)39, + (char)40, + (char)40, + (char)40, + (char)41, + (char)41, + (char)42, + (char)42, + (char)43, + (char)43, + (char)44, + (char)44, + (char)45, + (char)45, + (char)46, + (char)46, + (char)46, + (char)47, + (char)47, + (char)48, + (char)48, + (char)49, + (char)49, + (char)50, + (char)50, + (char)51, + (char)51, + (char)52, + (char)52, + (char)52, + (char)53, + (char)53, + (char)54, + (char)54, + (char)55, + (char)55, + (char)56}; +static int n_runs_from_residuals(double *resid, int n) +{ + int nruns; + int i; + nruns = 1; + i = 1; + while (i < n) { + if (*(resid + (i - 1)) < 0.0) { + if (*(resid + i) < 0.0) goto _LOR; else goto _LAND_0; + } + else { + _LAND_0: ; + if (*(resid + (i - 1)) > 0.0) { + if (*(resid + i) > 0.0) _LOR: ; else goto _LAND; + } + else _LAND: nruns ++; + } + i ++; + } + return nruns; +} + +int RGR_FindBestRegression(double *x, double *y, double *w, int n, int m, + int min_samples_0, double *b0, double *b1, + double *s2, double *sb0, double *sb1, + int *new_start, int *n_runs, int *dof) +{ + int __retres; + double P; + double Q; + double U; + double V; + double W; + double resid[64 * 2]; + double ss; + double a; + double b; + double u; + double ui; + double aa; + int start; + int resid_start; + int nruns; + int npoints; + int i; + int tmp; + if (n <= 64) + if (m >= 0) tmp = 1; else tmp = 0; + else tmp = 0; + __FC_assert(tmp != 0,"regress.c",242,"n <= MAX_POINTS && m >= 0"); + __FC_assert(((unsigned long)(n * 2) < sizeof(critical_runs) / sizeof(critical_runs[0])) != 0, + "regress.c",243, + "n * REGRESS_RUNS_RATIO < sizeof (critical_runs) / sizeof (critical_runs[0])"); + if (n < 3) { + __retres = 0; + goto return_label; + } + start = 0; + while (1) { + U = (double)0; + W = U; + i = start; + while (i < n) { + U += *(x + i) / *(w + i); + W += 1.0 / *(w + i); + i ++; + } + u = U / W; + V = 0.0; + Q = V; + P = Q; + i = start; + while (i < n) { + ui = *(x + i) - u; + P += *(y + i) / *(w + i); + Q += (*(y + i) * ui) / *(w + i); + V += (ui * ui) / *(w + i); + i ++; + } + b = Q / V; + a = P / W - b * u; + resid_start = n - (n - start) * 2; + if (resid_start < - m) resid_start = - m; + i = resid_start; + while (i < n) { + resid[i - resid_start] = (*(y + i) - a) - b * *(x + i); + i ++; + } + nruns = n_runs_from_residuals(resid,n - resid_start); + if (nruns > (int)critical_runs[n - resid_start]) goto _LOR; + else + if (n - start <= 3) goto _LOR; + else + if (n - start <= min_samples_0) { + _LOR: + { + if (start != resid_start) nruns = n_runs_from_residuals(& resid[ + start - resid_start], + n - start); + break; + } + } + else start ++; + } + *b1 = b; + *b0 = a; + ss = 0.0; + i = start; + while (i < n) { + ss += (resid[i - resid_start] * resid[i - resid_start]) / *(w + i); + i ++; + } + npoints = n - start; + ss /= (double)(npoints - 2); + *sb1 = sqrt(ss / V); + aa = u * *sb1; + *sb0 = sqrt(ss / W + aa * aa); + *s2 = (ss * (double)npoints) / W; + *new_start = start; + *dof = npoints - 2; + *n_runs = nruns; + __retres = 1; + return_label: return __retres; +} + +static double find_ordered_entry_with_flags(double *x, int n, int index_0, + char *flags) +{ + double __retres; + int u; + int v; + int l; + int r; + double temp; + double piv; + int pivind; + __FC_assert((index_0 >= 0) != 0,"regress.c",350,"index >= 0"); + if (*(flags + index_0)) { + __retres = *(x + index_0); + goto return_label; + } + v = index_0; + u = v; + while (1) { + if (u > 0) { + if (! (! *(flags + u))) break; + } + else break; + u --; + } + if (*(flags + u)) u ++; + while (1) { + if (v < n - 1) { + if (! (! *(flags + v))) break; + } + else break; + v ++; + } + if (*(flags + v)) v --; + while (1) + if (v - u < 2) { + char tmp; + if (*(x + v) < *(x + u)) { + temp = *(x + v); + *(x + v) = *(x + u); + *(x + u) = temp; + } + tmp = (char)1; + *(flags + u) = tmp; + *(flags + v) = tmp; + __retres = *(x + index_0); + goto return_label; + } + else { + pivind = (u + v) >> 1; + temp = *(x + u); + *(x + u) = *(x + pivind); + *(x + pivind) = temp; + piv = *(x + u); + l = u + 1; + r = v; + while (1) { + while (1) { + if (l < v) { + if (! (*(x + l) < piv)) break; + } + else break; + l ++; + } + while (*(x + r) > piv) r --; + if (r <= l) break; + temp = *(x + l); + *(x + l) = *(x + r); + *(x + r) = temp; + l ++; + r --; + } + temp = *(x + u); + *(x + u) = *(x + r); + *(x + r) = temp; + *(flags + r) = (char)1; + if (index_0 == r) { + __retres = *(x + r); + goto return_label; + } + else + if (index_0 < r) v = r - 1; + else + if (index_0 > r) u = l; + } + return_label: return __retres; +} + +static double find_median(double *x, int n) +{ + double __retres; + int k; + char flags[64]; + memset((void *)(flags),0,(unsigned long)n * sizeof(flags[0])); + k = n >> 1; + if (n & 1) { + double tmp; + tmp = find_ordered_entry_with_flags(x,n,k,flags); + __retres = tmp; + goto return_label; + } + else { + double tmp_0; + double tmp_1; + tmp_0 = find_ordered_entry_with_flags(x,n,k,flags); + tmp_1 = find_ordered_entry_with_flags(x,n,k - 1,flags); + __retres = 0.5 * (tmp_0 + tmp_1); + goto return_label; + } + return_label: return __retres; +} + +double RGR_FindMedian(double *x, int n) +{ + double tmp[64]; + int tmp_0; + double tmp_1; + if (n > 0) + if (n <= 64) tmp_0 = 1; else tmp_0 = 0; + else tmp_0 = 0; + __FC_assert(tmp_0 != 0,"regress.c",439,"n > 0 && n <= MAX_POINTS"); + memcpy((void *)(tmp),(void const *)x,(unsigned long)n * sizeof(tmp[0])); + tmp_1 = find_median(tmp,n); + return tmp_1; +} + +static void eval_robust_residual(double *x, double *y, int n, double b, + double *aa, double *rr) +{ + int i; + double a; + double res; + double del; + double d[64]; + i = 0; + while (i < n) { + d[i] = *(y + i) - b * *(x + i); + i ++; + } + a = find_median(d,n); + res = 0.0; + i = 0; + while (i < n) { + del = (*(y + i) - a) - b * *(x + i); + if (del > 0.0) res += *(x + i); + else + if (del < 0.0) res -= *(x + i); + i ++; + } + *aa = a; + *rr = res; + return; +} + +int RGR_FindBestRobustRegression(double *x, double *y, int n, double tol, + double *b0, double *b1, int *n_runs, + int *best_start) +{ + int __retres; + int i; + int start; + int n_points; + double a; + double b; + double P; + double U; + double V; + double W; + double X; + double resid; + double resids[64]; + double blo; + double bhi; + double bmid; + double rlo; + double rhi; + double rmid; + double s2; + double sb; + double incr; + double mx; + double dx; + double my; + double dy; + int nruns = 0; + __FC_assert((n <= 64) != 0,"regress.c",525,"n <= MAX_POINTS"); + if (n < 2) { + __retres = 0; + goto return_label; + } + else + if (n == 2) { + *b1 = (*(y + 1) - *(y + 0)) / (*(x + 1) - *(x + 0)); + *b0 = *(y + 0) - *b1 * *(x + 0); + *n_runs = 0; + *best_start = 0; + __retres = 1; + goto return_label; + } + start = 0; + while (1) { + n_points = n - start; + U = 0.0; + P = U; + i = start; + while (i < n) { + P += *(y + i); + U += *(x + i); + i ++; + } + W = (double)n_points; + my = P / W; + mx = U / W; + V = 0.0; + X = V; + i = start; + while (i < n) { + dy = *(y + i) - my; + dx = *(x + i) - mx; + X += dy * dx; + V += dx * dx; + i ++; + } + b = X / V; + a = my - b * mx; + s2 = 0.0; + i = start; + while (i < n) { + resid = (*(y + i) - a) - b * *(x + i); + s2 += resid * resid; + i ++; + } + sb = sqrt((s2 * W) / V); + if (sb > tol) incr = sb; else incr = tol; + while (1) { + incr *= 2.0; + if (incr > 100.0) { + __retres = 0; + goto return_label; + } + blo = b - incr; + bhi = b + incr; + eval_robust_residual(x + start,y + start,n_points,blo,& a,& rlo); + eval_robust_residual(x + start,y + start,n_points,bhi,& a,& rhi); + if (! (rlo * rhi >= 0.0)) break; + } + while (1) { + bmid = 0.5 * (blo + bhi); + if (blo < bmid) { + if (! (bmid < bhi)) break; + } + else break; + eval_robust_residual(x + start,y + start,n_points,bmid,& a,& rmid); + if (rmid == 0.0) break; + else + if (rmid * rlo > 0.0) { + blo = bmid; + rlo = rmid; + } + else + if (rmid * rhi > 0.0) { + bhi = bmid; + rhi = rmid; + } + else __FC_assert(0 != 0,"regress.c",616,"0"); + if (! (bhi - blo > tol)) break; + } + *b0 = a; + *b1 = bmid; + if (n_points == 3) break; + i = start; + while (i < n) { + resids[i] = (*(y + i) - a) - bmid * *(x + i); + i ++; + } + nruns = n_runs_from_residuals(& resids[start],n_points); + if (nruns > (int)critical_runs[n_points]) break; else start ++; + } + *n_runs = nruns; + *best_start = start; + __retres = 1; + return_label: return __retres; +} + +int RGR_MultipleRegress(double *x1, double *x2, double *y, int n, double *b2) +{ + int __retres; + double Sx1; + double Sx2; + double Sx1x1; + double Sx1x2; + double Sx2x2; + double Sx1y; + double Sx2y; + double Sy; + double U; + double V; + double V1; + double V2; + double V3; + int i; + double tmp; + double tmp_0; + if (n < 4) { + __retres = 0; + goto return_label; + } + Sy = 0.0; + Sx2y = Sy; + Sx1y = Sx2y; + Sx2x2 = Sx1y; + Sx1x2 = Sx2x2; + Sx1x1 = Sx1x2; + Sx2 = Sx1x1; + Sx1 = Sx2; + i = 0; + while (i < n) { + Sx1 += *(x1 + i); + Sx2 += *(x2 + i); + Sx1x1 += *(x1 + i) * *(x1 + i); + Sx1x2 += *(x1 + i) * *(x2 + i); + Sx2x2 += *(x2 + i) * *(x2 + i); + Sx1y += *(x1 + i) * *(y + i); + Sx2y += *(x2 + i) * *(y + i); + Sy += *(y + i); + i ++; + } + U = (((double)n * (Sx1x2 * Sx1y - Sx1x1 * Sx2y) + (Sx1 * Sx1) * Sx2y) - + (Sx1 * Sx2) * Sx1y) + Sy * (Sx2 * Sx1x1 - Sx1 * Sx1x2); + V1 = (double)n * (Sx1x2 * Sx1x2 - Sx1x1 * Sx2x2); + V2 = (Sx1 * Sx1) * Sx2x2 + (Sx2 * Sx2) * Sx1x1; + V3 = ((- 2.0 * Sx1) * Sx2) * Sx1x2; + V = (V1 + V2) + V3; + tmp = fabs(V); + tmp_0 = fabs(V3); + ; + if (tmp * 1.0e10 <= (- V1 + V2) + tmp_0) { + __retres = 0; + goto return_label; + } + *b2 = U / V; + __retres = 1; + return_label: return __retres; +} + +void test_unit(void) +{ + double x[64]; + double x2[64]; + double y[64]; + double w[64]; + double b0; + double b1; + double b2; + double s2; + double sb0; + double sb1; + double slope; + double slope2; + double intercept; + double sd; + double median; + double xrange; + double yrange; + double wrange; + double x2range; + int i; + int j; + int n; + int m; + int c1; + int c2; + int c3; + int runs; + int best_start; + int dof; + n = 3; + while (n <= 64) { + i = 0; + while (i < 200) { + { + int tmp_0; + long tmp; + double tmp_1; + int tmp_8; + int tmp_10; + int tmp_14; + double tmp_18; + long tmp_17; + long tmp_19; + double tmp_22; + double tmp_21; + long tmp_20; + long tmp_23; + double tmp_26; + double tmp_25; + long tmp_24; + long tmp_27; + double tmp_30; + double tmp_29; + long tmp_28; + long tmp_31; + slope = TST_GetRandomDouble(- 0.1,0.1); + intercept = TST_GetRandomDouble(- 1.0,1.0); + sd = TST_GetRandomDouble(1e-6,1e-4); + tmp = random(); + if (tmp % (long)2) tmp_0 = 1; else tmp_0 = -1; + tmp_1 = TST_GetRandomDouble(0.1,0.5); + slope2 = (double)tmp_0 * tmp_1; + j = 0; + while (j < n) { + { + int tmp_2; + double tmp_3; + x[j] = (double)(- j); + if (j % 2) tmp_2 = 1; else tmp_2 = -1; + tmp_3 = TST_GetRandomDouble(1e-6,sd); + y[j] = (intercept + slope * x[j]) + (double)tmp_2 * tmp_3; + w[j] = TST_GetRandomDouble(1.0,2.0); + x2[j] = ((y[j] - intercept) - slope * x[j]) / slope2; + } + j ++; + } + RGR_WeightedRegression(x,y,w,n,& b0,& b1,& s2,& sb0,& sb1); + { + double tmp_4; + tmp_4 = fabs(b0 - intercept); + ; + if (! (tmp_4 < sd + 1e-3)) { + TST_Fail(52); + exit(1); + } + } + { + double tmp_5; + tmp_5 = fabs(b1 - slope); + ; + if (! (tmp_5 < sd)) { + TST_Fail(53); + exit(1); + } + } + tmp_8 = RGR_FindBestRegression(x,y,w,n,0,3,& b0,& b1,& s2,& sb0, + & sb1,& best_start,& runs,& dof); + if (tmp_8) { + { + double tmp_6; + tmp_6 = fabs(b0 - intercept); + ; + if (! (tmp_6 < sd + 1e-3)) { + TST_Fail(60); + exit(1); + } + } + { + double tmp_7; + tmp_7 = fabs(b1 - slope); + ; + if (! (tmp_7 < sd)) { + TST_Fail(61); + exit(1); + } + } + } + tmp_10 = RGR_MultipleRegress(x,x2,y,n,& b2); + if (tmp_10) { + { + double tmp_9; + tmp_9 = fabs(b2 - slope2); + if (! (tmp_9 < 1e-6)) { + TST_Fail(66); + exit(1); + } + } + } + j = 0; + while (j < n / 7) { + long tmp_11; + tmp_11 = random(); + y[tmp_11 % (long)n] += (double)100 * sd; + j ++; + } + tmp_14 = RGR_FindBestRobustRegression(x,y,n,1e-8,& b0,& b1,& runs, + & best_start); + if (tmp_14) { + { + double tmp_12; + tmp_12 = fabs(b0 - intercept); + ; + if (! (tmp_12 < sd + 1e-2)) { + TST_Fail(75); + exit(1); + } + } + { + double tmp_13; + tmp_13 = fabs(b1 - slope); + ; + if (! (tmp_13 < 5.0 * sd)) { + TST_Fail(76); + exit(1); + } + } + } + j = 0; + while (j < n) { + long tmp_15; + double tmp_16; + tmp_15 = random(); + tmp_16 = TST_GetRandomDouble((double)(-1000),(double)1000); + x[j] = (double)(tmp_15 % (long)4) * tmp_16; + j ++; + } + median = RGR_FindMedian(x,n); + c3 = 0; + c2 = c3; + c1 = c2; + j = c1; + while (j < n) { + if (x[j] < median) c1 ++; + if (x[j] > median) c3 ++; else c2 ++; + j ++; + } + if (c1 + c2 >= c3) { + if (! (c1 <= c2 + c3)) goto _LAND; + } + else { + _LAND: { + TST_Fail(93); + exit(1); + } + } + tmp_17 = random(); + tmp_18 = pow(10.0,(double)(tmp_17 % (long)10)); + xrange = TST_GetRandomDouble(1e-6,tmp_18); + tmp_19 = random(); + tmp_20 = random(); + tmp_21 = pow(10.0,(double)(tmp_20 % (long)10)); + tmp_22 = TST_GetRandomDouble(0.0,tmp_21); + yrange = (double)(tmp_19 % (long)3) * tmp_22; + tmp_23 = random(); + tmp_24 = random(); + tmp_25 = pow(10.0,(double)(tmp_24 % (long)10)); + tmp_26 = TST_GetRandomDouble(0.0,tmp_25); + wrange = (double)(tmp_23 % (long)3) * tmp_26; + tmp_27 = random(); + tmp_28 = random(); + tmp_29 = pow(10.0,(double)(tmp_28 % (long)10)); + tmp_30 = TST_GetRandomDouble(0.0,tmp_29); + x2range = (double)(tmp_27 % (long)3) * tmp_30; + tmp_31 = random(); + m = (int)(tmp_31 % (long)n); + j = 0; + while (j < n) { + { + double tmp_32; + double tmp_33; + double tmp_34; + if (j) tmp_32 = x[j - 1]; else tmp_32 = 0.0; + tmp_33 = TST_GetRandomDouble(1e-6,xrange); + x[j] = tmp_32 + tmp_33; + y[j] = TST_GetRandomDouble(- yrange,yrange); + tmp_34 = TST_GetRandomDouble(0.0,wrange); + w[j] = 1.0 + tmp_34; + x2[j] = TST_GetRandomDouble(- x2range,x2range); + } + j ++; + } + RGR_WeightedRegression(x,y,w,n,& b0,& b1,& s2,& sb0,& sb1); + RGR_FindBestRegression(& x[m],& y[m],w,n - m,m,3,& b0,& b1,& s2, + & sb0,& sb1,& best_start,& runs,& dof); + RGR_MultipleRegress(x,x2,y,n,& b2); + RGR_FindBestRobustRegression(x,y,n,1e-8,& b0,& b1,& runs, + & best_start); + } + i ++; + } + n ++; + } + return; +} + + diff --git a/chrony/.frama-c/chrony-regress.parse/metrics.log b/chrony/.frama-c/chrony-regress.parse/metrics.log new file mode 100644 index 0000000000000000000000000000000000000000..b60e43e0d705397c44f6303af6ddfbf2d813e089 --- /dev/null +++ b/chrony/.frama-c/chrony-regress.parse/metrics.log @@ -0,0 +1,302 @@ +[metrics] Defined functions (458) +======================= + ADF_Allow (0 call); ADF_AllowAll (0 call); ADF_CreateTable (0 call); + ADF_Deny (0 call); ADF_DenyAll (0 call); ADF_DestroyTable (0 call); + ADF_IsAllowed (0 call); ADF_IsAnyAllowed (0 call); + ARR_AppendElement (3 calls); ARR_CreateInstance (12 calls); + ARR_DestroyInstance (13 calls); ARR_GetElement (28 calls); + ARR_GetElements (6 calls); ARR_GetNewElement (8 calls); + ARR_GetSize (21 calls); ARR_SetSize (11 calls); CLG_Finalise (0 call); + CLG_GetClientAccessReportByIndex (0 call); CLG_GetClientIndex (0 call); + CLG_GetNtpMinPoll (0 call); CLG_GetNtpTimestamps (0 call); + CLG_GetNumberOfIndices (0 call); CLG_GetServerStatsReport (0 call); + CLG_Initialise (0 call); CLG_LimitCommandResponseRate (0 call); + CLG_LimitNTPResponseRate (0 call); CLG_LogCommandAccess (0 call); + CLG_LogNTPAccess (0 call); CNF_AddBroadcasts (0 call); + CNF_AddInitSources (0 call); CNF_AddRefclocks (0 call); + CNF_AddSources (0 call); CNF_AllowLocalReference (1 call); + CNF_CreateDirs (0 call); CNF_Finalise (0 call); + CNF_GetAcquisitionPort (1 call); CNF_GetBindAcquisitionAddress (1 call); + CNF_GetBindAddress (1 call); CNF_GetBindCommandAddress (0 call); + CNF_GetBindCommandPath (0 call); CNF_GetClientLogLimit (1 call); + CNF_GetCombineLimit (1 call); CNF_GetCommandPort (0 call); + CNF_GetCommandRateLimit (1 call); CNF_GetCorrectionTimeRatio (1 call); + CNF_GetDriftFile (1 call); CNF_GetDumpDir (2 calls); + CNF_GetFallbackDrifts (1 call); CNF_GetHwTsInterface (1 call); + CNF_GetHwclockFile (0 call); CNF_GetInitSources (0 call); + CNF_GetInitStepThreshold (1 call); CNF_GetKeysFile (1 call); + CNF_GetLeapSecMode (1 call); CNF_GetLeapSecTimezone (1 call); + CNF_GetLockMemory (0 call); CNF_GetLogBanner (0 call); + CNF_GetLogChange (1 call); CNF_GetLogDir (0 call); + CNF_GetLogMeasurements (0 call); CNF_GetLogRefclocks (0 call); + CNF_GetLogRtc (0 call); CNF_GetLogStatistics (1 call); + CNF_GetLogTempComp (0 call); CNF_GetLogTracking (1 call); + CNF_GetMailOnChange (1 call); CNF_GetMakeStep (1 call); + CNF_GetManualEnabled (0 call); CNF_GetMaxChange (1 call); + CNF_GetMaxClockError (1 call); CNF_GetMaxDistance (1 call); + CNF_GetMaxDrift (1 call); CNF_GetMaxJitter (1 call); + CNF_GetMaxSamples (1 call); CNF_GetMaxSlewRate (0 call); + CNF_GetMaxUpdateSkew (1 call); CNF_GetMinSamples (1 call); + CNF_GetMinSources (1 call); CNF_GetNTPPort (2 calls); + CNF_GetNTPRateLimit (1 call); CNF_GetNoClientLog (1 call); + CNF_GetNtpSigndSocket (0 call); CNF_GetPidFile (0 call); + CNF_GetReselectDistance (1 call); CNF_GetRtcAutotrim (0 call); + CNF_GetRtcDevice (0 call); CNF_GetRtcFile (0 call); + CNF_GetRtcOnUtc (0 call); CNF_GetRtcSync (0 call); + CNF_GetSchedPriority (0 call); CNF_GetSmooth (1 call); + CNF_GetStratumWeight (1 call); CNF_GetTempComp (0 call); + CNF_GetUser (0 call); CNF_Initialise (0 call); CNF_ParseLine (1 call); + CNF_ReadFile (1 call); CNF_SetupAccessRestrictions (0 call); + CPS_NormalizeLine (2 calls); CPS_ParseKey (1 call); CPS_ParseLocal (1 call); + CPS_ParseNTPSourceAdd (2 calls); CPS_SplitWord (25 calls); + DNS_IPAddress2Name (0 call); DNS_Name2IPAddress (3 calls); + DNS_Name2IPAddressAsync (0 call); DNS_Reload (0 call); + DNS_SetAddressFamily (0 call); HSH_Finalise (0 call); + HSH_GetHashId (2 calls); HSH_Hash (3 calls); KEY_CheckAuth (0 call); + KEY_CheckKeyLength (0 call); KEY_Finalise (0 call); + KEY_GenerateAuth (1 call); KEY_GetAuthDelay (0 call); + KEY_GetAuthLength (0 call); KEY_Initialise (0 call); KEY_KeyKnown (0 call); + KEY_Reload (1 call); LCL_AccumulateDeltaFrequency (0 call); + LCL_AccumulateFrequencyAndOffset (1 call); LCL_AccumulateOffset (3 calls); + LCL_AddDispersionNotifyHandler (1 call); + LCL_AddParameterChangeHandler (4 calls); LCL_ApplyStepOffset (5 calls); + LCL_CanSystemLeap (1 call); LCL_CookTime (11 calls); LCL_Finalise (0 call); + LCL_GetMaxClockError (3 calls); LCL_GetOffsetCorrection (5 calls); + LCL_GetSysPrecisionAsLog (0 call); LCL_GetSysPrecisionAsQuantum (1 call); + LCL_Initialise (0 call); LCL_IsFirstParameterChangeHandler (1 call); + LCL_MakeStep (0 call); LCL_NotifyExternalTimeStep (1 call); + LCL_NotifyLeap (2 calls); LCL_ReadAbsoluteFrequency (5 calls); + LCL_ReadCookedTime (0 call); LCL_ReadRawTime (21 calls); + LCL_RemoveDispersionNotifyHandler (2 calls); + LCL_RemoveParameterChangeHandler (2 calls); + LCL_SetAbsoluteFrequency (3 calls); LCL_SetSyncStatus (2 calls); + LCL_SetSystemLeap (2 calls); LCL_SetTempComp (0 call); MD5Final (1 call); + MD5Init (1 call); MD5Update (3 calls); Malloc (11 calls); Malloc2 (7 calls); + NIO_CloseClientSocket (0 call); NIO_CloseServerSocket (0 call); + NIO_Finalise (0 call); NIO_Initialise (0 call); + NIO_IsServerConnectable (0 call); NIO_IsServerSocket (1 call); + NIO_OpenClientSocket (0 call); NIO_OpenServerSocket (0 call); + NIO_SendPacket (0 call); NSD_Finalise (0 call); NSD_GetAuthDelay (0 call); + NSD_Initialise (0 call); NSD_SignAndSendPacket (0 call); + REF_DisableLocal (0 call); REF_EnableLocal (0 call); REF_Finalise (0 call); + REF_GetLeapMode (0 call); REF_GetMode (2 calls); + REF_GetOrphanStratum (1 call); REF_GetOurStratum (0 call); + REF_GetReferenceParams (2 calls); REF_GetSkew (1 call); + REF_GetTaiOffset (0 call); REF_GetTrackingReport (0 call); + REF_Initialise (0 call); REF_IsLeapSecondClose (2 calls); + REF_ModifyMakestep (0 call); REF_ModifyMaxupdateskew (0 call); + REF_SetManualReference (0 call); REF_SetMode (0 call); + REF_SetModeEndHandler (0 call); REF_SetReference (2 calls); + REF_SetUnsynchronised (4 calls); RGR_FindBestRegression (3 calls); + RGR_FindBestRobustRegression (2 calls); RGR_FindMedian (2 calls); + RGR_GetChi2Coef (0 call); RGR_GetTCoef (1 call); + RGR_MultipleRegress (3 calls); RGR_WeightedRegression (2 calls); + Realloc (1 call); Realloc2 (4 calls); SCH_AddFileHandler (2 calls); + SCH_AddTimeout (3 calls); SCH_AddTimeoutByDelay (1 call); + SCH_AddTimeoutInClass (0 call); SCH_Finalise (0 call); + SCH_GetLastEventTime (4 calls); SCH_Initialise (0 call); + SCH_MainLoop (0 call); SCH_QuitProgram (0 call); + SCH_RemoveFileHandler (2 calls); SCH_RemoveTimeout (3 calls); + SCH_SetFileHandlerEvent (0 call); SMT_Activate (2 calls); + SMT_Finalise (0 call); SMT_GetOffset (0 call); + SMT_GetSmoothingReport (0 call); SMT_Initialise (0 call); + SMT_IsEnabled (0 call); SMT_Leap (1 call); SMT_Reset (1 call); + SRC_AccumulateSample (0 call); SRC_ActiveSources (0 call); + SRC_CreateNewInstance (0 call); SRC_DestroyInstance (0 call); + SRC_DumpSources (0 call); SRC_Finalise (0 call); + SRC_GetSourcestats (0 call); SRC_GetType (0 call); SRC_Initialise (0 call); + SRC_IsReachable (0 call); SRC_IsSyncPeer (0 call); + SRC_ReadNumberOfSources (0 call); SRC_ReloadSources (0 call); + SRC_RemoveDumpFiles (0 call); SRC_ReportSource (0 call); + SRC_ReportSourcestats (0 call); SRC_ReselectSource (1 call); + SRC_ResetInstance (1 call); SRC_ResetReachability (0 call); + SRC_SelectSource (3 calls); SRC_SetActive (0 call); SRC_SetRefid (1 call); + SRC_SetReselectDistance (0 call); SRC_UnsetActive (0 call); + SRC_UpdateReachability (1 call); SST_AccumulateSample (1 call); + SST_AddDispersion (1 call); SST_CreateInstance (1 call); + SST_DeleteInstance (1 call); SST_DoNewRegression (2 calls); + SST_DoSourceReport (1 call); SST_DoSourcestatsReport (1 call); + SST_Finalise (0 call); SST_GetDelayTestData (0 call); + SST_GetFrequencyRange (0 call); SST_GetJitterAsymmetry (0 call); + SST_GetSelectionData (1 call); SST_GetTrackingData (2 calls); + SST_Initialise (0 call); SST_LoadFromFile (1 call); + SST_MinRoundTripDelay (2 calls); SST_PredictOffset (0 call); + SST_ResetInstance (5 calls); SST_Samples (1 call); SST_SaveToFile (1 call); + SST_SetRefid (2 calls); SST_SlewSamples (1 call); Strdup (19 calls); + TST_Fail (8 calls); TST_GetRandomAddress (0 call); + TST_GetRandomDouble (15 calls); TST_RegisterDummyDrivers (0 call); + TST_ResumeLogging (0 call); TST_SuspendLogging (0 call); + TST_SwapAddressBit (0 call); Transform (2 calls); + UTI_AddDiffToTimespec (0 call); UTI_AddDoubleToTimespec (13 calls); + UTI_AdjustTimespec (6 calls); UTI_AverageDiffTimespecs (0 call); + UTI_CheckDirPermissions (1 call); UTI_CompareIPs (1 call); + UTI_CompareNtp64 (0 call); UTI_CompareTimespecs (5 calls); + UTI_CreateDirAndParents (3 calls); UTI_DiffTimespecs (3 calls); + UTI_DiffTimespecsToDouble (26 calls); UTI_DoubleToNtp32 (0 call); + UTI_DoubleToTimespec (0 call); UTI_DoubleToTimeval (0 call); + UTI_DropRoot (0 call); UTI_FdSetCloexec (3 calls); + UTI_FloatHostToNetwork (0 call); UTI_FloatNetworkToHost (0 call); + UTI_GetNtp64Fuzz (1 call); UTI_GetRandomBytes (5 calls); + UTI_GetRandomBytesUrandom (1 call); UTI_IPAndPortToSockaddr (2 calls); + UTI_IPHostToNetwork (0 call); UTI_IPNetworkToHost (0 call); + UTI_IPToHash (1 call); UTI_IPToRefid (0 call); UTI_IPToString (8 calls); + UTI_IsEqualAnyNtp64 (0 call); UTI_IsTimeOffsetSane (1 call); + UTI_IsZeroNtp64 (1 call); UTI_IsZeroTimespec (3 calls); + UTI_Log2ToDouble (0 call); UTI_NormaliseTimespec (4 calls); + UTI_NormaliseTimeval (1 call); UTI_Ntp32ToDouble (0 call); + UTI_Ntp64ToString (0 call); UTI_Ntp64ToTimespec (2 calls); + UTI_PathToDir (1 call); UTI_RefidToString (4 calls); + UTI_SetQuitSignalsHandler (0 call); UTI_SockaddrFamilyToString (2 calls); + UTI_SockaddrToIPAndPort (2 calls); UTI_SockaddrToString (0 call); + UTI_StringToIP (6 calls); UTI_TimeToLogForm (2 calls); + UTI_TimespecHostToNetwork (0 call); UTI_TimespecNetworkToHost (0 call); + UTI_TimespecToDouble (2 calls); UTI_TimespecToNtp64 (1 call); + UTI_TimespecToString (1 call); UTI_TimespecToTimeval (1 call); + UTI_TimevalToDouble (0 call); UTI_TimevalToTimespec (3 calls); + UTI_ZeroNtp64 (2 calls); UTI_ZeroTimespec (8 calls); + accrue_offset (address taken) (0 call); + add_dispersion (address taken) (0 call); allocate_tqe (2 calls); + apply_step_offset (address taken) (0 call); + calculate_sys_precision (1 call); check_current_time (1 call); + check_ip_in_node (2 calls); check_ntp_auth (1 call); + check_number_of_args (16 calls); check_offset (4 calls); + clamp_freq (3 calls); close_node (4 calls); close_socket (6 calls); + combine_sources (1 call); command_parse_error (31 calls); + compare_keys_by_id (address taken) (0 call); + compare_sort_elements (address taken) (0 call); compare_ts (2 calls); + connect_socket (2 calls); convert_to_intervals (1 call); + correct_asymmetry (1 call); create_dir (1 call); decode_password (1 call); + determine_hash_delay (1 call); dispatch_filehandlers (1 call); + dispatch_timeouts (1 call); end_ref_mode (5 calls); + estimate_asymmetry (1 call); eva_main (0 call); + eval_robust_residual (3 calls); expand_hashtable (2 calls); + fb_drift_timeout (address taken) (0 call); fill_fd_sets (1 call); + find_best_sample_index (1 call); find_median (2 calls); + find_min_delay_sample (2 calls); find_ordered_entry_with_flags (3 calls); + free_keys (2 calls); generate_ntp_auth (2 calls); get_array_size (2 calls); + get_buf_index (9 calls); get_clock_estimates (1 call); get_index (3 calls); + get_interval (3 calls); get_key (7 calls); get_key_by_id (6 calls); + get_last_ago (2 calls); get_new_tqe_id (2 calls); + get_number_of_args (3 calls); get_record (4 calls); + get_root_dispersion (5 calls); get_runsbuf_index (16 calls); + get_smoothing (3 calls); get_subnet (4 calls); + get_ts_from_timespec (2 calls); get_tz_leap (4 calls); + handle_slew (address taken) (0 call); + handle_slew_0 (address taken) (0 call); + handle_slew_1 (address taken) (0 call); + invoke_parameter_change_handlers (7 calls); is_any_allowed (2 calls); + is_leap_second_day (1 call); is_offset_ok (1 call); + is_step_limit_reached (1 call); lcl_InvokeDispersionNotifyHandlers (1 call); + lcl_RegisterSystemDrivers (1 call); + leap_end_timeout (address taken) (0 call); + leap_start_timeout (address taken) (0 call); + limit_response_random (2 calls); log_selection_message (5 calls); + lookup_key (1 call); main (1 call); mark_ok_sources (4 calls); + maybe_log_offset (1 call); n_runs_from_residuals (3 calls); + offset_convert (address taken) (0 call); open_dumpfile (2 calls); + open_node (3 calls); other_parse_error (3 calls); + parse_allow_deny (4 calls); parse_bindacqaddress (1 call); + parse_bindaddress (1 call); parse_bindcmdaddress (1 call); + parse_broadcast (1 call); parse_clientloglimit (1 call); + parse_double (12 calls); parse_fallbackdrift (1 call); + parse_hwtimestamp (1 call); parse_include (1 call); + parse_initstepslew (1 call); parse_int (8 calls); + parse_leapsecmode (1 call); parse_local (1 call); parse_log (1 call); + parse_mailonchange (1 call); parse_makestep (1 call); + parse_maxchange (1 call); parse_null (5 calls); parse_ratelimit (2 calls); + parse_refclock (1 call); parse_smoothtime (1 call); parse_source (3 calls); + parse_string (12 calls); parse_tempcomp (1 call); prepare_buffers (2 calls); + prepare_separate_client_socket (2 calls); prepare_socket (5 calls); + process_message (1 call); prune_register (2 calls); + read_frequency (address taken) (0 call); + read_from_socket (address taken) (0 call); realloc_array (2 calls); + release_tqe (1 call); resolve_name (address taken) (0 call); + schedule_fb_drift (2 calls); set_bucket_params (2 calls); + set_frequency (address taken) (0 call); set_leap_timeout (2 calls); + set_subnet (4 calls); set_subnet_ (4 calls); + slew_sources (address taken) (0 call); source_to_string (5 calls); + special_mode_end (1 call); special_mode_sync (2 calls); split_ip6 (2 calls); + test_unit (1 call); update_drift_file (2 calls); update_fb_drifts (1 call); + update_leap_status (4 calls); update_record (2 calls); + update_smoothing (3 calls); update_stages (1 call); write_log (2 calls); + +Undefined functions (16) +======================== + CAM_AddAccessRestriction (1 call); LOG_FileOpen (2 calls); + LOG_FileWrite (2 calls); LOG_Finalise (1 call); LOG_Initialise (1 call); + LOG_Message (93 calls); LOG_OpenFileLog (2 calls); + LOG_SetDebugLevel (1 call); NCR_AddAccessRestriction (1 call); + NCR_AddBroadcastDestination (1 call); NSR_AddSource (1 call); + NSR_AddSourceByName (1 call); NSR_GetLocalRefid (1 call); + NSR_HandleBadSource (1 call); NSR_ProcessRx (1 call); + RCL_AddRefclock (1 call); + +'Extern' global variables (0) +============================= + + +Potential entry points (161) +============================ + ADF_Allow; ADF_AllowAll; ADF_CreateTable; ADF_Deny; ADF_DenyAll; + ADF_DestroyTable; ADF_IsAllowed; ADF_IsAnyAllowed; CLG_Finalise; + CLG_GetClientAccessReportByIndex; CLG_GetClientIndex; CLG_GetNtpMinPoll; + CLG_GetNtpTimestamps; CLG_GetNumberOfIndices; CLG_GetServerStatsReport; + CLG_Initialise; CLG_LimitCommandResponseRate; CLG_LimitNTPResponseRate; + CLG_LogCommandAccess; CLG_LogNTPAccess; CNF_AddBroadcasts; + CNF_AddInitSources; CNF_AddRefclocks; CNF_AddSources; CNF_CreateDirs; + CNF_Finalise; CNF_GetBindCommandAddress; CNF_GetBindCommandPath; + CNF_GetCommandPort; CNF_GetHwclockFile; CNF_GetInitSources; + CNF_GetLockMemory; CNF_GetLogBanner; CNF_GetLogDir; CNF_GetLogMeasurements; + CNF_GetLogRefclocks; CNF_GetLogRtc; CNF_GetLogTempComp; + CNF_GetManualEnabled; CNF_GetMaxSlewRate; CNF_GetNtpSigndSocket; + CNF_GetPidFile; CNF_GetRtcAutotrim; CNF_GetRtcDevice; CNF_GetRtcFile; + CNF_GetRtcOnUtc; CNF_GetRtcSync; CNF_GetSchedPriority; CNF_GetTempComp; + CNF_GetUser; CNF_Initialise; CNF_SetupAccessRestrictions; + DNS_IPAddress2Name; DNS_Name2IPAddressAsync; DNS_Reload; + DNS_SetAddressFamily; HSH_Finalise; KEY_CheckAuth; KEY_CheckKeyLength; + KEY_Finalise; KEY_GetAuthDelay; KEY_GetAuthLength; KEY_Initialise; + KEY_KeyKnown; LCL_AccumulateDeltaFrequency; LCL_Finalise; + LCL_GetSysPrecisionAsLog; LCL_Initialise; LCL_MakeStep; LCL_ReadCookedTime; + LCL_SetTempComp; NIO_CloseClientSocket; NIO_CloseServerSocket; + NIO_Finalise; NIO_Initialise; NIO_IsServerConnectable; + NIO_OpenClientSocket; NIO_OpenServerSocket; NIO_SendPacket; NSD_Finalise; + NSD_GetAuthDelay; NSD_Initialise; NSD_SignAndSendPacket; REF_DisableLocal; + REF_EnableLocal; REF_Finalise; REF_GetLeapMode; REF_GetOurStratum; + REF_GetTaiOffset; REF_GetTrackingReport; REF_Initialise; + REF_ModifyMakestep; REF_ModifyMaxupdateskew; REF_SetManualReference; + REF_SetMode; REF_SetModeEndHandler; RGR_GetChi2Coef; SCH_AddTimeoutInClass; + SCH_Finalise; SCH_Initialise; SCH_MainLoop; SCH_QuitProgram; + SCH_SetFileHandlerEvent; SMT_Finalise; SMT_GetOffset; + SMT_GetSmoothingReport; SMT_Initialise; SMT_IsEnabled; + SRC_AccumulateSample; SRC_ActiveSources; SRC_CreateNewInstance; + SRC_DestroyInstance; SRC_DumpSources; SRC_Finalise; SRC_GetSourcestats; + SRC_GetType; SRC_Initialise; SRC_IsReachable; SRC_IsSyncPeer; + SRC_ReadNumberOfSources; SRC_ReloadSources; SRC_RemoveDumpFiles; + SRC_ReportSource; SRC_ReportSourcestats; SRC_ResetReachability; + SRC_SetActive; SRC_SetReselectDistance; SRC_UnsetActive; SST_Finalise; + SST_GetDelayTestData; SST_GetFrequencyRange; SST_GetJitterAsymmetry; + SST_Initialise; SST_PredictOffset; TST_GetRandomAddress; + TST_RegisterDummyDrivers; TST_ResumeLogging; TST_SuspendLogging; + TST_SwapAddressBit; UTI_AddDiffToTimespec; UTI_AverageDiffTimespecs; + UTI_CompareNtp64; UTI_DoubleToNtp32; UTI_DoubleToTimespec; + UTI_DoubleToTimeval; UTI_DropRoot; UTI_FloatHostToNetwork; + UTI_FloatNetworkToHost; UTI_IPHostToNetwork; UTI_IPNetworkToHost; + UTI_IPToRefid; UTI_IsEqualAnyNtp64; UTI_Log2ToDouble; UTI_Ntp32ToDouble; + UTI_Ntp64ToString; UTI_SetQuitSignalsHandler; UTI_SockaddrToString; + UTI_TimespecHostToNetwork; UTI_TimespecNetworkToHost; UTI_TimevalToDouble; + eva_main; + +Global metrics +============== +Sloc = 8290 +Decision point = 1426 +Global variables = 241 +If = 1367 +Loop = 162 +Goto = 410 +Assignment = 3758 +Exit point = 458 +Function = 474 +Function call = 1680 +Pointer dereferencing = 2054 +Cyclomatic complexity = 1884 diff --git a/chrony/.frama-c/chrony-regress.parse/warnings.log b/chrony/.frama-c/chrony-regress.parse/warnings.log new file mode 100644 index 0000000000000000000000000000000000000000..d807a37ecfe9e7312394fe893ce7f7961fe96d33 --- /dev/null +++ b/chrony/.frama-c/chrony-regress.parse/warnings.log @@ -0,0 +1,2 @@ +conf.c:94:[kernel:parser:decimal-float] warning: Floating-point constant 1e-4 is not represented exactly. Will use 0x1.a36e2eb1c432dp-14. +(warn-once: no further messages from category 'parser:decimal-float' will be emitted) diff --git a/chrony/fc_configure.sh b/chrony/.frama-c/fc_configure.sh similarity index 100% rename from chrony/fc_configure.sh rename to chrony/.frama-c/fc_configure.sh diff --git a/chrony/fc_stubs.c b/chrony/.frama-c/fc_stubs.c similarity index 51% rename from chrony/fc_stubs.c rename to chrony/.frama-c/fc_stubs.c index 739d377e9c39a89e2ed40fa3934629127a05b6fb..04156aeb990f92e31f798da2a7f0aa46e9bdb426 100644 --- a/chrony/fc_stubs.c +++ b/chrony/.frama-c/fc_stubs.c @@ -14,19 +14,26 @@ extern void qsort(void *base, size_t nmemb, size_t size, } } -// Sets up the initial context, with up to 5 arguments containing -// random strings of up to 50 characters each -int main(int argc, char **argv); -#include "__fc_builtin.h" -volatile int v; -void eva_main() { - char argv0[50], argv1[50], argv2[50], argv3[50], argv4[50]; - char *argv[6] = {argv0, argv1, argv2, argv3, argv4, 0}; +// Stub for a main function which reads arguments from the command line, to be +// used by the Eva plug-in. +// This stub emulates non-deterministic input of up to 5 arguments, each up +// to 256 characters long. This is sufficient to ensure arbitrary input in +// virtually every case. +// Do not forget to add option '-main eva_main' in order to use this stub. + +#ifdef __FRAMAC__ +# include "__fc_builtin.h" +int main(int, char **); +static volatile int nondet; +int eva_main() { int argc = Frama_C_interval(0, 5); + char argv0[256], argv1[256], argv2[256], argv3[256], argv4[256]; + char *argv[6] = {argv0, argv1, argv2, argv3, argv4, 0}; //@ loop unroll 5; for (int i = 0; i < 5; i++) { - Frama_C_make_unknown(argv[i], 49); - argv[i][49] = 0; // force valid string + Frama_C_make_unknown(argv[i], 255); + argv[i][255] = 0; } - main(argc, argv); + return main(argc, argv); } +#endif // __FRAMAC__ diff --git a/chrony/.frama-c/path.mk b/chrony/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/chrony/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/chrony/GNUmakefile b/chrony/GNUmakefile deleted file mode 100644 index 3173e31118f48bdc91c7d189deeac8edf7a26e6b..0000000000000000000000000000000000000000 --- a/chrony/GNUmakefile +++ /dev/null @@ -1,102 +0,0 @@ -# DO NOT EDIT THE LINES BETWEEN THE '#'S -############################################################################### -# Improves analysis time, at the price of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk should be included at the top of your Makefile, right below -# the inclusion of frama-c-path.mk --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED - -TEST_COMMON_SRCS = test/unit/test.c \ - $(shell $(FRAMAC_CONFIG) -print-share-path)/libc/string.c \ - $(shell $(FRAMAC_CONFIG) -print-share-path)/libc/stdlib.c \ - $(shell $(FRAMAC_CONFIG) -print-share-path)/libc/stdio.c \ - $(shell $(FRAMAC_CONFIG) -print-share-path)/libc/glob.c \ - $(shell $(FRAMAC_CONFIG) -print-share-path)/libc/netdb.c \ - addrfilt.c \ - array.c \ - clientlog.c \ - cmdparse.c \ - conf.c \ - hash_intmd5.c \ - keys.c \ - local.c \ - memory.c \ - nameserv.c \ - ntp_io.c \ - reference.c \ - regress.c \ - sched.c \ - smooth.c \ - sources.c \ - sourcestats.c \ - util.c \ - fc_stubs.c \ - stubs.c \ - -# logging.c voluntarily ommitted, to skip analyzing logging functions - -CPPFLAGS += -D_XOPEN_SOURCE=200112L -DNB_TESTS=3 - -FCFLAGS += -machdep gcc_x86_64 \ - -warn-special-float none \ - -kernel-warn-key typing:implicit-function-declaration=abort \ - -# (Optional) EVA-specific flags -EVAFLAGS += \ - -eva-use-spec atoi,malloc,free,calloc,Transform,parse_include,SCH_AddTimeout \ - -eva-warn-key=alarm \ - -eva-malloc-functions malloc,realloc,Malloc,Malloc2,Realloc,Realloc2 \ - -eva-warn-key builtins:missing-spec=abort \ - -eva-warn-key malloc:weak \ - -eva-domains equality,gauges \ - -eva-domains-function symbolic-locations:prune_register \ - -eva-domains-function symbolic-locations:SST_DoNewRegression \ - -eva-domains-function symbolic-locations:SST_AccumulateSample \ - -eva-domains-function symbolic-locations:find_min_delay_sample \ - -eva-domains-function symbolic-locations:UTI_NormaliseTimespec \ - -eva-domains-function symbolic-locations:estimate_asymmetry \ - -MAIN_TARGET := chrony-ntp-core - -TARGETS = $(MAIN_TARGET).eva chrony-regress.eva - -# Default target -all: $(TARGETS) - -chrony-ntp-core.parse: $(TEST_COMMON_SRCS) test/unit/ntp_core.c -chrony-ntp-core.eva: EVAFLAGS += -main eva_main \ - -# The following parsing rule reuses variable TEST_COMMON_SRCS to avoid -# having to manually list the sources. Note that the unit test version of -# regress.c redefines some functions from the other regress.c file, so -# we remove the latter from the list of sources. -chrony-regress.parse: \ - $(filter-out regress.c,$(TEST_COMMON_SRCS)) test/unit/regress.c -chrony-regress.eva: EVAFLAGS += -main eva_main - -# The following targets are optional and provided for convenience only -help: - @echo "targets: $(TARGETS)" -display-targets: - @echo "$(TARGETS)" -parse: $(TARGETS:%.eva=%.parse) - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common diff --git a/chrony/frama-c-path.mk b/chrony/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/chrony/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/debie1/.frama-c/GNUmakefile b/debie1/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..4ef6efb6926b9c9e227ca8a24392d6db1158057a --- /dev/null +++ b/debie1/.frama-c/GNUmakefile @@ -0,0 +1,49 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_32 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += -I ../code/harness -I ../code -I ../code/intel/linux \ + -DTRACE_HARNESS -DTRACE_TARGET + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -kernel-warn-key annot:missing-spec=abort \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + +## Eva-specific flags +EVAFLAGS += \ + -eva-warn-key builtins:missing-spec=abort \ + -eva-domains equality \ + -eva-auto-loop-unroll 170 \ + -eva-ilevel 16 \ + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +## Analysis targets (suffixed with .eva) +TARGETS = debie1.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +debie1.parse: \ + $(sort $(wildcard ../code/*.c)) \ + ../code/harness/harness.c \ + ../code/intel/linux/target.c \ + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/debie1/.frama-c/debie1.eva/alarms.csv b/debie1/.frama-c/debie1.eva/alarms.csv new file mode 100644 index 0000000000000000000000000000000000000000..6338a2e40910a8a90b3b20c24745b7229db3c326 --- /dev/null +++ b/debie1/.frama-c/debie1.eva/alarms.csv @@ -0,0 +1,5 @@ +directory file line function property kind status property +code tc_hand.c 1037 UpdateTarget initialization Unknown \initialized(&SU_setting.execution_result) +code telem.c 133 TM_InterruptService ptr_comparison Unknown \pointer_comparable((void *)telemetry_pointer, (void *)(&telemetry_data.time)) +code telem.c 313 IncrementCounters index_bound Unknown sensor_unit < 4 +code/harness harness.c 3338 Acquisition_Tests signed_overflow Unknown octets + 2 ≤ 2147483647 diff --git a/debie1/.frama-c/debie1.eva/metrics.log b/debie1/.frama-c/debie1.eva/metrics.log new file mode 100644 index 0000000000000000000000000000000000000000..114ea02a5e537a0ea59a0726a1f9b4d2d8537022 --- /dev/null +++ b/debie1/.frama-c/debie1.eva/metrics.log @@ -0,0 +1,197 @@ +[metrics] Eva coverage statistics +======================= +Syntactically reachable functions = 183 (out of 191) +Semantically reached functions = 180 +Coverage estimation = 98.4% + +Unreached functions (3) = + <code/measure.c>: AcquisitionTask; HitTriggerTask; + <code/tc_hand.c>: TelecommandExecutionTask; +[metrics] References to non-analyzed functions +------------------------------------ +Initializer of acq_task references AcquisitionTask (at code/measure.c:545) +Initializer of hit_task references HitTriggerTask (at code/measure.c:544) +Initializer of TC_task references TelecommandExecutionTask (at code/tc_hand.c:1596) +[metrics] Statements analyzed by Eva +-------------------------- +2974 stmts in analyzed functions, 2926 stmts analyzed (98.4%) +Acquire_Hit: 4 stmts out of 4 (100.0%) +Acquisition_Tests: 132 stmts out of 132 (100.0%) +AttachInterrupt: 1 stmts out of 1 (100.0%) +Boot: 57 stmts out of 57 (100.0%) +CalculateChecksum: 21 stmts out of 21 (100.0%) +CalculateQualityNumber: 28 stmts out of 28 (100.0%) +Call_Patch: 1 stmts out of 1 (100.0%) +Check_No_Errors: 2 stmts out of 2 (100.0%) +Check_Nonzero: 4 stmts out of 4 (100.0%) +Check_Zero: 4 stmts out of 4 (100.0%) +ClearErrorStatus: 2 stmts out of 2 (100.0%) +ClearEvents: 27 stmts out of 27 (100.0%) +ClearModeStatusError: 2 stmts out of 2 (100.0%) +ClearSoftwareError: 2 stmts out of 2 (100.0%) +Clear_Errors: 4 stmts out of 4 (100.0%) +Clear_RTX_Errors: 8 stmts out of 8 (100.0%) +Clear_SU_Error: 8 stmts out of 8 (100.0%) +Clear_TC_Timer_Overflow_Flag: 2 stmts out of 2 (100.0%) +Convert_AD: 21 stmts out of 21 (100.0%) +CopyProgramCode: 9 stmts out of 9 (100.0%) +DPU_SelfTest: 2 stmts out of 2 (100.0%) +Data_Pointer: 2 stmts out of 2 (100.0%) +DelayAwhile: 9 stmts out of 9 (100.0%) +DisableAnalogSwitch: 3 stmts out of 3 (100.0%) +DisableInterrupt: 1 stmts out of 1 (100.0%) +Disable_Hit_Trigger: 3 stmts out of 3 (100.0%) +EnableAnalogSwitch: 3 stmts out of 3 (100.0%) +EnableInterrupt: 1 stmts out of 1 (100.0%) +Enable_Hit_Trigger: 3 stmts out of 3 (100.0%) +End_Of_ADC: 22 stmts out of 22 (100.0%) +Event_Flag: 1 stmts out of 1 (100.0%) +ExceedsLimit: 7 stmts out of 7 (100.0%) +Exec_TC: 3 stmts out of 3 (100.0%) +ExecuteChannelTest: 61 stmts out of 61 (100.0%) +Fail_Check: 2 stmts out of 2 (100.0%) +FindMinQualityRecord: 19 stmts out of 19 (100.0%) +FlushMail: 2 stmts out of 2 (100.0%) +GetElapsedTime: 2 stmts out of 2 (100.0%) +GetFreeRecord: 8 stmts out of 8 (100.0%) +GetMemoryConfiguration: 1 stmts out of 1 (100.0%) +GetMode: 2 stmts out of 2 (100.0%) +GetQualityTerm: 6 stmts out of 6 (100.0%) +GetResetClass: 3 stmts out of 3 (100.0%) +Get_Code_Byte: 2 stmts out of 2 (100.0%) +Get_Data_Byte: 2 stmts out of 2 (100.0%) +Get_LSB1_Counter: 1 stmts out of 1 (100.0%) +Get_LSB2_Counter: 1 stmts out of 1 (100.0%) +Get_MSB_Counter: 1 stmts out of 1 (100.0%) +Get_Result: 3 stmts out of 3 (100.0%) +HandleHealthMonitoring: 9 stmts out of 9 (100.0%) +HandleHitTrigger: 63 stmts out of 63 (100.0%) +HandleTelecommand: 38 stmts out of 38 (100.0%) +Handle_TC: 4 stmts out of 4 (100.0%) +HighVoltageCurrent: 9 stmts out of 9 (100.0%) +Hit_ISR_Tests: 107 stmts out of 107 (100.0%) +Hit_Trigger_Flag: 1 stmts out of 1 (100.0%) +IncrementCounters: 10 stmts out of 10 (100.0%) +InitAcquisitionTask: 4 stmts out of 4 (100.0%) +InitClassification: 12 stmts out of 12 (100.0%) +InitCode_RAM: 7 stmts out of 7 (100.0%) +InitData_RAM: 5 stmts out of 5 (100.0%) +InitHealthMonitoring: 4 stmts out of 4 (100.0%) +InitHitTriggerTask: 3 stmts out of 3 (100.0%) +InitSystem: 12 stmts out of 12 (100.0%) +InitTC_LookUp: 86 stmts out of 86 (100.0%) +InitTelecommandTask: 10 stmts out of 10 (100.0%) +Init_DPU: 12 stmts out of 12 (100.0%) +Init_SU_Settings: 14 stmts out of 14 (100.0%) +LowVoltageCurrent: 12 stmts out of 12 (100.0%) +MeasureTemperature: 22 stmts out of 22 (100.0%) +MeasureVoltage: 27 stmts out of 27 (100.0%) +Monitor: 49 stmts out of 49 (100.0%) +Monitor_DPU_Voltage: 13 stmts out of 13 (100.0%) +Monitor_Health: 6 stmts out of 6 (100.0%) +Monitoring_Task_Tests: 116 stmts out of 116 (100.0%) +Next: 4 stmts out of 4 (100.0%) +Next_Rand: 3 stmts out of 3 (100.0%) +PatchCode: 30 stmts out of 30 (100.0%) +Random_AD_Delay: 9 stmts out of 9 (100.0%) +Random_Event: 10 stmts out of 10 (100.0%) +ReadDelayCounters: 11 stmts out of 11 (100.0%) +ReadRiseTimeCounter: 3 stmts out of 3 (100.0%) +ReadSensorUnit: 2 stmts out of 2 (100.0%) +Read_AD_Channel: 23 stmts out of 23 (100.0%) +Read_Data_Memory: 21 stmts out of 21 (100.0%) +Read_TC_LSB: 1 stmts out of 1 (100.0%) +Read_TC_MSB: 1 stmts out of 1 (100.0%) +Reboot: 3 stmts out of 3 (100.0%) +RecordEvent: 16 stmts out of 16 (100.0%) +Report_Checks: 1 stmts out of 1 (100.0%) +Report_End_Of_ADC_Count: 2 stmts out of 2 (100.0%) +Report_Event_Histo: 11 stmts out of 11 (100.0%) +Report_Start_Conversion_Count: 2 stmts out of 2 (100.0%) +ResetDelayCounters: 1 stmts out of 1 (100.0%) +ResetEventQueueLength: 2 stmts out of 2 (100.0%) +ResetInterruptMask: 2 stmts out of 2 (100.0%) +ResetPeakDetector: 2 stmts out of 2 (100.0%) +RestoreSettings: 17 stmts out of 17 (100.0%) +Rise_Time_Counter: 1 stmts out of 1 (100.0%) +RoughLogarithm: 9 stmts out of 9 (100.0%) +SU_Self_Test_Tests: 145 stmts out of 145 (100.0%) +SelectSelfTestChannel: 8 stmts out of 8 (100.0%) +SelfTestChannel: 50 stmts out of 50 (100.0%) +SelfTest_SU: 12 stmts out of 12 (100.0%) +Send_Patch_Code: 19 stmts out of 19 (100.0%) +Send_Patch_Data: 19 stmts out of 19 (100.0%) +Send_TC: 11 stmts out of 11 (100.0%) +Send_TC_Word: 6 stmts out of 6 (100.0%) +SetErrorStatus: 2 stmts out of 2 (100.0%) +SetInterruptMask: 2 stmts out of 2 (100.0%) +SetMemoryConfiguration: 7 stmts out of 7 (100.0%) +SetMode: 2 stmts out of 2 (100.0%) +SetModeStatusError: 2 stmts out of 2 (100.0%) +SetSensorUnitOff: 9 stmts out of 9 (100.0%) +SetSoftwareError: 2 stmts out of 2 (100.0%) +SetTestPulseLevel: 2 stmts out of 2 (100.0%) +SetTimeSlice: 1 stmts out of 1 (100.0%) +Set_AD_Delay: 7 stmts out of 7 (100.0%) +Set_AD_Nominal: 31 stmts out of 31 (100.0%) +Set_AD_Unlimited: 9 stmts out of 9 (100.0%) +Set_Data_Byte: 2 stmts out of 2 (100.0%) +Set_SU_Error: 3 stmts out of 3 (100.0%) +Set_SU_Self_Test_Ch: 1 stmts out of 1 (100.0%) +Set_SU_TriggerLevels: 11 stmts out of 11 (100.0%) +Set_TC_Error: 2 stmts out of 2 (100.0%) +Set_TC_Timer_Overflow_Flag: 2 stmts out of 2 (100.0%) +Set_Test_Pulse_Level: 3 stmts out of 3 (100.0%) +Set_Trigger_SU: 3 stmts out of 3 (100.0%) +ShortDelay: 2 stmts out of 2 (100.0%) +Short_Value: 2 stmts out of 2 (100.0%) +SignalMemoryErrors: 11 stmts out of 11 (100.0%) +SignalPeakDetectorReset: 1 stmts out of 1 (100.0%) +Sim_Self_Test_Trigger: 7 stmts out of 7 (100.0%) +Start_Conversion: 24 stmts out of 24 (100.0%) +Start_SU_SwitchingOn: 8 stmts out of 8 (100.0%) +Switch_SU_State: 14 stmts out of 14 (100.0%) +TC_ISR_Tests: 51 stmts out of 51 (100.0%) +TC_Interrupt: 2 stmts out of 2 (100.0%) +TC_Task_Tests: 263 stmts out of 263 (100.0%) +TC_Timer_Overflow_Flag: 1 stmts out of 1 (100.0%) +TemperatureFailure: 4 stmts out of 4 (100.0%) +TestMemBits: 2 stmts out of 2 (100.0%) +TestMemData: 2 stmts out of 2 (100.0%) +TestMemSeq: 2 stmts out of 2 (100.0%) +Trigger_Hit: 4 stmts out of 4 (100.0%) +Trigger_SU_Hit: 3 stmts out of 3 (100.0%) +Trigger_Source_0: 1 stmts out of 1 (100.0%) +Trigger_Source_1: 1 stmts out of 1 (100.0%) +UpdatePeriodCounter: 4 stmts out of 4 (100.0%) +UpdateTarget: 154 stmts out of 154 (100.0%) +UpdateTime: 2 stmts out of 2 (100.0%) +Update_ADC_Channel_Reg: 1 stmts out of 1 (100.0%) +Update_SU_State: 8 stmts out of 8 (100.0%) +V_Down: 5 stmts out of 5 (100.0%) +WaitInterrupt: 1 stmts out of 1 (100.0%) +WaitInterval: 1 stmts out of 1 (100.0%) +WaitMail: 9 stmts out of 9 (100.0%) +WaitTimeout: 1 stmts out of 1 (100.0%) +Write_TM_LSB: 2 stmts out of 2 (100.0%) +Write_TM_MSB: 2 stmts out of 2 (100.0%) +isr_send_message: 3 stmts out of 3 (100.0%) +ClassifyEvent: 59 stmts out of 60 (98.3%) +HandleAcquisition: 58 stmts out of 59 (98.3%) +TM_Tests: 51 stmts out of 52 (98.1%) +MemoryPatch: 41 stmts out of 42 (97.6%) +ExecuteCommand: 78 stmts out of 81 (96.3%) +StartSystem: 19 stmts out of 20 (95.0%) +TC_InterruptService: 117 stmts out of 126 (92.9%) +TM_InterruptService: 25 stmts out of 27 (92.6%) +SetTriggerLevel: 29 stmts out of 32 (90.6%) +Switch_SU_Off: 16 stmts out of 18 (88.9%) +Switch_SU_On: 16 stmts out of 18 (88.9%) +WriteMemory: 16 stmts out of 18 (88.9%) +Check_Current: 13 stmts out of 15 (86.7%) +PatchExecCommandOk: 5 stmts out of 6 (83.3%) +CreateTask: 8 stmts out of 10 (80.0%) +SendTaskMail: 4 stmts out of 5 (80.0%) +Check_RAM: 22 stmts out of 28 (78.6%) +Monitor_SU_Voltage: 16 stmts out of 22 (72.7%) +main: 5 stmts out of 7 (71.4%) diff --git a/debie1/.frama-c/debie1.eva/nonterm.log b/debie1/.frama-c/debie1.eva/nonterm.log new file mode 100644 index 0000000000000000000000000000000000000000..39fd5c80c2869b0a03596423e3a5fbeefc8357b2 --- /dev/null +++ b/debie1/.frama-c/debie1.eva/nonterm.log @@ -0,0 +1,2 @@ +code/debie.c:50:[nonterm] warning: unreachable implicit return +code/harness/harness.c:3732:[nonterm] warning: unreachable implicit return diff --git a/cerberus/unspecified_value_struct_copy.eva/warnings.log b/debie1/.frama-c/debie1.eva/warnings.log similarity index 100% rename from cerberus/unspecified_value_struct_copy.eva/warnings.log rename to debie1/.frama-c/debie1.eva/warnings.log diff --git a/debie1/.frama-c/debie1.parse/framac.ast b/debie1/.frama-c/debie1.parse/framac.ast new file mode 100644 index 0000000000000000000000000000000000000000..d54d85bb18e4167965efea55265ba020012c0f6f --- /dev/null +++ b/debie1/.frama-c/debie1.parse/framac.ast @@ -0,0 +1,5471 @@ +/* Generated by Frama-C */ +#include "errno.h" +#include "stdarg.h" +#include "stddef.h" +#include "stdio.h" +#include "stdlib.h" +#include "string.h" +#include "strings.h" +typedef unsigned int uint_least8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint_least16_t; +typedef uint16_t uskew16_t; +typedef unsigned int uint32_t; +typedef uint32_t uskew32_t; +typedef uint16_t data_address_t; +typedef uint16_t code_address_t; +typedef code_address_t fptr_t; +typedef unsigned char DEBIE_mode_t; +enum __anonenum_reset_class_t_1 { + power_up_reset_e = 0, + watchdog_reset_e = 1, + soft_reset_e = 2, + warm_reset_e = 3, + error_e = 4, + checksum_reset_e = 5 +}; +typedef enum __anonenum_reset_class_t_1 reset_class_t; +enum __anonenum_memory_configuration_t_2 { + PROM_e = 0, + SRAM_e = 1 +}; +typedef enum __anonenum_memory_configuration_t_2 memory_configuration_t; +typedef uint32_t dpu_time_t; +typedef uskew32_t tm_dpu_time_t; +typedef uskew16_t tm_ushort_t; +struct __anonstruct_memory_patch_variables_t_3 { + unsigned char *source ; + data_address_t destination ; + uint_least8_t data_amount ; + unsigned char execution_command ; +}; +typedef struct __anonstruct_memory_patch_variables_t_3 memory_patch_variables_t; +typedef uint_least8_t sensor_number_t; +typedef uint_least8_t sensor_index_t; +typedef uint_least8_t channel_t; +struct __anonstruct_delays_t_4 { + unsigned short FromPlasma1Plus ; + unsigned short FromPlasma1Minus ; +}; +typedef struct __anonstruct_delays_t_4 delays_t; +struct __anonstruct_trigger_set_t_5 { + sensor_number_t sensor_unit ; + channel_t channel ; + unsigned char level ; + unsigned char execution_result ; + unsigned int base ; +}; +typedef struct __anonstruct_trigger_set_t_5 trigger_set_t; +struct __anonstruct_voltage_status_t_6 { + unsigned char V_down_bit ; + unsigned char HV_status ; +}; +typedef struct __anonstruct_voltage_status_t_6 voltage_status_t; +struct __anonstruct_SU_settings_t_7 { + unsigned char plus_5_voltage ; + unsigned char minus_5_voltage ; + unsigned char plasma_1_plus_threshold ; + unsigned char plasma_1_minus_threshold ; + unsigned char piezo_threshold ; + unsigned char plasma_1_plus_classification ; + unsigned char plasma_1_minus_classification ; + unsigned char piezo_1_classification ; + unsigned char piezo_2_classification ; + unsigned char plasma_2_plus_classification ; + unsigned char plasma_1_plus_to_minus_max_time ; + unsigned char plasma_1_plus_to_piezo_min_time ; + unsigned char plasma_1_plus_to_piezo_max_time ; + unsigned char plasma_1_minus_to_piezo_min_time ; + unsigned char plasma_1_minus_to_piezo_max_time ; +}; +typedef struct __anonstruct_SU_settings_t_7 SU_settings_t; +struct __anonstruct_telemetry_data_t_8 { + unsigned char error_status ; + unsigned char mode_status ; + uint16_t TC_word ; + dpu_time_t TC_time_tag ; + unsigned char watchdog_failures ; + unsigned char checksum_failures ; + unsigned char SW_version ; + unsigned char isr_send_message_error ; + unsigned char SU_status[4] ; + unsigned char SU_temperature[4][2] ; + unsigned char DPU_plus_5_digital ; + unsigned char os_send_message_error ; + unsigned char os_create_task_error ; + unsigned char SU_plus_50 ; + unsigned char SU_minus_50 ; + unsigned char os_disable_isr_error ; + unsigned char not_used_1 ; + SU_settings_t sensor_unit_1 ; + unsigned char os_wait_error ; + SU_settings_t sensor_unit_2 ; + unsigned char os_attach_interrupt_error ; + SU_settings_t sensor_unit_3 ; + unsigned char os_enable_isr_error ; + SU_settings_t sensor_unit_4 ; + code_address_t failed_code_address ; + data_address_t failed_data_address ; + uint16_t SU_hits[4] ; + tm_dpu_time_t time ; + unsigned char software_error ; + unsigned char hit_budget_exceedings ; + unsigned char coefficient[5] ; + unsigned char not_used ; +}; +typedef struct __anonstruct_telemetry_data_t_8 telemetry_data_t; +struct __anonstruct_event_record_t_9 { + unsigned char quality_number ; + unsigned char classification ; + unsigned char SU_number ; + tm_dpu_time_t hit_time ; + unsigned char SU_temperature_1 ; + unsigned char SU_temperature_2 ; + tm_ushort_t plasma_1_plus ; + tm_ushort_t plasma_1_minus ; + tm_ushort_t piezo_1 ; + tm_ushort_t piezo_2 ; + tm_ushort_t plasma_2_plus ; + unsigned char rise_time ; + signed char delay_1 ; + tm_ushort_t delay_2 ; + tm_ushort_t delay_3 ; + unsigned char checksum ; +}; +typedef struct __anonstruct_event_record_t_9 event_record_t; +struct __anonstruct_science_data_file_t_10 { + unsigned short length ; + unsigned char event_counter[4][10] ; + unsigned char not_used ; + unsigned char counter_checksum ; + event_record_t event[1261] ; +}; +typedef struct __anonstruct_science_data_file_t_10 science_data_file_t; +enum __anonenum_SU_state_t_11 { + off_e = 0, + start_switching_e = 1, + switching_e = 2, + on_e = 3, + self_test_mon_e = 4, + self_test_e = 5, + self_test_trigger_e = 6, + acquisition_e = 7 +}; +typedef enum __anonenum_SU_state_t_11 SU_state_t; +struct __anonstruct_sensor_unit_t_12 { + sensor_number_t SU_number ; + SU_state_t SU_state ; + SU_state_t expected_source_state ; + unsigned char execution_result ; +}; +typedef struct __anonstruct_sensor_unit_t_12 sensor_unit_t; +enum __anonenum_SU_test_level_t_13 { + high_e = 0, + low_e = 1 +}; +typedef enum __anonenum_SU_test_level_t_13 SU_test_level_t; +enum __anonenum_round_t_7 { + round_0_e = 0, + round_1_e = 1, + round_2_e = 2, + round_3_e = 3, + round_4_e = 4, + round_5_e = 5, + round_6_e = 6, + round_7_e = 7, + round_8_e = 8, + round_9_e = 9 +}; +struct __anonstruct_task_info_t_8 { + unsigned char rtx_task_number ; + void (*task_main_function)(void) ; +}; +typedef struct __anonstruct_task_info_t_8 task_info_t; +enum __anonenum_TC_state_t_12 { + TC_handling_e = 0, + read_memory_e = 1, + memory_dump_e = 2, + write_memory_e = 3, + memory_patch_e = 4, + register_TM_e = 5, + SC_TM_e = 6 +}; +typedef enum __anonenum_TC_state_t_12 TC_state_t; +struct __anonstruct_ADC_parameters_t_17 { + channel_t ADC_channel ; + uint_least8_t ADC_max_tries ; + uint_least8_t conversion_max_tries ; + unsigned int unsigned_ADC ; + int signed_ADC ; + unsigned char AD_execution_result ; + sensor_number_t sensor_unit ; +}; +typedef struct __anonstruct_ADC_parameters_t_17 ADC_parameters_t; +enum __anonenum_SU_index_t_18 { + su1_e = 0, + su2_e = 1, + su3_e = 2, + su4_e = 3 +}; +enum __anonenum_AD_channel_t_19 { + channel_0_e = 0, + channel_1_e = 1, + channel_2_e = 2, + channel_3_e = 3, + channel_4_e = 4, + channel_5_e = 5, + channel_6_e = 6 +}; +struct __anonstruct_incoming_mail_t_11 { + unsigned char mailbox_number ; + unsigned char timeout ; + uint16_t *message ; + signed char execution_result ; + signed char wait_result ; + unsigned char event_selector ; +}; +typedef struct __anonstruct_incoming_mail_t_11 incoming_mail_t; +struct __anonstruct_telecommand_t_18 { + uint16_t TC_word ; + unsigned char TC_address ; + unsigned char TC_code ; +}; +typedef struct __anonstruct_telecommand_t_18 telecommand_t; +enum __anonenum_memory_type_t_19 { + code_e = 0, + data_e = 1 +}; +typedef enum __anonenum_memory_type_t_19 memory_type_t; +struct __anonstruct_ad_limit_t_18 { + uint16_t min ; + uint16_t max ; +}; +typedef struct __anonstruct_ad_limit_t_18 ad_limit_t; +unsigned char *Data_Pointer(uint16_t address); + +unsigned short Short_Value(uskew16_t *x); + +void Call_Patch(fptr_t func); + +unsigned char Event_Flag(void); + +void Set_Data_Byte(data_address_t addr, unsigned char value); + +unsigned char Get_Data_Byte(data_address_t addr); + +unsigned char Get_Code_Byte(code_address_t addr); + +unsigned char Check_Current(unsigned char bits); + +reset_class_t s_w_reset; + +unsigned char code_not_patched; + +unsigned char reference_checksum; + +/*@ ghost int init_dpu_called; */ +void Init_DPU(reset_class_t reset_class); + +reset_class_t GetResetClass(void); + +void SignalMemoryErrors(void); + +void SetMemoryConfiguration(memory_configuration_t memory); + +memory_configuration_t GetMemoryConfiguration(void); + +void PatchCode(memory_patch_variables_t *patch_variables); + +void Reboot(reset_class_t boot_type); + +unsigned char TestMemBits(data_address_t address); + +unsigned char TestMemData(data_address_t start, uint_least8_t bytes); + +unsigned char TestMemSeq(data_address_t start, uint_least8_t bytes); + +unsigned char Get_MSB_Counter(void); + +unsigned char Get_LSB1_Counter(void); + +unsigned char Get_LSB2_Counter(void); + +unsigned char Rise_Time_Counter(void); + +unsigned char Trigger_Source_0(void); + +unsigned char Trigger_Source_1(void); + +unsigned char V_Down(void); + +void Set_SU_Self_Test_Ch(unsigned char value); + +void Set_Test_Pulse_Level(unsigned char level); + +unsigned char SU_ctrl_register; + +void ReadDelayCounters(delays_t *delay); + +unsigned char ReadRiseTimeCounter(void); + +void ResetDelayCounters(void); + +void ResetPeakDetector(sensor_number_t unit); + +void SignalPeakDetectorReset(unsigned char low_reset_value, + unsigned char high_reset_value); + +void SetTriggerLevel(trigger_set_t *setting); + +void SetTestPulseLevel(unsigned char level); + +void GetVoltageStatus(voltage_status_t *v_status); + +void Switch_SU_On(sensor_number_t SU_Number, unsigned char *execution_result); + +void Switch_SU_Off(sensor_number_t SU_Number, unsigned char *execution_result); + +void EnableAnalogSwitch(sensor_index_t self_test_SU_index); + +void DisableAnalogSwitch(sensor_index_t self_test_SU_index); + +void SelectSelfTestChannel(unsigned char channel); + +void SelectTriggerSwitchLevel(unsigned char test_channel_0, + sensor_index_t self_test_SU_index); + +void SelectStartSwitchLevel(unsigned char test_channel_0, + sensor_index_t self_test_SU_index); + +telemetry_data_t telemetry_data; + +science_data_file_t science_data; + +uint_least16_t max_events; + +void RecordEvent(void); + +void ClearEvents(void); + +void InitClassification(void); + +void ClassifyEvent(event_record_t *new_event); + +void Init_SU_Settings(SU_settings_t *set); + +unsigned char event_class[256]; + +SU_state_t SU_state[4]; + +sensor_number_t self_test_SU_number; + +uint_least8_t hit_budget; + +uint_least8_t hit_budget_left; + +void Switch_SU_State(sensor_unit_t *SU_setting); + +void Start_SU_SwitchingOn(sensor_index_t SU, unsigned char *exec_result); + +void SetSensorUnitOff(sensor_index_t SU, unsigned char *exec_result); + +SU_state_t ReadSensorUnit(unsigned char SU_number); + +void Update_SU_State(sensor_index_t SU_index); + +void (*hit_task)(void); + +void (*acq_task)(void); + +void InitHitTriggerTask(void); + +void HandleHitTrigger(void); + +void InitAcquisitionTask(void); + +void HandleAcquisition(void); + +unsigned char RoughLogarithm(unsigned int x) +{ + unsigned char greatest_non_zero_bit; + unsigned int shifted; + greatest_non_zero_bit = (unsigned char)0; + shifted = x; + while (shifted) { + greatest_non_zero_bit = (unsigned char)((int)greatest_non_zero_bit + 1); + shifted >>= 1; + } + return greatest_non_zero_bit; +} + +float GetQualityTerm(unsigned char coeff, unsigned int amplitude) +{ + float quality; + unsigned char tmp; + tmp = RoughLogarithm(amplitude); + quality = (float)((double)((float)((int)telemetry_data.coefficient[coeff] * (int)tmp)) / ( + ((double)5 * 16.0) / (double)5)); + if ((double)quality > 5.0) quality = (float)5.0; + return quality; +} + +void CalculateQualityNumber(event_record_t *new_event) +{ + float quality; + float tmp_0; + unsigned short tmp; + float tmp_2; + unsigned short tmp_1; + float tmp_4; + unsigned short tmp_3; + float tmp_6; + unsigned short tmp_5; + float tmp_8; + unsigned short tmp_7; + quality = (float)(25.0 * (double)new_event->classification); + tmp = Short_Value(& new_event->plasma_1_plus); + tmp_0 = GetQualityTerm((unsigned char)0,(unsigned int)tmp); + quality += tmp_0; + tmp_1 = Short_Value(& new_event->plasma_1_minus); + tmp_2 = GetQualityTerm((unsigned char)1,(unsigned int)tmp_1); + quality += tmp_2; + tmp_3 = Short_Value(& new_event->piezo_1); + tmp_4 = GetQualityTerm((unsigned char)2,(unsigned int)tmp_3); + quality += tmp_4; + tmp_5 = Short_Value(& new_event->piezo_2); + tmp_6 = GetQualityTerm((unsigned char)3,(unsigned int)tmp_5); + quality += tmp_6; + tmp_7 = Short_Value(& new_event->plasma_2_plus); + tmp_8 = GetQualityTerm((unsigned char)4,(unsigned int)tmp_7); + quality += tmp_8; + new_event->quality_number = (unsigned char)((double)quality + 0.5); + return; +} + +void ClassifyEvent(event_record_t *new_event) +{ + unsigned char class_index; + SU_settings_t *limits; + unsigned short tmp; + unsigned short tmp_0; + unsigned short tmp_1; + unsigned short tmp_2; + unsigned short tmp_3; + unsigned short tmp_4; + unsigned short tmp_6; + class_index = (unsigned char)0; + switch ((int)new_event->SU_number) { + case 1: limits = & telemetry_data.sensor_unit_1; + break; + case 2: limits = & telemetry_data.sensor_unit_2; + break; + case 3: limits = & telemetry_data.sensor_unit_3; + break; + case 4: limits = & telemetry_data.sensor_unit_4; + break; + } + tmp = Short_Value(& new_event->plasma_1_plus); + ; + if ((int)tmp >= (int)limits->plasma_1_plus_classification * 256) class_index = (unsigned char)( + (int)class_index | 0x80); + tmp_0 = Short_Value(& new_event->plasma_1_minus); + ; + if ((int)tmp_0 >= (int)limits->plasma_1_minus_classification * 256) + class_index = (unsigned char)((int)class_index | 0x40); + tmp_1 = Short_Value(& new_event->piezo_1); + ; + if ((int)tmp_1 >= (int)limits->piezo_1_classification * 256) class_index = (unsigned char)( + (int)class_index | 0x20); + tmp_2 = Short_Value(& new_event->piezo_2); + ; + if ((int)tmp_2 >= (int)limits->piezo_2_classification * 256) class_index = (unsigned char)( + (int)class_index | 0x10); + tmp_3 = Short_Value(& new_event->plasma_2_plus); + ; + if ((int)tmp_3 >= (int)limits->plasma_2_plus_classification * 256) + class_index = (unsigned char)((int)class_index | 0x08); + tmp_4 = Short_Value(& new_event->delay_2); + ; + if ((int)tmp_4 >= (int)limits->plasma_1_plus_to_piezo_min_time * 16) { + unsigned short tmp_5; + tmp_5 = Short_Value(& new_event->delay_2); + ; + if ((int)tmp_5 <= (int)limits->plasma_1_plus_to_piezo_max_time * 16) + class_index = (unsigned char)((int)class_index | 0x02); + } + tmp_6 = Short_Value(& new_event->delay_3); + ; + if ((int)tmp_6 >= (int)limits->plasma_1_minus_to_piezo_min_time * 16) { + unsigned short tmp_7; + tmp_7 = Short_Value(& new_event->delay_3); + ; + if ((int)tmp_7 <= (int)limits->plasma_1_minus_to_piezo_max_time * 16) + class_index = (unsigned char)((int)class_index | 0x01); + } + if ((int)new_event->delay_1 <= (int)limits->plasma_1_plus_to_minus_max_time) + class_index = (unsigned char)((int)class_index | 0x04); + new_event->classification = event_class[class_index]; + if (SU_state[(int)new_event->SU_number - 1] == (unsigned int)self_test_e) + new_event->quality_number = (unsigned char)255; + else CalculateQualityNumber(new_event); + return; +} + +void InitClassification(void) +{ + uint_least8_t i; + i = (unsigned int)0; + while (i < (uint_least8_t)5) { + telemetry_data.coefficient[i] = (unsigned char)5; + i ++; + } + Init_SU_Settings(& telemetry_data.sensor_unit_1); + Init_SU_Settings(& telemetry_data.sensor_unit_2); + Init_SU_Settings(& telemetry_data.sensor_unit_3); + Init_SU_Settings(& telemetry_data.sensor_unit_4); + return; +} + +void Init_SU_Settings(SU_settings_t *set) +{ + set->plasma_1_plus_threshold = (unsigned char)0x0D; + set->plasma_1_minus_threshold = (unsigned char)0x0D; + set->piezo_threshold = (unsigned char)0x0D; + set->plasma_1_plus_classification = (unsigned char)0; + set->plasma_1_minus_classification = (unsigned char)0; + set->piezo_1_classification = (unsigned char)0; + set->piezo_2_classification = (unsigned char)0; + set->plasma_2_plus_classification = (unsigned char)0; + set->plasma_1_plus_to_minus_max_time = (unsigned char)255; + set->plasma_1_plus_to_piezo_min_time = (unsigned char)0; + set->plasma_1_plus_to_piezo_max_time = (unsigned char)255; + set->plasma_1_minus_to_piezo_min_time = (unsigned char)0; + set->plasma_1_minus_to_piezo_max_time = (unsigned char)255; + return; +} + +unsigned char event_class[256] = + {(unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)5, + (unsigned char)5, + (unsigned char)5, + (unsigned char)5, + (unsigned char)5, + (unsigned char)5, + (unsigned char)5, + (unsigned char)5, + (unsigned char)8, + (unsigned char)8, + (unsigned char)8, + (unsigned char)8, + (unsigned char)8, + (unsigned char)8, + (unsigned char)8, + (unsigned char)8, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)1, + (unsigned char)3, + (unsigned char)1, + (unsigned char)3, + (unsigned char)1, + (unsigned char)3, + (unsigned char)1, + (unsigned char)3, + (unsigned char)1, + (unsigned char)4, + (unsigned char)1, + (unsigned char)4, + (unsigned char)1, + (unsigned char)4, + (unsigned char)1, + (unsigned char)4, + (unsigned char)1, + (unsigned char)3, + (unsigned char)1, + (unsigned char)3, + (unsigned char)1, + (unsigned char)3, + (unsigned char)1, + (unsigned char)3, + (unsigned char)1, + (unsigned char)4, + (unsigned char)1, + (unsigned char)4, + (unsigned char)1, + (unsigned char)4, + (unsigned char)1, + (unsigned char)4, + (unsigned char)1, + (unsigned char)5, + (unsigned char)1, + (unsigned char)5, + (unsigned char)1, + (unsigned char)5, + (unsigned char)1, + (unsigned char)5, + (unsigned char)1, + (unsigned char)8, + (unsigned char)1, + (unsigned char)8, + (unsigned char)1, + (unsigned char)8, + (unsigned char)1, + (unsigned char)8, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)0, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)3, + (unsigned char)1, + (unsigned char)3, + (unsigned char)1, + (unsigned char)3, + (unsigned char)1, + (unsigned char)3, + (unsigned char)1, + (unsigned char)3, + (unsigned char)1, + (unsigned char)1, + (unsigned char)4, + (unsigned char)4, + (unsigned char)1, + (unsigned char)1, + (unsigned char)4, + (unsigned char)4, + (unsigned char)1, + (unsigned char)1, + (unsigned char)3, + (unsigned char)3, + (unsigned char)1, + (unsigned char)1, + (unsigned char)3, + (unsigned char)3, + (unsigned char)1, + (unsigned char)1, + (unsigned char)4, + (unsigned char)4, + (unsigned char)1, + (unsigned char)1, + (unsigned char)4, + (unsigned char)4, + (unsigned char)1, + (unsigned char)1, + (unsigned char)5, + (unsigned char)5, + (unsigned char)1, + (unsigned char)1, + (unsigned char)5, + (unsigned char)5, + (unsigned char)1, + (unsigned char)1, + (unsigned char)8, + (unsigned char)8, + (unsigned char)1, + (unsigned char)1, + (unsigned char)8, + (unsigned char)8, + (unsigned char)1, + (unsigned char)1, + (unsigned char)1, + (unsigned char)1, + (unsigned char)6, + (unsigned char)6, + (unsigned char)6, + (unsigned char)6, + (unsigned char)1, + (unsigned char)1, + (unsigned char)1, + (unsigned char)1, + (unsigned char)7, + (unsigned char)7, + (unsigned char)7, + (unsigned char)7, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)7, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)9, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)7, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)9, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)7, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)2, + (unsigned char)9}; +unsigned char EA; + +uint_least8_t health_mon_round; + +uint_least8_t temp_meas_count; + +uint_least8_t voltage_meas_count; + +uint_least8_t checksum_count; + +unsigned char code_checksum; + +unsigned char confirm_hit_result; + +dpu_time_t internal_time; + +void SetSoftwareError(unsigned char error); + +void ClearSoftwareError(void); + +void SetModeStatusError(unsigned char mode_status_error); + +void ClearModeStatusError(void); + +void SetMode(DEBIE_mode_t mode); + +DEBIE_mode_t GetMode(void); + +void Clear_SU_Error(void); + +void Set_SU_Error(sensor_index_t SU_index, unsigned char SU_error); + +void SetErrorStatus(unsigned char error_source); + +void ClearErrorStatus(void); + +void Clear_RTX_Errors(void); + +void Boot(void); + +void InitHealthMonitoring(void); + +void HandleHealthMonitoring(void); + +void ShortDelay(uint_least8_t delay_loops); + +void CreateTask(task_info_t *new_task); + +void WaitInterval(unsigned char time); + +void WaitTimeout(unsigned char time); + +void SetTimeSlice(unsigned int time_slice); + +void StartSystem(unsigned char task_number); + +void SendTaskMail(unsigned char mailbox, uint16_t message, + unsigned char timeout); + +unsigned char isr_send_message(unsigned char mailbox, uint16_t message); + +int main(void) +{ + int __retres; + EA = (unsigned char)0; + Init_DPU(s_w_reset); + Boot(); + EA = (unsigned char)1; + StartSystem((unsigned char)0); + while (1) ; + return __retres; +} + +void Update_ADC_Channel_Reg(unsigned char channel); + +void Start_Conversion(void); + +unsigned char End_Of_ADC(void); + +unsigned char Get_Result(void); + +void Set_DAC_Output(unsigned char level); + +unsigned char ADC_channel_register; + +unsigned char code_checksum; +dpu_time_t internal_time; +unsigned char Read_TC_MSB(void); + +unsigned char Read_TC_LSB(void); + +void Write_TM_LSB(unsigned char value); + +void Write_TM_MSB(unsigned char value); + +TC_state_t TC_state; + +void (*TC_task)(void); + +void Set_TC_Error(void); + +void TC_InterruptService(void); + +void InitTelecommandTask(void); + +void HandleTelecommand(void); + +uint_least8_t event_queue_length; + +unsigned char *telemetry_pointer; + +unsigned char *telemetry_end_pointer; + +unsigned int free_slot_index; + +unsigned char read_memory_checksum; + +event_record_t *GetFreeRecord(void); + +void ResetEventQueueLength(void); + +void TM_InterruptService(void); + +void Enable_Hit_Trigger(void); + +void Disable_Hit_Trigger(void); + +unsigned char Hit_Trigger_Flag(void); + +unsigned char TC_Timer_Overflow_Flag(void); + +void Clear_TC_Timer_Overflow_Flag(void); + +void Set_TC_Timer_Overflow_Flag(void); + +void AttachInterrupt(unsigned char ISR_VectorNumber); + +void EnableInterrupt(unsigned char ISR_VectorNumber); + +void DisableInterrupt(unsigned char ISR_VectorNumber); + +signed char SetInterruptMask(unsigned char ISR_MaskNumber); + +signed char ResetInterruptMask(unsigned char ISR_MaskNumber); + +void WaitInterrupt(unsigned char ISR_VectorNumber, unsigned char timer); + +uint_least8_t temp_meas_count = (unsigned int)5; +uint_least8_t voltage_meas_count = (unsigned int)17; +uint_least8_t checksum_count = (unsigned int)59; +unsigned char self_test_flag = (unsigned char)0; +unsigned char ADC_channel_register = (unsigned char)0x80; +void DelayAwhile(unsigned short duration); + +void Read_AD_Channel(ADC_parameters_t *ADC_parameters); + +void DAC_SelfTest(unsigned char DAC_output, + ADC_parameters_t *ADC_test_parameters); + +void Monitor(uint_least8_t health_mon_round_0); + +void UpdateTime(void); + +void MeasureTemperature(sensor_index_t SU_index); + +void HighVoltageCurrent(sensor_index_t SU_index); + +void LowVoltageCurrent(void); + +void MeasureVoltage(uint_least8_t channel_selector); + +void InitSystem(void); + +void CalculateChecksum(uint_least8_t checksum_count_0); + +void UpdatePeriodCounter(uint_least8_t *counter, + uint_least8_t full_counter_value); + +void Convert_AD(ADC_parameters_t *ADC_parameters); + +void TemperatureFailure(sensor_index_t SU_index); + +void VoltageFailure(channel_t ADC_channel); + +void SelfTest_SU(sensor_index_t self_test_SU_index); + +void Monitor_DPU_Voltage(void); + +void Monitor_SU_Voltage(sensor_index_t self_test_SU_index); + +unsigned char ExceedsLimit(unsigned char value, unsigned char lower_limit, + unsigned char upper_limit); + +void RestoreSettings(sensor_index_t self_test_SU_index); + +void SelfTestChannel(sensor_index_t self_test_SU_index); + +void ExecuteChannelTest(sensor_index_t self_test_SU_index, + unsigned char test_channel_0, + unsigned char test_pulse_level); + +void Set_SU_TriggerLevels(sensor_number_t sensor_unit, + SU_settings_t *settings); + +void Clear_RTX_Errors(void) +{ + telemetry_data.isr_send_message_error = (unsigned char)0xFF; + telemetry_data.os_send_message_error = (unsigned char)0xFF; + telemetry_data.os_create_task_error = (unsigned char)0xFF; + telemetry_data.os_wait_error = (unsigned char)0xFF; + telemetry_data.os_attach_interrupt_error = (unsigned char)0xFF; + telemetry_data.os_enable_isr_error = (unsigned char)0xFF; + telemetry_data.os_disable_isr_error = (unsigned char)0xFF; + return; +} + +void SetSoftwareError(unsigned char error) +{ + telemetry_data.software_error = (unsigned char)((int)telemetry_data.software_error | (int)error); + return; +} + +void ClearSoftwareError(void) +{ + telemetry_data.software_error = (unsigned char)0; + return; +} + +void SetModeStatusError(unsigned char mode_status_error) +{ + telemetry_data.mode_status = (unsigned char)((int)telemetry_data.mode_status | ( + (int)mode_status_error & ~ 3)); + return; +} + +void ClearModeStatusError(void) +{ + telemetry_data.mode_status = (unsigned char)((int)telemetry_data.mode_status & 3); + return; +} + +void SetMode(DEBIE_mode_t mode) +{ + telemetry_data.mode_status = (unsigned char)(((int)telemetry_data.mode_status & ~ 3) | ( + (int)mode & 3)); + return; +} + +DEBIE_mode_t GetMode(void) +{ + DEBIE_mode_t __retres; + __retres = (unsigned char)((int)telemetry_data.mode_status & 3); + return __retres; +} + +void Clear_SU_Error(void) +{ + sensor_index_t i; + i = (unsigned int)0; + while (i < (sensor_index_t)4) { + telemetry_data.SU_status[i] = (unsigned char)((int)telemetry_data.SU_status[i] & 0x03); + i ++; + } + return; +} + +void Set_SU_Error(sensor_index_t SU_index, unsigned char SU_error) +{ + telemetry_data.SU_status[SU_index] = (unsigned char)((int)telemetry_data.SU_status[SU_index] | ( + (int)SU_error & ~ 0x03)); + SetErrorStatus((unsigned char)(0x10 << SU_index)); + return; +} + +void Set_SU_TriggerLevels(sensor_number_t sensor_unit, + SU_settings_t *settings) +{ + trigger_set_t trigger; + trigger.sensor_unit = sensor_unit; + trigger.level = settings->plasma_1_plus_threshold; + trigger.channel = (unsigned int)0; + SetTriggerLevel(& trigger); + trigger.level = settings->plasma_1_minus_threshold; + trigger.channel = (unsigned int)1; + SetTriggerLevel(& trigger); + trigger.level = settings->piezo_threshold; + trigger.channel = (unsigned int)5; + SetTriggerLevel(& trigger); + return; +} + +void SetErrorStatus(unsigned char error_source) +{ + telemetry_data.error_status = (unsigned char)((int)telemetry_data.error_status | ( + (int)error_source & ~ 1)); + return; +} + +void ClearErrorStatus(void) +{ + telemetry_data.error_status = (unsigned char)0; + return; +} + +void DPU_SelfTest(void) +{ + Monitor_DPU_Voltage(); + return; +} + +/*@ requires init_dpu_called ≡ 1; */ +void Boot(void) +{ + unsigned char execution_result; + unsigned char *fill_pointer; + reset_class_t reset_class; + unsigned int i; + SU_ctrl_register = (unsigned char)((int)SU_ctrl_register | 0x0F); + Set_Data_Byte((unsigned short)0xFFD0,SU_ctrl_register); + max_events = (unsigned int)1261; + ResetDelayCounters(); + SetSensorUnitOff((unsigned int)su1_e,& execution_result); + SetSensorUnitOff((unsigned int)su2_e,& execution_result); + SetSensorUnitOff((unsigned int)su3_e,& execution_result); + SetSensorUnitOff((unsigned int)su4_e,& execution_result); + ADC_channel_register = (unsigned char)((int)ADC_channel_register | 0x80); + Update_ADC_Channel_Reg(ADC_channel_register); + reset_class = GetResetClass(); + if (reset_class != (unsigned int)warm_reset_e) reference_checksum = (unsigned char)0; + if (reset_class == (unsigned int)power_up_reset_e) { + internal_time = (unsigned int)0; + fill_pointer = (unsigned char *)(& telemetry_data); + i = (unsigned int)0; + while (i < sizeof(telemetry_data)) { + *fill_pointer = (unsigned char)0; + fill_pointer ++; + i ++; + } + ResetEventQueueLength(); + ClearEvents(); + InitClassification(); + Clear_RTX_Errors(); + } + else + if (reset_class == (unsigned int)watchdog_reset_e) { + telemetry_data.error_status = (unsigned char)((int)telemetry_data.error_status | 0x04); + if ((int)telemetry_data.watchdog_failures < 255) telemetry_data.watchdog_failures = (unsigned char)( + (int)telemetry_data.watchdog_failures + 1); + } + else + if (reset_class == (unsigned int)checksum_reset_e) { + telemetry_data.error_status = (unsigned char)((int)telemetry_data.error_status | 0x08); + if ((int)telemetry_data.checksum_failures < 255) telemetry_data.checksum_failures = (unsigned char)( + (int)telemetry_data.checksum_failures + 1); + } + else { + ClearErrorStatus(); + Clear_SU_Error(); + Clear_RTX_Errors(); + ClearSoftwareError(); + telemetry_data.mode_status = (unsigned char)((int)telemetry_data.mode_status & 3); + telemetry_data.watchdog_failures = (unsigned char)0; + telemetry_data.checksum_failures = (unsigned char)0; + telemetry_data.TC_word = (unsigned short)0; + ResetEventQueueLength(); + ClearEvents(); + InitClassification(); + self_test_SU_number = (unsigned int)0; + } + telemetry_data.mode_status = (unsigned char)(((int)telemetry_data.mode_status & ~ 3) | 0); + telemetry_data.SW_version = (unsigned char)24; + SignalMemoryErrors(); + SetTestPulseLevel((unsigned char)0x00); + Set_SU_TriggerLevels((unsigned int)1,& telemetry_data.sensor_unit_1); + Set_SU_TriggerLevels((unsigned int)2,& telemetry_data.sensor_unit_2); + Set_SU_TriggerLevels((unsigned int)3,& telemetry_data.sensor_unit_3); + Set_SU_TriggerLevels((unsigned int)4,& telemetry_data.sensor_unit_4); + return; +} + +uint_least8_t health_mon_round = (unsigned int)9; +void InitHealthMonitoring(void) +{ + InitSystem(); + DPU_SelfTest(); + SetMode((unsigned char)1); + return; +} + +void HandleHealthMonitoring(void) +{ + Update_SU_State((unsigned int)0); + Update_SU_State((unsigned int)1); + Update_SU_State((unsigned int)2); + Update_SU_State((unsigned int)3); + UpdateTime(); + Monitor(health_mon_round); + UpdatePeriodCounter(& health_mon_round,(unsigned int)9); + WaitInterval((unsigned char)100); + return; +} + +void HealthMonitoringTask(void) +{ + InitHealthMonitoring(); + while (1) HandleHealthMonitoring(); + return; +} + +void Monitor(uint_least8_t health_mon_round_0) +{ + CalculateChecksum(checksum_count); + UpdatePeriodCounter(& checksum_count,(unsigned int)59); + switch (health_mon_round_0) { + unsigned char tmp; + case (uint_least8_t)round_0_e: HighVoltageCurrent(health_mon_round_0); + UpdatePeriodCounter(& temp_meas_count,(unsigned int)5); + UpdatePeriodCounter(& voltage_meas_count,(unsigned int)17); + hit_budget_left = hit_budget; + tmp = Hit_Trigger_Flag(); + if ((int)tmp == 0) { + ResetPeakDetector((unsigned int)1); + ResetPeakDetector((unsigned int)2); + ResetPeakDetector((unsigned int)3); + ResetPeakDetector((unsigned int)4); + WaitTimeout((unsigned char)1); + Enable_Hit_Trigger(); + ResetDelayCounters(); + } + break; + case (uint_least8_t)round_1_e: HighVoltageCurrent(health_mon_round_0); + break; + case (uint_least8_t)round_2_e: HighVoltageCurrent(health_mon_round_0); + break; + case (uint_least8_t)round_3_e: HighVoltageCurrent(health_mon_round_0); + break; + case (uint_least8_t)round_4_e: LowVoltageCurrent(); + break; + case (uint_least8_t)round_5_e: ; + if (voltage_meas_count < (uint_least8_t)7) MeasureVoltage(voltage_meas_count); + break; + case (uint_least8_t)round_6_e: ; + if (self_test_SU_number != (sensor_number_t)0) + if (SU_state[self_test_SU_number - (sensor_number_t)1] == (unsigned int)self_test_e) { + SelfTestChannel(self_test_SU_number - (sensor_number_t)1); + self_test_SU_number = (unsigned int)0; + } + break; + case (uint_least8_t)round_7_e: ; + if (self_test_SU_number != (sensor_number_t)0) { + self_test_flag = (unsigned char)1; + SelfTest_SU(self_test_SU_number - (sensor_number_t)1); + if (self_test_SU_number != (sensor_number_t)0) SU_state[self_test_SU_number - (sensor_number_t)1] = self_test_e; + } + break; + case (uint_least8_t)round_8_e: ; + break; + case (uint_least8_t)round_9_e: ; + if (temp_meas_count < (uint_least8_t)4) MeasureTemperature(temp_meas_count); + break; + } + return; +} + +void UpdateTime(void) +{ + internal_time ++; + return; +} + +void MeasureTemperature(sensor_index_t SU_index) +{ + ADC_parameters_t AD_temperature_parameters; + unsigned char temp_limit_value; + uint_least8_t j; + j = (unsigned int)0; + while (j < (uint_least8_t)2) { + AD_temperature_parameters.ADC_channel = (((unsigned int)5 + (SU_index & (unsigned int)1) * (unsigned int)8) + + (SU_index & (unsigned int)2) * (unsigned int)12) + j; + AD_temperature_parameters.ADC_max_tries = (unsigned int)255; + AD_temperature_parameters.conversion_max_tries = (unsigned int)255; + Read_AD_Channel(& AD_temperature_parameters); + if (AD_temperature_parameters.unsigned_ADC & (unsigned int)0x8000) + telemetry_data.SU_temperature[SU_index][j] = (unsigned char)((AD_temperature_parameters.unsigned_ADC & (unsigned int)0x7FFF) >> 7); + else telemetry_data.SU_temperature[SU_index][j] = (unsigned char)0; + if (j == (uint_least8_t)0) temp_limit_value = (unsigned char)0xFA; + else temp_limit_value = (unsigned char)0xF4; + if ((int)telemetry_data.SU_temperature[SU_index][j] > (int)temp_limit_value) + TemperatureFailure(SU_index); + if ((int)AD_temperature_parameters.AD_execution_result != 1) { + SetSoftwareError((unsigned char)0x01); + TemperatureFailure(SU_index); + } + j ++; + } + return; +} + +void HighVoltageCurrent(sensor_index_t SU_index) +{ + unsigned char tmp; + unsigned char SU_current_mask[4] = + {(unsigned char)3, + (unsigned char)12, + (unsigned char)48, + (unsigned char)192}; + unsigned char valid_value[4] = + {(unsigned char)1, (unsigned char)4, (unsigned char)16, (unsigned char)64}; + tmp = Check_Current(SU_current_mask[SU_index]); + ; + if ((int)tmp != (int)valid_value[SU_index]) { + SetErrorStatus((unsigned char)(0x10 << SU_index)); + Set_SU_Error(SU_index,(unsigned char)0x80); + } + return; +} + +void LowVoltageCurrent(void) +{ + sensor_index_t i; + unsigned char exec_result; + unsigned char tmp; + tmp = V_Down(); + if ((int)tmp == 0) { + i = (unsigned int)0; + while (i < (sensor_index_t)4) { + SetSensorUnitOff(i,& exec_result); + Set_SU_Error(i,(unsigned char)0x40); + i ++; + } + SetErrorStatus((unsigned char)0xF0); + } + return; +} + +void MeasureVoltage(uint_least8_t channel_selector) +{ + ADC_parameters_t AD_voltage_parameters; + unsigned char voltage_channel[7] = + {(unsigned char)0x10, + (unsigned char)0x11, + (unsigned char)0x12, + (unsigned char)0x13, + (unsigned char)0x54, + (unsigned char)0x55, + (unsigned char)0x56}; + AD_voltage_parameters.ADC_channel = (unsigned int)voltage_channel[channel_selector]; + AD_voltage_parameters.ADC_max_tries = (unsigned int)255; + AD_voltage_parameters.conversion_max_tries = (unsigned int)255; + Read_AD_Channel(& AD_voltage_parameters); + if ((int)AD_voltage_parameters.AD_execution_result != 1) SetSoftwareError + ((unsigned char)0x01); + else + switch (channel_selector) { + case (uint_least8_t)channel_0_e: + telemetry_data.sensor_unit_1.plus_5_voltage = (unsigned char)(AD_voltage_parameters.unsigned_ADC >> 8); + telemetry_data.sensor_unit_2.plus_5_voltage = (unsigned char)(AD_voltage_parameters.unsigned_ADC >> 8); + break; + case (uint_least8_t)channel_1_e: + telemetry_data.sensor_unit_3.plus_5_voltage = (unsigned char)(AD_voltage_parameters.unsigned_ADC >> 8); + telemetry_data.sensor_unit_4.plus_5_voltage = (unsigned char)(AD_voltage_parameters.unsigned_ADC >> 8); + break; + case (uint_least8_t)channel_2_e: + telemetry_data.SU_plus_50 = (unsigned char)(AD_voltage_parameters.unsigned_ADC >> 8); + break; + case (uint_least8_t)channel_3_e: + telemetry_data.DPU_plus_5_digital = (unsigned char)(AD_voltage_parameters.unsigned_ADC >> 8); + break; + case (uint_least8_t)channel_4_e: + telemetry_data.sensor_unit_1.minus_5_voltage = (unsigned char)( + AD_voltage_parameters.unsigned_ADC >> 8); + telemetry_data.sensor_unit_2.minus_5_voltage = (unsigned char)( + AD_voltage_parameters.unsigned_ADC >> 8); + break; + case (uint_least8_t)channel_5_e: + telemetry_data.sensor_unit_3.minus_5_voltage = (unsigned char)( + AD_voltage_parameters.unsigned_ADC >> 8); + telemetry_data.sensor_unit_4.minus_5_voltage = (unsigned char)( + AD_voltage_parameters.unsigned_ADC >> 8); + break; + case (uint_least8_t)channel_6_e: + telemetry_data.SU_minus_50 = (unsigned char)(AD_voltage_parameters.unsigned_ADC >> 8); + break; + } + return; +} + +void InitSystem(void) +{ + task_info_t new_task; + SetTimeSlice((unsigned int)9198); + WaitInterval((unsigned char)55); + new_task.rtx_task_number = (unsigned char)1; + new_task.task_main_function = TC_task; + CreateTask(& new_task); + new_task.rtx_task_number = (unsigned char)2; + new_task.task_main_function = acq_task; + CreateTask(& new_task); + new_task.rtx_task_number = (unsigned char)3; + new_task.task_main_function = hit_task; + CreateTask(& new_task); + return; +} + +void CalculateChecksum(uint_least8_t checksum_count_0) +{ + code_address_t i; + code_address_t check_start; + code_address_t check_end; + check_start = (unsigned short)(checksum_count_0 * (uint_least8_t)547); + if (checksum_count_0 == (uint_least8_t)59) check_end = (unsigned short)0x7FFF; + else check_end = (unsigned short)((int)check_start + (547 - 1)); + if (checksum_count_0 == (uint_least8_t)59) { + code_checksum = (unsigned char)0; + code_not_patched = (unsigned char)1; + } + i = check_start; + while ((int)i <= (int)check_end) { + { + unsigned char tmp; + tmp = Get_Code_Byte(i); + code_checksum = (unsigned char)((int)code_checksum ^ (int)tmp); + } + i = (code_address_t)((int)i + 1); + } + if (checksum_count_0 == (uint_least8_t)0) + if ((int)code_checksum != (int)reference_checksum) + if (code_not_patched) Reboot(checksum_reset_e); + return; +} + +void UpdatePeriodCounter(uint_least8_t *counter, + uint_least8_t full_counter_value) +{ + if (*counter) (*counter) --; else *counter = full_counter_value; + return; +} + +void Convert_AD(ADC_parameters_t *ADC_parameters) +{ + unsigned char conversion_count; + unsigned char msb; + unsigned char lsb; + unsigned int word; + Start_Conversion(); + conversion_count = (unsigned char)0; + /*@ loop unroll ADC_parameters->conversion_max_tries; */ + while (1) { + if ((uint_least8_t)conversion_count < ADC_parameters->conversion_max_tries) { + unsigned char tmp; + tmp = End_Of_ADC(); + if (! ((int)tmp != 0)) break; + } + else break; + conversion_count = (unsigned char)((int)conversion_count + 1); + } + if ((uint_least8_t)conversion_count < ADC_parameters->conversion_max_tries) { + msb = Get_Result(); + lsb = Get_Result(); + word = (unsigned int)msb * (unsigned int)256 + (unsigned int)lsb; + ADC_parameters->signed_ADC = (int)((short)(word ^ (unsigned int)0x8000)); + ADC_parameters->unsigned_ADC = word; + ADC_parameters->AD_execution_result = (unsigned char)1; + } + else { + ADC_parameters->unsigned_ADC = (unsigned int)0; + ADC_parameters->signed_ADC = 0; + ADC_parameters->AD_execution_result = (unsigned char)0; + } + return; +} + +void VoltageFailure(channel_t ADC_channel) +{ + unsigned char i; + unsigned char SU_action[4] = + {(unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0}; + if (ADC_channel == (channel_t)0x10) goto _LOR_1; + else + if (ADC_channel == (channel_t)0x54) { + _LOR_1: + { + SU_action[su1_e] = (unsigned char)1; + SU_action[su2_e] = (unsigned char)1; + SetModeStatusError((unsigned char)0x80); + } + } + else + if (ADC_channel == (channel_t)0x11) goto _LOR_0; + else + if (ADC_channel == (channel_t)0x55) { + _LOR_0: + { + SU_action[su3_e] = (unsigned char)1; + SU_action[su4_e] = (unsigned char)1; + } + } + else + if (ADC_channel == (channel_t)0x12) goto _LOR; + else + if (ADC_channel == (channel_t)0x56) { + _LOR: + { + SU_action[su1_e] = (unsigned char)1; + SU_action[su2_e] = (unsigned char)1; + SU_action[su3_e] = (unsigned char)1; + SU_action[su4_e] = (unsigned char)1; + } + } + else + if (ADC_channel == (channel_t)0x13) SetModeStatusError((unsigned char)0x80); + i = (unsigned char)0; + while ((int)i < 4) { + if (SU_action[i]) { + SetErrorStatus((unsigned char)(0x10 << (int)i)); + if (ADC_channel == (channel_t)0x12) goto _LOR_2; + else + if (ADC_channel == (channel_t)0x56) _LOR_2: + Set_SU_Error((unsigned int)i, + (unsigned char)0x80); + if (ADC_channel == (channel_t)0x10) goto _LOR_3; + else + if (ADC_channel == (channel_t)0x11) goto _LOR_3; + else + if (ADC_channel == (channel_t)0x54) goto _LOR_3; + else + if (ADC_channel == (channel_t)0x55) _LOR_3: + Set_SU_Error((unsigned int)i, + (unsigned char)0x40); + } + i = (unsigned char)((int)i + 1); + } + return; +} + +void TemperatureFailure(sensor_index_t SU_index) +{ + unsigned char exec_result; + SetSensorUnitOff(SU_index,& exec_result); + SetErrorStatus((unsigned char)(0x10 << SU_index)); + Set_SU_Error(SU_index,(unsigned char)0x20); + return; +} + +void DelayAwhile(unsigned short duration) +{ + while ((int)duration > 255) { + ShortDelay((unsigned int)255); + duration = (unsigned short)((int)duration - 255); + } + if ((int)duration > 0) ShortDelay((unsigned int)((unsigned char)duration)); + return; +} + +void Read_AD_Channel(ADC_parameters_t *ADC_parameters) +{ + unsigned char tries_left; + unsigned short delay_limit; + delay_limit = (unsigned short)(((double)2000 / 1.085 - (double)4) / (double)2); + tries_left = (unsigned char)ADC_parameters->ADC_max_tries; + /*@ loop unroll 1; */ + while ((int)tries_left > 0) { + confirm_hit_result = (unsigned char)0; + ADC_channel_register = (unsigned char)((unsigned int)((int)ADC_channel_register & 0x80) | ADC_parameters->ADC_channel); + Update_ADC_Channel_Reg(ADC_channel_register); + Start_Conversion(); + DelayAwhile(delay_limit); + Convert_AD(ADC_parameters); + tries_left = (unsigned char)((int)tries_left - 1); + if ((int)confirm_hit_result == 0) tries_left = (unsigned char)0; + } + if ((int)confirm_hit_result != 0) { + ADC_parameters->unsigned_ADC = (unsigned int)0; + ADC_parameters->signed_ADC = 0; + ADC_parameters->AD_execution_result = (unsigned char)2; + } + else + if ((int)ADC_parameters->AD_execution_result == 0) + if ((int)confirm_hit_result == 0) SetModeStatusError((unsigned char)0x04); + return; +} + +void DAC_SelfTest(unsigned char DAC_output, + ADC_parameters_t *ADC_test_parameters) +{ + Set_DAC_Output(DAC_output); + Read_AD_Channel(ADC_test_parameters); + if ((int)ADC_test_parameters->AD_execution_result != 1) { + Set_SU_Error(ADC_test_parameters->sensor_unit - (sensor_number_t)1, + (unsigned char)0x10); + SetSoftwareError((unsigned char)0x01); + } + return; +} + +void Monitor_DPU_Voltage(void) +{ + unsigned char tmp; + unsigned char tmp_0; + unsigned char tmp_1; + MeasureVoltage((unsigned int)3); + MeasureVoltage((unsigned int)0); + MeasureVoltage((unsigned int)4); + tmp = ExceedsLimit(telemetry_data.sensor_unit_1.plus_5_voltage, + (unsigned char)0xBA,(unsigned char)0xE4); + if (tmp) SetModeStatusError((unsigned char)0x80); + tmp_0 = ExceedsLimit(telemetry_data.sensor_unit_1.minus_5_voltage, + (unsigned char)0x0D,(unsigned char)0x22); + if (tmp_0) SetModeStatusError((unsigned char)0x80); + tmp_1 = ExceedsLimit(telemetry_data.DPU_plus_5_digital,(unsigned char)0xBA, + (unsigned char)0xE4); + if (tmp_1) SetModeStatusError((unsigned char)0x80); + return; +} + +void Monitor_SU_Voltage(sensor_index_t self_test_SU_index) +{ + unsigned char tmp_3; + unsigned char tmp_4; + switch (self_test_SU_index) { + unsigned char tmp; + unsigned char tmp_0; + unsigned char tmp_1; + unsigned char tmp_2; + case (sensor_index_t)su1_e: case (sensor_index_t)su2_e: + tmp = ExceedsLimit(telemetry_data.sensor_unit_1.plus_5_voltage, + (unsigned char)0xBA,(unsigned char)0xE4); + if (tmp) Set_SU_Error(self_test_SU_index,(unsigned char)0x04); + tmp_0 = ExceedsLimit(telemetry_data.sensor_unit_1.minus_5_voltage, + (unsigned char)0x0D,(unsigned char)0x22); + if (tmp_0) Set_SU_Error(self_test_SU_index,(unsigned char)0x04); + break; + case (sensor_index_t)su3_e: case (sensor_index_t)su4_e: + tmp_1 = ExceedsLimit(telemetry_data.sensor_unit_3.plus_5_voltage, + (unsigned char)0xBA,(unsigned char)0xE4); + if (tmp_1) Set_SU_Error(self_test_SU_index,(unsigned char)0x04); + tmp_2 = ExceedsLimit(telemetry_data.sensor_unit_3.minus_5_voltage, + (unsigned char)0x0D,(unsigned char)0x22); + if (tmp_2) Set_SU_Error(self_test_SU_index,(unsigned char)0x04); + break; + } + tmp_3 = ExceedsLimit(telemetry_data.SU_plus_50,(unsigned char)0xA8, + (unsigned char)0xE3); + if (tmp_3) Set_SU_Error(self_test_SU_index,(unsigned char)0x08); + tmp_4 = ExceedsLimit(telemetry_data.SU_minus_50,(unsigned char)0x0E, + (unsigned char)0x2C); + if (tmp_4) Set_SU_Error(self_test_SU_index,(unsigned char)0x08); + return; +} + +void SelfTest_SU(sensor_index_t self_test_SU_index) +{ + uint_least8_t i; + LowVoltageCurrent(); + HighVoltageCurrent(self_test_SU_index); + i = (unsigned int)channel_0_e; + while (i <= (uint_least8_t)channel_6_e) { + MeasureVoltage(i); + i ++; + } + Monitor_SU_Voltage(self_test_SU_index); + MeasureTemperature(self_test_SU_index); + return; +} + +unsigned char ExceedsLimit(unsigned char value, unsigned char lower_limit, + unsigned char upper_limit) +{ + unsigned char __retres; + int tmp; + if ((int)value < (int)lower_limit) tmp = 1; + else + if ((int)value > (int)upper_limit) tmp = 1; else tmp = 0; + __retres = (unsigned char)tmp; + return __retres; +} + +void SelfTestChannel(sensor_index_t self_test_SU_index) +{ + trigger_set_t test_threshold; + Disable_Hit_Trigger(); + test_threshold.sensor_unit = self_test_SU_number; + test_threshold.level = (unsigned char)0xFF; + test_threshold.channel = (unsigned int)0; + SetTriggerLevel(& test_threshold); + test_threshold.channel = (unsigned int)1; + SetTriggerLevel(& test_threshold); + test_threshold.channel = (unsigned int)4; + SetTriggerLevel(& test_threshold); + test_threshold.level = (unsigned char)0xFF; + test_threshold.channel = (unsigned int)5; + SetTriggerLevel(& test_threshold); + SetTestPulseLevel((unsigned char)0); + test_threshold.channel = (unsigned int)0; + test_threshold.level = (unsigned char)0xAB; + SetTriggerLevel(& test_threshold); + ExecuteChannelTest(self_test_SU_index,(unsigned char)0,(unsigned char)0x5A); + test_threshold.channel = (unsigned int)1; + test_threshold.level = (unsigned char)0x80; + SetTriggerLevel(& test_threshold); + ExecuteChannelTest(self_test_SU_index,(unsigned char)1,(unsigned char)0x2A); + ExecuteChannelTest(self_test_SU_index,(unsigned char)4,(unsigned char)0x50); + test_threshold.channel = (unsigned int)5; + test_threshold.level = (unsigned char)0x2B; + SetTriggerLevel(& test_threshold); + ExecuteChannelTest(self_test_SU_index,(unsigned char)2,(unsigned char)0xF6); + test_threshold.channel = (unsigned int)5; + test_threshold.level = (unsigned char)0x2B; + SetTriggerLevel(& test_threshold); + ExecuteChannelTest(self_test_SU_index,(unsigned char)3,(unsigned char)0xE8); + test_threshold.channel = (unsigned int)0; + test_threshold.level = (unsigned char)0x15; + SetTriggerLevel(& test_threshold); + ExecuteChannelTest(self_test_SU_index,(unsigned char)0,(unsigned char)0x13); + test_threshold.channel = (unsigned int)1; + test_threshold.level = (unsigned char)0x15; + SetTriggerLevel(& test_threshold); + ExecuteChannelTest(self_test_SU_index,(unsigned char)1,(unsigned char)0x08); + ExecuteChannelTest(self_test_SU_index,(unsigned char)4,(unsigned char)0x10); + test_threshold.channel = (unsigned int)5; + test_threshold.level = (unsigned char)0x0D; + SetTriggerLevel(& test_threshold); + ExecuteChannelTest(self_test_SU_index,(unsigned char)2,(unsigned char)0x36); + test_threshold.channel = (unsigned int)5; + test_threshold.level = (unsigned char)0x0D; + SetTriggerLevel(& test_threshold); + ExecuteChannelTest(self_test_SU_index,(unsigned char)3,(unsigned char)0x36); + Enable_Hit_Trigger(); + RestoreSettings(self_test_SU_index); + return; +} + +void ExecuteChannelTest(sensor_index_t self_test_SU_index, + unsigned char test_channel_0, + unsigned char test_pulse_level) +{ + unsigned short delay_limit; + trigger_set_t test_threshold; + if ((int)test_channel_0 == 0) goto _LOR; + else + if ((int)test_channel_0 == 1) goto _LOR; + else + if ((int)test_channel_0 == 4) { + _LOR: + { + SelectSelfTestChannel(test_channel_0); + EnableAnalogSwitch(self_test_SU_index); + WaitTimeout((unsigned char)1); + ResetPeakDetector(self_test_SU_index + (sensor_index_t)1); + WaitTimeout((unsigned char)1); + ResetPeakDetector(self_test_SU_index + (sensor_index_t)1); + WaitTimeout((unsigned char)1); + ResetDelayCounters(); + SU_state[self_test_SU_index] = self_test_trigger_e; + Enable_Hit_Trigger(); + SetTestPulseLevel(test_pulse_level); + delay_limit = (unsigned short)(((double)1000 / 1.085 - (double)4) / (double)2); + DelayAwhile(delay_limit); + if ((int)test_channel_0 == 1) + if (SU_state[self_test_SU_index] == (unsigned int)self_test_trigger_e) { + Set_SU_Error(self_test_SU_index,(unsigned char)0x10); + SU_state[self_test_SU_index] = self_test_e; + } + delay_limit = (unsigned short)(((double)2000 / 1.085 - (double)4) / (double)2); + DelayAwhile(delay_limit); + SetTestPulseLevel((unsigned char)0); + if ((int)test_channel_0 == 4) ; + if ((int)test_channel_0 != 1) { + delay_limit = (unsigned short)(((double)1000 / 1.085 - (double)4) / (double)2); + DelayAwhile(delay_limit); + } + Disable_Hit_Trigger(); + if ((int)test_channel_0 != 4) { + test_threshold.sensor_unit = self_test_SU_index + (sensor_index_t)1; + test_threshold.channel = (unsigned int)test_channel_0; + test_threshold.level = (unsigned char)0xFF; + SetTriggerLevel(& test_threshold); + } + DisableAnalogSwitch(self_test_SU_index); + } + } + else { + SelectSelfTestChannel(test_channel_0); + SetTestPulseLevel(test_pulse_level); + WaitTimeout((unsigned char)1); + ResetPeakDetector(self_test_SU_index + (sensor_index_t)1); + WaitTimeout((unsigned char)1); + ResetPeakDetector(self_test_SU_index + (sensor_index_t)1); + WaitTimeout((unsigned char)1); + ResetDelayCounters(); + SU_state[self_test_SU_index] = self_test_trigger_e; + Enable_Hit_Trigger(); + EnableAnalogSwitch(self_test_SU_index); + delay_limit = (unsigned short)(((double)1000 / 1.085 - (double)4) / (double)2); + DelayAwhile(delay_limit); + Disable_Hit_Trigger(); + SetTestPulseLevel((unsigned char)0); + DisableAnalogSwitch(self_test_SU_index); + test_threshold.sensor_unit = self_test_SU_index + (sensor_index_t)1; + test_threshold.level = (unsigned char)0xFF; + test_threshold.channel = (unsigned int)5; + SetTriggerLevel(& test_threshold); + } + if (SU_state[self_test_SU_index] == (unsigned int)self_test_trigger_e) { + Set_SU_Error(self_test_SU_index,(unsigned char)0x10); + SU_state[self_test_SU_index] = self_test_e; + } + return; +} + +void RestoreSettings(sensor_index_t self_test_SU_index) +{ + SU_settings_t *SU_setting; + sensor_unit_t SU_switch; + trigger_set_t threshold; + SU_settings_t * const setting_map_c[4] = + {& telemetry_data.sensor_unit_1, + & telemetry_data.sensor_unit_2, + & telemetry_data.sensor_unit_3, + & telemetry_data.sensor_unit_4}; + SU_setting = setting_map_c[self_test_SU_index]; + threshold.sensor_unit = self_test_SU_number; + threshold.level = SU_setting->plasma_1_plus_threshold; + threshold.channel = (unsigned int)0; + SetTriggerLevel(& threshold); + threshold.level = SU_setting->plasma_1_minus_threshold; + threshold.channel = (unsigned int)1; + SetTriggerLevel(& threshold); + threshold.level = SU_setting->piezo_threshold; + threshold.channel = (unsigned int)5; + SetTriggerLevel(& threshold); + SU_switch.SU_number = self_test_SU_number; + SU_switch.SU_state = on_e; + SU_switch.expected_source_state = self_test_e; + Switch_SU_State(& SU_switch); + return; +} + +reset_class_t s_w_reset; +unsigned char code_not_patched; +unsigned char reference_checksum; +unsigned char SU_ctrl_register = (unsigned char)0; +unsigned char SU_self_test_channel = (unsigned char)0; +unsigned char forbidden_area[256]; +code_address_t failed_code_address; +data_address_t failed_data_address; +memory_configuration_t memory_mode; +unsigned char const checksum_nullifier = (unsigned char)0x9F; +unsigned char analog_switch_bit[4] = + {(unsigned char)0x10, + (unsigned char)0x20, + (unsigned char)0x40, + (unsigned char)0x80}; +void CopyProgramCode(void); + +unsigned short InitCode_RAM(reset_class_t reset_class); + +void InitData_RAM(reset_class_t reset_class, code_address_t code_address); + +unsigned short Check_RAM(data_address_t start_address, + data_address_t end_address) +{ + unsigned short __retres; + data_address_t start; + uint_least16_t range; + uint_least8_t bytes; + uint_least8_t bytes_left; + unsigned char tmp; + start = start_address; + tmp = TestMemBits(start); + if ((int)tmp != 0) { + __retres = start; + goto return_label; + } + while ((int)start <= (int)end_address) { + unsigned char tmp_0; + range = (unsigned int)((int)end_address - (int)start); + if (range < (uint_least16_t)255) bytes = range + (uint_least16_t)1; + else bytes = (unsigned int)255; + tmp_0 = TestMemSeq(start,bytes); + bytes_left = (unsigned int)tmp_0; + if (bytes_left == (uint_least8_t)0) { + unsigned char tmp_1; + tmp_1 = TestMemData(start,bytes); + bytes_left = (unsigned int)tmp_1; + } + if (bytes_left > (uint_least8_t)0) { + __retres = (unsigned short)((bytes - bytes_left) + (uint_least8_t)start); + goto return_label; + } + start = (unsigned short)((uint_least8_t)start + bytes); + } + __retres = (unsigned short)0xFFFF; + return_label: return __retres; +} + +void Init_DPU(reset_class_t reset_class) +{ + reset_class_t volatile safe_reset_class; + code_address_t code_address; + /*@ ghost init_dpu_called = 1; */ + safe_reset_class = reset_class; + Set_TC_Timer_Overflow_Flag(); + code_address = InitCode_RAM(safe_reset_class); + InitData_RAM(safe_reset_class,code_address); + s_w_reset = safe_reset_class; + code_not_patched = (unsigned char)1; + failed_code_address = code_address; + if ((int)code_address == 0xFFFF) memory_mode = SRAM_e; + else memory_mode = PROM_e; + return; +} + +unsigned short InitCode_RAM(reset_class_t reset_class) +{ + code_address_t code_address; + if (reset_class == (unsigned int)warm_reset_e) code_address = failed_code_address; + else { + code_address = Check_RAM((unsigned short)0x1000,(unsigned short)0x7FFF); + if ((int)code_address == 0xFFFF) CopyProgramCode(); + } + if ((int)code_address == 0xFFFF) ; + return code_address; +} + +void InitData_RAM(reset_class_t reset_class, code_address_t code_address) +{ + if (reset_class == (unsigned int)power_up_reset_e) + if ((int)code_address == 0xFFFF) failed_data_address = Check_RAM((unsigned short)0x0000, + (unsigned short)0xFEFF); + else failed_data_address = Check_RAM((unsigned short)0x8000, + (unsigned short)0xFEFF); + return; +} + +void CopyProgramCode(void) +{ + code_address_t i; + unsigned char code_byte; + i = (unsigned short)0x1000; + while ((int)i < 0x8000) { + code_byte = Get_Code_Byte(i); + Set_Data_Byte(i,code_byte); + i = (code_address_t)((int)i + 1); + } + return; +} + +reset_class_t GetResetClass(void) +{ + register reset_class_t occurred_reset; + occurred_reset = s_w_reset; + s_w_reset = error_e; + return occurred_reset; +} + +/*@ requires init_dpu_called ≡ 1; */ +void SignalMemoryErrors(void) +{ + if ((int)failed_code_address == 0xFFFF) { + telemetry_data.mode_status = (unsigned char)((int)telemetry_data.mode_status & ~ 0x20); + telemetry_data.failed_code_address = (unsigned short)0x0000; + } + else { + telemetry_data.mode_status = (unsigned char)((int)telemetry_data.mode_status | 0x20); + telemetry_data.failed_code_address = failed_code_address; + } + if ((int)failed_data_address == 0xFFFF) { + telemetry_data.mode_status = (unsigned char)((int)telemetry_data.mode_status & ~ 0x40); + telemetry_data.failed_data_address = (unsigned short)0x0000; + } + else { + telemetry_data.mode_status = (unsigned char)((int)telemetry_data.mode_status | 0x40); + telemetry_data.failed_data_address = failed_data_address; + } + return; +} + +void SetMemoryConfiguration(memory_configuration_t memory) +{ + switch (memory) { + case (memory_configuration_t)PROM_e: ; + break; + case (memory_configuration_t)SRAM_e: ; + break; + } + memory_mode = memory; + return; +} + +void PatchCode(memory_patch_variables_t *patch_variables) +{ + fptr_t patch_function; + unsigned char old_checksum; + unsigned char new_checksum; + unsigned char patch_value; + unsigned char temp_configuration; + uint_least8_t i; + memory_configuration_t tmp; + tmp = GetMemoryConfiguration(); + temp_configuration = (unsigned char)tmp; + SetMemoryConfiguration(PROM_e); + new_checksum = (unsigned char)0; + old_checksum = (unsigned char)0; + i = (unsigned int)0; + while (i < patch_variables->data_amount) { + { + unsigned char tmp_0; + tmp_0 = Get_Data_Byte((unsigned short)((uint_least8_t)patch_variables->destination + i)); + old_checksum = (unsigned char)((int)old_checksum ^ (int)tmp_0); + patch_value = *(patch_variables->source + i); + new_checksum = (unsigned char)((int)new_checksum ^ (int)patch_value); + Set_Data_Byte((unsigned short)((uint_least8_t)patch_variables->destination + i), + patch_value); + } + i ++; + } + reference_checksum = (unsigned char)((int)reference_checksum ^ ((int)old_checksum ^ (int)new_checksum)); + SetMemoryConfiguration((enum __anonenum_memory_configuration_t_2)temp_configuration); + switch ((int)patch_variables->execution_command) { + case 0: break; + case 0x09: Reboot(soft_reset_e); + break; + case 0x37: Reboot(warm_reset_e); + break; + case 0x5A: patch_function = patch_variables->destination; + Call_Patch(patch_function); + break; + } + return; +} + +memory_configuration_t GetMemoryConfiguration(void) +{ + return memory_mode; +} + +void Switch_SU_On(sensor_number_t SU_Number, unsigned char *execution_result) +{ + switch (SU_Number) { + case (sensor_number_t)1: + SU_ctrl_register = (unsigned char)((int)SU_ctrl_register | 0x10); + *execution_result = (unsigned char)1; + break; + case (sensor_number_t)2: + SU_ctrl_register = (unsigned char)((int)SU_ctrl_register | 0x20); + *execution_result = (unsigned char)2; + break; + case (sensor_number_t)3: + SU_ctrl_register = (unsigned char)((int)SU_ctrl_register | 0x40); + *execution_result = (unsigned char)3; + break; + case (sensor_number_t)4: + SU_ctrl_register = (unsigned char)((int)SU_ctrl_register | 0x80); + *execution_result = (unsigned char)4; + break; + default: *execution_result = (unsigned char)0; + break; + } + Set_Data_Byte((unsigned short)0xFFD0,SU_ctrl_register); + telemetry_data.SU_status[SU_Number - (sensor_number_t)1] = (unsigned char)( + (int)telemetry_data.SU_status[SU_Number - (sensor_number_t)1] | 3); + return; +} + +void Switch_SU_Off(sensor_number_t SU_Number, unsigned char *execution_result) +{ + switch (SU_Number) { + case (sensor_number_t)1: + SU_ctrl_register = (unsigned char)((int)SU_ctrl_register & ~ 0x10); + *execution_result = (unsigned char)1; + break; + case (sensor_number_t)2: + SU_ctrl_register = (unsigned char)((int)SU_ctrl_register & ~ 0x20); + *execution_result = (unsigned char)2; + break; + case (sensor_number_t)3: + SU_ctrl_register = (unsigned char)((int)SU_ctrl_register & ~ 0x40); + *execution_result = (unsigned char)3; + break; + case (sensor_number_t)4: + SU_ctrl_register = (unsigned char)((int)SU_ctrl_register & ~ 0x80); + *execution_result = (unsigned char)4; + break; + default: *execution_result = (unsigned char)0; + break; + } + Set_Data_Byte((unsigned short)0xFFD0,SU_ctrl_register); + telemetry_data.SU_status[SU_Number - (sensor_number_t)1] = (unsigned char)( + (int)telemetry_data.SU_status[SU_Number - (sensor_number_t)1] & ~ 3); + return; +} + +void EnableAnalogSwitch(sensor_index_t self_test_SU_index) +{ + SU_self_test_channel = (unsigned char)((int)SU_self_test_channel | (int)analog_switch_bit[self_test_SU_index]); + Set_SU_Self_Test_Ch(SU_self_test_channel); + return; +} + +void DisableAnalogSwitch(sensor_index_t self_test_SU_index) +{ + SU_self_test_channel = (unsigned char)((int)SU_self_test_channel & ~ ((int)analog_switch_bit[self_test_SU_index])); + Set_SU_Self_Test_Ch(SU_self_test_channel); + return; +} + +void SelectSelfTestChannel(unsigned char channel) +{ + unsigned char channel_selector_value[5]; + channel_selector_value[0] = (unsigned char)0x00; + channel_selector_value[1] = (unsigned char)0x01; + channel_selector_value[2] = (unsigned char)0x02; + channel_selector_value[3] = (unsigned char)0x03; + channel_selector_value[4] = (unsigned char)0x04; + SU_self_test_channel = (unsigned char)(((int)SU_self_test_channel & 0xF8) | (int)channel_selector_value[channel]); + Set_SU_Self_Test_Ch(SU_self_test_channel); + return; +} + +void ReadDelayCounters(delays_t *delay) +{ + unsigned char msb; + unsigned char lsb; + unsigned char tmp; + unsigned char tmp_0; + tmp = Get_MSB_Counter(); + msb = (unsigned char)((int)tmp & 0x0F); + lsb = Get_LSB1_Counter(); + delay->FromPlasma1Plus = (unsigned short)(((int)msb << 8) | (int)lsb); + tmp_0 = Get_MSB_Counter(); + msb = (unsigned char)((int)tmp_0 >> 4); + lsb = Get_LSB2_Counter(); + delay->FromPlasma1Minus = (unsigned short)(((int)msb << 8) | (int)lsb); + return; +} + +unsigned char ReadRiseTimeCounter(void) +{ + unsigned char tmp_0; + unsigned char tmp; + tmp = Rise_Time_Counter(); + tmp_0 = Get_Data_Byte((unsigned short)tmp); + return tmp_0; +} + +void ResetDelayCounters(void) +{ + return; +} + +void SetTriggerLevel(trigger_set_t *setting) +{ + setting->execution_result = (unsigned char)1; + switch (setting->sensor_unit) { + case (sensor_number_t)1: { + setting->base = (unsigned int)0xFFB0; + break; + } + case (sensor_number_t)2: { + setting->base = (unsigned int)0xFFB3; + break; + } + case (sensor_number_t)3: { + setting->base = (unsigned int)0xFFC0; + break; + } + case (sensor_number_t)4: { + setting->base = (unsigned int)0xFFC3; + break; + } + default: { + setting->execution_result = (unsigned char)6; + break; + } + } + if ((int)setting->execution_result != 6) + switch (setting->channel) { + case (channel_t)0: + { + Set_Data_Byte((unsigned short)(setting->base + (unsigned int)0), + setting->level); + break; + } + case (channel_t)1: + { + Set_Data_Byte((unsigned short)(setting->base + (unsigned int)1), + setting->level); + break; + } + case (channel_t)5: + { + Set_Data_Byte((unsigned short)(setting->base + (unsigned int)2), + setting->level); + break; + } + default: { + setting->execution_result = (unsigned char)5; + break; + } + } + return; +} + +void SetTestPulseLevel(unsigned char level) +{ + Set_Test_Pulse_Level(level); + return; +} + +void GetVoltageStatus(voltage_status_t *v_status) +{ + v_status->V_down_bit = V_Down(); + v_status->HV_status = Get_Data_Byte((unsigned short)0xFF70); + return; +} + +void ResetPeakDetector(sensor_number_t unit) +{ + SignalPeakDetectorReset((unsigned char)((int)SU_ctrl_register & ~ ( + 1 << (unit - (sensor_number_t)1))), + SU_ctrl_register); + return; +} + +void SelectStartSwitchLevel(unsigned char test_channel_0, + sensor_index_t self_test_SU_index) +{ + if ((int)test_channel_0 == 0) goto _LOR; + else + if ((int)test_channel_0 == 4) _LOR: + EnableAnalogSwitch(self_test_SU_index); + else DisableAnalogSwitch(self_test_SU_index); + return; +} + +void SelectTriggerSwitchLevel(unsigned char test_channel_0, + sensor_index_t self_test_SU_index) +{ + if ((int)test_channel_0 == 0) DisableAnalogSwitch(self_test_SU_index); + else + if ((int)test_channel_0 == 4) { + DisableAnalogSwitch(self_test_SU_index); + Set_SU_Self_Test_Ch(SU_self_test_channel); + } + else EnableAnalogSwitch(self_test_SU_index); + return; +} + +void WaitMail(incoming_mail_t *message); + +unsigned char confirm_hit_result; +sensor_number_t self_test_SU_number = (unsigned int)0; +unsigned char test_channel; +SU_test_level_t test_level; +SU_state_t SU_state[4] = {off_e, off_e, off_e, off_e}; +unsigned short ADC_result[5]; +uint_least8_t hit_budget = (unsigned int)20; +uint_least8_t hit_budget_left = (unsigned int)20; +void InitHitTriggerTask(void) +{ + AttachInterrupt((unsigned char)5); + Enable_Hit_Trigger(); + return; +} + +void HandleHitTrigger(void) +{ + unsigned char initial_delay; + unsigned char delay_limit; + sensor_number_t trigger; + channel_t CH_base; + uint_least8_t i; + unsigned char lsb; + unsigned char msb; + uint_least8_t conversion_try_count; + initial_delay = (unsigned char)((unsigned int)((unsigned short)(((double)100 / 1.085 - (double)4) / (double)2))); + delay_limit = (unsigned char)((unsigned int)((unsigned short)(((double)100 / 1.085 - (double)4) / (double)2))); + WaitInterrupt((unsigned char)5,(unsigned char)255); + if (hit_budget_left == (uint_least8_t)0) { + if ((int)telemetry_data.hit_budget_exceedings < 255) telemetry_data.hit_budget_exceedings = (unsigned char)( + (int)telemetry_data.hit_budget_exceedings + 1); + Disable_Hit_Trigger(); + } + else { + hit_budget_left --; + confirm_hit_result = (unsigned char)1; + ADC_channel_register = (unsigned char)((int)ADC_channel_register & 0xBF); + Update_ADC_Channel_Reg(ADC_channel_register); + Start_Conversion(); + conversion_try_count = (unsigned int)0; + while (1) { + if (conversion_try_count < (uint_least8_t)25) { + unsigned char tmp; + tmp = End_Of_ADC(); + if (! ((int)tmp != 0)) break; + } + else break; + conversion_try_count ++; + } + if (self_test_SU_number != (sensor_number_t)0) { + trigger = self_test_SU_number; + if (SU_state[self_test_SU_number - (sensor_number_t)1] == (unsigned int)self_test_e) + trigger |= (unsigned int)0x40; + else + if (SU_state[self_test_SU_number - (sensor_number_t)1] == (unsigned int)self_test_trigger_e) + SU_state[self_test_SU_number - (sensor_number_t)1] = self_test_e; + } + else { + unsigned char tmp_0; + unsigned char tmp_1; + tmp_0 = Trigger_Source_0(); + tmp_1 = Trigger_Source_1(); + trigger = (unsigned int)(((int)tmp_0 + 2 * (int)tmp_1) + 1); + } + CH_base = (unsigned int)(((int)(trigger - (sensor_number_t)1) & 2) * 12 + + ((int)(trigger - (sensor_number_t)1) & 1) * 8); + ShortDelay((unsigned int)initial_delay); + ADC_channel_register = (unsigned char)((unsigned int)((int)ADC_channel_register & 0xC0) | CH_base); + Update_ADC_Channel_Reg(ADC_channel_register); + ShortDelay((unsigned int)delay_limit); + i = (unsigned int)0; + while (i < (uint_least8_t)5) { + ShortDelay((unsigned int)delay_limit); + Start_Conversion(); + ADC_channel_register = (unsigned char)((unsigned int)((int)ADC_channel_register & 0xC0) | ( + (CH_base + i) + (channel_t)1)); + Update_ADC_Channel_Reg(ADC_channel_register); + conversion_try_count = (unsigned int)0; + while (1) { + if (conversion_try_count < (uint_least8_t)25) { + unsigned char tmp_2; + tmp_2 = End_Of_ADC(); + if (! ((int)tmp_2 != 0)) break; + } + else break; + conversion_try_count ++; + } + if (conversion_try_count < (uint_least8_t)25) { + msb = Get_Result(); + lsb = Get_Result(); + ADC_result[i] = (unsigned short)(((unsigned int)msb << 8) | (unsigned int)lsb); + } + else { + trigger |= (unsigned int)0x80; + ADC_result[i] = (unsigned short)0; + } + i ++; + } + SendTaskMail((unsigned char)1,(unsigned short)trigger,(unsigned char)0); + } + return; +} + +void HitTriggerTask(void) +{ + InitHitTriggerTask(); + while (1) HandleHitTrigger(); + return; +} + +static incoming_mail_t ACQ_mail; +static uint16_t trigger_unit; +void InitAcquisitionTask(void) +{ + ACQ_mail.mailbox_number = (unsigned char)1; + ACQ_mail.message = & trigger_unit; + ACQ_mail.timeout = (unsigned char)0; + return; +} + +void HandleAcquisition(void) +{ + unsigned char *checksum_pointer; + unsigned char event_checksum; + uint_least8_t i; + event_record_t *event; + delays_t delay_counters; + int time_delay; + SU_state_t state = off_e; + WaitMail(& ACQ_mail); + if ((int)trigger_unit & 0x80) SetModeStatusError((unsigned char)0x04); + if ((int)trigger_unit == 1) goto _LOR_0; + else + if ((int)trigger_unit == 2) goto _LOR_0; + else + if ((int)trigger_unit == 3) goto _LOR_0; + else + if ((int)trigger_unit == 4) { + _LOR_0: + { + state = SU_state[(int)trigger_unit - 1]; + if (state == (unsigned int)self_test_e) goto _LOR; + else + if (state == (unsigned int)acquisition_e) { + unsigned char tmp; + _LOR: tmp = Event_Flag(); + if ((int)tmp == 1) { + /*@ split event_queue_length; */ + event = GetFreeRecord(); + event->SU_number = (unsigned char)((int)trigger_unit & 0xFF); + memcpy((void *)(& event->plasma_1_plus), + (void const *)(ADC_result), + sizeof(event->plasma_1_plus)); + memcpy((void *)(& event->plasma_1_minus), + (void const *)(& ADC_result[1]), + sizeof(event->plasma_1_minus)); + memcpy((void *)(& event->piezo_1), + (void const *)(& ADC_result[2]), + sizeof(event->piezo_1)); + memcpy((void *)(& event->piezo_2), + (void const *)(& ADC_result[3]), + sizeof(event->piezo_2)); + memcpy((void *)(& event->plasma_2_plus), + (void const *)(& ADC_result[4]), + sizeof(event->plasma_2_plus)); + event->rise_time = ReadRiseTimeCounter(); + ReadDelayCounters(& delay_counters); + memcpy((void *)(& event->delay_2), + (void const *)(& delay_counters.FromPlasma1Plus), + sizeof(event->delay_2)); + memcpy((void *)(& event->delay_3), + (void const *)(& delay_counters.FromPlasma1Minus), + sizeof(event->delay_3)); + time_delay = (int)delay_counters.FromPlasma1Plus - (int)delay_counters.FromPlasma1Minus; + if (time_delay > 127) event->delay_1 = (signed char)127; + else + if (time_delay < -128) event->delay_1 = (signed char)(-128); + else event->delay_1 = (signed char)time_delay; + memcpy((void *)(& event->hit_time), + (void const *)(& internal_time), + sizeof(event->hit_time)); + event->SU_temperature_1 = telemetry_data.SU_temperature[ + (int)trigger_unit - 1][0]; + event->SU_temperature_2 = telemetry_data.SU_temperature[ + (int)trigger_unit - 1][1]; + ClassifyEvent(event); + /*@ merge event_queue_length; */ + checksum_pointer = (unsigned char *)event; + event_checksum = (unsigned char)0; + i = (unsigned int)1; + while (i < sizeof(event_record_t)) { + event_checksum = (unsigned char)((int)event_checksum ^ (int)*checksum_pointer); + checksum_pointer ++; + i ++; + } + event->checksum = event_checksum; + RecordEvent(); + } + } + } + } + trigger_unit = (unsigned short)((int)trigger_unit & 0x07); + WaitTimeout((unsigned char)1); + ResetPeakDetector((unsigned int)trigger_unit); + WaitTimeout((unsigned char)1); + ResetPeakDetector((unsigned int)trigger_unit); + WaitTimeout((unsigned char)1); + ResetDelayCounters(); + return; +} + +void AcquisitionTask(void) +{ + InitAcquisitionTask(); + while (1) HandleAcquisition(); + return; +} + +void (*hit_task)(void) = & HitTriggerTask; +void (*acq_task)(void) = & AcquisitionTask; +void Switch_SU_State(sensor_unit_t *SU_setting) +{ + if (SU_state[SU_setting->SU_number - (sensor_number_t)1] != SU_setting->expected_source_state) + SU_setting->execution_result = (unsigned char)0; + else + if (SU_setting->SU_state == (unsigned int)self_test_mon_e) { + if (self_test_SU_number != (sensor_number_t)0) SU_setting->execution_result = (unsigned char)0; + else goto _LAND; + } + else { + _LAND: + { + if (SU_setting->SU_state == (unsigned int)self_test_mon_e) self_test_SU_number = SU_setting->SU_number; + else + if (SU_setting->SU_number == self_test_SU_number) self_test_SU_number = (unsigned int)0; + SU_state[SU_setting->SU_number - (sensor_number_t)1] = SU_setting->SU_state; + SU_setting->execution_result = (unsigned char)1; + } + } + return; +} + +void Start_SU_SwitchingOn(sensor_index_t SU, unsigned char *exec_result) +{ + *exec_result = (unsigned char)1; + if (SU_state[SU] != (unsigned int)off_e) *exec_result = (unsigned char)0; + else { + Switch_SU_On(SU + (sensor_index_t)1,exec_result); + if ((sensor_index_t)*exec_result == SU + (sensor_index_t)1) SU_state[SU] = start_switching_e; + else *exec_result = (unsigned char)0; + } + return; +} + +static sensor_unit_t SetSensorUnitOff_SU_setting; +void SetSensorUnitOff(sensor_index_t SU, unsigned char *exec_result) +{ + Switch_SU_Off(SU + (sensor_index_t)1,exec_result); + if ((sensor_index_t)*exec_result == SU + (sensor_index_t)1) { + SetSensorUnitOff_SU_setting.SU_number = SU + (sensor_index_t)1; + SetSensorUnitOff_SU_setting.expected_source_state = SU_state[SU]; + SetSensorUnitOff_SU_setting.SU_state = off_e; + Switch_SU_State(& SetSensorUnitOff_SU_setting); + *exec_result = (unsigned char)1; + } + else *exec_result = (unsigned char)0; + return; +} + +SU_state_t ReadSensorUnit(unsigned char SU_number) +{ + SU_state_t __retres; + __retres = SU_state[(int)SU_number - 1]; + return __retres; +} + +void Update_SU_State(sensor_index_t SU_index) +{ + if (SU_state[SU_index] == (unsigned int)start_switching_e) SU_state[SU_index] = switching_e; + else + if (SU_state[SU_index] == (unsigned int)switching_e) { + ResetPeakDetector(SU_index + (sensor_index_t)1); + WaitTimeout((unsigned char)1); + ResetPeakDetector(SU_index + (sensor_index_t)1); + SU_state[SU_index] = on_e; + } + return; +} + +TC_state_t TC_state; +SU_settings_t *SU_config[4] = + {& telemetry_data.sensor_unit_1, + & telemetry_data.sensor_unit_2, + & telemetry_data.sensor_unit_3, + & telemetry_data.sensor_unit_4}; +telecommand_t previous_TC; +unsigned char TC_timeout = (unsigned char)0; +unsigned char TC_look_up[128]; +memory_type_t memory_type; +unsigned char memory_transfer_buffer[32]; +unsigned char address_MSB; +unsigned char address_LSB; +uint_least8_t memory_buffer_index = (unsigned int)0; +unsigned char write_checksum; +void InitTC_LookUp(void) +{ + uint_least8_t i; + i = (unsigned int)0; + while (i < (uint_least8_t)128) { + TC_look_up[i] = (unsigned char)0; + i ++; + } + TC_look_up[0x01] = (unsigned char)2; + TC_look_up[0x02] = (unsigned char)2; + TC_look_up[0x03] = (unsigned char)2; + TC_look_up[0x05] = (unsigned char)4; + TC_look_up[0x06] = (unsigned char)2; + TC_look_up[0x0C] = (unsigned char)1; + TC_look_up[0x0D] = (unsigned char)1; + TC_look_up[0x0E] = (unsigned char)1; + TC_look_up[0x0F] = (unsigned char)1; + TC_look_up[0x09] = (unsigned char)2; + TC_look_up[0x0A] = (unsigned char)2; + TC_look_up[0x0B] = (unsigned char)2; + TC_look_up[0x10] = (unsigned char)1; + TC_look_up[0x6F] = (unsigned char)1; + TC_look_up[0x15] = (unsigned char)1; + TC_look_up[0x6A] = (unsigned char)1; + TC_look_up[0x1F] = (unsigned char)1; + TC_look_up[0x60] = (unsigned char)1; + TC_look_up[0x20] = (unsigned char)3; + TC_look_up[0x30] = (unsigned char)3; + TC_look_up[0x40] = (unsigned char)3; + TC_look_up[0x50] = (unsigned char)3; + TC_look_up[0x21] = (unsigned char)1; + TC_look_up[0x31] = (unsigned char)1; + TC_look_up[0x41] = (unsigned char)1; + TC_look_up[0x51] = (unsigned char)1; + TC_look_up[0x22] = (unsigned char)1; + TC_look_up[0x32] = (unsigned char)1; + TC_look_up[0x42] = (unsigned char)1; + TC_look_up[0x52] = (unsigned char)1; + TC_look_up[0x23] = (unsigned char)1; + TC_look_up[0x33] = (unsigned char)1; + TC_look_up[0x43] = (unsigned char)1; + TC_look_up[0x53] = (unsigned char)1; + TC_look_up[0x24] = (unsigned char)1; + TC_look_up[0x34] = (unsigned char)1; + TC_look_up[0x44] = (unsigned char)1; + TC_look_up[0x54] = (unsigned char)1; + TC_look_up[0x25] = (unsigned char)1; + TC_look_up[0x35] = (unsigned char)1; + TC_look_up[0x45] = (unsigned char)1; + TC_look_up[0x55] = (unsigned char)1; + TC_look_up[0x28] = (unsigned char)1; + TC_look_up[0x38] = (unsigned char)1; + TC_look_up[0x48] = (unsigned char)1; + TC_look_up[0x58] = (unsigned char)1; + TC_look_up[0x26] = (unsigned char)1; + TC_look_up[0x36] = (unsigned char)1; + TC_look_up[0x46] = (unsigned char)1; + TC_look_up[0x56] = (unsigned char)1; + TC_look_up[0x27] = (unsigned char)1; + TC_look_up[0x37] = (unsigned char)1; + TC_look_up[0x47] = (unsigned char)1; + TC_look_up[0x57] = (unsigned char)1; + TC_look_up[0x29] = (unsigned char)1; + TC_look_up[0x39] = (unsigned char)1; + TC_look_up[0x49] = (unsigned char)1; + TC_look_up[0x59] = (unsigned char)1; + TC_look_up[0x2A] = (unsigned char)1; + TC_look_up[0x3A] = (unsigned char)1; + TC_look_up[0x4A] = (unsigned char)1; + TC_look_up[0x5A] = (unsigned char)1; + TC_look_up[0x2B] = (unsigned char)1; + TC_look_up[0x3B] = (unsigned char)1; + TC_look_up[0x4B] = (unsigned char)1; + TC_look_up[0x5B] = (unsigned char)1; + TC_look_up[0x2C] = (unsigned char)1; + TC_look_up[0x3C] = (unsigned char)1; + TC_look_up[0x4C] = (unsigned char)1; + TC_look_up[0x5C] = (unsigned char)1; + TC_look_up[0x2D] = (unsigned char)1; + TC_look_up[0x3D] = (unsigned char)1; + TC_look_up[0x4D] = (unsigned char)1; + TC_look_up[0x5D] = (unsigned char)1; + TC_look_up[0x70] = (unsigned char)1; + TC_look_up[0x71] = (unsigned char)1; + TC_look_up[0x72] = (unsigned char)1; + TC_look_up[0x73] = (unsigned char)1; + TC_look_up[0x74] = (unsigned char)1; + return; +} + +void TC_InterruptService(void) +{ + unsigned char TC_address; + unsigned char TC_code; + uint16_t TC_word; + unsigned char par8; + unsigned char par4; + unsigned char par2; + unsigned char par1; + unsigned char tmp_error_status; + unsigned char tmp; + tmp = TC_Timer_Overflow_Flag(); + if (! tmp) { + telemetry_data.error_status = (unsigned char)((int)telemetry_data.error_status | 1); + goto return_label; + } + if (TC_state == (unsigned int)SC_TM_e) goto _LOR; + else + if (TC_state == (unsigned int)memory_dump_e) _LOR: goto return_label; + Clear_TC_Timer_Overflow_Flag(); + TC_address = Read_TC_MSB(); + TC_code = Read_TC_LSB(); + TC_word = (unsigned short)((int)TC_address * 256 + (int)TC_code); + if (TC_state == (unsigned int)memory_patch_e) { + unsigned char tmp_0; + tmp_0 = isr_send_message((unsigned char)0,TC_word); + if ((int)tmp_0 == 9) telemetry_data.isr_send_message_error = (unsigned char)0; + goto return_label; + } + if (TC_state == (unsigned int)register_TM_e) { + TC_state = TC_handling_e; + ResetInterruptMask((unsigned char)0x04); + } + par8 = (unsigned char)((int)TC_address ^ (int)TC_code); + par4 = (unsigned char)(((int)par8 & 0x0F) ^ ((int)par8 >> 4)); + par2 = (unsigned char)(((int)par4 & 0x03) ^ ((int)par4 >> 2)); + par1 = (unsigned char)(((int)par2 & 0x01) ^ ((int)par2 >> 1)); + TC_address = (unsigned char)((int)TC_address >> 1); + tmp_error_status = (unsigned char)0; + if (par1) tmp_error_status = (unsigned char)((int)tmp_error_status | 2); + else + switch ((int)TC_look_up[TC_address]) { + unsigned char tmp_1; + case 0: tmp_error_status = (unsigned char)((int)tmp_error_status | 1); + break; + case 1: tmp_1 = isr_send_message((unsigned char)0,TC_word); + if ((int)tmp_1 == 9) telemetry_data.isr_send_message_error = (unsigned char)0; + break; + case 2: ; + if ((int)TC_address != (int)TC_code) tmp_error_status = (unsigned char)( + (int)tmp_error_status | 1); + else { + unsigned char tmp_2; + tmp_2 = isr_send_message((unsigned char)0,TC_word); + if ((int)tmp_2 == 9) telemetry_data.isr_send_message_error = (unsigned char)0; + } + break; + case 3: ; + if ((int)TC_code != 0x55) { + if ((int)TC_code != 0x73) { + if ((int)TC_code != 0x99) tmp_error_status = (unsigned char)( + (int)tmp_error_status | 1); + else goto _LAND_0; + } + else goto _LAND_0; + } + else { + _LAND_0: + { + unsigned char tmp_3; + tmp_3 = isr_send_message((unsigned char)0,TC_word); + if ((int)tmp_3 == 9) telemetry_data.isr_send_message_error = (unsigned char)0; + } + } + break; + case 4: ; + if ((int)TC_code & 1) goto _LOR_0; + else + if ((int)TC_code > 0x74) _LOR_0: + tmp_error_status = (unsigned char)((int)tmp_error_status | 1); + else { + unsigned char tmp_4; + tmp_4 = isr_send_message((unsigned char)0,TC_word); + if ((int)tmp_4 == 9) telemetry_data.isr_send_message_error = (unsigned char)0; + } + break; + } + if ((int)TC_address != 0x05) goto _LOR_1; + else + if (tmp_error_status) { + _LOR_1: ; + if (((int)telemetry_data.error_status & (1 + 2)) == 0) { + telemetry_data.TC_word = TC_word; + memcpy((void *)(& telemetry_data.TC_time_tag), + (void const *)(& internal_time), + sizeof(telemetry_data.TC_time_tag)); + } + } + if (tmp_error_status) { + telemetry_data.error_status = (unsigned char)((int)telemetry_data.error_status | (int)tmp_error_status); + Write_TM_MSB(telemetry_data.error_status); + Write_TM_LSB(telemetry_data.mode_status); + goto return_label; + } + if ((int)TC_address == 0x05) { + memcpy((void *)(& telemetry_data.time),(void const *)(& internal_time), + sizeof(telemetry_data.time)); + telemetry_pointer = (unsigned char *)(& telemetry_data) + (int)TC_code; + telemetry_end_pointer = ((unsigned char *)(& telemetry_data) + 0x74) + 1; + Write_TM_MSB(*telemetry_pointer); + telemetry_pointer ++; + Write_TM_LSB(*telemetry_pointer); + telemetry_pointer ++; + TC_state = register_TM_e; + SetInterruptMask((unsigned char)0x04); + if (telemetry_pointer > telemetry_end_pointer) telemetry_pointer = (unsigned char *)(& telemetry_data); + } + else + if ((int)TC_address == 0x06) + if (((int)telemetry_data.mode_status & 3) == 0) { + telemetry_data.error_status = (unsigned char)((int)telemetry_data.error_status | 1); + Write_TM_MSB(telemetry_data.error_status); + Write_TM_LSB(telemetry_data.mode_status); + } + else { + telemetry_pointer = (unsigned char *)(& science_data); + telemetry_end_pointer = (unsigned char *)(& science_data.event[free_slot_index]) - 1; + science_data.length = (unsigned short)((int)((unsigned short)( + (telemetry_end_pointer - telemetry_pointer) + 1)) / 2); + Write_TM_MSB(*telemetry_pointer); + telemetry_pointer ++; + Write_TM_LSB(*telemetry_pointer); + telemetry_pointer ++; + TC_state = SC_TM_e; + SetInterruptMask((unsigned char)0x04); + } + else + if ((int)TC_address == 0x60) { + if (TC_state != (unsigned int)read_memory_e) goto _LOR_2; + else + if (((unsigned int)address_MSB << 8) + (unsigned int)TC_code > (unsigned int)( + (0xFEFF - 32) + 1)) { + _LOR_2: + { + telemetry_data.error_status = (unsigned char)((int)telemetry_data.error_status | 1); + Write_TM_MSB(telemetry_data.error_status); + Write_TM_LSB(telemetry_data.mode_status); + TC_state = TC_handling_e; + } + } + else { + telemetry_pointer = Data_Pointer((unsigned short)((int)address_MSB * 256 + (int)TC_code)); + telemetry_end_pointer = telemetry_pointer + 32; + Write_TM_MSB(telemetry_data.error_status); + Write_TM_LSB(telemetry_data.mode_status); + read_memory_checksum = (unsigned char)((int)tmp_error_status ^ (int)telemetry_data.mode_status); + TC_state = memory_dump_e; + SetInterruptMask((unsigned char)0x04); + } + } + else { + Write_TM_MSB(telemetry_data.error_status); + Write_TM_LSB(telemetry_data.mode_status); + } + return_label: return; +} + +unsigned char PatchExecCommandOk(unsigned char execution_command) +{ + unsigned char __retres; + switch ((int)execution_command) { + case 0: case 0x09: case 0x37: case 0x5A: __retres = (unsigned char)1; + goto return_label; + } + __retres = (unsigned char)0; + return_label: return __retres; +} + +void MemoryPatch(telecommand_t *command) +{ + memory_patch_variables_t patch_info; + data_address_t address; + uint_least8_t i; + unsigned char TC_msb; + TC_msb = (unsigned char)((int)command->TC_word >> 8); + write_checksum = (unsigned char)((int)write_checksum ^ (int)TC_msb); + if (memory_buffer_index < (uint_least8_t)32) { + write_checksum = (unsigned char)((int)write_checksum ^ (int)command->TC_code); + memory_transfer_buffer[memory_buffer_index] = TC_msb; + memory_buffer_index ++; + memory_transfer_buffer[memory_buffer_index] = command->TC_code; + memory_buffer_index ++; + TC_timeout = (unsigned char)100; + } + else { + if ((int)write_checksum == (int)command->TC_code) { + address = (unsigned short)((unsigned int)address_MSB * (unsigned int)256 + (unsigned int)address_LSB); + switch (memory_type) { + case (memory_type_t)data_e: ; + if ((int)address <= (0xFEFF - 32) + 1) { + i = (unsigned int)0; + while (i < (uint_least8_t)32) { + Set_Data_Byte((unsigned short)((uint_least8_t)address + i), + memory_transfer_buffer[i]); + i ++; + } + } + else Set_TC_Error(); + break; + case (memory_type_t)code_e: ; + if ((int)address >= 0x1000) { + if ((int)address <= (0x7FFF - 32) + 1) { + unsigned char tmp; + tmp = PatchExecCommandOk(TC_msb); + if (tmp) { + code_not_patched = (unsigned char)0; + patch_info.source = memory_transfer_buffer; + patch_info.destination = address; + patch_info.data_amount = (unsigned int)32; + patch_info.execution_command = TC_msb; + PatchCode(& patch_info); + } + else goto _LAND_0; + } + else goto _LAND_0; + } + else _LAND_0: Set_TC_Error(); + break; + } + } + else SetModeStatusError((unsigned char)0x10); + TC_state = TC_handling_e; + } + return; +} + +void WriteMemory(telecommand_t *command) +{ + write_checksum = (unsigned char)((int)write_checksum ^ (((int)command->TC_word >> 8) ^ (int)command->TC_code)); + if ((int)command->TC_address == 0x6F) { + if (memory_type == (unsigned int)code_e) goto _LOR; else goto _LAND_0; + } + else { + _LAND_0: ; + if ((int)command->TC_address == 0x6A) { + if (memory_type == (unsigned int)data_e) { + _LOR: + { + TC_state = memory_patch_e; + address_LSB = command->TC_code; + memory_buffer_index = (unsigned int)0; + TC_timeout = (unsigned char)100; + } + } + else goto _LAND; + } + else { + _LAND: { + TC_state = TC_handling_e; + Set_TC_Error(); + } + } + } + return; +} + +void UpdateTarget(telecommand_t *command) +{ + sensor_unit_t SU_setting; + trigger_set_t new_threshold; + dpu_time_t new_time; + sensor_index_t SU_index; + SU_index = (unsigned int)(((int)command->TC_address >> 4) - 2); + switch ((int)command->TC_address) { + DEBIE_mode_t tmp; + case 0x70: case 0x71: case 0x72: case 0x73: case 0x74: + telemetry_data.coefficient[(int)command->TC_address & 0x07] = command->TC_code; + break; + case 0x29: case 0x39: case 0x49: case 0x59: + (SU_config[SU_index])->plasma_1_plus_to_minus_max_time = command->TC_code; + break; + case 0x2A: case 0x3A: case 0x4A: case 0x5A: + (SU_config[SU_index])->plasma_1_plus_to_piezo_min_time = command->TC_code; + break; + case 0x2B: case 0x3B: case 0x4B: case 0x5B: + (SU_config[SU_index])->plasma_1_plus_to_piezo_max_time = command->TC_code; + break; + case 0x2C: case 0x3C: case 0x4C: case 0x5C: + (SU_config[SU_index])->plasma_1_minus_to_piezo_min_time = command->TC_code; + break; + case 0x2D: case 0x3D: case 0x4D: case 0x5D: + (SU_config[SU_index])->plasma_1_minus_to_piezo_max_time = command->TC_code; + break; + case 0x24: case 0x34: case 0x44: case 0x54: + (SU_config[SU_index])->plasma_1_plus_classification = command->TC_code; + break; + case 0x25: case 0x35: case 0x45: case 0x55: + (SU_config[SU_index])->plasma_1_minus_classification = command->TC_code; + break; + case 0x28: case 0x38: case 0x48: case 0x58: + (SU_config[SU_index])->plasma_2_plus_classification = command->TC_code; + break; + case 0x26: case 0x36: case 0x46: case 0x56: + (SU_config[SU_index])->piezo_1_classification = command->TC_code; + break; + case 0x27: case 0x37: case 0x47: case 0x57: + (SU_config[SU_index])->piezo_2_classification = command->TC_code; + break; + case 0x03: ClearErrorStatus(); + Clear_RTX_Errors(); + ClearSoftwareError(); + ClearModeStatusError(); + Clear_SU_Error(); + break; + case 0x0F: new_time = (unsigned int)command->TC_code << 24; + memcpy((void *)(& internal_time),(void const *)(& new_time), + sizeof(internal_time)); + TC_timeout = (unsigned char)100; + break; + case 0x0E: ; + if ((int)previous_TC.TC_address == 0x0F) { + memcpy((void *)(& new_time),(void const *)(& internal_time), + sizeof(new_time)); + new_time &= 0xFF000000; + new_time |= (unsigned int)command->TC_code << 16; + memcpy((void *)(& internal_time),(void const *)(& new_time), + sizeof(internal_time)); + TC_timeout = (unsigned char)100; + } + else Set_TC_Error(); + break; + case 0x0D: ; + if ((int)previous_TC.TC_address == 0x0E) { + memcpy((void *)(& new_time),(void const *)(& internal_time), + sizeof(new_time)); + new_time &= 0xFFFF0000; + new_time |= (unsigned int)command->TC_code << 8; + memcpy((void *)(& internal_time),(void const *)(& new_time), + sizeof(internal_time)); + TC_timeout = (unsigned char)100; + } + else Set_TC_Error(); + break; + case 0x0C: ; + if ((int)previous_TC.TC_address == 0x0D) { + memcpy((void *)(& new_time),(void const *)(& internal_time), + sizeof(new_time)); + new_time &= 0xFFFFFF00; + new_time |= (unsigned int)command->TC_code; + memcpy((void *)(& internal_time),(void const *)(& new_time), + sizeof(internal_time)); + } + else Set_TC_Error(); + break; + case 0x0A: telemetry_data.watchdog_failures = (unsigned char)0; + break; + case 0x0B: telemetry_data.checksum_failures = (unsigned char)0; + break; + case 0x20: case 0x30: case 0x40: case 0x50: tmp = GetMode(); + if ((int)tmp != 2) { + SU_setting.SU_number = SU_index + (sensor_index_t)1; + switch ((int)command->TC_code) { + case 0x55: + Start_SU_SwitchingOn(SU_index,& SU_setting.execution_result); + break; + case 0x73: SetSensorUnitOff(SU_index,& SU_setting.execution_result); + break; + case 0x99: SU_setting.SU_state = self_test_mon_e; + SU_setting.expected_source_state = on_e; + Switch_SU_State(& SU_setting); + break; + } + if ((int)SU_setting.execution_result == 0) Set_TC_Error(); + } + else Set_TC_Error(); + break; + case 0x21: new_threshold.sensor_unit = (unsigned int)1; + new_threshold.channel = (unsigned int)0; + new_threshold.level = command->TC_code; + SetTriggerLevel(& new_threshold); + telemetry_data.sensor_unit_1.plasma_1_plus_threshold = command->TC_code; + break; + case 0x31: new_threshold.sensor_unit = (unsigned int)2; + new_threshold.channel = (unsigned int)0; + new_threshold.level = command->TC_code; + SetTriggerLevel(& new_threshold); + telemetry_data.sensor_unit_2.plasma_1_plus_threshold = command->TC_code; + break; + case 0x41: new_threshold.sensor_unit = (unsigned int)3; + new_threshold.channel = (unsigned int)0; + new_threshold.level = command->TC_code; + SetTriggerLevel(& new_threshold); + telemetry_data.sensor_unit_3.plasma_1_plus_threshold = command->TC_code; + break; + case 0x51: new_threshold.sensor_unit = (unsigned int)4; + new_threshold.channel = (unsigned int)0; + new_threshold.level = command->TC_code; + SetTriggerLevel(& new_threshold); + telemetry_data.sensor_unit_4.plasma_1_plus_threshold = command->TC_code; + break; + case 0x22: new_threshold.sensor_unit = (unsigned int)1; + new_threshold.channel = (unsigned int)1; + new_threshold.level = command->TC_code; + SetTriggerLevel(& new_threshold); + telemetry_data.sensor_unit_1.plasma_1_minus_threshold = command->TC_code; + break; + case 0x32: new_threshold.sensor_unit = (unsigned int)2; + new_threshold.channel = (unsigned int)1; + new_threshold.level = command->TC_code; + SetTriggerLevel(& new_threshold); + telemetry_data.sensor_unit_2.plasma_1_minus_threshold = command->TC_code; + break; + case 0x42: new_threshold.sensor_unit = (unsigned int)3; + new_threshold.channel = (unsigned int)1; + new_threshold.level = command->TC_code; + SetTriggerLevel(& new_threshold); + telemetry_data.sensor_unit_3.plasma_1_minus_threshold = command->TC_code; + break; + case 0x52: new_threshold.sensor_unit = (unsigned int)4; + new_threshold.channel = (unsigned int)1; + new_threshold.level = command->TC_code; + SetTriggerLevel(& new_threshold); + telemetry_data.sensor_unit_4.plasma_1_minus_threshold = command->TC_code; + break; + case 0x23: new_threshold.sensor_unit = (unsigned int)1; + new_threshold.channel = (unsigned int)5; + new_threshold.level = command->TC_code; + SetTriggerLevel(& new_threshold); + telemetry_data.sensor_unit_1.piezo_threshold = command->TC_code; + break; + case 0x33: new_threshold.sensor_unit = (unsigned int)2; + new_threshold.channel = (unsigned int)5; + new_threshold.level = command->TC_code; + SetTriggerLevel(& new_threshold); + telemetry_data.sensor_unit_2.piezo_threshold = command->TC_code; + break; + case 0x43: new_threshold.sensor_unit = (unsigned int)3; + new_threshold.channel = (unsigned int)5; + new_threshold.level = command->TC_code; + SetTriggerLevel(& new_threshold); + telemetry_data.sensor_unit_3.piezo_threshold = command->TC_code; + break; + case 0x53: new_threshold.sensor_unit = (unsigned int)4; + new_threshold.channel = (unsigned int)5; + new_threshold.level = command->TC_code; + SetTriggerLevel(& new_threshold); + telemetry_data.sensor_unit_4.piezo_threshold = command->TC_code; + break; + default: break; + } + return; +} + +void ExecuteCommand(telecommand_t *command) +{ + sensor_unit_t SU_setting; + unsigned char error_flag; + sensor_number_t i; + switch ((int)command->TC_address) { + DEBIE_mode_t tmp; + DEBIE_mode_t tmp_0; + DEBIE_mode_t tmp_3; + DEBIE_mode_t tmp_4; + case 0x06: break; + case 0x05: break; + case 0x1F: address_MSB = command->TC_code; + TC_state = read_memory_e; + break; + case 0x10: tmp = GetMode(); + if ((int)tmp == 1) { + address_MSB = command->TC_code; + memory_type = code_e; + TC_timeout = (unsigned char)100; + write_checksum = (unsigned char)(((int)command->TC_word >> 8) ^ (int)command->TC_code); + TC_state = write_memory_e; + } + else Set_TC_Error(); + break; + case 0x15: tmp_0 = GetMode(); + if ((int)tmp_0 == 1) { + address_MSB = command->TC_code; + memory_type = data_e; + TC_timeout = (unsigned char)100; + write_checksum = (unsigned char)(((int)command->TC_word >> 8) ^ (int)command->TC_code); + TC_state = write_memory_e; + } + else Set_TC_Error(); + break; + case 0x60: break; + case 0x6F: case 0x6A: ; + if (TC_state != (unsigned int)write_memory_e) Set_TC_Error(); + break; + case 0x09: Reboot(soft_reset_e); + break; + case 0x01: error_flag = (unsigned char)0; + i = (unsigned int)1; + while (i <= (sensor_number_t)4) { + { + SU_state_t tmp_1; + tmp_1 = ReadSensorUnit((unsigned char)i); + if (tmp_1 == (unsigned int)start_switching_e) goto _LOR; + else { + SU_state_t tmp_2; + tmp_2 = ReadSensorUnit((unsigned char)i); + if (tmp_2 == (unsigned int)switching_e) _LOR: + error_flag = (unsigned char)1; + } + } + i ++; + } + tmp_3 = GetMode(); + if ((int)tmp_3 == 1) { + if ((int)error_flag == 0) { + SU_setting.SU_state = acquisition_e; + SU_setting.expected_source_state = on_e; + SU_setting.SU_number = (unsigned int)1; + Switch_SU_State(& SU_setting); + SU_setting.SU_number = (unsigned int)2; + Switch_SU_State(& SU_setting); + SU_setting.SU_number = (unsigned int)3; + Switch_SU_State(& SU_setting); + SU_setting.SU_number = (unsigned int)4; + Switch_SU_State(& SU_setting); + ResetDelayCounters(); + SetMode((unsigned char)2); + } + else goto _LAND; + } + else _LAND: Set_TC_Error(); + break; + case 0x02: tmp_4 = GetMode(); + if ((int)tmp_4 == 2) { + SU_setting.SU_state = on_e; + SU_setting.expected_source_state = acquisition_e; + SU_setting.SU_number = (unsigned int)1; + Switch_SU_State(& SU_setting); + SU_setting.SU_number = (unsigned int)2; + Switch_SU_State(& SU_setting); + SU_setting.SU_number = (unsigned int)3; + Switch_SU_State(& SU_setting); + SU_setting.SU_number = (unsigned int)4; + Switch_SU_State(& SU_setting); + SetMode((unsigned char)1); + } + else Set_TC_Error(); + break; + default: UpdateTarget(command); + } + return; +} + +static incoming_mail_t TC_mail; +static telecommand_t received_command; +void InitTelecommandTask(void) +{ + InitTC_LookUp(); + TC_state = TC_handling_e; + TC_mail.mailbox_number = (unsigned char)0; + TC_mail.message = & received_command.TC_word; + previous_TC.TC_word = (unsigned short)0; + previous_TC.TC_address = (unsigned char)0x00; + previous_TC.TC_code = (unsigned char)0; + DisableInterrupt((unsigned char)2); + EnableInterrupt((unsigned char)0); + return; +} + +void HandleTelecommand(void) +{ + TC_mail.timeout = TC_timeout; + WaitMail(& TC_mail); + TC_timeout = (unsigned char)0; + if ((int)TC_mail.execution_result == 4) { + previous_TC.TC_word = (unsigned short)0; + previous_TC.TC_address = (unsigned char)0x00; + previous_TC.TC_code = (unsigned char)0; + if (TC_state != (unsigned int)TC_handling_e) Set_TC_Error(); + TC_state = TC_handling_e; + } + else + if ((int)TC_mail.execution_result == 1) { + received_command.TC_address = (unsigned char)((int)received_command.TC_word >> 9); + received_command.TC_code = (unsigned char)((int)received_command.TC_word & 255); + if (TC_state == (unsigned int)SC_TM_e) goto _LOR; + else + if (TC_state == (unsigned int)memory_dump_e) { + _LOR: ; + if ((int)received_command.TC_word == 0xFFFF) { + DisableInterrupt((unsigned char)2); + if (TC_state == (unsigned int)SC_TM_e) ClearEvents(); + TC_state = TC_handling_e; + } + else goto _LAND; + } + else + _LAND: + switch (TC_state) { + case (TC_state_t)read_memory_e: ; + if ((int)received_command.TC_address != 0x60) { + Set_TC_Error(); + TC_state = TC_handling_e; + } + break; + case (TC_state_t)write_memory_e: WriteMemory(& received_command); + break; + case (TC_state_t)memory_patch_e: MemoryPatch(& received_command); + break; + case (TC_state_t)TC_handling_e: + ExecuteCommand(& received_command); + break; + } + previous_TC = received_command; + } + return; +} + +void TelecommandExecutionTask(void) +{ + InitTelecommandTask(); + while (1) HandleTelecommand(); + return; +} + +void Set_TC_Error(void) +{ + telemetry_data.error_status = (unsigned char)((int)telemetry_data.error_status | 1); + return; +} + +void (*TC_task)(void) = & TelecommandExecutionTask; +telemetry_data_t telemetry_data; +science_data_file_t science_data; +uint_least16_t max_events; +uint_least8_t event_queue_length; +unsigned char *telemetry_pointer; +unsigned char *telemetry_end_pointer; +unsigned int free_slot_index; +unsigned char read_memory_checksum; +event_record_t event_queue[10]; +event_record_t *GetFreeRecord(void) +{ + event_record_t *__retres; + if (event_queue_length < (uint_least8_t)10) { + __retres = & event_queue[event_queue_length]; + goto return_label; + } + else { + __retres = & event_queue[10 - 1]; + goto return_label; + } + return_label: return __retres; +} + +void TM_InterruptService(void) +{ + unsigned char tm_byte; + if (telemetry_pointer == (unsigned char *)(& telemetry_data.time)) + memcpy((void *)(& telemetry_data.time),(void const *)(& internal_time), + sizeof(telemetry_data.time)); + if (telemetry_pointer < telemetry_end_pointer) { + tm_byte = *telemetry_pointer; + Write_TM_MSB(tm_byte); + read_memory_checksum = (unsigned char)((int)read_memory_checksum ^ (int)tm_byte); + telemetry_pointer ++; + tm_byte = *telemetry_pointer; + Write_TM_LSB(tm_byte); + read_memory_checksum = (unsigned char)((int)read_memory_checksum ^ (int)tm_byte); + telemetry_pointer ++; + } + else + if (TC_state == (unsigned int)register_TM_e) { + telemetry_pointer = (unsigned char *)(& telemetry_data); + Write_TM_MSB(*telemetry_pointer); + telemetry_pointer ++; + Write_TM_LSB(*telemetry_pointer); + telemetry_pointer ++; + } + else + if (TC_state == (unsigned int)memory_dump_e) { + unsigned char tmp; + Write_TM_MSB((unsigned char)0); + Write_TM_LSB(read_memory_checksum); + tmp = isr_send_message((unsigned char)0,(unsigned short)0xFFFF); + if ((int)tmp == 9) telemetry_data.isr_send_message_error = (unsigned char)0; + } + else { + unsigned char tmp_0; + tmp_0 = isr_send_message((unsigned char)0,(unsigned short)0xFFFF); + if ((int)tmp_0 == 9) telemetry_data.isr_send_message_error = (unsigned char)0; + } + return; +} + +dpu_time_t GetElapsedTime(unsigned int event_number) +{ + dpu_time_t hit_time; + memcpy((void *)(& hit_time), + (void const *)(& science_data.event[event_number].hit_time), + sizeof(hit_time)); + return hit_time; +} + +unsigned int FindMinQualityRecord(void) +{ + unsigned int min_quality_number; + unsigned int min_quality_location; + dpu_time_t min_time; + dpu_time_t time; + uint_least16_t i; + min_time = GetElapsedTime((unsigned int)0); + min_quality_number = (unsigned int)science_data.event[0].quality_number; + min_quality_location = (unsigned int)0; + i = (unsigned int)1; + while (i < max_events) { + time = GetElapsedTime(i); + if ((unsigned int)science_data.event[i].quality_number < min_quality_number) { + min_time = time; + min_quality_number = (unsigned int)science_data.event[i].quality_number; + min_quality_location = i; + } + else + if ((unsigned int)science_data.event[i].quality_number == min_quality_number) + if (time < min_time) { + min_time = time; + min_quality_location = i; + } + i ++; + } + return min_quality_location; +} + +void IncrementCounters(sensor_index_t sensor_unit, + unsigned char classification) +{ + unsigned char counter; + unsigned char new_checksum; + if ((int)telemetry_data.SU_hits[sensor_unit] < 0xFFFF) telemetry_data.SU_hits[sensor_unit] = (uint16_t)( + (int)telemetry_data.SU_hits[sensor_unit] + 1); + if ((int)science_data.event_counter[sensor_unit][classification] < 0xFF) { + counter = science_data.event_counter[sensor_unit][classification]; + new_checksum = (unsigned char)((int)science_data.counter_checksum ^ (int)counter); + counter = (unsigned char)((int)counter + 1); + new_checksum = (unsigned char)((int)new_checksum ^ (int)counter); + science_data.event_counter[sensor_unit][classification] = counter; + science_data.counter_checksum = new_checksum; + } + return; +} + +void RecordEvent(void) +{ + uint_least16_t record_index; + record_index = free_slot_index; + if (record_index >= max_events) + if (TC_state != (unsigned int)SC_TM_e) record_index = FindMinQualityRecord + (); + if (TC_state == (unsigned int)SC_TM_e) { + if (event_queue_length < (uint_least8_t)10) event_queue_length ++; + } + else { + /*@ widen_hints global:free_slot_index, 1261; */ + if (free_slot_index < max_events) { + record_index = free_slot_index; + science_data.event[record_index].quality_number = (unsigned char)0; + free_slot_index ++; + } + IncrementCounters((unsigned int)((int)event_queue[0].SU_number - 1), + event_queue[0].classification); + if ((int)event_queue[0].quality_number >= (int)science_data.event[record_index].quality_number) + science_data.event[record_index] = event_queue[0]; + } + return; +} + +void ClearEvents(void) +{ + uint_least8_t i; + uint_least8_t j; + i = (unsigned int)0; + while (i < (uint_least8_t)4) { + telemetry_data.SU_hits[i] = (unsigned short)0; + j = (unsigned int)0; + while (j < (uint_least8_t)10) { + science_data.event_counter[i][j] = (unsigned char)0; + j ++; + } + i ++; + } + i = (unsigned int)0; + while (i < event_queue_length) { + science_data.event[i] = event_queue[i]; + IncrementCounters((unsigned int)((int)event_queue[i].SU_number - 1), + event_queue[i].classification); + i ++; + } + free_slot_index = event_queue_length; + event_queue_length = (unsigned int)0; + science_data.counter_checksum = (unsigned char)0; + science_data.not_used = (unsigned char)0; + return; +} + +void ResetEventQueueLength(void) +{ + event_queue_length = (unsigned int)0; + return; +} + +unsigned char EA; +void CreateTask(task_info_t *new_task) +{ + switch ((int)new_task->rtx_task_number) { + case 1: InitTelecommandTask(); + break; + case 2: InitAcquisitionTask(); + break; + case 3: InitHitTriggerTask(); + break; + default: ; + break; + } + return; +} + +void WaitInterval(unsigned char time) +{ + return; +} + +void WaitTimeout(unsigned char time) +{ + return; +} + +void SetTimeSlice(unsigned int time_slice) +{ + return; +} + +static unsigned int ad_converting = (unsigned int)0; +void ShortDelay(uint_least8_t delay_loops) +{ + ad_converting = (unsigned int)0; + return; +} + +unsigned char isr_send_message(unsigned char mailbox, uint16_t message) +{ + unsigned char __retres; + SendTaskMail(mailbox,message,(unsigned char)0); + __retres = (unsigned char)8; + return __retres; +} + +void AttachInterrupt(unsigned char ISR_VectorNumber) +{ + return; +} + +void EnableInterrupt(unsigned char ISR_VectorNumber) +{ + return; +} + +void DisableInterrupt(unsigned char ISR_VectorNumber) +{ + return; +} + +signed char SetInterruptMask(unsigned char ISR_MaskNumber) +{ + signed char __retres; + __retres = (signed char)0; + return __retres; +} + +signed char ResetInterruptMask(unsigned char ISR_MaskNumber) +{ + signed char __retres; + __retres = (signed char)0; + return __retres; +} + +void WaitInterrupt(unsigned char ISR_VectorNumber, unsigned char timer) +{ + return; +} + +static uint16_t mail_message[8]; +static int mail_count[8] = {0, 0, 0, 0, 0, 0, 0, 0}; +static int mail_overflows = 0; +void SendTaskMail(unsigned char mailbox, uint16_t message, + unsigned char timeout) +{ + if (mail_count[mailbox] == 0) mail_message[mailbox] = message; + else mail_overflows ++; + (mail_count[mailbox]) ++; + return; +} + +void WaitMail(incoming_mail_t *message) +{ + if (mail_count[message->mailbox_number] > 0) { + message->wait_result = (signed char)1; + message->execution_result = (signed char)1; + *(message->message) = mail_message[message->mailbox_number]; + (mail_count[message->mailbox_number]) --; + } + else { + message->wait_result = (signed char)4; + message->execution_result = (signed char)4; + *(message->message) = (unsigned short)0; + } + return; +} + +static void FlushMail(unsigned char mailbox) +{ + mail_count[mailbox] = 0; + return; +} + +static unsigned int check_current_errors = (unsigned int)0; +unsigned char Check_Current(unsigned char bits) +{ + unsigned char val; + switch ((int)bits) { + case 3: val = (unsigned char)1; + break; + case 12: val = (unsigned char)4; + break; + case 48: val = (unsigned char)16; + break; + case 192: val = (unsigned char)64; + break; + default: val = (unsigned char)0; + break; + } + if (check_current_errors > (unsigned int)0) { + val = (unsigned char)(~ ((int)val)); + check_current_errors --; + } + return val; +} + +void Reboot(reset_class_t boot_type) +{ + if (boot_type == (unsigned int)checksum_reset_e) reference_checksum = code_checksum; + return; +} + +unsigned char TestMemBits(data_address_t address) +{ + unsigned char __retres; + __retres = (unsigned char)0; + return __retres; +} + +unsigned char TestMemData(data_address_t start, uint_least8_t bytes) +{ + unsigned char __retres; + __retres = (unsigned char)0; + return __retres; +} + +unsigned char TestMemSeq(data_address_t start, uint_least8_t bytes) +{ + unsigned char __retres; + __retres = (unsigned char)0; + return __retres; +} + +static unsigned char tc_msb; +static unsigned char tc_lsb; +static uint16_t tc_word; +unsigned char Read_TC_MSB(void) +{ + return tc_msb; +} + +unsigned char Read_TC_LSB(void) +{ + return tc_lsb; +} + +static unsigned char tm_msb; +static unsigned char tm_lsb; +void Write_TM_LSB(unsigned char value) +{ + tm_lsb = value; + return; +} + +void Write_TM_MSB(unsigned char value) +{ + tm_msb = value; + return; +} + +static unsigned char tc_timer_overflow = (unsigned char)1; +unsigned char TC_Timer_Overflow_Flag(void) +{ + return tc_timer_overflow; +} + +void Clear_TC_Timer_Overflow_Flag(void) +{ + tc_timer_overflow = (unsigned char)0; + return; +} + +void Set_TC_Timer_Overflow_Flag(void) +{ + tc_timer_overflow = (unsigned char)1; + return; +} + +static ad_limit_t ad_limit[0x28] = + {{.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}, + {.min = (unsigned short)0, .max = (unsigned short)0xffff}}; +void Set_AD_Unlimited(void) +{ + uint_least8_t c; + c = (unsigned int)0; + while (c < (uint_least8_t)0x28) { + ad_limit[c].min = (unsigned short)0; + ad_limit[c].max = (unsigned short)0xffff; + c ++; + } + return; +} + +void Set_AD_Nominal(void) +{ + ad_limit[16].min = (unsigned short)0xba00; + ad_limit[16].max = (unsigned short)0xe4ff; + ad_limit[17].min = (unsigned short)0xba00; + ad_limit[17].max = (unsigned short)0xe4ff; + ad_limit[20].min = (unsigned short)0x0d00; + ad_limit[20].max = (unsigned short)0x22ff; + ad_limit[21].min = (unsigned short)0x0d00; + ad_limit[21].max = (unsigned short)0x22ff; + ad_limit[18].min = (unsigned short)0xa800; + ad_limit[18].max = (unsigned short)0xe3ff; + ad_limit[22].min = (unsigned short)0x0e00; + ad_limit[22].max = (unsigned short)0x2cff; + ad_limit[19].min = (unsigned short)0xba00; + ad_limit[19].max = (unsigned short)0xe4ff; + ad_limit[5].min = (unsigned short)0x0000; + ad_limit[5].max = (unsigned short)0xfaff; + ad_limit[6].min = (unsigned short)0x0000; + ad_limit[6].max = (unsigned short)0xf4ff; + ad_limit[13].min = (unsigned short)0x0000; + ad_limit[13].max = (unsigned short)0xfaff; + ad_limit[14].min = (unsigned short)0x0000; + ad_limit[14].max = (unsigned short)0xf4ff; + ad_limit[29].min = (unsigned short)0x0000; + ad_limit[29].max = (unsigned short)0xfaff; + ad_limit[30].min = (unsigned short)0x0000; + ad_limit[30].max = (unsigned short)0xf4ff; + ad_limit[37].min = (unsigned short)0x0000; + ad_limit[37].max = (unsigned short)0xfaff; + ad_limit[38].min = (unsigned short)0x0000; + ad_limit[38].max = (unsigned short)0xf4ff; + return; +} + +static int ad_conv_timer; +static int ad_conv_delay[6]; +static unsigned int ad_conv_num = (unsigned int)0; +static unsigned char ad_random[319] = + {(unsigned char)0x6a, + (unsigned char)0xde, + (unsigned char)0xba, + (unsigned char)0x90, + (unsigned char)0xf2, + (unsigned char)0x18, + (unsigned char)0x48, + (unsigned char)0xf3, + (unsigned char)0x9e, + (unsigned char)0x2b, + (unsigned char)0x31, + (unsigned char)0xdb, + (unsigned char)0xe0, + (unsigned char)0x7e, + (unsigned char)0xc6, + (unsigned char)0x18, + (unsigned char)0x43, + (unsigned char)0xd0, + (unsigned char)0xd7, + (unsigned char)0x6e, + (unsigned char)0xbc, + (unsigned char)0xee, + (unsigned char)0x93, + (unsigned char)0x9a, + (unsigned char)0x06, + (unsigned char)0xb2, + (unsigned char)0x3d, + (unsigned char)0x1f, + (unsigned char)0xc1, + (unsigned char)0x51, + (unsigned char)0x66, + (unsigned char)0x69, + (unsigned char)0xbf, + (unsigned char)0x1c, + (unsigned char)0x9c, + (unsigned char)0xfc, + (unsigned char)0x9b, + (unsigned char)0xf7, + (unsigned char)0xf2, + (unsigned char)0xd0, + (unsigned char)0xf4, + (unsigned char)0x26, + (unsigned char)0x60, + (unsigned char)0x69, + (unsigned char)0xc4, + (unsigned char)0xd9, + (unsigned char)0xdb, + (unsigned char)0xd4, + (unsigned char)0xe7, + (unsigned char)0x2b, + (unsigned char)0x8a, + (unsigned char)0xea, + (unsigned char)0x9f, + (unsigned char)0xab, + (unsigned char)0x40, + (unsigned char)0x3e, + (unsigned char)0xc3, + (unsigned char)0xd8, + (unsigned char)0x21, + (unsigned char)0x61, + (unsigned char)0x3b, + (unsigned char)0x0f, + (unsigned char)0xc1, + (unsigned char)0x49, + (unsigned char)0xd3, + (unsigned char)0x09, + (unsigned char)0x9a, + (unsigned char)0x4d, + (unsigned char)0x33, + (unsigned char)0x52, + (unsigned char)0x7b, + (unsigned char)0x8e, + (unsigned char)0x7e, + (unsigned char)0x7b, + (unsigned char)0x6a, + (unsigned char)0x88, + (unsigned char)0x4f, + (unsigned char)0x84, + (unsigned char)0xa2, + (unsigned char)0xb4, + (unsigned char)0x83, + (unsigned char)0xd9, + (unsigned char)0xba, + (unsigned char)0x79, + (unsigned char)0x7d, + (unsigned char)0x8f, + (unsigned char)0xdf, + (unsigned char)0xb2, + (unsigned char)0x8c, + (unsigned char)0x86, + (unsigned char)0x77, + (unsigned char)0x4f, + (unsigned char)0x29, + (unsigned char)0x86, + (unsigned char)0xd4, + (unsigned char)0x8b, + (unsigned char)0x11, + (unsigned char)0x65, + (unsigned char)0x55, + (unsigned char)0x74, + (unsigned char)0xf4, + (unsigned char)0x76, + (unsigned char)0x83, + (unsigned char)0x88, + (unsigned char)0xd6, + (unsigned char)0xa6, + (unsigned char)0xa7, + (unsigned char)0x33, + (unsigned char)0x22, + (unsigned char)0xa3, + (unsigned char)0x2e, + (unsigned char)0x88, + (unsigned char)0x06, + (unsigned char)0x54, + (unsigned char)0x90, + (unsigned char)0x37, + (unsigned char)0xd5, + (unsigned char)0xdb, + (unsigned char)0xce, + (unsigned char)0x7c, + (unsigned char)0x0b, + (unsigned char)0xd1, + (unsigned char)0xe1, + (unsigned char)0xc0, + (unsigned char)0x7d, + (unsigned char)0xa5, + (unsigned char)0x0b, + (unsigned char)0xc9, + (unsigned char)0xaf, + (unsigned char)0xe3, + (unsigned char)0x75, + (unsigned char)0xc5, + (unsigned char)0xf5, + (unsigned char)0xaf, + (unsigned char)0xaa, + (unsigned char)0xe2, + (unsigned char)0x2a, + (unsigned char)0xff, + (unsigned char)0x6e, + (unsigned char)0x84, + (unsigned char)0x0e, + (unsigned char)0x04, + (unsigned char)0x10, + (unsigned char)0xf0, + (unsigned char)0x78, + (unsigned char)0xdc, + (unsigned char)0x96, + (unsigned char)0x3d, + (unsigned char)0x22, + (unsigned char)0x96, + (unsigned char)0x64, + (unsigned char)0x5b, + (unsigned char)0x7b, + (unsigned char)0x9e, + (unsigned char)0x83, + (unsigned char)0x45, + (unsigned char)0xba, + (unsigned char)0xb8, + (unsigned char)0xe1, + (unsigned char)0x31, + (unsigned char)0xc7, + (unsigned char)0x0a, + (unsigned char)0xe0, + (unsigned char)0x31, + (unsigned char)0xce, + (unsigned char)0x29, + (unsigned char)0x3d, + (unsigned char)0x01, + (unsigned char)0xb8, + (unsigned char)0xfc, + (unsigned char)0x79, + (unsigned char)0x83, + (unsigned char)0x3d, + (unsigned char)0xd1, + (unsigned char)0x40, + (unsigned char)0xe1, + (unsigned char)0x46, + (unsigned char)0xfa, + (unsigned char)0xe7, + (unsigned char)0xc5, + (unsigned char)0xdc, + (unsigned char)0xc4, + (unsigned char)0x1c, + (unsigned char)0x24, + (unsigned char)0x29, + (unsigned char)0x5a, + (unsigned char)0xef, + (unsigned char)0xeb, + (unsigned char)0x92, + (unsigned char)0x57, + (unsigned char)0xba, + (unsigned char)0x06, + (unsigned char)0x13, + (unsigned char)0x1d, + (unsigned char)0x35, + (unsigned char)0xef, + (unsigned char)0xb0, + (unsigned char)0x2d, + (unsigned char)0x69, + (unsigned char)0x20, + (unsigned char)0x92, + (unsigned char)0xb1, + (unsigned char)0x82, + (unsigned char)0x00, + (unsigned char)0x8e, + (unsigned char)0x3b, + (unsigned char)0x12, + (unsigned char)0xb3, + (unsigned char)0x78, + (unsigned char)0xd7, + (unsigned char)0x18, + (unsigned char)0xb3, + (unsigned char)0x54, + (unsigned char)0x0f, + (unsigned char)0xd1, + (unsigned char)0x8e, + (unsigned char)0x88, + (unsigned char)0x5d, + (unsigned char)0x4e, + (unsigned char)0x2b, + (unsigned char)0x30, + (unsigned char)0x30, + (unsigned char)0x2d, + (unsigned char)0x85, + (unsigned char)0xaa, + (unsigned char)0x21, + (unsigned char)0x01, + (unsigned char)0xe1, + (unsigned char)0x2c, + (unsigned char)0x35, + (unsigned char)0xa1, + (unsigned char)0xee, + (unsigned char)0xa2, + (unsigned char)0x17, + (unsigned char)0xed, + (unsigned char)0x60, + (unsigned char)0x1b, + (unsigned char)0x98, + (unsigned char)0xea, + (unsigned char)0x12, + (unsigned char)0x85, + (unsigned char)0x21, + (unsigned char)0xde, + (unsigned char)0x45, + (unsigned char)0x26, + (unsigned char)0xef, + (unsigned char)0x12, + (unsigned char)0x3c, + (unsigned char)0x02, + (unsigned char)0x8c, + (unsigned char)0xd7, + (unsigned char)0x49, + (unsigned char)0xbd, + (unsigned char)0x02, + (unsigned char)0xa7, + (unsigned char)0x7d, + (unsigned char)0xe7, + (unsigned char)0x1c, + (unsigned char)0x15, + (unsigned char)0xf9, + (unsigned char)0xaa, + (unsigned char)0x44, + (unsigned char)0x15, + (unsigned char)0xb1, + (unsigned char)0xaa, + (unsigned char)0x76, + (unsigned char)0x5e, + (unsigned char)0xf2, + (unsigned char)0xb4, + (unsigned char)0xfb, + (unsigned char)0x85, + (unsigned char)0x77, + (unsigned char)0xb9, + (unsigned char)0x32, + (unsigned char)0xb4, + (unsigned char)0xc9, + (unsigned char)0x70, + (unsigned char)0xe1, + (unsigned char)0xdb, + (unsigned char)0x44, + (unsigned char)0x9f, + (unsigned char)0x5b, + (unsigned char)0x87, + (unsigned char)0xca, + (unsigned char)0xaa, + (unsigned char)0xcb, + (unsigned char)0x43, + (unsigned char)0x53, + (unsigned char)0x7e, + (unsigned char)0x49, + (unsigned char)0xec, + (unsigned char)0x1a, + (unsigned char)0x13, + (unsigned char)0x1d, + (unsigned char)0xe1, + (unsigned char)0x1b, + (unsigned char)0x13, + (unsigned char)0xc3, + (unsigned char)0x34, + (unsigned char)0x95, + (unsigned char)0x5d, + (unsigned char)0x5a, + (unsigned char)0xc3, + (unsigned char)0xd0, + (unsigned char)0x33, + (unsigned char)0x05, + (unsigned char)0x82, + (unsigned char)0x4a, + (unsigned char)0x2e, + (unsigned char)0x6d, + (unsigned char)0x39, + (unsigned char)0xeb, + (unsigned char)0x9c, + (unsigned char)0x65, + (unsigned char)0x81, + (unsigned char)0x7f, + (unsigned char)0xa1, + (unsigned char)0x62, + (unsigned char)0x11}; +void Next(unsigned int *index_0) +{ + (*index_0) ++; + if (*index_0 >= (unsigned int)319) *index_0 = (unsigned int)0; + return; +} + +unsigned char Next_Rand(unsigned int *index_0) +{ + unsigned char __retres; + Next(index_0); + __retres = ad_random[*index_0]; + return __retres; +} + +void Set_AD_Delay(int delay) +{ + int i; + i = 0; + while (i < 6) { + ad_conv_delay[i] = delay; + i ++; + } + return; +} + +static unsigned int ad_delay_rand = (unsigned int)0; +void Random_AD_Delay(void) +{ + int i; + i = 0; + while (i < 6) { + unsigned char tmp; + tmp = Next_Rand(& ad_delay_rand); + ad_conv_delay[i] = (int)tmp % (25 + 10); + i ++; + } + return; +} + +static unsigned int ad_rand_index = (unsigned int)0; +static unsigned int max_adc_hits = (unsigned int)0; +static unsigned int ad_hit_rand_index = (unsigned int)0; +static unsigned int total_adc_hits = (unsigned int)0; +static unsigned int ad_random_failures = (unsigned int)0; +static unsigned int ad_fail_index = (unsigned int)0; +void Update_ADC_Channel_Reg(unsigned char channel) +{ + return; +} + +static unsigned int start_conversion_count = (unsigned int)0; +static uint16_t ad_value = (unsigned short)0; +void Start_Conversion(void) +{ + uint_least8_t channel; + unsigned char tmp; + unsigned char tmp_0; + channel = (unsigned int)((int)ADC_channel_register & 0x3f); + if (ad_converting != (unsigned int)0) ; + tmp = Next_Rand(& ad_rand_index); + ad_value = (unsigned short)((int)((unsigned short)tmp) << 8); + tmp_0 = Next_Rand(& ad_rand_index); + ad_value = (unsigned short)((int)ad_value | (int)((unsigned short)tmp_0)); + if ((int)ad_value < (int)ad_limit[channel].min) ad_value = ad_limit[channel].min; + else + if ((int)ad_value > (int)ad_limit[channel].max) ad_value = ad_limit[channel].max; + start_conversion_count ++; + ad_conv_timer = 0; + ad_conv_num ++; + if (ad_conv_num >= (unsigned int)6) ad_conv_num = (unsigned int)0; + if (ad_random_failures > (unsigned int)0) { + unsigned char tmp_1; + tmp_1 = Next_Rand(& ad_fail_index); + if ((int)tmp_1 > 0x3f) { + ad_conv_timer = -5000; + ad_random_failures --; + } + } + ad_converting = (unsigned int)1; + return; +} + +void Report_Start_Conversion_Count(int problem) +{ + start_conversion_count = (unsigned int)0; + return; +} + +static unsigned int end_of_adc_count = (unsigned int)0; +unsigned char End_Of_ADC(void) +{ + unsigned char __retres; + if (ad_converting == (unsigned int)0) ; + end_of_adc_count ++; + ad_conv_timer ++; + if (ad_conv_timer >= ad_conv_delay[ad_conv_num]) { + ad_converting = (unsigned int)0; + __retres = (unsigned char)0; + goto return_label; + } + else { + if (max_adc_hits > (unsigned int)0) { + unsigned char tmp; + tmp = Next_Rand(& ad_hit_rand_index); + if ((int)tmp > 0x7f) { + confirm_hit_result = (unsigned char)1; + total_adc_hits ++; + max_adc_hits --; + ad_converting = (unsigned int)0; + __retres = (unsigned char)0; + goto return_label; + } + } + __retres = (unsigned char)1; + goto return_label; + } + return_label: return __retres; +} + +void Report_End_Of_ADC_Count(int problem) +{ + end_of_adc_count = (unsigned int)0; + return; +} + +unsigned char Get_Result(void) +{ + unsigned char value; + value = (unsigned char)(((int)ad_value >> 8) & 0xff); + ad_value = (unsigned short)((int)ad_value << 8); + return value; +} + +void Set_DAC_Output(unsigned char level) +{ + return; +} + +static unsigned char hit_enabled = (unsigned char)0; +static unsigned char trigger_flag = (unsigned char)1; +static unsigned char event_flag = (unsigned char)1; +static unsigned char trigger_source_0 = (unsigned char)0; +static unsigned char trigger_source_1 = (unsigned char)0; +static unsigned char msb_counter = (unsigned char)134; +static unsigned char lsb1_counter = (unsigned char)77; +static unsigned char lsb2_counter = (unsigned char)88; +static unsigned char rise_time_counter = (unsigned char)102; +static unsigned char sim_self_test = (unsigned char)0; +static unsigned char self_test_pulse = (unsigned char)0; +void Sim_Self_Test_Trigger(void) +{ + if ((int)sim_self_test == 1) + if ((int)hit_enabled == 1) + if ((int)self_test_pulse > 0) + if (self_test_SU_number != (sensor_number_t)0) + if (SU_state[self_test_SU_number - (sensor_number_t)1] == (unsigned int)self_test_trigger_e) + SU_state[self_test_SU_number - (sensor_number_t)1] = self_test_e; + return; +} + +static unsigned int event_rand_index = (unsigned int)0; +void Random_Event(void) +{ + unsigned char val; + val = Next_Rand(& event_rand_index); + trigger_flag = (unsigned char)(((int)val >> 7) & 1); + event_flag = (unsigned char)(((int)val >> 6) & 1); + trigger_source_0 = (unsigned char)(((int)val >> 5) & 1); + trigger_source_1 = (unsigned char)(((int)val >> 4) & 1); + msb_counter = Next_Rand(& event_rand_index); + lsb1_counter = Next_Rand(& event_rand_index); + lsb2_counter = Next_Rand(& event_rand_index); + rise_time_counter = Next_Rand(& event_rand_index); + return; +} + +static void Set_Trigger_SU(sensor_index_t SU) +{ + trigger_source_0 = (unsigned char)(SU & (unsigned int)1); + trigger_source_1 = (unsigned char)((SU >> 1) & (unsigned int)1); + return; +} + +void Enable_Hit_Trigger(void) +{ + hit_enabled = (unsigned char)1; + Sim_Self_Test_Trigger(); + return; +} + +void Disable_Hit_Trigger(void) +{ + hit_enabled = (unsigned char)0; + Sim_Self_Test_Trigger(); + return; +} + +unsigned char Hit_Trigger_Flag(void) +{ + return trigger_flag; +} + +unsigned char Event_Flag(void) +{ + return event_flag; +} + +unsigned char Get_MSB_Counter(void) +{ + return msb_counter; +} + +unsigned char Get_LSB1_Counter(void) +{ + return lsb1_counter; +} + +unsigned char Get_LSB2_Counter(void) +{ + return lsb2_counter; +} + +unsigned char Rise_Time_Counter(void) +{ + return rise_time_counter; +} + +unsigned char Trigger_Source_0(void) +{ + return trigger_source_0; +} + +unsigned char Trigger_Source_1(void) +{ + return trigger_source_1; +} + +void Set_SU_Self_Test_Ch(unsigned char value) +{ + return; +} + +void Set_Test_Pulse_Level(unsigned char level) +{ + self_test_pulse = level; + Sim_Self_Test_Trigger(); + return; +} + +static unsigned int v_down_errors = (unsigned int)0; +unsigned char V_Down(void) +{ + unsigned char result; + if (v_down_errors > (unsigned int)0) { + result = (unsigned char)0; + v_down_errors --; + } + else result = (unsigned char)1; + return result; +} + +void SignalPeakDetectorReset(unsigned char low_reset_value, + unsigned char high_reset_value) +{ + return; +} + +unsigned short Short_Value(uskew16_t *x) +{ + unsigned short val; + memcpy((void *)(& val),(void const *)x,sizeof(val)); + return val; +} + +void Call_Patch(fptr_t func) +{ + return; +} + +static uint_least8_t volatile tsize_s; +static uint_least16_t volatile tsize_l; +void Check_Type_Size(void) +{ + tsize_s = sizeof(char); + tsize_s = sizeof(short); + tsize_s = sizeof(int); + tsize_s = sizeof(long); + tsize_s = sizeof(tm_ushort_t); + tsize_s = sizeof(dpu_time_t); + tsize_s = sizeof(tm_dpu_time_t); + tsize_s = sizeof(SU_settings_t); + tsize_s = sizeof(telemetry_data_t); + tsize_s = sizeof(event_record_t); + tsize_l = sizeof(science_data_file_t); + return; +} + +static unsigned int checks = (unsigned int)0; +static unsigned int check_errors = (unsigned int)0; +static void Report_Checks(void) +{ + return; +} + +static void Fail_Check(char *message) +{ + check_errors ++; + return; +} + +static void Check_Zero(int cond) +{ + checks ++; + if (cond) Fail_Check((char *)"Check_Zero"); + return; +} + +static void Check_Nonzero(int cond) +{ + checks ++; + if (cond == 0) Fail_Check((char *)"Check_Nonzero"); + return; +} + +static void Check_No_Errors(void) +{ + Check_Zero((int)telemetry_data.error_status); + return; +} + +static void TC_Interrupt(void) +{ + TC_InterruptService(); + return; +} + +static void Send_TC(unsigned char address, unsigned char code) +{ + unsigned char par; + tc_msb = (unsigned char)((int)address << 1); + tc_lsb = code; + par = (unsigned char)((int)tc_msb ^ (int)tc_lsb); + par = (unsigned char)(((int)par & 0x0F) ^ ((int)par >> 4)); + par = (unsigned char)(((int)par & 0x03) ^ ((int)par >> 2)); + par = (unsigned char)(((int)par & 0x01) ^ ((int)par >> 1)); + tc_msb = (unsigned char)((int)tc_msb | (int)par); + tc_word = (unsigned short)(((int)tc_msb << 8) | (int)tc_lsb); + tc_timer_overflow = (unsigned char)1; + TC_Interrupt(); + return; +} + +static void Send_TC_Word(uint_least16_t word) +{ + tc_msb = (unsigned char)((word >> 8) & (unsigned int)0xff); + tc_lsb = (unsigned char)(word & (unsigned int)0xff); + tc_word = (unsigned short)(((int)tc_msb << 8) | (int)tc_lsb); + tc_timer_overflow = (unsigned char)1; + TC_Interrupt(); + return; +} + +static void TC_ISR_Tests(void) +{ + tc_timer_overflow = (unsigned char)0; + TC_Interrupt(); + TC_state = SC_TM_e; + Send_TC((unsigned char)0,(unsigned char)0); + TC_state = memory_dump_e; + Send_TC((unsigned char)0,(unsigned char)0); + TC_state = memory_patch_e; + Send_TC((unsigned char)0,(unsigned char)0); + Check_Nonzero(mail_count[0] == 1); + FlushMail((unsigned char)0); + TC_state = TC_handling_e; + tc_timer_overflow = (unsigned char)1; + tc_msb = (unsigned char)0; + tc_lsb = (unsigned char)1; + tc_word = (unsigned short)1; + TC_Interrupt(); + Check_Nonzero((int)telemetry_data.error_status & 2); + Send_TC((unsigned char)0x03,(unsigned char)0x03); + Check_Nonzero((int)telemetry_data.error_status & 2); + Check_Nonzero(mail_count[0] == 1); + FlushMail((unsigned char)0); + telemetry_data.error_status = (unsigned char)0; + Check_No_Errors(); + Send_TC((unsigned char)0x05,(unsigned char)8); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)register_TM_e); + Check_Nonzero(mail_count[0] == 1); + FlushMail((unsigned char)0); + Send_TC((unsigned char)4,(unsigned char)4); + Check_Nonzero((int)telemetry_data.error_status == 1); + Check_Nonzero(mail_count[0] == 0); + telemetry_data.error_status = (unsigned char)0; + Send_TC((unsigned char)0x03,(unsigned char)(~ 0x03)); + Check_Nonzero((int)telemetry_data.error_status == 1); + Check_Nonzero(mail_count[0] == 0); + telemetry_data.error_status = (unsigned char)0; + Send_TC((unsigned char)0x40,(unsigned char)0x3F); + Check_Nonzero((int)telemetry_data.error_status == 1); + Check_Nonzero(mail_count[0] == 0); + telemetry_data.error_status = (unsigned char)0; + Send_TC((unsigned char)0x05,(unsigned char)5); + Check_Nonzero(TC_state == (unsigned int)TC_handling_e); + Check_Nonzero((int)telemetry_data.error_status == 1); + Check_Nonzero(mail_count[0] == 0); + telemetry_data.error_status = (unsigned char)0; + Send_TC((unsigned char)0x05,(unsigned char)(0x74 + 2)); + Check_Nonzero(TC_state == (unsigned int)TC_handling_e); + Check_Nonzero((int)telemetry_data.error_status == 1); + Check_Nonzero(mail_count[0] == 0); + telemetry_data.error_status = (unsigned char)0; + return; +} + +static void Handle_TC(int problem) +{ + Check_Nonzero(mail_count[0] == 1); + HandleTelecommand(); + Check_Nonzero(mail_count[0] == 0); + return; +} + +static void Exec_TC(unsigned char address, unsigned char code, int problem) +{ + Send_TC(address,code); + Handle_TC(problem); + return; +} + +static void Send_Patch_Code(uint16_t address, unsigned char *checksum) +{ + uint_least8_t i; + unsigned char sum; + Exec_TC((unsigned char)0x10,(unsigned char)(((int)address >> 8) & 0xff),42); + sum = (unsigned char)(((int)tc_word >> 8) ^ ((int)tc_word & 0xff)); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)write_memory_e); + Exec_TC((unsigned char)0x6F,(unsigned char)((int)address & 0xff),43); + sum = (unsigned char)((int)sum ^ (((int)tc_word >> 8) ^ ((int)tc_word & 0xff))); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)memory_patch_e); + i = (unsigned int)0; + while (i < (uint_least8_t)16) { + Send_TC_Word(i << 6); + sum = (unsigned char)((int)sum ^ (((int)tc_word >> 8) ^ ((int)tc_word & 0xff))); + Handle_TC(44); + i ++; + } + *checksum = sum; + return; +} + +static void Send_Patch_Data(uint16_t address, unsigned char *checksum) +{ + uint_least8_t i; + unsigned char sum; + Exec_TC((unsigned char)0x15,(unsigned char)(((int)address >> 8) & 0xff),42); + sum = (unsigned char)(((int)tc_word >> 8) ^ ((int)tc_word & 0xff)); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)write_memory_e); + Exec_TC((unsigned char)0x6A,(unsigned char)((int)address & 0xff),43); + sum = (unsigned char)((int)sum ^ (((int)tc_word >> 8) ^ ((int)tc_word & 0xff))); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)memory_patch_e); + i = (unsigned int)0; + while (i < (uint_least8_t)16) { + Send_TC_Word(i << 6); + sum = (unsigned char)((int)sum ^ (((int)tc_word >> 8) ^ ((int)tc_word & 0xff))); + Handle_TC(44); + i ++; + } + *checksum = sum; + return; +} + +static void Read_Data_Memory(uint16_t address) +{ + uint_least8_t i; + Exec_TC((unsigned char)0x1F,(unsigned char)(((int)address >> 8) & 0xff),41); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)read_memory_e); + Exec_TC((unsigned char)0x60,(unsigned char)((int)address & 0xff),41); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)memory_dump_e); + i = (unsigned int)0; + while (i < (uint_least8_t)16) { + Check_Nonzero(telemetry_pointer < telemetry_end_pointer); + TM_InterruptService(); + Check_Nonzero(TC_state == (unsigned int)memory_dump_e); + i ++; + } + Check_Nonzero(telemetry_pointer == telemetry_end_pointer); + TM_InterruptService(); + Handle_TC(10); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)TC_handling_e); + return; +} + +void Clear_Errors(void) +{ + Exec_TC((unsigned char)0x03,(unsigned char)0x03,41); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)TC_handling_e); + return; +} + +static void TC_Task_Tests(void) +{ + unsigned char chsum; + DEBIE_mode_t tmp; + DEBIE_mode_t tmp_0; + telemetry_data.error_status = (unsigned char)2; + Send_TC((unsigned char)0x03,(unsigned char)0x03); + Check_Nonzero((int)telemetry_data.error_status & 2); + Handle_TC(41); + Check_No_Errors(); + Exec_TC((unsigned char)0x21,(unsigned char)23,41); + Exec_TC((unsigned char)0x31,(unsigned char)26,41); + Exec_TC((unsigned char)0x41,(unsigned char)32,41); + Exec_TC((unsigned char)0x51,(unsigned char)102,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x22,(unsigned char)205,41); + Exec_TC((unsigned char)0x32,(unsigned char)123,41); + Exec_TC((unsigned char)0x42,(unsigned char)99,41); + Exec_TC((unsigned char)0x52,(unsigned char)1,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x23,(unsigned char)14,41); + Exec_TC((unsigned char)0x33,(unsigned char)54,41); + Exec_TC((unsigned char)0x43,(unsigned char)74,41); + Exec_TC((unsigned char)0x53,(unsigned char)104,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x24,(unsigned char)104,41); + Exec_TC((unsigned char)0x34,(unsigned char)204,41); + Exec_TC((unsigned char)0x44,(unsigned char)214,41); + Exec_TC((unsigned char)0x54,(unsigned char)234,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x25,(unsigned char)104,41); + Exec_TC((unsigned char)0x35,(unsigned char)88,41); + Exec_TC((unsigned char)0x45,(unsigned char)66,41); + Exec_TC((unsigned char)0x55,(unsigned char)33,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x28,(unsigned char)61,41); + Exec_TC((unsigned char)0x38,(unsigned char)21,41); + Exec_TC((unsigned char)0x48,(unsigned char)81,41); + Exec_TC((unsigned char)0x58,(unsigned char)11,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x26,(unsigned char)14,41); + Exec_TC((unsigned char)0x36,(unsigned char)24,41); + Exec_TC((unsigned char)0x46,(unsigned char)33,41); + Exec_TC((unsigned char)0x56,(unsigned char)77,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x27,(unsigned char)14,41); + Exec_TC((unsigned char)0x37,(unsigned char)14,41); + Exec_TC((unsigned char)0x47,(unsigned char)14,41); + Exec_TC((unsigned char)0x57,(unsigned char)14,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x29,(unsigned char)191,41); + Exec_TC((unsigned char)0x39,(unsigned char)171,41); + Exec_TC((unsigned char)0x49,(unsigned char)161,41); + Exec_TC((unsigned char)0x59,(unsigned char)151,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x2A,(unsigned char)11,41); + Exec_TC((unsigned char)0x3A,(unsigned char)22,41); + Exec_TC((unsigned char)0x4A,(unsigned char)33,41); + Exec_TC((unsigned char)0x5A,(unsigned char)44,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x2B,(unsigned char)111,41); + Exec_TC((unsigned char)0x3B,(unsigned char)122,41); + Exec_TC((unsigned char)0x4B,(unsigned char)133,41); + Exec_TC((unsigned char)0x5B,(unsigned char)144,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x2C,(unsigned char)11,41); + Exec_TC((unsigned char)0x3C,(unsigned char)10,41); + Exec_TC((unsigned char)0x4C,(unsigned char)9,41); + Exec_TC((unsigned char)0x5C,(unsigned char)8,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x2D,(unsigned char)211,41); + Exec_TC((unsigned char)0x3D,(unsigned char)210,41); + Exec_TC((unsigned char)0x4D,(unsigned char)209,41); + Exec_TC((unsigned char)0x5D,(unsigned char)208,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x70,(unsigned char)1,41); + Exec_TC((unsigned char)0x71,(unsigned char)2,41); + Exec_TC((unsigned char)0x72,(unsigned char)3,41); + Exec_TC((unsigned char)0x73,(unsigned char)4,41); + Exec_TC((unsigned char)0x74,(unsigned char)5,41); + Check_No_Errors(); + Send_Patch_Code((unsigned short)0x1100,& chsum); + chsum = (unsigned char)((int)chsum ^ 0x5A); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Send_TC_Word((unsigned int)(0x5A00 | (int)chsum)); + Handle_TC(41); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)TC_handling_e); + Send_Patch_Code((unsigned short)0x1300,& chsum); + chsum = (unsigned char)((int)chsum ^ 0x00); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Send_TC_Word((unsigned int)(0x0000 | (int)chsum)); + Handle_TC(41); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)TC_handling_e); + Send_Patch_Code((unsigned short)0x1400,& chsum); + chsum = (unsigned char)((int)chsum ^ 0x09); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Send_TC_Word((unsigned int)(0x0900 | (int)chsum)); + Handle_TC(41); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)TC_handling_e); + Send_Patch_Code((unsigned short)0x2100,& chsum); + chsum = (unsigned char)((int)chsum ^ 0x37); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Send_TC_Word((unsigned int)(0x3700 | (int)chsum)); + Handle_TC(41); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)TC_handling_e); + Send_Patch_Code((unsigned short)0x2400,& chsum); + chsum = (unsigned char)((int)chsum ^ 0x62); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Send_TC_Word((unsigned int)(0x6200 | (int)chsum)); + Handle_TC(41); + Check_Nonzero((int)telemetry_data.error_status == 1); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Clear_Errors(); + Send_Patch_Code((unsigned short)0x0fff,& chsum); + chsum = (unsigned char)((int)chsum ^ 0x00); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Send_TC_Word((unsigned int)(0x0000 | (int)chsum)); + Handle_TC(41); + Check_Nonzero((int)telemetry_data.error_status == 1); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Clear_Errors(); + Send_Patch_Code((unsigned short)0x1200,& chsum); + chsum = (unsigned char)((int)chsum ^ 0x5A); + chsum = (unsigned char)((int)chsum ^ 0xff); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Send_TC_Word((unsigned int)(0x5A00 | (int)chsum)); + Handle_TC(41); + Check_Nonzero((int)telemetry_data.mode_status & 0x10); + Check_Nonzero(TC_state == (unsigned int)TC_handling_e); + Clear_Errors(); + Exec_TC((unsigned char)0x6F,(unsigned char)0x32,41); + Check_Nonzero((int)telemetry_data.error_status == 1); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Clear_Errors(); + Exec_TC((unsigned char)0x10,(unsigned char)0x32,41); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)write_memory_e); + Exec_TC((unsigned char)0x0A,(unsigned char)0x0A,41); + Check_Nonzero((int)telemetry_data.error_status == 1); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Clear_Errors(); + Send_Patch_Data((unsigned short)0x2200,& chsum); + chsum = (unsigned char)((int)chsum ^ 0x11); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Send_TC_Word((unsigned int)(0x1100 | (int)chsum)); + Handle_TC(41); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)TC_handling_e); + Send_Patch_Data((unsigned short)0xfef0,& chsum); + chsum = (unsigned char)((int)chsum ^ 0x11); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Send_TC_Word((unsigned int)(0x1100 | (int)chsum)); + Handle_TC(41); + Check_Nonzero((int)telemetry_data.error_status == 1); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Clear_Errors(); + Exec_TC((unsigned char)0x6A,(unsigned char)0x32,41); + Check_Nonzero((int)telemetry_data.error_status == 1); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Clear_Errors(); + Exec_TC((unsigned char)0x15,(unsigned char)0x32,41); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)write_memory_e); + Exec_TC((unsigned char)0x0A,(unsigned char)0x0A,41); + Check_Nonzero((int)telemetry_data.error_status == 1); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Clear_Errors(); + Send_Patch_Data((unsigned short)0x2300,& chsum); + chsum = (unsigned char)((int)chsum ^ 0x11); + chsum = (unsigned char)((int)chsum ^ 0xff); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Send_TC_Word((unsigned int)(0x1100 | (int)chsum)); + Handle_TC(41); + Check_Nonzero((int)telemetry_data.mode_status & 0x10); + Check_Nonzero(TC_state == (unsigned int)TC_handling_e); + Clear_Errors(); + Send_Patch_Data((unsigned short)0x2200,& chsum); + chsum = (unsigned char)((int)chsum ^ 0x11); + Check_Nonzero(TC_state == (unsigned int)memory_patch_e); + Check_Zero((int)telemetry_data.mode_status & 0x10); + Check_Nonzero(mail_count[0] == 0); + HandleTelecommand(); + Check_Nonzero(TC_state == (unsigned int)TC_handling_e); + Check_Nonzero((int)telemetry_data.error_status == 1); + Clear_Errors(); + Check_Nonzero(mail_count[0] == 0); + HandleTelecommand(); + Check_Nonzero(TC_state == (unsigned int)TC_handling_e); + Check_No_Errors(); + Read_Data_Memory((unsigned short)0x2041); + Exec_TC((unsigned char)0x1F,(unsigned char)0xfe,41); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)read_memory_e); + Exec_TC((unsigned char)0x60,(unsigned char)0xf0,41); + Check_Nonzero((int)telemetry_data.error_status == 1); + Clear_Errors(); + Exec_TC((unsigned char)0x60,(unsigned char)0xfe,41); + Check_Nonzero((int)telemetry_data.error_status == 1); + Clear_Errors(); + Exec_TC((unsigned char)0x1F,(unsigned char)0xab,41); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)read_memory_e); + Exec_TC((unsigned char)0x0A,(unsigned char)0x0A,41); + Check_Nonzero((int)telemetry_data.error_status == 1); + Clear_Errors(); + telemetry_data.watchdog_failures = (unsigned char)3; + Exec_TC((unsigned char)0x0A,(unsigned char)0x0A,41); + Check_No_Errors(); + Check_Zero((int)telemetry_data.watchdog_failures); + telemetry_data.checksum_failures = (unsigned char)9; + Exec_TC((unsigned char)0x0B,(unsigned char)0x0B,41); + Check_No_Errors(); + Check_Zero((int)telemetry_data.checksum_failures); + Exec_TC((unsigned char)0x0F,(unsigned char)0x44,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x0E,(unsigned char)0x33,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x0D,(unsigned char)0x22,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x0C,(unsigned char)0x11,41); + Check_No_Errors(); + Check_Nonzero(internal_time == (dpu_time_t)0x44332211); + internal_time = (unsigned int)0x01122334; + Exec_TC((unsigned char)0x0F,(unsigned char)0x44,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x0D,(unsigned char)0x33,41); + Check_Nonzero((int)telemetry_data.error_status == 1); + Check_Nonzero(internal_time == (dpu_time_t)0x44000000); + Clear_Errors(); + internal_time = (unsigned int)0x01122334; + Exec_TC((unsigned char)0x0F,(unsigned char)0x44,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x0E,(unsigned char)0x33,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x0C,(unsigned char)0x22,41); + Check_Nonzero((int)telemetry_data.error_status == 1); + Check_Nonzero(internal_time == (dpu_time_t)0x44330000); + Clear_Errors(); + internal_time = (unsigned int)0x01122334; + Exec_TC((unsigned char)0x0F,(unsigned char)0x44,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x0E,(unsigned char)0x33,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x0D,(unsigned char)0x22,41); + Check_No_Errors(); + Exec_TC((unsigned char)0x0E,(unsigned char)0x11,41); + Check_Nonzero((int)telemetry_data.error_status == 1); + Check_Nonzero(internal_time == (dpu_time_t)0x44332200); + Clear_Errors(); + Exec_TC((unsigned char)0x09,(unsigned char)0x09,41); + Check_No_Errors(); + tmp = GetMode(); + Check_Nonzero((int)tmp == 1); + Exec_TC((unsigned char)0x02,(unsigned char)0x02,41); + Check_Nonzero((int)telemetry_data.error_status == 1); + tmp_0 = GetMode(); + Check_Nonzero((int)tmp_0 == 1); + Clear_Errors(); + return; +} + +void Monitor_Health(int problem) +{ + start_conversion_count = (unsigned int)0; + end_of_adc_count = (unsigned int)0; + HandleHealthMonitoring(); + Report_Start_Conversion_Count(problem); + Report_End_Of_ADC_Count(problem); + return; +} + +void Monitoring_Task_Tests(void) +{ + int sec; + int tot_errors; + int max_errors = 20; + /*@ widen_hints tot_errors, 20; */ + health_mon_round = (unsigned int)9; + temp_meas_count = (unsigned int)5; + voltage_meas_count = (unsigned int)17; + checksum_count = (unsigned int)59; + Set_AD_Nominal(); + Set_AD_Delay(2); + Check_Nonzero(health_mon_round == (uint_least8_t)9); + Check_Nonzero(temp_meas_count == (uint_least8_t)5); + Check_Nonzero(voltage_meas_count == (uint_least8_t)17); + Check_Nonzero(checksum_count == (uint_least8_t)59); + sec = 1; + while (sec <= 9) { + Monitor_Health(61); + Check_Nonzero(health_mon_round == (uint_least8_t)(9 - sec)); + Check_Nonzero(temp_meas_count == (uint_least8_t)5); + Check_Nonzero(voltage_meas_count == (uint_least8_t)17); + Check_Nonzero(checksum_count == (uint_least8_t)(59 - sec)); + sec ++; + } + Monitor_Health(61); + Check_Nonzero(health_mon_round == (uint_least8_t)9); + Check_Nonzero(temp_meas_count == (uint_least8_t)(5 - 1)); + Check_Nonzero(voltage_meas_count == (uint_least8_t)(17 - 1)); + Check_Nonzero(checksum_count == (uint_least8_t)(59 - 10)); + sec = 11; + while (sec <= 180) { + Monitor_Health(61); + sec ++; + } + Check_Nonzero(health_mon_round == (uint_least8_t)9); + Check_Nonzero(temp_meas_count == (uint_least8_t)5); + Check_Nonzero(voltage_meas_count == (uint_least8_t)17); + Check_Nonzero(checksum_count == (uint_least8_t)59); + Check_No_Errors(); + total_adc_hits = (unsigned int)0; + sec = 1; + while (sec <= 180) { + max_adc_hits = (unsigned int)1; + Monitor_Health(62); + sec ++; + } + Check_Nonzero((int)total_adc_hits); + Check_Nonzero(health_mon_round == (uint_least8_t)9); + Check_Nonzero(temp_meas_count == (uint_least8_t)5); + Check_Nonzero(voltage_meas_count == (uint_least8_t)17); + Check_Nonzero(checksum_count == (uint_least8_t)59); + Check_No_Errors(); + total_adc_hits = (unsigned int)0; + sec = 1; + while (sec <= 180) { + max_adc_hits = (unsigned int)20; + Monitor_Health(63); + sec ++; + } + Check_Nonzero((int)total_adc_hits); + Check_Nonzero(health_mon_round == (uint_least8_t)9); + Check_Nonzero(temp_meas_count == (uint_least8_t)5); + Check_Nonzero(voltage_meas_count == (uint_least8_t)17); + Check_Nonzero(checksum_count == (uint_least8_t)59); + Check_No_Errors(); + Set_AD_Unlimited(); + max_adc_hits = (unsigned int)0; + tot_errors = 0; + while (1) { + if (tot_errors == 4) check_current_errors = (unsigned int)5; + if (tot_errors == max_errors - 1) v_down_errors = (unsigned int)1; + sec = 1; + while (sec <= 180) { + Monitor_Health(64); + sec ++; + } + if ((int)telemetry_data.error_status != 0) { + tot_errors ++; + Clear_Errors(); + } + if (! (tot_errors < max_errors)) break; + } + Check_No_Errors(); + Set_AD_Unlimited(); + tot_errors = 0; + while (1) { + if (tot_errors == 4) check_current_errors = (unsigned int)5; + if (tot_errors == max_errors - 1) v_down_errors = (unsigned int)1; + sec = 1; + while (sec <= 180) { + max_adc_hits = (unsigned int)20; + if (sec > 2 * tot_errors) ad_random_failures = (unsigned int)2; + Monitor_Health(65); + sec ++; + } + if ((int)telemetry_data.error_status != 0) { + tot_errors ++; + Clear_Errors(); + } + if (! (tot_errors < max_errors)) break; + } + Check_No_Errors(); + return; +} + +void TM_Tests(void) +{ + int octets; + Send_TC((unsigned char)0x05,(unsigned char)0); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)register_TM_e); + Handle_TC(41); + Check_Nonzero(TC_state == (unsigned int)register_TM_e); + octets = 0; + while ((unsigned int)octets < sizeof(telemetry_data_t)) { + if (telemetry_pointer != (unsigned char *)(& telemetry_data.time)) + TM_InterruptService(); + else TM_InterruptService(); + Check_Nonzero(TC_state == (unsigned int)register_TM_e); + octets += 2; + } + Send_TC((unsigned char)0x05,(unsigned char)22); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)register_TM_e); + Handle_TC(41); + Check_Nonzero(TC_state == (unsigned int)register_TM_e); + octets = 0; + while (octets < 40) { + if (telemetry_pointer != (unsigned char *)(& telemetry_data.time)) + TM_InterruptService(); + else TM_InterruptService(); + Check_Nonzero(TC_state == (unsigned int)register_TM_e); + octets += 2; + } + Send_TC((unsigned char)0x03,(unsigned char)0x03); + Check_Nonzero(TC_state == (unsigned int)TC_handling_e); + Handle_TC(41); + Check_No_Errors(); + Send_TC((unsigned char)0x06,(unsigned char)0x06); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)SC_TM_e); + Handle_TC(41); + Check_Nonzero(TC_state == (unsigned int)SC_TM_e); + octets = 0; + /*@ loop unroll 22; */ + while (mail_count[0] == 0) { + if (telemetry_pointer < telemetry_end_pointer) TM_InterruptService(); + else TM_InterruptService(); + octets += 2; + Check_Nonzero(TC_state == (unsigned int)SC_TM_e); + } + Handle_TC(41); + Check_Nonzero(TC_state == (unsigned int)TC_handling_e); + return; +} + +static void Trigger_Hit(int problem) +{ + Check_Nonzero(mail_count[1] == 0); + HandleHitTrigger(); + int tmp = mail_count[1] == 0; + return; +} + +static void Trigger_SU_Hit(sensor_index_t SU, int problem) +{ + Set_Trigger_SU(SU); + Trigger_Hit(problem); + return; +} + +static void Acquire_Hit(int hit_problem, int acq_problem) +{ + Trigger_Hit(hit_problem); + if (mail_count[1] > 0) HandleAcquisition(); + return; +} + +static void Hit_ISR_Tests(void) +{ + sensor_index_t su; + telemetry_data.hit_budget_exceedings = (unsigned char)0; + Check_Nonzero((int)telemetry_data.hit_budget_exceedings == 0); + hit_budget_left = (unsigned int)0; + Trigger_SU_Hit((unsigned int)0,31); + Check_Nonzero(mail_count[1] == 0); + Check_Nonzero((int)telemetry_data.hit_budget_exceedings == 1); + Trigger_SU_Hit((unsigned int)1,31); + Check_Nonzero(mail_count[1] == 0); + Check_Nonzero((int)telemetry_data.hit_budget_exceedings == 2); + telemetry_data.hit_budget_exceedings = (unsigned char)254; + hit_budget_left = (unsigned int)0; + Trigger_SU_Hit((unsigned int)3,31); + Check_Nonzero(mail_count[1] == 0); + Check_Nonzero((int)telemetry_data.hit_budget_exceedings == 255); + Trigger_SU_Hit((unsigned int)1,31); + Check_Nonzero(mail_count[1] == 0); + Check_Nonzero((int)telemetry_data.hit_budget_exceedings == 255); + hit_budget_left = (unsigned int)15; + Set_AD_Delay(2); + ad_conv_num = (unsigned int)0; + su = (unsigned int)0; + while (su < (sensor_index_t)4) { + Trigger_SU_Hit(su,31); + Check_Nonzero(mail_count[1] == 1); + Check_Nonzero((sensor_index_t)mail_message[1] == su + (sensor_index_t)1); + FlushMail((unsigned char)1); + su ++; + } + Check_Nonzero(hit_budget_left == (uint_least8_t)(15 - 4)); + su = (unsigned int)0; + while (su < (sensor_index_t)4) { + self_test_SU_number = su + (sensor_index_t)1; + SU_state[su] = self_test_trigger_e; + Trigger_SU_Hit(su,31); + Check_Nonzero(mail_count[1] == 1); + Check_Nonzero((sensor_number_t)mail_message[1] == self_test_SU_number); + Check_Nonzero(SU_state[su] == (unsigned int)self_test_e); + FlushMail((unsigned char)1); + su ++; + } + su = (unsigned int)0; + while (su < (sensor_index_t)4) { + self_test_SU_number = su + (sensor_index_t)1; + SU_state[su] = self_test_e; + Trigger_SU_Hit(su,31); + Check_Nonzero(mail_count[1] == 1); + Check_Nonzero((unsigned int)mail_message[1] == (self_test_SU_number | (unsigned int)0x40)); + Check_Nonzero(SU_state[su] == (unsigned int)self_test_e); + FlushMail((unsigned char)1); + su ++; + } + self_test_SU_number = (unsigned int)0; + su = (unsigned int)0; + while (su < (sensor_index_t)4) { + SU_state[su] = off_e; + su ++; + } + hit_budget_left = (unsigned int)15; + Set_AD_Delay(25); + ad_conv_num = (unsigned int)0; + su = (unsigned int)0; + while (su < (sensor_index_t)4) { + Trigger_SU_Hit(su,32); + Check_Nonzero(mail_count[1] == 1); + Check_Nonzero((sensor_index_t)mail_message[1] == su + (sensor_index_t)1); + FlushMail((unsigned char)1); + su ++; + } + Check_Nonzero(hit_budget_left == (uint_least8_t)(15 - 4)); + hit_budget_left = (unsigned int)15; + ad_conv_delay[0] = 25 + 1; + su = (unsigned int)0; + while (su < (sensor_index_t)4) { + ad_conv_num = su; + Trigger_SU_Hit(su,32); + Check_Nonzero(mail_count[1] == 1); + Check_Nonzero((unsigned int)mail_message[1] == ((su + (sensor_index_t)1) | (unsigned int)0x80)); + FlushMail((unsigned char)1); + su ++; + } + Check_Nonzero(hit_budget_left == (uint_least8_t)(15 - 4)); + hit_budget_left = (unsigned int)80; + su = (unsigned int)(4 - 1); + while (hit_budget_left > (uint_least8_t)0) { + Random_AD_Delay(); + Trigger_SU_Hit(su,33); + Check_Nonzero(mail_count[1] == 1); + Check_Nonzero((sensor_index_t)((int)mail_message[1] & 0x07) == su + (sensor_index_t)1); + FlushMail((unsigned char)1); + if (su > (sensor_index_t)0) su --; else su = (unsigned int)(4 - 1); + } + return; +} + +unsigned char switch_su_cmd[4] = + {(unsigned char)0x20, + (unsigned char)0x30, + (unsigned char)0x40, + (unsigned char)0x50}; +void Report_Event_Histo(void) +{ + sensor_index_t sen; + int class; + sen = (unsigned int)0; + while (sen < (sensor_index_t)4) { + class = 0; + while (class < 10) class ++; + sen ++; + } + return; +} + +static void Acquisition_Tests(void) +{ + sensor_index_t sen; + unsigned int hits; + int octets; + DEBIE_mode_t tmp; + DEBIE_mode_t tmp_0; + sen = (unsigned int)0; + while (sen < (sensor_index_t)4) { + Check_Nonzero(SU_state[sen] == (unsigned int)off_e); + Exec_TC(switch_su_cmd[sen],(unsigned char)0x55,41); + Check_No_Errors(); + Check_Nonzero(SU_state[sen] == (unsigned int)start_switching_e); + sen ++; + } + Set_AD_Nominal(); + max_adc_hits = (unsigned int)0; + ad_random_failures = (unsigned int)0; + check_current_errors = (unsigned int)0; + v_down_errors = (unsigned int)0; + Monitor_Health(61); + sen = (unsigned int)0; + while (sen < (sensor_index_t)4) { + Check_Nonzero(SU_state[sen] == (unsigned int)switching_e); + sen ++; + } + Monitor_Health(61); + sen = (unsigned int)0; + while (sen < (sensor_index_t)4) { + Check_Nonzero(SU_state[sen] == (unsigned int)on_e); + sen ++; + } + Exec_TC((unsigned char)0x30,(unsigned char)0x55,41); + Check_Nonzero((int)telemetry_data.error_status == 1); + Check_Nonzero(SU_state[1] == (unsigned int)on_e); + Clear_Errors(); + Check_Nonzero(((int)telemetry_data.mode_status & 3) == 1); + Exec_TC((unsigned char)0x01,(unsigned char)0x01,41); + Check_No_Errors(); + Check_Nonzero(((int)telemetry_data.mode_status & 3) == 2); + sen = (unsigned int)0; + while (sen < (sensor_index_t)4) { + Check_Nonzero(SU_state[sen] == (unsigned int)acquisition_e); + sen ++; + } + Exec_TC((unsigned char)0x20,(unsigned char)0x55,41); + Check_Nonzero((int)telemetry_data.error_status == 1); + Clear_Errors(); + Exec_TC((unsigned char)0x01,(unsigned char)0x01,41); + Check_Nonzero((int)telemetry_data.error_status == 1); + tmp = GetMode(); + Check_Nonzero((int)tmp == 2); + Clear_Errors(); + Set_AD_Delay(2); + hits = (unsigned int)0; + while (free_slot_index < max_events) { + hits ++; + internal_time ++; + hit_budget_left = (unsigned int)10; + Random_Event(); + Acquire_Hit(31,51); + } + Report_Event_Histo(); + while (hits > (unsigned int)0) { + hits --; + internal_time ++; + hit_budget_left = (unsigned int)10; + Random_Event(); + Acquire_Hit(31,52); + } + Report_Event_Histo(); + Send_TC((unsigned char)0x06,(unsigned char)0x06); + Check_No_Errors(); + Check_Nonzero(TC_state == (unsigned int)SC_TM_e); + Handle_TC(41); + Check_Nonzero(TC_state == (unsigned int)SC_TM_e); + hits = (unsigned int)0; + hit_budget_left = (unsigned int)(10 + 2); + Check_Zero((int)event_queue_length); + octets = 0; + while (mail_count[0] == 0) { + if (telemetry_pointer < telemetry_end_pointer) TM_InterruptService(); + else TM_InterruptService(); + octets += 2; + Check_Nonzero(TC_state == (unsigned int)SC_TM_e); + if (hits < (unsigned int)(10 + 4)) { + internal_time ++; + Random_Event(); + event_flag = (unsigned char)1; + Acquire_Hit(31,52); + hits ++; + if (hits <= (unsigned int)10) Check_Nonzero(event_queue_length == hits); + else Check_Nonzero(event_queue_length == (uint_least8_t)10); + } + } + Check_Zero((int)hit_budget_left); + Check_Nonzero(hits == (unsigned int)(10 + 4)); + Handle_TC(41); + Check_Nonzero(TC_state == (unsigned int)TC_handling_e); + Check_Zero((int)event_queue_length); + Check_Nonzero(free_slot_index == (unsigned int)10); + tmp_0 = GetMode(); + Check_Nonzero((int)tmp_0 == 2); + Check_Zero((int)telemetry_data.error_status & 1); + Exec_TC((unsigned char)0x30,(unsigned char)0x99,41); + Check_Nonzero((int)telemetry_data.error_status & 1); + Exec_TC((unsigned char)0x03,(unsigned char)0x03,41); + Check_Zero((int)telemetry_data.error_status & 1); + Exec_TC((unsigned char)0x02,(unsigned char)0x02,41); + Check_No_Errors(); + Check_Nonzero(((int)telemetry_data.mode_status & 3) == 1); + sen = (unsigned int)0; + while (sen < (sensor_index_t)4) { + Check_Nonzero(SU_state[sen] == (unsigned int)on_e); + sen ++; + } + sen = (unsigned int)0; + while (sen < (sensor_index_t)4) { + Exec_TC(switch_su_cmd[sen],(unsigned char)0x73,41); + Check_No_Errors(); + Check_Nonzero(SU_state[sen] == (unsigned int)off_e); + sen ++; + } + return; +} + +void SU_Self_Test_Tests(void) +{ + sensor_index_t sen; + DEBIE_mode_t tmp; + DEBIE_mode_t tmp_0; + sim_self_test = (unsigned char)1; + sen = (unsigned int)0; + while (sen < (sensor_index_t)4) { + Check_Nonzero(SU_state[sen] == (unsigned int)off_e); + Exec_TC(switch_su_cmd[sen],(unsigned char)0x55,41); + Check_No_Errors(); + Check_Nonzero(SU_state[sen] == (unsigned int)start_switching_e); + sen ++; + } + Set_AD_Nominal(); + max_adc_hits = (unsigned int)0; + ad_random_failures = (unsigned int)0; + check_current_errors = (unsigned int)0; + v_down_errors = (unsigned int)0; + Monitor_Health(61); + sen = (unsigned int)0; + while (sen < (sensor_index_t)4) { + Check_Nonzero(SU_state[sen] == (unsigned int)switching_e); + sen ++; + } + Monitor_Health(61); + sen = (unsigned int)0; + while (sen < (sensor_index_t)4) { + Check_Nonzero(SU_state[sen] == (unsigned int)on_e); + sen ++; + } + tmp = GetMode(); + Check_Nonzero((int)tmp == 1); + Check_No_Errors(); + Exec_TC((unsigned char)0x30,(unsigned char)0x99,41); + Check_No_Errors(); + Check_Nonzero(self_test_SU_number == (sensor_number_t)2); + Check_Nonzero(SU_state[1] == (unsigned int)self_test_mon_e); + Exec_TC((unsigned char)0x40,(unsigned char)0x99,41); + Check_Nonzero((int)telemetry_data.error_status & 1); + Exec_TC((unsigned char)0x03,(unsigned char)0x03,41); + Check_Zero((int)telemetry_data.error_status & 1); + Check_Nonzero(self_test_SU_number == (sensor_number_t)2); + Check_No_Errors(); + while (health_mon_round != (uint_least8_t)round_7_e) Monitor_Health(61); + Check_Nonzero(self_test_SU_number == (sensor_number_t)2); + Check_Nonzero(SU_state[1] == (unsigned int)self_test_mon_e); + Monitor_Health(61); + Check_Nonzero(self_test_SU_number == (sensor_number_t)2); + Check_Nonzero(SU_state[1] == (unsigned int)self_test_e); + Check_Nonzero(health_mon_round == (uint_least8_t)round_6_e); + Monitor_Health(61); + Check_Nonzero(self_test_SU_number == (sensor_number_t)0); + Check_Nonzero(SU_state[1] == (unsigned int)on_e); + Check_No_Errors(); + tmp_0 = GetMode(); + Check_Nonzero((int)tmp_0 == 1); + Check_No_Errors(); + Exec_TC((unsigned char)0x30,(unsigned char)0x99,41); + Check_No_Errors(); + Check_Nonzero(self_test_SU_number == (sensor_number_t)2); + Check_Nonzero(SU_state[1] == (unsigned int)self_test_mon_e); + sim_self_test = (unsigned char)0; + while (health_mon_round != (uint_least8_t)round_7_e) Monitor_Health(61); + Check_Nonzero(self_test_SU_number == (sensor_number_t)2); + Check_Nonzero(SU_state[1] == (unsigned int)self_test_mon_e); + Monitor_Health(61); + Check_Nonzero(self_test_SU_number == (sensor_number_t)2); + Check_Nonzero(SU_state[1] == (unsigned int)self_test_e); + Check_Nonzero(health_mon_round == (uint_least8_t)round_6_e); + Monitor_Health(61); + Check_Nonzero(self_test_SU_number == (sensor_number_t)0); + Check_Nonzero(SU_state[1] == (unsigned int)on_e); + Check_Nonzero((int)telemetry_data.SU_status[1] & 0x10); + Check_Nonzero((int)telemetry_data.error_status == 0x20); + Clear_Errors(); + hit_budget_left = (unsigned int)15; + Set_AD_Delay(2); + ad_conv_num = (unsigned int)0; + sen = (unsigned int)0; + while (sen < (sensor_index_t)4) { + self_test_SU_number = sen + (sensor_index_t)1; + SU_state[sen] = self_test_trigger_e; + Trigger_SU_Hit(sen,31); + Check_Nonzero(SU_state[sen] == (unsigned int)self_test_e); + Check_Nonzero(mail_count[1] == 1); + Check_Nonzero((sensor_index_t)mail_message[1] == sen + (sensor_index_t)1); + FlushMail((unsigned char)1); + sen ++; + } + Check_Nonzero(hit_budget_left == (uint_least8_t)(15 - 4)); + hit_budget_left = (unsigned int)15; + Set_AD_Delay(2); + ad_conv_num = (unsigned int)0; + sen = (unsigned int)0; + while (sen < (sensor_index_t)4) { + self_test_SU_number = sen + (sensor_index_t)1; + SU_state[sen] = self_test_e; + Trigger_SU_Hit(sen,31); + Check_Nonzero(SU_state[sen] == (unsigned int)self_test_e); + Check_Nonzero(mail_count[1] == 1); + Check_Nonzero((unsigned int)mail_message[1] == ((sen + (sensor_index_t)1) | (unsigned int)0x40)); + FlushMail((unsigned char)1); + sen ++; + } + Check_Nonzero(hit_budget_left == (uint_least8_t)(15 - 4)); + hit_budget_left = (unsigned int)15; + Set_AD_Delay(2); + ad_conv_num = (unsigned int)0; + sen = (unsigned int)0; + while (sen < (sensor_index_t)4) { + self_test_SU_number = sen + (sensor_index_t)1; + SU_state[sen] = on_e; + Trigger_SU_Hit(sen,31); + Check_Nonzero(SU_state[sen] == (unsigned int)on_e); + Check_Nonzero(mail_count[1] == 1); + Check_Nonzero((sensor_index_t)mail_message[1] == sen + (sensor_index_t)1); + FlushMail((unsigned char)1); + sen ++; + } + Check_Nonzero(hit_budget_left == (uint_least8_t)(15 - 4)); + Check_No_Errors(); + sen = (unsigned int)0; + while (sen < (sensor_index_t)4) { + Exec_TC(switch_su_cmd[sen],(unsigned char)0x73,41); + Check_No_Errors(); + Check_Nonzero(SU_state[sen] == (unsigned int)off_e); + sen ++; + } + return; +} + +static unsigned int test_round = (unsigned int)0; +void StartSystem(unsigned char task_number) +{ + InitHealthMonitoring(); + test_round ++; + TC_ISR_Tests(); + Report_Checks(); + TC_Task_Tests(); + Report_Checks(); + Monitoring_Task_Tests(); + Report_Checks(); + TM_Tests(); + Report_Checks(); + Hit_ISR_Tests(); + Report_Checks(); + Acquisition_Tests(); + Report_Checks(); + SU_Self_Test_Tests(); + Report_Checks(); + checks = (unsigned int)0; + exit(0); + return; +} + +static char data_memory[65536]; +unsigned char *Data_Pointer(uint16_t address) +{ + unsigned char *__retres; + __retres = (unsigned char *)(& data_memory[address]); + return __retres; +} + +void Set_Data_Byte(data_address_t addr, unsigned char value) +{ + data_memory[addr] = (char)value; + return; +} + +unsigned char Get_Data_Byte(data_address_t addr) +{ + unsigned char value = (unsigned char)data_memory[addr]; + return value; +} + +unsigned char Get_Code_Byte(code_address_t addr) +{ + unsigned char __retres; + __retres = (unsigned char)0; + return __retres; +} + + diff --git a/debie1/.frama-c/debie1.parse/metrics.log b/debie1/.frama-c/debie1.parse/metrics.log new file mode 100644 index 0000000000000000000000000000000000000000..3408124ef48f316571f88eefb6730573fa5421c4 --- /dev/null +++ b/debie1/.frama-c/debie1.parse/metrics.log @@ -0,0 +1,110 @@ +[metrics] Defined functions (191) +======================= + Acquire_Hit (3 calls); AcquisitionTask (address taken) (0 call); + Acquisition_Tests (1 call); AttachInterrupt (1 call); Boot (1 call); + CalculateChecksum (1 call); CalculateQualityNumber (1 call); + Call_Patch (1 call); Check_Current (1 call); Check_No_Errors (71 calls); + Check_Nonzero (201 calls); Check_RAM (3 calls); Check_Type_Size (0 call); + Check_Zero (32 calls); ClassifyEvent (1 call); ClearErrorStatus (2 calls); + ClearEvents (3 calls); ClearModeStatusError (1 call); + ClearSoftwareError (2 calls); Clear_Errors (23 calls); + Clear_RTX_Errors (3 calls); Clear_SU_Error (2 calls); + Clear_TC_Timer_Overflow_Flag (1 call); Convert_AD (1 call); + CopyProgramCode (1 call); CreateTask (3 calls); DAC_SelfTest (0 call); + DPU_SelfTest (1 call); Data_Pointer (1 call); DelayAwhile (5 calls); + DisableAnalogSwitch (5 calls); DisableInterrupt (2 calls); + Disable_Hit_Trigger (4 calls); EnableAnalogSwitch (4 calls); + EnableInterrupt (1 call); Enable_Hit_Trigger (5 calls); + End_Of_ADC (3 calls); Event_Flag (1 call); ExceedsLimit (9 calls); + Exec_TC (107 calls); ExecuteChannelTest (10 calls); ExecuteCommand (1 call); + Fail_Check (2 calls); FindMinQualityRecord (1 call); FlushMail (12 calls); + GetElapsedTime (2 calls); GetFreeRecord (1 call); + GetMemoryConfiguration (1 call); GetMode (11 calls); + GetQualityTerm (5 calls); GetResetClass (1 call); GetVoltageStatus (0 call); + Get_Code_Byte (2 calls); Get_Data_Byte (3 calls); Get_LSB1_Counter (1 call); + Get_LSB2_Counter (1 call); Get_MSB_Counter (2 calls); Get_Result (4 calls); + HandleAcquisition (2 calls); HandleHealthMonitoring (2 calls); + HandleHitTrigger (2 calls); HandleTelecommand (4 calls); + Handle_TC (22 calls); HealthMonitoringTask (0 call); + HighVoltageCurrent (5 calls); HitTriggerTask (address taken) (0 call); + Hit_ISR_Tests (1 call); Hit_Trigger_Flag (1 call); + IncrementCounters (2 calls); InitAcquisitionTask (2 calls); + InitClassification (2 calls); InitCode_RAM (1 call); InitData_RAM (1 call); + InitHealthMonitoring (2 calls); InitHitTriggerTask (2 calls); + InitSystem (1 call); InitTC_LookUp (1 call); InitTelecommandTask (2 calls); + Init_DPU (1 call); Init_SU_Settings (4 calls); LowVoltageCurrent (2 calls); + MeasureTemperature (2 calls); MeasureVoltage (5 calls); + MemoryPatch (1 call); Monitor (1 call); Monitor_DPU_Voltage (1 call); + Monitor_Health (17 calls); Monitor_SU_Voltage (1 call); + Monitoring_Task_Tests (1 call); Next (1 call); Next_Rand (10 calls); + PatchCode (1 call); PatchExecCommandOk (1 call); Random_AD_Delay (1 call); + Random_Event (3 calls); ReadDelayCounters (1 call); + ReadRiseTimeCounter (1 call); ReadSensorUnit (2 calls); + Read_AD_Channel (3 calls); Read_Data_Memory (1 call); Read_TC_LSB (1 call); + Read_TC_MSB (1 call); Reboot (4 calls); RecordEvent (1 call); + Report_Checks (7 calls); Report_End_Of_ADC_Count (1 call); + Report_Event_Histo (2 calls); Report_Start_Conversion_Count (1 call); + ResetDelayCounters (6 calls); ResetEventQueueLength (2 calls); + ResetInterruptMask (1 call); ResetPeakDetector (12 calls); + RestoreSettings (1 call); Rise_Time_Counter (1 call); + RoughLogarithm (1 call); SU_Self_Test_Tests (1 call); + SelectSelfTestChannel (2 calls); SelectStartSwitchLevel (0 call); + SelectTriggerSwitchLevel (0 call); SelfTestChannel (1 call); + SelfTest_SU (1 call); SendTaskMail (2 calls); Send_Patch_Code (7 calls); + Send_Patch_Data (4 calls); Send_TC (17 calls); Send_TC_Word (12 calls); + SetErrorStatus (5 calls); SetInterruptMask (3 calls); + SetMemoryConfiguration (2 calls); SetMode (3 calls); + SetModeStatusError (8 calls); SetSensorUnitOff (7 calls); + SetSoftwareError (3 calls); SetTestPulseLevel (6 calls); + SetTimeSlice (1 call); SetTriggerLevel (32 calls); Set_AD_Delay (7 calls); + Set_AD_Nominal (3 calls); Set_AD_Unlimited (2 calls); + Set_DAC_Output (1 call); Set_Data_Byte (9 calls); Set_SU_Error (14 calls); + Set_SU_Self_Test_Ch (4 calls); Set_SU_TriggerLevels (4 calls); + Set_TC_Error (15 calls); Set_TC_Timer_Overflow_Flag (1 call); + Set_Test_Pulse_Level (1 call); Set_Trigger_SU (1 call); + ShortDelay (5 calls); Short_Value (14 calls); SignalMemoryErrors (1 call); + SignalPeakDetectorReset (1 call); Sim_Self_Test_Trigger (3 calls); + StartSystem (1 call); Start_Conversion (4 calls); + Start_SU_SwitchingOn (1 call); Switch_SU_Off (1 call); + Switch_SU_On (1 call); Switch_SU_State (11 calls); TC_ISR_Tests (1 call); + TC_Interrupt (4 calls); TC_InterruptService (1 call); + TC_Task_Tests (1 call); TC_Timer_Overflow_Flag (1 call); + TM_InterruptService (10 calls); TM_Tests (1 call); + TelecommandExecutionTask (address taken) (0 call); + TemperatureFailure (2 calls); TestMemBits (1 call); TestMemData (1 call); + TestMemSeq (1 call); Trigger_Hit (2 calls); Trigger_SU_Hit (13 calls); + Trigger_Source_0 (1 call); Trigger_Source_1 (1 call); + UpdatePeriodCounter (4 calls); UpdateTarget (1 call); UpdateTime (1 call); + Update_ADC_Channel_Reg (5 calls); Update_SU_State (4 calls); + V_Down (2 calls); VoltageFailure (0 call); WaitInterrupt (1 call); + WaitInterval (2 calls); WaitMail (2 calls); WaitTimeout (11 calls); + WriteMemory (1 call); Write_TM_LSB (10 calls); Write_TM_MSB (10 calls); + isr_send_message (7 calls); main (0 call); + +Undefined functions (0) +======================= + + +'Extern' global variables (0) +============================= + + +Potential entry points (8) +========================== + Check_Type_Size; DAC_SelfTest; GetVoltageStatus; HealthMonitoringTask; + SelectStartSwitchLevel; SelectTriggerSwitchLevel; VoltageFailure; main; + +Global metrics +============== +Sloc = 3077 +Decision point = 417 +Global variables = 104 +If = 310 +Loop = 75 +Goto = 42 +Assignment = 1118 +Exit point = 191 +Function = 191 +Function call = 1071 +Pointer dereferencing = 249 +Cyclomatic complexity = 608 diff --git a/debie1/.frama-c/debie1.parse/warnings.log b/debie1/.frama-c/debie1.parse/warnings.log new file mode 100644 index 0000000000000000000000000000000000000000..fab31b42d3db8183d2888a84967557d4bb8879e2 --- /dev/null +++ b/debie1/.frama-c/debie1.parse/warnings.log @@ -0,0 +1,2 @@ +code/health.c:2035:[kernel:parser:decimal-float] warning: Floating-point constant 1.085 is not represented exactly. Will use 0x1.15c28f5c28f5cp0. +(warn-once: no further messages from category 'parser:decimal-float' will be emitted) diff --git a/debie1/.frama-c/path.mk b/debie1/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/debie1/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/debie1/GNUmakefile b/debie1/GNUmakefile deleted file mode 100644 index 7e5b3101beeefa91d29efb0978cbae4d84d789b9..0000000000000000000000000000000000000000 --- a/debie1/GNUmakefile +++ /dev/null @@ -1,69 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED -# The flags below are only suggestions to use with Eva, and can be removed - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += -I code/harness -I code -I code/intel/linux \ - -DTRACE_HARNESS -DTRACE_TARGET - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += \ - -kernel-warn-key annot:missing-spec=abort \ - -kernel-warn-key typing:implicit-function-declaration=abort \ - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -eva-warn-key builtins:missing-spec=abort \ - -eva-domains equality \ - -eva-auto-loop-unroll 170 -eva-ilevel 16 \ - -# (MANDATORY) Name of the main target -MAIN_TARGET := debie1 - -# Add other targets if needed -TARGETS = $(MAIN_TARGET).eva - -# Default target -all: $(TARGETS) -help: - @echo "targets: $(TARGETS)" -display-targets: - @echo "$(TARGETS)" - -# (MANDATORY) List of source files used by MAIN_TARGET. -# If there is a JSON compilation database, -# 'frama-c-script list-files' can help obtain it -$(MAIN_TARGET).parse: $(sort $(wildcard code/*.c)) code/harness/harness.c code/intel/linux/target.c - - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -gui: $(MAIN_TARGET).eva.gui - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common diff --git a/debie1/frama-c-path.mk b/debie1/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/debie1/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/frama-c b/frama-c index 5e840bb7060585b81d8fc0d76b3627ca2b8d004d..82ccc1c0c7e8e2d3261b4b7d198fa0ba64173a0b 160000 --- a/frama-c +++ b/frama-c @@ -1 +1 @@ -Subproject commit 5e840bb7060585b81d8fc0d76b3627ca2b8d004d +Subproject commit 82ccc1c0c7e8e2d3261b4b7d198fa0ba64173a0b diff --git a/gzip124/.frama-c/GNUmakefile b/gzip124/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..ab966e75bc7a355396cab144aa8ecc682114d89b --- /dev/null +++ b/gzip124/.frama-c/GNUmakefile @@ -0,0 +1,67 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_32 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + -include$(shell $(FRAMAC)-config -print-share-path)/libc/string.h \ + -DSTDC_HEADERS=1 \ + -DHAVE_UNISTD_H=1 \ + -DDIRENT=1 \ + -DNO_UTIME=1 \ + -I$(shell $(FRAMAC)-config -print-share-path)/libc \ + -I$(DIR) \ + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -nonterm-ignore do_exit \ + -main eva_main \ + +## Eva-specific flags +EVAFLAGS += \ + -slevel 4 \ + -eva-no-alloc-returns-null \ + -eva-no-builtins-auto \ + -eva-widening-delay 3 \ + -eva-widening-period 3 \ + +## GUI-only flags +FCGUIFLAGS += \ + +## Analysis targets (suffixed with .eva) +TARGETS = gzip124.eva + +gzip124.parse: \ + ../gzip.c \ + ../zip.c \ + ../deflate.c \ + ../trees.c \ + ../bits.c \ + ../unzip.c \ + ../inflate.c \ + ../util.c \ + ../crypt.c \ + ../lzw.c \ + ../unlzw.c \ + ../unpack.c \ + ../unlzh.c \ + ../getopt.c \ + $(shell $(FRAMAC)-config -print-share-path)/libc/stdlib.c \ + fc_stubs.c \ + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/gzip124/fc_stubs.c b/gzip124/.frama-c/fc_stubs.c similarity index 51% rename from gzip124/fc_stubs.c rename to gzip124/.frama-c/fc_stubs.c index 1c583f0ce0d8de7f8f359ad4331b1b8ab7410f31..7c6c3e698dc050339cdaa9a156f6d3dfefb678e6 100644 --- a/gzip124/fc_stubs.c +++ b/gzip124/.frama-c/fc_stubs.c @@ -1,8 +1,14 @@ +// Stub for a main function which reads arguments from the command line, to be +// used by the Eva plug-in. +// This stub emulates non-deterministic input of up to 5 arguments, each up +// to 256 characters long. This is sufficient to ensure arbitrary input in +// virtually every case. +// Do not forget to add option '-main eva_main' in order to use this stub. + #ifdef __FRAMAC__ # include "__fc_builtin.h" int main(int, char**); -volatile int nondet; -// main for EVA +static volatile int nondet; int eva_main() { int argc = Frama_C_interval(0, 5); char argv0[256], argv1[256], argv2[256], argv3[256], argv4[256]; diff --git a/gzip124/gzip124.eva/alarms.csv b/gzip124/.frama-c/gzip124.eva/alarms.csv similarity index 100% rename from gzip124/gzip124.eva/alarms.csv rename to gzip124/.frama-c/gzip124.eva/alarms.csv diff --git a/gzip124/gzip124.eva/metrics.log b/gzip124/.frama-c/gzip124.eva/metrics.log similarity index 100% rename from gzip124/gzip124.eva/metrics.log rename to gzip124/.frama-c/gzip124.eva/metrics.log diff --git a/gzip124/gzip124.eva/nonterm.log b/gzip124/.frama-c/gzip124.eva/nonterm.log similarity index 88% rename from gzip124/gzip124.eva/nonterm.log rename to gzip124/.frama-c/gzip124.eva/nonterm.log index b771bc0c66ba3649d0c4bee58b6e0852879cd540..ce66f210f70704c6a688452388ff86128e79daf8 100644 --- a/gzip124/gzip124.eva/nonterm.log +++ b/gzip124/.frama-c/gzip124.eva/nonterm.log @@ -4,7 +4,7 @@ stack: same_file :: gzip.c:1443 <- name_too_long :: gzip.c:903 <- create_outfile :: gzip.c:799 <- treat_file :: gzip.c:593 <- - main :: fc_stubs.c:15 <- + main :: fc_stubs.c:21 <- eva_main gzip.c:1747:[nonterm] warning: unreachable return inflate.c:412:[nonterm] warning: non-terminating statement @@ -15,7 +15,7 @@ stack 1: huft_build :: inflate.c:763 <- unzip :: gzip.c:675 <- treat_stdin :: gzip.c:710 <- treat_file :: gzip.c:593 <- - main :: fc_stubs.c:15 <- + main :: fc_stubs.c:21 <- eva_main stack 2: huft_build :: inflate.c:675 <- inflate_fixed :: inflate.c:904 <- @@ -24,7 +24,7 @@ stack 2: huft_build :: inflate.c:675 <- unzip :: gzip.c:675 <- treat_stdin :: gzip.c:710 <- treat_file :: gzip.c:593 <- - main :: fc_stubs.c:15 <- + main :: fc_stubs.c:21 <- eva_main stack 3: huft_build :: inflate.c:683 <- inflate_fixed :: inflate.c:904 <- @@ -33,7 +33,7 @@ stack 3: huft_build :: inflate.c:683 <- unzip :: gzip.c:675 <- treat_stdin :: gzip.c:710 <- treat_file :: gzip.c:593 <- - main :: fc_stubs.c:15 <- + main :: fc_stubs.c:21 <- eva_main inflate.c:439:[nonterm] warning: non-terminating statement stack: huft_build :: inflate.c:763 <- @@ -43,7 +43,7 @@ stack: huft_build :: inflate.c:763 <- unzip :: gzip.c:675 <- treat_stdin :: gzip.c:710 <- treat_file :: gzip.c:593 <- - main :: fc_stubs.c:15 <- + main :: fc_stubs.c:21 <- eva_main inflate.c:454:[nonterm] warning: non-terminating statement stack 1: huft_build :: inflate.c:763 <- @@ -53,7 +53,7 @@ stack 1: huft_build :: inflate.c:763 <- unzip :: gzip.c:675 <- treat_stdin :: gzip.c:710 <- treat_file :: gzip.c:593 <- - main :: fc_stubs.c:15 <- + main :: fc_stubs.c:21 <- eva_main stack 2: huft_build :: inflate.c:675 <- inflate_fixed :: inflate.c:904 <- @@ -62,7 +62,7 @@ stack 2: huft_build :: inflate.c:675 <- unzip :: gzip.c:675 <- treat_stdin :: gzip.c:710 <- treat_file :: gzip.c:593 <- - main :: fc_stubs.c:15 <- + main :: fc_stubs.c:21 <- eva_main stack 3: huft_build :: inflate.c:683 <- inflate_fixed :: inflate.c:904 <- @@ -71,7 +71,7 @@ stack 3: huft_build :: inflate.c:683 <- unzip :: gzip.c:675 <- treat_stdin :: gzip.c:710 <- treat_file :: gzip.c:593 <- - main :: fc_stubs.c:15 <- + main :: fc_stubs.c:21 <- eva_main inflate.c:513:[nonterm] warning: non-terminating loop stack 1: inflate_codes :: inflate.c:691 <- @@ -81,7 +81,7 @@ stack 1: inflate_codes :: inflate.c:691 <- unzip :: gzip.c:675 <- treat_stdin :: gzip.c:710 <- treat_file :: gzip.c:593 <- - main :: fc_stubs.c:15 <- + main :: fc_stubs.c:21 <- eva_main stack 2: inflate_codes :: inflate.c:691 <- inflate_fixed :: inflate.c:904 <- @@ -89,7 +89,7 @@ stack 2: inflate_codes :: inflate.c:691 <- inflate :: unzip.c:120 <- unzip :: gzip.c:817 <- treat_file :: gzip.c:593 <- - main :: fc_stubs.c:15 <- + main :: fc_stubs.c:21 <- eva_main inflate.c:516:[nonterm] warning: non-terminating statement stack 1: inflate_codes :: inflate.c:691 <- @@ -99,7 +99,7 @@ stack 1: inflate_codes :: inflate.c:691 <- unzip :: gzip.c:675 <- treat_stdin :: gzip.c:710 <- treat_file :: gzip.c:593 <- - main :: fc_stubs.c:15 <- + main :: fc_stubs.c:21 <- eva_main stack 2: inflate_codes :: inflate.c:691 <- inflate_fixed :: inflate.c:904 <- @@ -107,7 +107,7 @@ stack 2: inflate_codes :: inflate.c:691 <- inflate :: unzip.c:120 <- unzip :: gzip.c:817 <- treat_file :: gzip.c:593 <- - main :: fc_stubs.c:15 <- + main :: fc_stubs.c:21 <- eva_main inflate.c:778:[nonterm] warning: non-terminating statement stack 1: inflate_dynamic :: inflate.c:900 <- @@ -116,18 +116,18 @@ stack 1: inflate_dynamic :: inflate.c:900 <- unzip :: gzip.c:675 <- treat_stdin :: gzip.c:710 <- treat_file :: gzip.c:593 <- - main :: fc_stubs.c:15 <- + main :: fc_stubs.c:21 <- eva_main stack 2: inflate_dynamic :: inflate.c:900 <- inflate_block :: inflate.c:931 <- inflate :: unzip.c:120 <- unzip :: gzip.c:817 <- treat_file :: gzip.c:593 <- - main :: fc_stubs.c:15 <- + main :: fc_stubs.c:21 <- eva_main util.c:294:[nonterm] warning: non-terminating function call -stack: add_envopt :: gzip.c:443 <- main :: fc_stubs.c:15 <- eva_main +stack: add_envopt :: gzip.c:443 <- main :: fc_stubs.c:21 <- eva_main util.c:341:[nonterm] warning: unreachable return util.c:358:[nonterm] warning: unreachable return util.c:365:[nonterm] warning: unreachable return -fc_stubs.c:15:[nonterm] warning: unreachable return +fc_stubs.c:21:[nonterm] warning: unreachable return diff --git a/gzip124/gzip124.eva/warnings.log b/gzip124/.frama-c/gzip124.eva/warnings.log similarity index 95% rename from gzip124/gzip124.eva/warnings.log rename to gzip124/.frama-c/gzip124.eva/warnings.log index ffa413dfa29bf7a062467fa2a62befbb5964450c..e8cbb7e3c62cd057762217956a56ad284f9fd58f 100644 --- a/gzip124/gzip124.eva/warnings.log +++ b/gzip124/.frama-c/gzip124.eva/warnings.log @@ -11,7 +11,7 @@ stack: huft_build :: inflate.c:763 <- unzip :: gzip.c:675 <- treat_stdin :: gzip.c:710 <- treat_file :: gzip.c:593 <- - main :: fc_stubs.c:15 <- + main :: fc_stubs.c:21 <- eva_main inflate.c:412:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: huft_build :: inflate.c:675 <- @@ -21,7 +21,7 @@ stack: huft_build :: inflate.c:675 <- unzip :: gzip.c:675 <- treat_stdin :: gzip.c:710 <- treat_file :: gzip.c:593 <- - main :: fc_stubs.c:15 <- + main :: fc_stubs.c:21 <- eva_main inflate.c:412:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: huft_build :: inflate.c:683 <- @@ -31,7 +31,7 @@ stack: huft_build :: inflate.c:683 <- unzip :: gzip.c:675 <- treat_stdin :: gzip.c:710 <- treat_file :: gzip.c:593 <- - main :: fc_stubs.c:15 <- + main :: fc_stubs.c:21 <- eva_main gzip.c:675:[eva:locals-escaping] warning: locals {attr} escaping the scope of zip through file_type gzip.c:1487:[eva:garbled-mix] warning: The specification of function strrchr has generated a garbled mix for assigns clause assigns clause \result. diff --git a/gzip124/gzip124.parse/framac.ast b/gzip124/.frama-c/gzip124.parse/framac.ast similarity index 99% rename from gzip124/gzip124.parse/framac.ast rename to gzip124/.frama-c/gzip124.parse/framac.ast index 8cd18d636b2c25d921eabfd29008fd9707632c14..6ef9d9cb19aaa3ac0cddbb85cfcf685752d09467 100644 --- a/gzip124/gzip124.parse/framac.ast +++ b/gzip124/.frama-c/gzip124.parse/framac.ast @@ -8064,7 +8064,6 @@ int getopt_long(int argc, char * const *argv, char const *options, return tmp; } -int volatile nondet; int eva_main(void) { char argv0[256]; diff --git a/gzip124/gzip124.parse/metrics.log b/gzip124/.frama-c/gzip124.parse/metrics.log similarity index 99% rename from gzip124/gzip124.parse/metrics.log rename to gzip124/.frama-c/gzip124.parse/metrics.log index 3a40c43843130f616753ac4e42c23fdc184d691d..8533e57144fce36430f92998b5e1e9c7c0e5000b 100644 --- a/gzip124/gzip124.parse/metrics.log +++ b/gzip124/.frama-c/gzip124.parse/metrics.log @@ -51,7 +51,7 @@ Global metrics ============== Sloc = 4942 Decision point = 919 -Global variables = 149 +Global variables = 148 If = 899 Loop = 191 Goto = 159 diff --git a/gzip124/gzip124.parse/warnings.log b/gzip124/.frama-c/gzip124.parse/warnings.log similarity index 100% rename from gzip124/gzip124.parse/warnings.log rename to gzip124/.frama-c/gzip124.parse/warnings.log diff --git a/gzip124/.frama-c/path.mk b/gzip124/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/gzip124/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/gzip124/GNUmakefile b/gzip124/GNUmakefile deleted file mode 100644 index 4660fbd2bc8dd0647f651547ea8a84a34751b671..0000000000000000000000000000000000000000 --- a/gzip124/GNUmakefile +++ /dev/null @@ -1,50 +0,0 @@ -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH. --include frama-c-path.mk - -FRAMAC_CONFIG ?= frama-c-config -include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk - -# Define global parameters -CPPFLAGS = -include$(shell $(FRAMAC) -print-path)/libc/string.h \ - -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DDIRENT=1 -DNO_UTIME=1 \ - -I$(shell $(FRAMAC) -print-path)/libc -I$(DIR)/ - -FCFLAGS += \ - -nonterm-ignore do_exit \ - -main eva_main \ - -EVAFLAGS += \ - -slevel 4 \ - -eva-no-alloc-returns-null \ - -eva-no-builtins-auto \ - -eva-widening-delay 3 \ - -eva-widening-period 3 \ - -# Export environment variable for Frama-C -export FRAMA_C_MEMORY_FOOTPRINT = 8 - -MAIN_TARGET := gzip124 -TARGETS = $(MAIN_TARGET).eva -all: $(TARGETS) -help: - @echo "targets: $(TARGETS)" -display-targets: - @echo "$(TARGETS)" - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -gui: $(MAIN_TARGET).eva.gui - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -gzip124.parse: gzip.c zip.c deflate.c trees.c bits.c unzip.c inflate.c util.c \ - crypt.c lzw.c unlzw.c unpack.c unlzh.c getopt.c \ - $(shell $(FRAMAC_CONFIG) -print-share-path)/libc/stdlib.c \ - fc_stubs.c - -# optional, for OSCS --include ../Makefile.common diff --git a/gzip124/frama-c-path.mk b/gzip124/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/gzip124/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/hiredis/.frama-c/GNUmakefile b/hiredis/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..bdc4570a94bdcca3858924814ca1d561d3040f71 --- /dev/null +++ b/hiredis/.frama-c/GNUmakefile @@ -0,0 +1,69 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +FRAMAC_SHARE = $(shell $(FRAMAC)-config -print-share-path) + +MACHDEP = x86_32 + + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + -include__fc_builtin.h \ + -D_POSIX_C_SOURCE=200809L \ + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -main eva_main \ + -warn-special-float none \ + +## Eva-specific flags +EVAFLAGS += \ + -eva-ilevel 16 \ + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +TEST_SRCS := \ + $(sort $(wildcard ../*.c)) \ + $(FRAMAC_SHARE)/libc/string.c \ + $(FRAMAC_SHARE)/libc/netdb.c \ + fc_stubs.c \ + +## Analysis targets (suffixed with .eva) +TARGETS = hiredis-format.eva hiredis-misc.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +hiredis-format.parse: CPPFLAGS += -DEVA_TEST_FORMAT +hiredis-format.parse: $(TEST_SRCS) + +hiredis-misc.parse: CPPFLAGS += -DEVA_TEST_MISC +hiredis-misc.parse: $(TEST_SRCS) + +hiredis-tcp.parse: CPPFLAGS += -DEVA_TEST_TCP +hiredis-tcp.parse: $(TEST_SRCS) + +hiredis-unix.parse: CPPFLAGS += -DEVA_TEST_UNIX +hiredis-unix.parse: $(TEST_SRCS) + +hiredis-tcp-long.parse: CPPFLAGS += -DEVA_TEST_TCP -DEVA_TEST_BLOCKING_LONG +hiredis-tcp-long.parse: $(TEST_SRCS) + +hiredis-unix-long.parse: CPPFLAGS += -DEVA_TEST_UNIX -DEVA_TEST_BLOCKING_LONG +hiredis-unix-long.parse: $(TEST_SRCS) + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/itc-benchmarks/fc_stubs.c b/hiredis/.frama-c/fc_stubs.c similarity index 100% rename from itc-benchmarks/fc_stubs.c rename to hiredis/.frama-c/fc_stubs.c diff --git a/hiredis/hiredis-format.eva/alarms.csv b/hiredis/.frama-c/hiredis-format.eva/alarms.csv similarity index 100% rename from hiredis/hiredis-format.eva/alarms.csv rename to hiredis/.frama-c/hiredis-format.eva/alarms.csv diff --git a/hiredis/hiredis-format.eva/metrics.log b/hiredis/.frama-c/hiredis-format.eva/metrics.log similarity index 89% rename from hiredis/hiredis-format.eva/metrics.log rename to hiredis/.frama-c/hiredis-format.eva/metrics.log index 4adf0ad55b7ead32d9ff84f4df3a4c6228d428b4..49abbc215d14716f443cf1031e402d7becfb73ae 100644 --- a/hiredis/hiredis-format.eva/metrics.log +++ b/hiredis/.frama-c/hiredis-format.eva/metrics.log @@ -1,15 +1,16 @@ [metrics] Eva coverage statistics ======================= -Syntactically reachable functions = 27 (out of 256) +Syntactically reachable functions = 27 (out of 255) Semantically reached functions = 27 Coverage estimation = 100.0% [metrics] References to non-analyzed functions ------------------------------------ [metrics] Statements analyzed by Eva -------------------------- -1377 stmts in analyzed functions, 1282 stmts analyzed (93.1%) +1373 stmts in analyzed functions, 1279 stmts analyzed (93.2%) bulklen: 5 stmts out of 5 (100.0%) countDigits: 21 stmts out of 21 (100.0%) +eva_main: 13 stmts out of 13 (100.0%) redisFormatCommand: 5 stmts out of 5 (100.0%) sdsMakeRoomFor: 39 stmts out of 39 (100.0%) sdsReqType: 18 stmts out of 18 (100.0%) @@ -28,7 +29,6 @@ main: 74 stmts out of 75 (98.7%) redisvFormatCommand: 237 stmts out of 244 (97.1%) redisFormatSdsCommandArgv: 52 stmts out of 55 (94.5%) redisFormatCommandArgv: 50 stmts out of 53 (94.3%) -eva_main: 16 stmts out of 17 (94.1%) sdscatvprintf: 26 stmts out of 31 (83.9%) sdsull2str: 18 stmts out of 24 (75.0%) sdsHdrSize: 13 stmts out of 18 (72.2%) diff --git a/hiredis/hiredis-format.eva/nonterm.log b/hiredis/.frama-c/hiredis-format.eva/nonterm.log similarity index 86% rename from hiredis/hiredis-format.eva/nonterm.log rename to hiredis/.frama-c/hiredis-format.eva/nonterm.log index fcc667e839f6fa2469f77fafb525b443ef7c1e02..2b765da1c78ed49519c26011e3c1e52d2855dbbf 100644 --- a/hiredis/hiredis-format.eva/nonterm.log +++ b/hiredis/.frama-c/hiredis-format.eva/nonterm.log @@ -2,11 +2,11 @@ hiredis.c:378:[nonterm] warning: non-terminating statement stack: redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:216 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main hiredis.c:384:[nonterm] warning: non-terminating statement stack: redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:216 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main diff --git a/hiredis/hiredis-format.eva/warnings.log b/hiredis/.frama-c/hiredis-format.eva/warnings.log similarity index 97% rename from hiredis/hiredis-format.eva/warnings.log rename to hiredis/.frama-c/hiredis-format.eva/warnings.log index db6715bf4f6faaa8e3360a69c97ecfb970910db7..3a1a5d6cc7e8429c0ddfb41d31efd1aa9b0ac768 100644 --- a/hiredis/hiredis-format.eva/warnings.log +++ b/hiredis/.frama-c/hiredis-format.eva/warnings.log @@ -5,7 +5,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:180 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -14,7 +14,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:180 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetalloc_3 :: sds.c:238 <- @@ -23,7 +23,7 @@ stack: sdssetalloc_3 :: sds.c:238 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:180 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -31,7 +31,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:180 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -39,7 +39,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:180 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -48,7 +48,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:186 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -57,7 +57,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:186 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetalloc_3 :: sds.c:238 <- @@ -66,7 +66,7 @@ stack: sdssetalloc_3 :: sds.c:238 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:186 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -74,7 +74,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:186 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -82,7 +82,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:186 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -91,7 +91,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:186 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -100,7 +100,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:186 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetalloc_3 :: sds.c:238 <- @@ -109,7 +109,7 @@ stack: sdssetalloc_3 :: sds.c:238 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:186 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -117,7 +117,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:186 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -125,7 +125,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:186 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -134,7 +134,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:192 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -143,7 +143,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:192 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetalloc_3 :: sds.c:238 <- @@ -152,7 +152,7 @@ stack: sdssetalloc_3 :: sds.c:238 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:192 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -160,7 +160,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:192 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -168,7 +168,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:192 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -177,7 +177,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:192 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -186,7 +186,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:192 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetalloc_3 :: sds.c:238 <- @@ -195,7 +195,7 @@ stack: sdssetalloc_3 :: sds.c:238 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:192 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -203,7 +203,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:192 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -211,7 +211,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:192 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -220,7 +220,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:198 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -229,7 +229,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:198 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetalloc_3 :: sds.c:238 <- @@ -238,7 +238,7 @@ stack: sdssetalloc_3 :: sds.c:238 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:198 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -246,7 +246,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:198 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -254,7 +254,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:198 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -263,7 +263,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:198 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -272,7 +272,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:198 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetalloc_3 :: sds.c:238 <- @@ -281,7 +281,7 @@ stack: sdssetalloc_3 :: sds.c:238 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:198 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -289,7 +289,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:198 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -297,7 +297,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:198 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -306,7 +306,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:204 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -315,7 +315,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:204 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetalloc_3 :: sds.c:238 <- @@ -324,7 +324,7 @@ stack: sdssetalloc_3 :: sds.c:238 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:204 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -332,7 +332,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:204 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -340,7 +340,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:204 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -349,7 +349,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:204 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -358,7 +358,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:204 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetalloc_3 :: sds.c:238 <- @@ -367,7 +367,7 @@ stack: sdssetalloc_3 :: sds.c:238 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:204 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -375,7 +375,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:204 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -383,7 +383,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:204 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -392,7 +392,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:210 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -401,7 +401,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:210 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetalloc_3 :: sds.c:238 <- @@ -410,7 +410,7 @@ stack: sdssetalloc_3 :: sds.c:238 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:210 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -418,7 +418,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:210 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -426,7 +426,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:210 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -435,7 +435,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:210 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -444,7 +444,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:210 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetalloc_3 :: sds.c:238 <- @@ -453,7 +453,7 @@ stack: sdssetalloc_3 :: sds.c:238 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:210 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -461,7 +461,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:210 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -469,7 +469,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:210 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -478,7 +478,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:216 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -487,7 +487,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:216 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetalloc_3 :: sds.c:238 <- @@ -496,7 +496,7 @@ stack: sdssetalloc_3 :: sds.c:238 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:216 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -504,7 +504,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:216 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -512,7 +512,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:216 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -522,7 +522,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:216 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -532,7 +532,7 @@ stack: sdssetlen_3 :: sds.c:236 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:216 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetalloc_3 :: sds.c:238 <- @@ -542,7 +542,7 @@ stack: sdssetalloc_3 :: sds.c:238 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:216 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -551,7 +551,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:216 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- @@ -560,7 +560,7 @@ stack: sdssetlen_3 :: sds.c:385 <- redisvFormatCommand :: hiredis.c:532 <- redisFormatCommand :: test.c:216 <- test_format_commands :: test.c:1022 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.c:523:[eva:garbled-mix] warning: The specification of function vsnprintf has generated a garbled mix for assigns clause assigns clause * (s + (0 .. n - 1)). diff --git a/hiredis/hiredis-format.parse/framac.ast b/hiredis/.frama-c/hiredis-format.parse/framac.ast similarity index 99% rename from hiredis/hiredis-format.parse/framac.ast rename to hiredis/.frama-c/hiredis-format.parse/framac.ast index ef8a673ece23a8ddf16ac8cb7ee6d5773ee1d034..9ea662a630e8a04d3ead0d828ee0c91dd8cf6ed6 100644 --- a/hiredis/hiredis-format.parse/framac.ast +++ b/hiredis/.frama-c/hiredis-format.parse/framac.ast @@ -9,6 +9,7 @@ #include "netdb.c" #include "netdb.h" #include "netinet/in.h" +#include "poll.h" #include "signal.h" #include "stdarg.h" #include "stddef.h" @@ -233,12 +234,6 @@ struct dictIterator { dictEntry *nextEntry ; }; typedef struct dictIterator dictIterator; -typedef unsigned long nfds_t; -struct pollfd { - int fd ; - short events ; - short revents ; -}; enum connection_type { CONN_TCP = 0, CONN_UNIX = 1, @@ -2258,35 +2253,6 @@ static int _dictKeyIndex_0(dict *ht, void const *key) return_label: return __retres; } -int main(int argc, char **argv); - -int eva_main(void) -{ - int __retres; - char argv0[256]; - char argv1[256]; - char argv2[256]; - char argv3[256]; - char argv4[256]; - int tmp_0; - int argc = Frama_C_interval(0,5); - char *argv[6] = {argv0, argv1, argv2, argv3, argv4, (char *)0}; - { - int i = 0; - /*@ loop unroll 5; */ - while (i < 5) { - Frama_C_make_unknown(argv[i],(unsigned int)255); - *(argv[i] + 255) = (char)0; - i ++; - } - } - tmp_0 = main(argc,argv); - __retres = tmp_0; - goto return_label; - __retres = 0; - return_label: return __retres; -} - __inline static size_t sdslen_0(sds const s) { size_t __retres; @@ -4007,8 +3973,6 @@ __inline static void sdssetalloc_1(sds s, size_t newlen) return; } -extern int poll(struct pollfd *__fds, nfds_t __nfds, int __timeout); - void redisNetClose(redisContext *c) { if (c) @@ -13003,4 +12967,27 @@ int main(int argc, char **argv) return_label: return __retres; } +int eva_main(void) +{ + char argv0[256]; + char argv1[256]; + char argv2[256]; + char argv3[256]; + char argv4[256]; + int tmp_0; + int argc = Frama_C_interval(0,5); + char *argv[6] = {argv0, argv1, argv2, argv3, argv4, (char *)0}; + { + int i = 0; + /*@ loop unroll 5; */ + while (i < 5) { + Frama_C_make_unknown(argv[i],(unsigned int)255); + *(argv[i] + 255) = (char)0; + i ++; + } + } + tmp_0 = main(argc,argv); + return tmp_0; +} + diff --git a/hiredis/hiredis-format.parse/metrics.log b/hiredis/.frama-c/hiredis-format.parse/metrics.log similarity index 98% rename from hiredis/hiredis-format.parse/metrics.log rename to hiredis/.frama-c/hiredis-format.parse/metrics.log index 40cd77542ac8459d7f28887a36d82b0c6eaffbb1..522c0e137bed2a875f9fcd411b80a1efb623261e 100644 --- a/hiredis/hiredis-format.parse/metrics.log +++ b/hiredis/.frama-c/hiredis-format.parse/metrics.log @@ -113,9 +113,9 @@ test_free_null (0 call); test_invalid_timeout_errors (0 call); test_reply_reader (0 call); test_throughput (0 call); usec (12 calls); -Undefined functions (1) +Undefined functions (0) ======================= - poll (1 call); + 'Extern' global variables (0) ============================= @@ -150,15 +150,15 @@ Potential entry points (94) Global metrics ============== -Sloc = 6244 +Sloc = 6240 Decision point = 1175 Global variables = 8 If = 919 Loop = 88 -Goto = 495 -Assignment = 2506 +Goto = 494 +Assignment = 2504 Exit point = 255 -Function = 256 +Function = 255 Function call = 1397 Pointer dereferencing = 1784 Cyclomatic complexity = 1430 diff --git a/hiredis/hiredis-format.parse/warnings.log b/hiredis/.frama-c/hiredis-format.parse/warnings.log similarity index 89% rename from hiredis/hiredis-format.parse/warnings.log rename to hiredis/.frama-c/hiredis-format.parse/warnings.log index 0a40b6e2b673f6f73e219447184b03ecab79e61e..0b87cdd9cd8cce54c4de097e36a067c50ec236bc 100644 --- a/hiredis/hiredis-format.parse/warnings.log +++ b/hiredis/.frama-c/hiredis-format.parse/warnings.log @@ -2,7 +2,6 @@ async.c:279:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion async.c:285:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to redisCallback * async.c:475:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to redisReply * async.c:479:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to redisReply * -fc_stubs.c:10:[kernel:typing:implicit-function-declaration] warning: Calling undeclared function main. Old style K&R code? test.c:309:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to void ** test.c:477:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to redisContext * test.c:817:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to void ** diff --git a/hiredis/hiredis-misc.eva/alarms.csv b/hiredis/.frama-c/hiredis-misc.eva/alarms.csv similarity index 99% rename from hiredis/hiredis-misc.eva/alarms.csv rename to hiredis/.frama-c/hiredis-misc.eva/alarms.csv index 15545cec04c3760f5cd9a9f3c57ecaa16c367f69..13d95aae76109f1eb4b4a85ec2af9d2005ebee02 100644 --- a/hiredis/hiredis-misc.eva/alarms.csv +++ b/hiredis/.frama-c/hiredis-misc.eva/alarms.csv @@ -337,6 +337,3 @@ FRAMAC_SHARE/libc unistd.h 738 access precondition Unknown valid_string_path: va FRAMAC_SHARE/libc/sys socket.h 334 connect precondition Unknown valid_sockfd: 0 ≤ sockfd < 1024 FRAMAC_SHARE/libc/sys socket.h 370 getsockopt precondition Unknown valid_sockfd: 0 ≤ sockfd < 1024 FRAMAC_SHARE/libc/sys socket.h 490 setsockopt precondition Unknown valid_sockfd: 0 ≤ sockfd < 1024 -sys poll.h 57 poll assigns clause Unknown assigns \result, *__fds; -sys poll.h 57 poll from clause Unknown assigns *__fds \from *__fds, __nfds, __timeout; -sys poll.h 57 poll from clause Unknown assigns \result \from *__fds, __nfds, __timeout; diff --git a/hiredis/hiredis-misc.eva/metrics.log b/hiredis/.frama-c/hiredis-misc.eva/metrics.log similarity index 95% rename from hiredis/hiredis-misc.eva/metrics.log rename to hiredis/.frama-c/hiredis-misc.eva/metrics.log index cb09aeed039664f18039f48531368702852e0385..f8a1485e12327a6bd7d53dadd0b561fd8485de58 100644 --- a/hiredis/hiredis-misc.eva/metrics.log +++ b/hiredis/.frama-c/hiredis-misc.eva/metrics.log @@ -1,8 +1,8 @@ [metrics] Eva coverage statistics ======================= -Syntactically reachable functions = 96 (out of 256) -Semantically reached functions = 66 -Coverage estimation = 68.8% +Syntactically reachable functions = 95 (out of 255) +Semantically reached functions = 65 +Coverage estimation = 68.4% Unreached functions (30) = <async.c>: __redisAsyncCopyError; __redisAsyncDisconnect; __redisAsyncFree; @@ -27,7 +27,7 @@ Initializer of redisContextDefaultFuncs references redisNetRead (at hiredis.c:51 Initializer of redisContextDefaultFuncs references redisNetWrite (at hiredis.c:52) [metrics] Statements analyzed by Eva -------------------------- -1924 stmts in analyzed functions, 1788 stmts analyzed (92.9%) +1920 stmts in analyzed functions, 1785 stmts analyzed (93.0%) __redisReaderSetError: 21 stmts out of 21 (100.0%) __redisReaderSetErrorOOM: 2 stmts out of 2 (100.0%) __redisReaderSetErrorProtocolByte: 4 stmts out of 4 (100.0%) @@ -40,6 +40,7 @@ createIntegerObject: 19 stmts out of 19 (100.0%) createNilObject: 18 stmts out of 18 (100.0%) createReplyObject: 8 stmts out of 8 (100.0%) createStringObject: 36 stmts out of 36 (100.0%) +eva_main: 13 stmts out of 13 (100.0%) freeReplyObject: 13 stmts out of 13 (100.0%) hi_malloc: 4 stmts out of 4 (100.0%) hi_strdup: 4 stmts out of 4 (100.0%) @@ -80,7 +81,6 @@ main: 76 stmts out of 77 (98.7%) redisContextWaitReady: 32 stmts out of 33 (97.0%) processLineItem: 87 stmts out of 90 (96.7%) moveToNextTask: 26 stmts out of 27 (96.3%) -eva_main: 16 stmts out of 17 (94.1%) processItem: 47 stmts out of 50 (94.0%) redisFree: 15 stmts out of 16 (93.8%) redisContextConnectUnix: 48 stmts out of 55 (87.3%) diff --git a/hiredis/hiredis-misc.eva/nonterm.log b/hiredis/.frama-c/hiredis-misc.eva/nonterm.log similarity index 81% rename from hiredis/hiredis-misc.eva/nonterm.log rename to hiredis/.frama-c/hiredis-misc.eva/nonterm.log index cbaaf458868363776dfd0607ba7b94099a643682..132db8bb24a827adfc4fadc0b2e871ada887a1a6 100644 --- a/hiredis/hiredis-misc.eva/nonterm.log +++ b/hiredis/.frama-c/hiredis-misc.eva/nonterm.log @@ -2,85 +2,85 @@ read.c:553:[nonterm] warning: non-terminating function call stack 1: processItem :: read.c:644 <- redisReaderGetReply :: test.c:326 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main stack 2: processItem :: read.c:644 <- redisReaderGetReply :: test.c:338 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main stack 3: processItem :: read.c:644 <- redisReaderGetReply :: test.c:350 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main stack 4: processItem :: read.c:644 <- redisReaderGetReply :: test.c:358 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main stack 5: processItem :: read.c:644 <- redisReaderGetReply :: test.c:368 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main stack 6: processItem :: read.c:644 <- redisReaderGetReply :: test.c:377 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main stack 7: processItem :: read.c:644 <- redisReaderGetReply :: test.c:387 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main stack 8: processItem :: read.c:644 <- redisReaderGetReply :: test.c:396 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main stack 9: processItem :: read.c:644 <- redisReaderGetReply :: test.c:405 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main stack 10: processItem :: read.c:644 <- redisReaderGetReply :: test.c:415 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main stack 11: processItem :: read.c:644 <- redisReaderGetReply :: test.c:424 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main stack 12: processItem :: read.c:644 <- redisReaderGetReply :: test.c:435 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main stack 13: processItem :: read.c:644 <- redisReaderGetReply :: test.c:443 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main stack 14: processItem :: read.c:644 <- redisReaderGetReply :: test.c:446 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main stack 15: processItem :: read.c:644 <- redisReaderGetReply :: test.c:454 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main stack 16: processItem :: read.c:644 <- redisReaderGetReply :: test.c:456 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main stack 17: processItem :: read.c:644 <- redisReaderGetReply :: test.c:464 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main diff --git a/hiredis/hiredis-misc.eva/warnings.log b/hiredis/.frama-c/hiredis-misc.eva/warnings.log similarity index 99% rename from hiredis/hiredis-misc.eva/warnings.log rename to hiredis/.frama-c/hiredis-misc.eva/warnings.log index 19d3471c886d32804edb6926cbd3466373f20846..e7439bb58de3d9991f96057fe8f8125ee2522f7a 100644 --- a/hiredis/hiredis-misc.eva/warnings.log +++ b/hiredis/.frama-c/hiredis-misc.eva/warnings.log @@ -10,21 +10,21 @@ stack: sdssetalloc_3 :: sds.c:238 <- sdscatlen :: read.c:605 <- redisReaderFeed :: test.c:347 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- sdscatlen :: read.c:605 <- redisReaderFeed :: test.c:347 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:385 <- sdscatlen :: read.c:605 <- redisReaderFeed :: test.c:347 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead. stack: sdssetlen_3 :: sds.c:236 <- @@ -32,10 +32,9 @@ stack: sdssetlen_3 :: sds.c:236 <- sdscatlen :: read.c:605 <- redisReaderFeed :: test.c:347 <- test_reply_reader :: test.c:1024 <- - main :: fc_stubs.c:10 <- + main :: fc_stubs.c:21 <- eva_main net.c:102:[kernel:annot:missing-spec] warning: Neither code nor specification for function strerror_r, generating default assigns from the prototype -net.c:250:[kernel:annot:missing-spec] warning: Neither code nor specification for function poll, generating default assigns from the prototype net.c:495:[eva] warning: ignoring unsupported \allocates clause test.c:511:[eva] warning: ignoring unsupported \allocates clause [eva:garbled-mix] warning: Garbled mix generated during analysis: diff --git a/hiredis/hiredis-misc.parse/framac.ast b/hiredis/.frama-c/hiredis-misc.parse/framac.ast similarity index 99% rename from hiredis/hiredis-misc.parse/framac.ast rename to hiredis/.frama-c/hiredis-misc.parse/framac.ast index 1a7212e5d0f19e84412a7403f3c3de46fd47c471..f85de624a6debf7f1580ad367fd47bf28e1ccfcd 100644 --- a/hiredis/hiredis-misc.parse/framac.ast +++ b/hiredis/.frama-c/hiredis-misc.parse/framac.ast @@ -9,6 +9,7 @@ #include "netdb.c" #include "netdb.h" #include "netinet/in.h" +#include "poll.h" #include "signal.h" #include "stdarg.h" #include "stddef.h" @@ -233,12 +234,6 @@ struct dictIterator { dictEntry *nextEntry ; }; typedef struct dictIterator dictIterator; -typedef unsigned long nfds_t; -struct pollfd { - int fd ; - short events ; - short revents ; -}; enum connection_type { CONN_TCP = 0, CONN_UNIX = 1, @@ -2258,35 +2253,6 @@ static int _dictKeyIndex_0(dict *ht, void const *key) return_label: return __retres; } -int main(int argc, char **argv); - -int eva_main(void) -{ - int __retres; - char argv0[256]; - char argv1[256]; - char argv2[256]; - char argv3[256]; - char argv4[256]; - int tmp_0; - int argc = Frama_C_interval(0,5); - char *argv[6] = {argv0, argv1, argv2, argv3, argv4, (char *)0}; - { - int i = 0; - /*@ loop unroll 5; */ - while (i < 5) { - Frama_C_make_unknown(argv[i],(unsigned int)255); - *(argv[i] + 255) = (char)0; - i ++; - } - } - tmp_0 = main(argc,argv); - __retres = tmp_0; - goto return_label; - __retres = 0; - return_label: return __retres; -} - __inline static size_t sdslen_0(sds const s) { size_t __retres; @@ -4007,8 +3973,6 @@ __inline static void sdssetalloc_1(sds s, size_t newlen) return; } -extern int poll(struct pollfd *__fds, nfds_t __nfds, int __timeout); - void redisNetClose(redisContext *c) { if (c) @@ -13005,4 +12969,27 @@ int main(int argc, char **argv) return_label: return __retres; } +int eva_main(void) +{ + char argv0[256]; + char argv1[256]; + char argv2[256]; + char argv3[256]; + char argv4[256]; + int tmp_0; + int argc = Frama_C_interval(0,5); + char *argv[6] = {argv0, argv1, argv2, argv3, argv4, (char *)0}; + { + int i = 0; + /*@ loop unroll 5; */ + while (i < 5) { + Frama_C_make_unknown(argv[i],(unsigned int)255); + *(argv[i] + 255) = (char)0; + i ++; + } + } + tmp_0 = main(argc,argv); + return tmp_0; +} + diff --git a/hiredis/hiredis-misc.parse/metrics.log b/hiredis/.frama-c/hiredis-misc.parse/metrics.log similarity index 98% rename from hiredis/hiredis-misc.parse/metrics.log rename to hiredis/.frama-c/hiredis-misc.parse/metrics.log index 1ae3025709a5ccda711668ad479605fc725fee87..e4c204773f558f41f77783ab0b6ec759462597a6 100644 --- a/hiredis/hiredis-misc.parse/metrics.log +++ b/hiredis/.frama-c/hiredis-misc.parse/metrics.log @@ -113,9 +113,9 @@ test_free_null (1 call); test_invalid_timeout_errors (0 call); test_reply_reader (1 call); test_throughput (0 call); usec (12 calls); -Undefined functions (1) +Undefined functions (0) ======================= - poll (1 call); + 'Extern' global variables (0) ============================= @@ -150,15 +150,15 @@ Potential entry points (92) Global metrics ============== -Sloc = 6246 +Sloc = 6242 Decision point = 1175 Global variables = 8 If = 919 Loop = 88 -Goto = 495 -Assignment = 2506 +Goto = 494 +Assignment = 2504 Exit point = 255 -Function = 256 +Function = 255 Function call = 1399 Pointer dereferencing = 1784 Cyclomatic complexity = 1430 diff --git a/hiredis/hiredis-misc.parse/warnings.log b/hiredis/.frama-c/hiredis-misc.parse/warnings.log similarity index 89% rename from hiredis/hiredis-misc.parse/warnings.log rename to hiredis/.frama-c/hiredis-misc.parse/warnings.log index 0a40b6e2b673f6f73e219447184b03ecab79e61e..0b87cdd9cd8cce54c4de097e36a067c50ec236bc 100644 --- a/hiredis/hiredis-misc.parse/warnings.log +++ b/hiredis/.frama-c/hiredis-misc.parse/warnings.log @@ -2,7 +2,6 @@ async.c:279:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion async.c:285:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to redisCallback * async.c:475:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to redisReply * async.c:479:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to redisReply * -fc_stubs.c:10:[kernel:typing:implicit-function-declaration] warning: Calling undeclared function main. Old style K&R code? test.c:309:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to void ** test.c:477:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to redisContext * test.c:817:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to void ** diff --git a/hiredis/.frama-c/path.mk b/hiredis/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/hiredis/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/hiredis/GNUmakefile b/hiredis/GNUmakefile deleted file mode 100644 index 42cf3651f2951b20a549eaa516594ffda8508d05..0000000000000000000000000000000000000000 --- a/hiredis/GNUmakefile +++ /dev/null @@ -1,83 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED -# The flags below are only suggestions to use with Eva, and can be removed - -FRAMAC_SHARE = $(shell $(FRAMAC_CONFIG) -print-share-path) - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += \ - -include__fc_builtin.h \ - -D_POSIX_C_SOURCE=200809L \ - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += \ - -main eva_main \ - -warn-special-float none \ - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -eva-ilevel 16 \ - -# (MANDATORY) Name of the main target -MAIN_TARGET := hiredis-format - -# Add other targets if needed -TARGETS = $(MAIN_TARGET).eva hiredis-misc.eva - -TEST_SRCS := \ - $(sort $(wildcard *.c)) \ - $(FRAMAC_SHARE)/libc/string.c \ - $(FRAMAC_SHARE)/libc/netdb.c \ - -# Default target -all: $(TARGETS) - -hiredis-format.parse: CPPFLAGS += -DEVA_TEST_FORMAT -hiredis-format.parse: $(TEST_SRCS) - -hiredis-misc.parse: CPPFLAGS += -DEVA_TEST_MISC -hiredis-misc.parse: $(TEST_SRCS) - -hiredis-tcp.parse: CPPFLAGS += -DEVA_TEST_TCP -hiredis-tcp.parse: $(TEST_SRCS) - -hiredis-unix.parse: CPPFLAGS += -DEVA_TEST_UNIX -hiredis-unix.parse: $(TEST_SRCS) - -hiredis-tcp-long.parse: CPPFLAGS += -DEVA_TEST_TCP -DEVA_TEST_BLOCKING_LONG -hiredis-tcp-long.parse: $(TEST_SRCS) - -hiredis-unix-long.parse: CPPFLAGS += -DEVA_TEST_UNIX -DEVA_TEST_BLOCKING_LONG -hiredis-unix-long.parse: $(TEST_SRCS) - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -gui: $(MAIN_TARGET).eva.gui - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common diff --git a/hiredis/fc_stubs.c b/hiredis/fc_stubs.c deleted file mode 100644 index 1ccf70aa018fc5aa9a2b46a1b350062135087141..0000000000000000000000000000000000000000 --- a/hiredis/fc_stubs.c +++ /dev/null @@ -1,12 +0,0 @@ -int eva_main() { - int argc = Frama_C_interval(0, 5); - char argv0[256], argv1[256], argv2[256], argv3[256], argv4[256]; - char *argv[6] = {argv0, argv1, argv2, argv3, argv4, 0}; - //@ loop unroll 5; - for (int i = 0; i < 5; i++) { - Frama_C_make_unknown(argv[i], 255); - argv[i][255] = 0; - } - return main(argc, argv); - return 0; -} diff --git a/hiredis/frama-c-path.mk b/hiredis/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/hiredis/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/icpc/.frama-c/GNUmakefile b/icpc/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..7890738ac04cb2719c217ccffabcc6c5ec07e755 --- /dev/null +++ b/icpc/.frama-c/GNUmakefile @@ -0,0 +1,46 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_32 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -warn-special-float none \ + +## Eva-specific flags +EVAFLAGS += \ + -slevel 16 \ + -eva-domains equality \ + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +## Analysis targets (suffixed with .eva) +TARGETS = icpc.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +icpc.parse: \ + ../src/impls.c \ + ../src/roco.c \ + ../src/sim.c \ + ../src/main.c \ + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/icpc/.frama-c/icpc.eva/alarms.csv b/icpc/.frama-c/icpc.eva/alarms.csv new file mode 100644 index 0000000000000000000000000000000000000000..885b59dc3253d8a2d837b1af7d0980340a25296d --- /dev/null +++ b/icpc/.frama-c/icpc.eva/alarms.csv @@ -0,0 +1,10 @@ +directory file line function property kind status property +FRAMAC_SHARE/libc math.h 325 exp precondition Unknown finite_domain: x ≤ 0x1.62e42fefa39efp+9 +FRAMAC_SHARE/libc math.h 449 fabs precondition Unknown finite_arg: \is_finite(x) +FRAMAC_SHARE/libc stdio.h 207 fprintf assigns clause Unknown assigns \result, *stream; +FRAMAC_SHARE/libc stdio.h 207 fprintf from clause Unknown assigns *stream \from *stream, *(format + (0 ..)); +FRAMAC_SHARE/libc stdio.h 207 fprintf from clause Unknown assigns \result \from *stream, *(format + (0 ..)); +src impls.c 26 PT1_Filter precondition of exp Unknown finite_domain: x ≤ 0x1.62e42fefa39efp+9 +src impls.c 96 Sleep signed_overflow Unknown _t + delayMs ≤ 2147483647 +src roco.c 170 RoCo_process precondition of fabs Unknown finite_arg: \is_finite(x) +src roco.c 228 RoCo_process precondition of fabs Unknown finite_arg: \is_finite(x) diff --git a/icpc/.frama-c/icpc.eva/metrics.log b/icpc/.frama-c/icpc.eva/metrics.log new file mode 100644 index 0000000000000000000000000000000000000000..21bf7dc4fa0a86a1eae9c66ae754df479a7e4d7e --- /dev/null +++ b/icpc/.frama-c/icpc.eva/metrics.log @@ -0,0 +1,26 @@ +[metrics] Eva coverage statistics +======================= +Syntactically reachable functions = 16 (out of 18) +Semantically reached functions = 16 +Coverage estimation = 100.0% +[metrics] References to non-analyzed functions +------------------------------------ +[metrics] Statements analyzed by Eva +-------------------------- +433 stmts in analyzed functions, 415 stmts analyzed (95.8%) +Interpolate_from_curve: 15 stmts out of 15 (100.0%) +Limiter_out: 6 stmts out of 6 (100.0%) +Ramp_getDir: 2 stmts out of 2 (100.0%) +RoCo_init: 35 stmts out of 35 (100.0%) +Sim_init: 12 stmts out of 12 (100.0%) +Sim_process: 37 stmts out of 37 (100.0%) +Sleep: 2 stmts out of 2 (100.0%) +Time: 1 stmts out of 1 (100.0%) +Timer_elapsedTime: 2 stmts out of 2 (100.0%) +Timer_start: 2 stmts out of 2 (100.0%) +Timer_tick: 2 stmts out of 2 (100.0%) +Turn_on_delay: 8 stmts out of 8 (100.0%) +main: 51 stmts out of 51 (100.0%) +Ramp_out: 22 stmts out of 23 (95.7%) +RoCo_process: 213 stmts out of 229 (93.0%) +PT1_Filter: 5 stmts out of 6 (83.3%) diff --git a/itc-benchmarks/02_wo_Defects.eva/nonterm.log b/icpc/.frama-c/icpc.eva/nonterm.log similarity index 100% rename from itc-benchmarks/02_wo_Defects.eva/nonterm.log rename to icpc/.frama-c/icpc.eva/nonterm.log diff --git a/icpc/.frama-c/icpc.eva/warnings.log b/icpc/.frama-c/icpc.eva/warnings.log new file mode 100644 index 0000000000000000000000000000000000000000..7bab5cda38b83c985b521856c5610c427916dc55 --- /dev/null +++ b/icpc/.frama-c/icpc.eva/warnings.log @@ -0,0 +1 @@ +src/main.c:33:[kernel:annot:missing-spec] warning: Neither code nor specification for function fprintf, generating default assigns from the prototype diff --git a/icpc/.frama-c/icpc.parse/framac.ast b/icpc/.frama-c/icpc.parse/framac.ast new file mode 100644 index 0000000000000000000000000000000000000000..36fa337d6c05cbe07a9d1107d96cc5d9d3f86f38 --- /dev/null +++ b/icpc/.frama-c/icpc.parse/framac.ast @@ -0,0 +1,822 @@ +/* Generated by Frama-C */ +#include "errno.h" +#include "math.h" +#include "stdarg.h" +#include "stddef.h" +#include "stdio.h" +typedef unsigned int uint32; +typedef int sint32; +typedef short sint16; +typedef unsigned short uint16; +typedef char boolean; +typedef double real64; +typedef real64 PT1_t; +struct __anonstruct_Curve_t_1 { + uint16 numPoints ; + real64 x[10] ; + real64 y[10] ; +}; +typedef struct __anonstruct_Curve_t_1 Curve_t; +typedef real64 Delay_t; +typedef real64 Timer_t; +struct __anonstruct_Ramp_t_2 { + sint16 dir ; + real64 state ; + real64 target ; +}; +typedef struct __anonstruct_Ramp_t_2 Ramp_t; +real64 Engine_maxVoltage_PARAM; + +real64 Engine_minVoltage_PARAM; + +real64 Battery_voltage; +real64 dT; +real64 Engine_realVoltage; +real64 Env_humidity; +real64 Env_temperature; +boolean Global_emergencyMode; +boolean LegSensor_atMark; +real64 LegSensor_signal; +real64 PT1_Filter(PT1_t *state, real64 x, real64 t1, real64 dt); + +real64 Interpolate_from_curve(Curve_t *curve, real64 x); + +boolean Turn_on_delay(Delay_t *delay, boolean signal, real64 timeLimit, + real64 dt); + +void Timer_start(Timer_t *timer); + +real64 Timer_elapsedTime(Timer_t *timer); + +void Timer_tick(Timer_t *timer, real64 dt); + +real64 Ramp_out(Ramp_t *data, real64 target, real64 slopePos, + real64 slopeNeg, real64 dt); + +sint16 Ramp_getDir(Ramp_t *data); + +real64 Ramp_getValue(Ramp_t *data); + +boolean Ramp_targetReached(Ramp_t *data); + +real64 Limiter_out(real64 min, real64 input, real64 max); + +void Sleep(sint32 delayMs); + +sint32 Time(void); + +real64 PT1_Filter(PT1_t *state, real64 x, real64 t1, real64 dt) +{ + real64 __retres; + if (t1 == 0.0) *state = x; + else { + real64 c = exp(- dt / t1); + *state = (1.0 - c) * x + c * *state; + } + __retres = *state; + return __retres; +} + +real64 Interpolate_from_curve(Curve_t *curve, real64 x) +{ + sint16 i; + real64 result = 0.0; + if (x <= curve->x[0]) result = curve->y[0]; + else + if (x >= curve->x[(int)curve->numPoints - 1]) result = curve->y[(int)curve->numPoints - 1]; + else { + i = (short)((int)curve->numPoints - 2); + while ((int)i >= 0) { + if (x >= curve->x[i]) { + result = curve->y[i] + ((x - curve->x[i]) / (curve->x[(int)i + 1] - curve->x[i])) * ( + curve->y[(int)i + 1] - curve->y[i]); + break; + } + i = (sint16)((int)i - 1); + } + } + return result; +} + +boolean Turn_on_delay(Delay_t *delay, boolean signal, real64 timeLimit, + real64 dt) +{ + boolean result; + if (signal) + if (*delay < timeLimit) { + *delay += dt; + result = (char)0; + } + else result = (char)1; + else { + *delay = 0.0; + result = (char)0; + } + return result; +} + +void Timer_start(Timer_t *timer) +{ + *timer = 0.0; + return; +} + +real64 Timer_elapsedTime(Timer_t *timer) +{ + real64 __retres; + __retres = *timer; + return __retres; +} + +void Timer_tick(Timer_t *timer, real64 dt) +{ + *timer += dt; + return; +} + +static sint32 _t; +void Sleep(sint32 delayMs) +{ + _t += delayMs; + return; +} + +sint32 Time(void) +{ + return _t; +} + +real64 Ramp_out(Ramp_t *data, real64 target, real64 slopePos, + real64 slopeNeg, real64 dt) +{ + real64 __retres; + data->target = target; + if (data->state < target) { + if (slopePos != 0.0) + if ((int)data->dir == -1) data->state = target; + else { + data->state += slopePos * dt; + if (data->state > target) data->state = target; + data->dir = (short)1; + } + else goto _LAND; + } + else { + _LAND: ; + if (data->state > target) + if (slopeNeg != 0.0) + if ((int)data->dir == 1) data->state = target; + else { + data->state -= slopeNeg * dt; + if (data->state < target) data->state = target; + data->dir = (short)(-1); + } + } + if (data->state == target) data->dir = (short)0; + __retres = data->state; + return __retres; +} + +sint16 Ramp_getDir(Ramp_t *data) +{ + sint16 __retres; + __retres = data->dir; + return __retres; +} + +real64 Ramp_getValue(Ramp_t *data) +{ + real64 __retres; + __retres = data->state; + return __retres; +} + +boolean Ramp_targetReached(Ramp_t *data) +{ + boolean __retres; + __retres = (char)(data->state == data->target); + return __retres; +} + +real64 Limiter_out(real64 min, real64 input, real64 max) +{ + real64 result = input; + if (result < min) result = min; + if (result > max) result = max; + return result; +} + +void RoCo_init(void); + +void RoCo_process(void); + +Curve_t RoCo_acceleration_CURVE; + +Curve_t RoCo_accelerationFast_CURVE; + +Curve_t RoCo_deceleration_CURVE; + +Curve_t RoCo_decelerationFast_CURVE; + +real64 RoCo_angleAtMark_PARAM; + +Curve_t LegSensorSignalToAngle_CURVE; + +real64 RoCo_angleReachedThreshold1_PARAM; + +real64 RoCo_angleReachedThreshold2_PARAM; + +real64 RoCo_batteryLowLimit_PARAM; + +real64 RoCo_batteryLowDelay_PARAM; + +boolean RoCo_checkBatteryVoltage_PARAM; + +real64 RoCo_humidityLimit_PARAM; + +boolean RoCo_checkHumidity_PARAM; + +real64 RoCo_envTempLowerLimit_PARAM; + +real64 RoCo_envTempUpperLimit_PARAM; + +real64 RoCo_TempFltT_PARAM; + +boolean RoCo_hasMinMaxAngles_PARAM; + +real64 RoCo_maxAngle_PARAM; + +real64 RoCo_minAngle_PARAM; + +real64 RoCo_initMoveSpeed_PARAM; + +real64 RoCo_initRampSlopeNeg_PARAM; + +real64 RoCo_initRampSlopePos_PARAM; + +real64 RoCo_idlePosition_PARAM; + +real64 RoCo_initTimeout_PARAM; + +real64 RoCo_shutdownTimeout_PARAM; + +real64 RoCo_stepSpeed_PARAM; + +real64 RoCo_TimeSlopeNeg_PARAM; + +real64 RoCo_TimeSlopePos_PARAM; + +Curve_t EngineSpeedToVoltage_CURVE; + +real64 RoCo_voltageFilter_PARAM; + +boolean RoCo_activeDesired; +boolean RoCo_commandMoveByAngle; +real64 RoCo_desiredDeltaAngle; +boolean RoCo_commandMoveToAngle; +real64 RoCo_desiredTargetAngle; +boolean RoCo_moveFast; +boolean RoCo_commandShutOff; +boolean RoCo_error; +boolean RoCo_isActive; +real64 RoCo_legAngle; +boolean RoCo_legAngleValid; +real64 RoCo_engineVoltage; +Curve_t RoCo_acceleration_CURVE = + {.numPoints = (unsigned short)4, + .x = {0.0, 0.33, 0.67, 1.0}, + .y = {0.0, 0.2, 0.5, 1.0}}; +Curve_t RoCo_accelerationFast_CURVE = + {.numPoints = (unsigned short)4, + .x = {0.0, 0.33, 0.67, 1.0}, + .y = {0.0, 2.0, 4.0, 5.0}}; +boolean RoCo_adaptationActive = (char)1; +real64 RoCo_angleAtMark_PARAM = 19.0; +real64 RoCo_angleReachedThreshold1_PARAM = 5.0; +real64 RoCo_angleReachedThreshold1Fast_PARAM = 10.0; +real64 RoCo_angleReachedThreshold2_PARAM = 0.5; +real64 RoCo_batteryLowLimit_PARAM = 19.5; +real64 RoCo_batteryLowDelay_PARAM = 60.0; +boolean RoCo_checkBatteryVoltage_PARAM = (char)1; +boolean RoCo_checkHumidity_PARAM = (char)0; +Curve_t RoCo_deceleration_CURVE = + {.numPoints = (unsigned short)4, + .x = {0.0, 0.33, 0.67, 1.0}, + .y = {0.0, 0.25, 0.75, 1.0}}; +Curve_t RoCo_decelerationFast_CURVE = + {.numPoints = (unsigned short)4, + .x = {0.0, 0.33, 0.67, 1.0}, + .y = {0.0, 2.0, 4.0, 5.0}}; +real64 RoCo_envTempLowerLimit_PARAM = 5.0; +real64 RoCo_envTempUpperLimit_PARAM = 30.0; +boolean RoCo_hasMinMaxAngles_PARAM = (char)1; +real64 RoCo_humidityLimit_PARAM = 0.8; +real64 RoCo_idlePosition_PARAM = 0.0; +real64 RoCo_initMoveSpeed_PARAM = 1.0; +real64 RoCo_initRampSlopeNeg_PARAM = 1.0; +real64 RoCo_initRampSlopePos_PARAM = 1.0; +real64 RoCo_initStandstillTimeout_PARAM = 2.0; +real64 RoCo_initTimeout_PARAM = 20.0; +real64 RoCo_initialDeltaSearchRange_PARAM = 2.0; +real64 RoCo_initialDeltaSearchTimeout_PARAM = 2.0; +real64 RoCo_maxAngle_PARAM = 120.0; +real64 RoCo_minAngle_PARAM = - 120.0; +real64 RoCo_shutdownTimeout_PARAM = 30.0; +real64 RoCo_stepSpeed_PARAM = 2.0; +real64 RoCo_TempFltT_PARAM = 0.1; +real64 RoCo_TimeSlopeNeg_PARAM = 1.0; +real64 RoCo_TimeSlopePos_PARAM = 0.5; +real64 RoCo_voltageFilter_PARAM = 0.1; +real64 Engine_maxVoltage_PARAM = 24.0; +real64 Engine_minVoltage_PARAM = - 24.0; +Curve_t EngineSpeedToVoltage_CURVE = + {.numPoints = (unsigned short)5, + .x = {- 3.0, - 1.5, 0.0, 1.5, 3.0}, + .y = {- 24.0, - 15.0, 0.0, 15.0, 24.0}}; +Curve_t LegSensorSignalToAngle_CURVE = + {.numPoints = (unsigned short)4, + .x = {- 24.0, - 12.0, 12.0, 24.0}, + .y = {- 60.0, - 30.0, 30.0, 60.0}}; +boolean RoCo_isAdapted; +static real64 angleDiffRequest; +static real64 desiredEngineVoltage; +static boolean initBackwards; +static boolean limitationActive; +static real64 prevAngleSignal; +static real64 rampValue; +static boolean wasActive; +static boolean wasInit; +static boolean enabled; +static real64 rampTarget; +static real64 filteredEnvTemp; +static sint32 direction; +static real64 targetAngle; +static boolean init; +static boolean final; +static boolean deltaSearchPhase; +static Ramp_t initRamp = {.dir = (short)0, .state = 0.0, .target = 0.0}; +static Timer_t initTimer; +static Ramp_t moveTimeRamp = {.dir = (short)0, .state = 0.0, .target = 0.0}; +static PT1_t envTempFilter; +static Timer_t shutdownTimer; +static real64 voltageFilter; +static Delay_t batteryLowDelay; +static Delay_t standstillDelay; +static real64 adaptation[2] = {0.0, 0.0}; +static boolean rampHighReached = (char)0; +static boolean wasRampEnded; +void RoCo_init(void) +{ + enabled = (char)0; + angleDiffRequest = 0.0; + desiredEngineVoltage = 0.0; + initBackwards = (char)0; + initTimer = 0.0; + limitationActive = (char)0; + prevAngleSignal = 0.0; + envTempFilter = Env_temperature; + rampValue = 0.0; + filteredEnvTemp = 0.0; + direction = 0; + targetAngle = 0.0; + batteryLowDelay = 0.0; + shutdownTimer = 0.0; + rampTarget = 0.0; + voltageFilter = 0.0; + wasActive = (char)0; + wasInit = (char)0; + deltaSearchPhase = (char)0; + init = (char)0; + final = (char)0; + RoCo_activeDesired = (char)0; + RoCo_commandMoveByAngle = (char)0; + RoCo_commandMoveToAngle = (char)0; + RoCo_commandShutOff = (char)0; + RoCo_desiredDeltaAngle = 0.0; + RoCo_desiredTargetAngle = 0.0; + RoCo_moveFast = (char)0; + RoCo_isActive = (char)0; + RoCo_legAngle = 0.0; + RoCo_legAngleValid = (char)0; + RoCo_error = (char)0; + RoCo_engineVoltage = 0.0; + RoCo_isAdapted = (char)0; + return; +} + +void RoCo_process(void) +{ + real64 t9; + real64 t10; + real64 t11; + Curve_t *t12; + real64 t13; + boolean t14; + real64 t15; + int tmp_2; + int tmp_0; + real64 t1 = Battery_voltage; + real64 t2 = Env_humidity; + real64 t3 = Env_temperature; + boolean t4 = LegSensor_atMark; + real64 t5 = LegSensor_signal; + filteredEnvTemp = PT1_Filter(& envTempFilter,t3,RoCo_TempFltT_PARAM,dT); + if (filteredEnvTemp > RoCo_envTempLowerLimit_PARAM) + if (filteredEnvTemp < RoCo_envTempUpperLimit_PARAM) { + int tmp; + if (t2 < RoCo_humidityLimit_PARAM) tmp = 1; + else + if (! RoCo_checkHumidity_PARAM) tmp = 1; else tmp = 0; + tmp_0 = tmp; + } + else tmp_0 = 0; + else tmp_0 = 0; + if (tmp_0) { + boolean tmp_1; + tmp_1 = Turn_on_delay(& batteryLowDelay, + (char)(t1 < RoCo_batteryLowLimit_PARAM), + RoCo_batteryLowDelay_PARAM,dT); + if (tmp_1) + if (! RoCo_checkBatteryVoltage_PARAM) + _LOR: if (! RoCo_error) tmp_2 = 1; else tmp_2 = 0; + else tmp_2 = 0; + else goto _LOR; + } + else tmp_2 = 0; + enabled = (char)tmp_2; + if (! enabled) { + int tmp_3; + if (wasActive) + if (RoCo_activeDesired) tmp_3 = 1; else tmp_3 = 0; + else tmp_3 = 0; + wasActive = (char)tmp_3; + RoCo_isActive = (char)0; + RoCo_engineVoltage = 0.0; + } + else + if (RoCo_activeDesired) goto _LOR_4; + else + if (RoCo_isActive) { + _LOR_4: + { + int tmp_19; + t13 = RoCo_voltageFilter_PARAM; + t15 = Interpolate_from_curve(& LegSensorSignalToAngle_CURVE,t5); + RoCo_legAngle += t15; + if (t4) { + RoCo_legAngle = RoCo_angleAtMark_PARAM; + RoCo_legAngleValid = (char)1; + } + if (RoCo_activeDesired) + if (! wasActive) { + if (! RoCo_legAngleValid) init = (char)1; + RoCo_isActive = (char)1; + } + if (! RoCo_activeDesired) + if (wasActive) + if (! init) + if (! final) RoCo_commandShutOff = (char)1; + if (init) { + real64 tmp_4; + t14 = (char)(RoCo_angleAtMark_PARAM > RoCo_idlePosition_PARAM); + if (! wasActive) Timer_start(& initTimer); + tmp_4 = Timer_elapsedTime(& initTimer); + ; + if (tmp_4 > RoCo_initTimeout_PARAM) goto _LOR_0; + else { + boolean tmp_6; + double tmp_5; + ; + ; + tmp_5 = fabs(t15); + tmp_6 = Turn_on_delay(& standstillDelay,(char)(tmp_5 < 0.001), + RoCo_initStandstillTimeout_PARAM,dT); + if (tmp_6) + _LOR_0: + if (! initBackwards) { + initBackwards = (char)1; + Timer_start(& initTimer); + Turn_on_delay(& standstillDelay,(char)0, + RoCo_initStandstillTimeout_PARAM,dT); + } + else { + RoCo_error = (char)1; + RoCo_isActive = (char)0; + init = (char)0; + } + } + if ((int)initBackwards ^ (int)t14) rampTarget = RoCo_initMoveSpeed_PARAM; + else rampTarget = - RoCo_initMoveSpeed_PARAM; + angleDiffRequest = Ramp_out(& initRamp,rampTarget, + RoCo_initRampSlopePos_PARAM, + RoCo_initRampSlopeNeg_PARAM,dT); + if (RoCo_legAngleValid) { + init = (char)0; + initBackwards = (char)0; + } + } + if (! init) { + double tmp_9; + sint16 tmp_11; + double tmp_12; + if (RoCo_commandShutOff) { + final = (char)1; + RoCo_commandShutOff = (char)0; + targetAngle = RoCo_idlePosition_PARAM; + Timer_start(& shutdownTimer); + RoCo_activeDesired = (char)0; + } + if (! final) { + if (RoCo_commandMoveToAngle) { + targetAngle = RoCo_desiredTargetAngle; + RoCo_commandMoveToAngle = (char)0; + direction = 0; + } + else goto _LAND; + } + else + _LAND: + if (! final) + if (RoCo_commandMoveByAngle) { + targetAngle = RoCo_legAngle + RoCo_desiredDeltaAngle; + if (RoCo_desiredDeltaAngle == 0.0) direction = 0; + else + if (RoCo_desiredDeltaAngle > 0.0) direction = -1; + else direction = 1; + RoCo_commandMoveByAngle = (char)0; + } + if (RoCo_hasMinMaxAngles_PARAM) targetAngle = Limiter_out + (RoCo_minAngle_PARAM,targetAngle, + RoCo_maxAngle_PARAM); + t9 = RoCo_legAngle - targetAngle; + if (RoCo_moveFast) t11 = RoCo_angleReachedThreshold1Fast_PARAM; + else t11 = RoCo_angleReachedThreshold1_PARAM; + if (RoCo_adaptationActive) t11 += adaptation[RoCo_moveFast]; + tmp_9 = fabs(t9); + ; + if (tmp_9 > t11) + if (direction == 0) { + real64 tmp_8; + if (! RoCo_hasMinMaxAngles_PARAM) tmp_8 = t9; + else { + double tmp_7; + tmp_7 = fabs(t9); + if (tmp_7 >= 180.0) tmp_8 = t9; else tmp_8 = - t9; + } + if (tmp_8 > 0.0) direction = 1; else direction = -1; + } + rampTarget = 0.0; + if (RoCo_legAngleValid) { + double tmp_10; + tmp_10 = fabs(t9); + ; + if (tmp_10 > t11) + if (t9 > 0.0) { + if (0 > direction) goto _LOR_1; else goto _LAND_0; + } + else { + _LAND_0: ; + if (t9 < 0.0) + if (0 < direction) _LOR_1: rampTarget = 1.0; + } + } + rampValue = Ramp_out(& moveTimeRamp,rampTarget, + RoCo_TimeSlopePos_PARAM, + RoCo_TimeSlopeNeg_PARAM,dT); + tmp_11 = Ramp_getDir(& moveTimeRamp); + if (-1 == (int)tmp_11) + if (RoCo_moveFast) t12 = & RoCo_decelerationFast_CURVE; + else t12 = & RoCo_deceleration_CURVE; + else + if (RoCo_moveFast) t12 = & RoCo_accelerationFast_CURVE; + else t12 = & RoCo_acceleration_CURVE; + angleDiffRequest = Interpolate_from_curve(t12,rampValue); + angleDiffRequest *= (double)direction; + t10 = RoCo_legAngle - targetAngle; + tmp_12 = fabs(rampValue); + if (tmp_12 == 1.0) rampHighReached = (char)1; + if (rampValue == 0.0) { + double tmp_15; + if (RoCo_adaptationActive) + if (! wasRampEnded) + if (rampHighReached) + if (direction > 0) { + if (t10 > 0.0) goto _LOR_2; else goto _LAND_1; + } + else { + _LAND_1: ; + if (direction < 0) + if (t10 < 0.0) { + _LOR_2: + { + double tmp_13; + tmp_13 = fabs(t10); + adaptation[RoCo_moveFast] += tmp_13; + RoCo_isAdapted = (char)1; + } + } + } + tmp_15 = fabs(t10); + ; + if (tmp_15 > RoCo_angleReachedThreshold2_PARAM) { + double tmp_14; + if (t10 > 0.0) tmp_14 = - 1.0; else tmp_14 = 1.0; + angleDiffRequest += (tmp_14 * RoCo_stepSpeed_PARAM) * dT; + } + rampHighReached = (char)0; + } + wasRampEnded = (char)(rampValue == 0.0); + } + if (final) + if (RoCo_legAngleValid) { + double tmp_16; + tmp_16 = fabs(RoCo_legAngle - RoCo_idlePosition_PARAM); + ; + if (tmp_16 < RoCo_angleReachedThreshold2_PARAM) { + double tmp_17; + tmp_17 = fabs(angleDiffRequest); + if (tmp_17 < 0.05) goto _LOR_3; else goto _LAND_3; + } + else goto _LAND_3; + } + else { + real64 tmp_18; + _LAND_3: + { /* sequence */ + tmp_18 = Timer_elapsedTime(& shutdownTimer); + ; + } + if (tmp_18 > RoCo_shutdownTimeout_PARAM) { + _LOR_3: + { + final = (char)0; + RoCo_isActive = (char)0; + RoCo_legAngleValid = (char)0; + } + } + } + desiredEngineVoltage = Interpolate_from_curve(& EngineSpeedToVoltage_CURVE, + angleDiffRequest); + desiredEngineVoltage = Limiter_out(Engine_minVoltage_PARAM, + desiredEngineVoltage, + Engine_maxVoltage_PARAM); + if (Engine_maxVoltage_PARAM == desiredEngineVoltage) tmp_19 = 1; + else + if (Engine_minVoltage_PARAM == desiredEngineVoltage) tmp_19 = 1; + else tmp_19 = 0; + limitationActive = (char)tmp_19; + RoCo_engineVoltage = PT1_Filter(& voltageFilter, + desiredEngineVoltage,t13,dT); + wasInit = init; + wasActive = RoCo_isActive; + Timer_tick(& shutdownTimer,dT); + Timer_tick(& initTimer,dT); + } + } + else RoCo_engineVoltage = 0.0; + return; +} + +void Sim_process(void); + +void Sim_init(void); + +real64 buf1; +real64 buf2; +real64 buf3; +real64 buf4; +real64 buf5; +real64 internalPosition = 22.5; +real64 oldInternalPosition; +real64 Sim_maxPos_PARAM = 100.0; +real64 Sim_minPos_PARAM = - 100.0; +PT1_t Srv_PT1; +void Sim_process(void) +{ + real64 tmp; + int tmp_0; + real64 t1 = RoCo_engineVoltage; + real64 t2 = Engine_realVoltage; + uint32 t3 = (unsigned int)LegSensor_atMark; + real64 t4 = LegSensor_signal; + buf5 = buf4; + buf4 = buf3; + buf3 = buf2; + buf2 = buf1; + buf1 = t1; + Sim_maxPos_PARAM = RoCo_maxAngle_PARAM + 1.0; + Sim_minPos_PARAM = RoCo_minAngle_PARAM - 1.0; + ; + ; + tmp = PT1_Filter(& Srv_PT1,buf5 * 0.9,0.15,dT); + ; + internalPosition = Limiter_out(internalPosition + tmp * dT, + Sim_minPos_PARAM,Sim_maxPos_PARAM); + t4 = internalPosition - oldInternalPosition; + if (oldInternalPosition < RoCo_angleAtMark_PARAM) { + if (RoCo_angleAtMark_PARAM <= internalPosition) tmp_0 = 1; + else goto _LAND; + } + else { + _LAND: ; + if (oldInternalPosition > RoCo_angleAtMark_PARAM) + if (RoCo_angleAtMark_PARAM >= internalPosition) tmp_0 = 1; + else tmp_0 = 0; + else tmp_0 = 0; + } + t3 = (unsigned int)((unsigned char)tmp_0); + t2 = buf5 * 0.9; + oldInternalPosition = internalPosition; + Engine_realVoltage = t2; + LegSensor_atMark = (char)t3; + LegSensor_signal = t4 / 2.5; + return; +} + +void Sim_init(void) +{ + Engine_realVoltage = 0.0; + LegSensor_atMark = (char)0; + LegSensor_signal = 0.0; + buf1 = 0.0; + buf2 = 0.0; + buf3 = 0.0; + buf4 = 0.0; + buf5 = 0.0; + internalPosition = 20.0; + oldInternalPosition = 0.0; + Srv_PT1 = 0.0; + return; +} + +char *output_header = + (char *)"time(ms)\tengineVoltage\tlegAngle\tlegAngleValid\tisActive\n"; +char *output_row_fmt_string = (char *)"%d\t%f\t%f\t%d\t%d\n"; +int main(void) +{ + int __retres; + sint32 lastTime = Time(); + dT = 0.02; + RoCo_init(); + Sim_init(); + Battery_voltage = 21.3; + Env_humidity = 0.5; + Env_temperature = 20.0; + Global_emergencyMode = (char)0; + RoCo_activeDesired = (char)1; + RoCo_moveFast = (char)0; + int cnt = 0; + { + void *__va_args[1] = {(void *)0}; + fprintf(__fc_stderr,(char const *)output_header, + (void * const *)(__va_args)); + } + while (cnt < 9000) { + sint32 tmp_0; + tmp_0 = Time(); + dT = (double)(tmp_0 - lastTime) / 1000.0; + lastTime = Time(); + RoCo_process(); + Sim_process(); + if (cnt % 5 == 0) { + { + sint32 __va_arg0 = lastTime; + real64 __va_arg1 = RoCo_engineVoltage; + real64 __va_arg2 = RoCo_legAngle; + int __va_arg3 = (int)RoCo_legAngleValid; + int __va_arg4 = (int)RoCo_isActive; + void *__va_args_12[5] = + {& __va_arg0, & __va_arg1, & __va_arg2, & __va_arg3, & __va_arg4}; + fprintf(__fc_stderr,(char const *)output_row_fmt_string, + (void * const *)(__va_args_12)); + } + } + Sleep(20); + cnt ++; + if (cnt == 2500) { + RoCo_commandMoveToAngle = (char)1; + RoCo_desiredTargetAngle = 15.0; + } + else + if (cnt == 3500) { + RoCo_commandMoveToAngle = (char)1; + RoCo_desiredTargetAngle = - 55.0; + } + else + if (cnt == 5000) { + RoCo_commandMoveToAngle = (char)1; + RoCo_desiredTargetAngle = 30.0; + } + else + if (cnt == 7000) { + RoCo_commandMoveToAngle = (char)1; + RoCo_desiredTargetAngle = - 5.0; + } + else + if (cnt == 8000) RoCo_commandShutOff = (char)1; + } + __retres = 0; + return __retres; +} + + diff --git a/icpc/.frama-c/icpc.parse/metrics.log b/icpc/.frama-c/icpc.parse/metrics.log new file mode 100644 index 0000000000000000000000000000000000000000..cdf6037811f72e03244ff2b2d148ded4e5de9a13 --- /dev/null +++ b/icpc/.frama-c/icpc.parse/metrics.log @@ -0,0 +1,36 @@ +[metrics] Defined functions (18) +====================== + Interpolate_from_curve (3 calls); Limiter_out (3 calls); + PT1_Filter (3 calls); Ramp_getDir (1 call); Ramp_getValue (0 call); + Ramp_out (2 calls); Ramp_targetReached (0 call); RoCo_init (1 call); + RoCo_process (1 call); Sim_init (1 call); Sim_process (1 call); + Sleep (1 call); Time (3 calls); Timer_elapsedTime (2 calls); + Timer_start (3 calls); Timer_tick (2 calls); Turn_on_delay (3 calls); + main (0 call); + +Undefined functions (0) +======================= + + +'Extern' global variables (0) +============================= + + +Potential entry points (3) +========================== + Ramp_getValue; Ramp_targetReached; main; + +Global metrics +============== +Sloc = 437 +Decision point = 100 +Global variables = 98 +If = 100 +Loop = 2 +Goto = 13 +Assignment = 243 +Exit point = 18 +Function = 18 +Function call = 42 +Pointer dereferencing = 50 +Cyclomatic complexity = 118 diff --git a/icpc/.frama-c/icpc.parse/warnings.log b/icpc/.frama-c/icpc.parse/warnings.log new file mode 100644 index 0000000000000000000000000000000000000000..8b1d91a78af480ef6a7ecf7f1b01daa9193d9e85 --- /dev/null +++ b/icpc/.frama-c/icpc.parse/warnings.log @@ -0,0 +1,6 @@ +src/roco_config.h:7:[kernel:parser:decimal-float] warning: Floating-point constant 0.33 is not represented exactly. Will use 0x1.51eb851eb851fp-2. +(warn-once: no further messages from category 'parser:decimal-float' will be emitted) +src/main.c:33:[variadic] warning: Call to function fprintf with non-static format argument: +no specification will be generated. +src/main.c:41:[variadic] warning: Call to function fprintf with non-static format argument: +no specification will be generated. diff --git a/icpc/.frama-c/path.mk b/icpc/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/icpc/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/icpc/GNUmakefile b/icpc/GNUmakefile deleted file mode 100644 index f03bae3c4ba41e7a6bade9a0749de347b0345f9d..0000000000000000000000000000000000000000 --- a/icpc/GNUmakefile +++ /dev/null @@ -1,64 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += \ - -warn-special-float none \ - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -slevel 16 \ - -eva-domains equality \ - -# (MANDATORY) Name of the main target -MAIN_TARGET := icpc - -# Add other targets if needed -TARGETS = $(MAIN_TARGET).eva - -# Default target -all: $(TARGETS) -help: - @echo "targets: $(TARGETS)" -display-targets: - @echo "$(TARGETS)" - -# (MANDATORY) List of source files used by MAIN_TARGET, usually obtained -# via a JSON compilation database + analysis-scripts/list_files.py -$(MAIN_TARGET).parse: src/impls.c src/roco.c src/sim.c src/main.c - - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -gui: $(MAIN_TARGET).eva.gui - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common diff --git a/icpc/frama-c-path.mk b/icpc/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/icpc/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/itc-benchmarks/01_w_Defects.eva/alarms.csv b/itc-benchmarks/.frama-c/01_w_Defects.eva/alarms.csv similarity index 100% rename from itc-benchmarks/01_w_Defects.eva/alarms.csv rename to itc-benchmarks/.frama-c/01_w_Defects.eva/alarms.csv diff --git a/itc-benchmarks/01_w_Defects.eva/metrics.log b/itc-benchmarks/.frama-c/01_w_Defects.eva/metrics.log similarity index 100% rename from itc-benchmarks/01_w_Defects.eva/metrics.log rename to itc-benchmarks/.frama-c/01_w_Defects.eva/metrics.log diff --git a/itc-benchmarks/01_w_Defects.eva/nonterm.log b/itc-benchmarks/.frama-c/01_w_Defects.eva/nonterm.log similarity index 100% rename from itc-benchmarks/01_w_Defects.eva/nonterm.log rename to itc-benchmarks/.frama-c/01_w_Defects.eva/nonterm.log diff --git a/itc-benchmarks/01_w_Defects.eva/warnings.log b/itc-benchmarks/.frama-c/01_w_Defects.eva/warnings.log similarity index 100% rename from itc-benchmarks/01_w_Defects.eva/warnings.log rename to itc-benchmarks/.frama-c/01_w_Defects.eva/warnings.log diff --git a/itc-benchmarks/01_w_Defects.parse/framac.ast b/itc-benchmarks/.frama-c/01_w_Defects.parse/framac.ast similarity index 100% rename from itc-benchmarks/01_w_Defects.parse/framac.ast rename to itc-benchmarks/.frama-c/01_w_Defects.parse/framac.ast diff --git a/itc-benchmarks/01_w_Defects.parse/metrics.log b/itc-benchmarks/.frama-c/01_w_Defects.parse/metrics.log similarity index 100% rename from itc-benchmarks/01_w_Defects.parse/metrics.log rename to itc-benchmarks/.frama-c/01_w_Defects.parse/metrics.log diff --git a/itc-benchmarks/01_w_Defects.parse/warnings.log b/itc-benchmarks/.frama-c/01_w_Defects.parse/warnings.log similarity index 100% rename from itc-benchmarks/01_w_Defects.parse/warnings.log rename to itc-benchmarks/.frama-c/01_w_Defects.parse/warnings.log diff --git a/itc-benchmarks/02_wo_Defects.eva/alarms.csv b/itc-benchmarks/.frama-c/02_wo_Defects.eva/alarms.csv similarity index 100% rename from itc-benchmarks/02_wo_Defects.eva/alarms.csv rename to itc-benchmarks/.frama-c/02_wo_Defects.eva/alarms.csv diff --git a/itc-benchmarks/02_wo_Defects.eva/metrics.log b/itc-benchmarks/.frama-c/02_wo_Defects.eva/metrics.log similarity index 100% rename from itc-benchmarks/02_wo_Defects.eva/metrics.log rename to itc-benchmarks/.frama-c/02_wo_Defects.eva/metrics.log diff --git a/jsmn/jsmn-example.eva/nonterm.log b/itc-benchmarks/.frama-c/02_wo_Defects.eva/nonterm.log similarity index 100% rename from jsmn/jsmn-example.eva/nonterm.log rename to itc-benchmarks/.frama-c/02_wo_Defects.eva/nonterm.log diff --git a/itc-benchmarks/02_wo_Defects.eva/warnings.log b/itc-benchmarks/.frama-c/02_wo_Defects.eva/warnings.log similarity index 100% rename from itc-benchmarks/02_wo_Defects.eva/warnings.log rename to itc-benchmarks/.frama-c/02_wo_Defects.eva/warnings.log diff --git a/itc-benchmarks/02_wo_Defects.parse/framac.ast b/itc-benchmarks/.frama-c/02_wo_Defects.parse/framac.ast similarity index 100% rename from itc-benchmarks/02_wo_Defects.parse/framac.ast rename to itc-benchmarks/.frama-c/02_wo_Defects.parse/framac.ast diff --git a/itc-benchmarks/02_wo_Defects.parse/metrics.log b/itc-benchmarks/.frama-c/02_wo_Defects.parse/metrics.log similarity index 100% rename from itc-benchmarks/02_wo_Defects.parse/metrics.log rename to itc-benchmarks/.frama-c/02_wo_Defects.parse/metrics.log diff --git a/itc-benchmarks/02_wo_Defects.parse/warnings.log b/itc-benchmarks/.frama-c/02_wo_Defects.parse/warnings.log similarity index 100% rename from itc-benchmarks/02_wo_Defects.parse/warnings.log rename to itc-benchmarks/.frama-c/02_wo_Defects.parse/warnings.log diff --git a/itc-benchmarks/.frama-c/GNUmakefile b/itc-benchmarks/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..d73fa04c851cf7132aad701cff87be94bfaed725 --- /dev/null +++ b/itc-benchmarks/.frama-c/GNUmakefile @@ -0,0 +1,96 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_32 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + -I../include \ + -includefc_stubs.h \ + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -kernel-warn-key annot:missing-spec=abort \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + -warn-signed-downcast \ + -warn-unsigned-downcast \ + -warn-unsigned-overflow \ + +## Eva-specific flags +EVAFLAGS += \ + -eva-warn-key builtins:missing-spec=abort \ + -eva-no-alloc-returns-null \ + -eva-mlevel 10 \ + -main eva_main \ + -eva-precision 3 \ + -eva-builtin titcb_pow:Frama_C_pow \ + +# -eva-precision 3 reduces 1 unknown w.r.t. -eva-precision 2 + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +## Analysis targets (suffixed with .eva) +TARGETS = 01_w_Defects.eva 02_wo_Defects.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +# NOTE: string.c is required due to the usage of strdup() in some tests, +# and also to avoid loss of precision when strcpy() is used. +# Both are related to tests in st_underrun.c + +SUBDIR_SRCS=\ + main.c \ + bit_shift.c \ + buffer_overrun_dynamic.c \ + buffer_underrun_dynamic.c \ + data_lost.c \ + data_overflow.c \ + data_underflow.c \ + double_free.c \ + endless_loop.c \ + free_nondynamic_allocated_memory.c \ + invalid_memory_access.c \ + littlemem_st.c \ + memory_allocation_failure.c \ + not_return.c \ + null_pointer.c \ + overrun_st.c \ + pow_related_errors.c \ + ptr_subtraction.c \ + return_local.c \ + sign_conv.c \ + st_underrun.c \ + underrun_st.c \ + uninit_memory_access.c \ + uninit_pointer.c \ + uninit_var.c \ + zero_division.c \ + +01_w_Defects.parse: \ + fc_stubs.c \ + $(shell $(FRAMAC)-config -print-share-path)/libc/stdio.c \ + $(shell $(FRAMAC)-config -print-share-path)/libc/string.c \ + $(foreach file,$(SUBDIR_SRCS),$(wildcard ../01_w_Defects/$(file))) \ + +02_wo_Defects.parse: \ + fc_stubs.c \ + $(shell $(FRAMAC)-config -print-share-path)/libc/stdio.c \ + $(shell $(FRAMAC)-config -print-share-path)/libc/string.c \ + $(foreach file,$(SUBDIR_SRCS),$(wildcard ../02_wo_Defects/$(file))) \ + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/libspng/fc_stubs.c b/itc-benchmarks/.frama-c/fc_stubs.c similarity index 100% rename from libspng/fc_stubs.c rename to itc-benchmarks/.frama-c/fc_stubs.c diff --git a/itc-benchmarks/fc_stubs.h b/itc-benchmarks/.frama-c/fc_stubs.h similarity index 100% rename from itc-benchmarks/fc_stubs.h rename to itc-benchmarks/.frama-c/fc_stubs.h diff --git a/itc-benchmarks/.frama-c/path.mk b/itc-benchmarks/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/itc-benchmarks/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/itc-benchmarks/GNUmakefile b/itc-benchmarks/GNUmakefile deleted file mode 100644 index d08c24cb0d2f456370df6926aae82b0880ac1ec2..0000000000000000000000000000000000000000 --- a/itc-benchmarks/GNUmakefile +++ /dev/null @@ -1,112 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED -# The flags below are only suggestions to use with Eva, and can be removed - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += -Iinclude -includefc_stubs.h - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += \ - -kernel-warn-key annot:missing-spec=abort \ - -kernel-warn-key typing:implicit-function-declaration=abort \ - -warn-signed-downcast \ - -warn-unsigned-downcast \ - -warn-unsigned-overflow \ - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -eva-warn-key builtins:missing-spec=abort \ - -eva-no-alloc-returns-null \ - -eva-mlevel 10 \ - -main eva_main \ - -eva-precision 3 \ - -eva-builtin titcb_pow:Frama_C_pow \ - -# -eva-precision 3 reduces 1 unknown w.r.t. -eva-precision 2 - -SUBDIR_SRCS=\ -main.c \ -bit_shift.c \ -buffer_overrun_dynamic.c \ -buffer_underrun_dynamic.c \ -data_lost.c \ -data_overflow.c \ -data_underflow.c \ -double_free.c \ -endless_loop.c \ -free_nondynamic_allocated_memory.c \ -invalid_memory_access.c \ -littlemem_st.c \ -memory_allocation_failure.c \ -not_return.c \ -null_pointer.c \ -overrun_st.c \ -pow_related_errors.c \ -ptr_subtraction.c \ -return_local.c \ -sign_conv.c \ -st_underrun.c \ -underrun_st.c \ -uninit_memory_access.c \ -uninit_pointer.c \ -uninit_var.c \ -zero_division.c \ - - -# (MANDATORY) Name of the main target -MAIN_TARGET := 01_w_Defects - -# Add other targets if needed -TARGETS = $(MAIN_TARGET).eva 02_wo_Defects.eva - -# Default target -all: $(TARGETS) - -# NOTE: string.c is required due to the usage of strdup() in some tests, -# and also to avoid loss of precision when strcpy() is used. -# Both are related to tests in st_underrun.c - -01_w_Defects.parse: \ -fc_stubs.c \ -$(shell $(FRAMAC_CONFIG) -print-share-path)/libc/stdio.c \ -$(shell $(FRAMAC_CONFIG) -print-share-path)/libc/string.c \ -$(foreach file,$(SUBDIR_SRCS),$(wildcard 01_w_Defects/$(file))) \ - -02_wo_Defects.parse: \ -fc_stubs.c \ -$(shell $(FRAMAC_CONFIG) -print-share-path)/libc/stdio.c \ -$(shell $(FRAMAC_CONFIG) -print-share-path)/libc/string.c \ -$(foreach file,$(SUBDIR_SRCS),$(wildcard 02_wo_Defects/$(file))) \ - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -gui: $(MAIN_TARGET).eva.gui - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common - diff --git a/itc-benchmarks/frama-c-path.mk b/itc-benchmarks/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/itc-benchmarks/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/jsmn/.frama-c/GNUmakefile b/jsmn/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..e2bd5ce794d4358d51c824cbca1c69d3be45145e --- /dev/null +++ b/jsmn/.frama-c/GNUmakefile @@ -0,0 +1,49 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_32 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -kernel-warn-key annot:missing-spec=abort \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + +## Eva-specific flags +EVAFLAGS += \ + -eva-warn-key builtins:missing-spec=abort \ + -eva-no-alloc-returns-null \ + -slevel 300 \ + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +## Analysis targets (suffixed with .eva) +TARGETS = jsmn-main.eva jsmn-example.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +jsmn-main.parse: \ + ../test/tests.c \ + +jsmn-example.parse: \ + ../jsmn.c \ + ../example/simple.c \ + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/jsmn/jsmn-example.eva/alarms.csv b/jsmn/.frama-c/jsmn-example.eva/alarms.csv similarity index 100% rename from jsmn/jsmn-example.eva/alarms.csv rename to jsmn/.frama-c/jsmn-example.eva/alarms.csv diff --git a/jsmn/jsmn-example.eva/metrics.log b/jsmn/.frama-c/jsmn-example.eva/metrics.log similarity index 100% rename from jsmn/jsmn-example.eva/metrics.log rename to jsmn/.frama-c/jsmn-example.eva/metrics.log diff --git a/jsmn/jsmn-main.eva/nonterm.log b/jsmn/.frama-c/jsmn-example.eva/nonterm.log similarity index 100% rename from jsmn/jsmn-main.eva/nonterm.log rename to jsmn/.frama-c/jsmn-example.eva/nonterm.log diff --git a/cerberus/unspecified_value_struct_copy.parse/warnings.log b/jsmn/.frama-c/jsmn-example.eva/warnings.log similarity index 100% rename from cerberus/unspecified_value_struct_copy.parse/warnings.log rename to jsmn/.frama-c/jsmn-example.eva/warnings.log diff --git a/jsmn/jsmn-example.parse/framac.ast b/jsmn/.frama-c/jsmn-example.parse/framac.ast similarity index 100% rename from jsmn/jsmn-example.parse/framac.ast rename to jsmn/.frama-c/jsmn-example.parse/framac.ast diff --git a/jsmn/jsmn-example.parse/metrics.log b/jsmn/.frama-c/jsmn-example.parse/metrics.log similarity index 100% rename from jsmn/jsmn-example.parse/metrics.log rename to jsmn/.frama-c/jsmn-example.parse/metrics.log diff --git a/cerberus/unspecified_value_union_1.eva/warnings.log b/jsmn/.frama-c/jsmn-example.parse/warnings.log similarity index 100% rename from cerberus/unspecified_value_union_1.eva/warnings.log rename to jsmn/.frama-c/jsmn-example.parse/warnings.log diff --git a/jsmn/jsmn-main.eva/alarms.csv b/jsmn/.frama-c/jsmn-main.eva/alarms.csv similarity index 100% rename from jsmn/jsmn-main.eva/alarms.csv rename to jsmn/.frama-c/jsmn-main.eva/alarms.csv diff --git a/jsmn/jsmn-main.eva/metrics.log b/jsmn/.frama-c/jsmn-main.eva/metrics.log similarity index 100% rename from jsmn/jsmn-main.eva/metrics.log rename to jsmn/.frama-c/jsmn-main.eva/metrics.log diff --git a/khash/khash.eva/nonterm.log b/jsmn/.frama-c/jsmn-main.eva/nonterm.log similarity index 100% rename from khash/khash.eva/nonterm.log rename to jsmn/.frama-c/jsmn-main.eva/nonterm.log diff --git a/cerberus/unspecified_value_union_1.parse/warnings.log b/jsmn/.frama-c/jsmn-main.eva/warnings.log similarity index 100% rename from cerberus/unspecified_value_union_1.parse/warnings.log rename to jsmn/.frama-c/jsmn-main.eva/warnings.log diff --git a/jsmn/jsmn-main.parse/framac.ast b/jsmn/.frama-c/jsmn-main.parse/framac.ast similarity index 100% rename from jsmn/jsmn-main.parse/framac.ast rename to jsmn/.frama-c/jsmn-main.parse/framac.ast diff --git a/jsmn/jsmn-main.parse/metrics.log b/jsmn/.frama-c/jsmn-main.parse/metrics.log similarity index 100% rename from jsmn/jsmn-main.parse/metrics.log rename to jsmn/.frama-c/jsmn-main.parse/metrics.log diff --git a/jsmn/jsmn-main.parse/warnings.log b/jsmn/.frama-c/jsmn-main.parse/warnings.log similarity index 100% rename from jsmn/jsmn-main.parse/warnings.log rename to jsmn/.frama-c/jsmn-main.parse/warnings.log diff --git a/jsmn/.frama-c/path.mk b/jsmn/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/jsmn/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/jsmn/GNUmakefile b/jsmn/GNUmakefile deleted file mode 100644 index 5133fac8a94921bdc66da4f489044f18ddfeae10..0000000000000000000000000000000000000000 --- a/jsmn/GNUmakefile +++ /dev/null @@ -1,69 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED -# The flags below are only suggestions to use with Eva, and can be removed - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += \ - -kernel-warn-key annot:missing-spec=abort \ - -kernel-warn-key typing:implicit-function-declaration=abort \ - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -eva-warn-key builtins:missing-spec=abort \ - -eva-no-alloc-returns-null \ - -slevel 300 \ - -# (MANDATORY) Name of the main target -MAIN_TARGET := jsmn-main - -# Add other targets if needed -TARGETS = $(MAIN_TARGET).eva jsmn-example.eva - -# Default target -all: $(TARGETS) -help: - @echo "targets: $(TARGETS)" -display-targets: - @echo "$(TARGETS)" - -# (MANDATORY) List of source files used by MAIN_TARGET. -# If there is a JSON compilation database, -# 'frama-c-script list-files' can help obtain it -$(MAIN_TARGET).parse: test/tests.c - -jsmn-example.parse: jsmn.c example/simple.c - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -gui: $(MAIN_TARGET).eva.gui - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common diff --git a/jsmn/frama-c-path.mk b/jsmn/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/jsmn/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/khash/.frama-c/GNUmakefile b/khash/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..34c025af28ffeb0ce8a0d9668947d5436a3a3b59 --- /dev/null +++ b/khash/.frama-c/GNUmakefile @@ -0,0 +1,44 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_32 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -kernel-warn-key annot:missing-spec=abort \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + +## Eva-specific flags +EVAFLAGS += \ + -eva-warn-key builtins:missing-spec=abort \ + -eva-no-alloc-returns-null \ + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +## Analysis targets (suffixed with .eva) +TARGETS = khash.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +khash.parse: \ + ../khash.c \ + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/khash/khash.eva/alarms.csv b/khash/.frama-c/khash.eva/alarms.csv similarity index 100% rename from khash/khash.eva/alarms.csv rename to khash/.frama-c/khash.eva/alarms.csv diff --git a/khash/khash.eva/metrics.log b/khash/.frama-c/khash.eva/metrics.log similarity index 100% rename from khash/khash.eva/metrics.log rename to khash/.frama-c/khash.eva/metrics.log diff --git a/libmodbus/libmodbus-random-client.eva/nonterm.log b/khash/.frama-c/khash.eva/nonterm.log similarity index 100% rename from libmodbus/libmodbus-random-client.eva/nonterm.log rename to khash/.frama-c/khash.eva/nonterm.log diff --git a/cerberus/write_union_same_prefix_visible.eva/warnings.log b/khash/.frama-c/khash.eva/warnings.log similarity index 100% rename from cerberus/write_union_same_prefix_visible.eva/warnings.log rename to khash/.frama-c/khash.eva/warnings.log diff --git a/khash/khash.parse/framac.ast b/khash/.frama-c/khash.parse/framac.ast similarity index 100% rename from khash/khash.parse/framac.ast rename to khash/.frama-c/khash.parse/framac.ast diff --git a/khash/khash.parse/metrics.log b/khash/.frama-c/khash.parse/metrics.log similarity index 100% rename from khash/khash.parse/metrics.log rename to khash/.frama-c/khash.parse/metrics.log diff --git a/khash/khash.parse/warnings.log b/khash/.frama-c/khash.parse/warnings.log similarity index 100% rename from khash/khash.parse/warnings.log rename to khash/.frama-c/khash.parse/warnings.log diff --git a/khash/.frama-c/path.mk b/khash/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/khash/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/khash/GNUmakefile b/khash/GNUmakefile deleted file mode 100644 index df973995a39d62c9ea1b5f9421228a77c6235d51..0000000000000000000000000000000000000000 --- a/khash/GNUmakefile +++ /dev/null @@ -1,67 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED -# The flags below are only suggestions to use with Eva, and can be removed - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += \ - -kernel-warn-key annot:missing-spec=abort \ - -kernel-warn-key typing:implicit-function-declaration=abort \ - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -eva-warn-key builtins:missing-spec=abort \ - -eva-no-alloc-returns-null \ - -# (MANDATORY) Name of the main target -MAIN_TARGET := khash - -# Add other targets if needed -TARGETS = $(MAIN_TARGET).eva - -# Default target -all: $(TARGETS) -help: - @echo "targets: $(TARGETS)" -display-targets: - @echo "$(TARGETS)" - -# (MANDATORY) List of source files used by MAIN_TARGET. -# If there is a JSON compilation database, -# 'frama-c-script list-files' can help obtain it -$(MAIN_TARGET).parse: khash.c - - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -gui: $(MAIN_TARGET).eva.gui - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common diff --git a/khash/frama-c-path.mk b/khash/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/khash/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/kilo/.frama-c/GNUmakefile b/kilo/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..3a778976ed29eb3a9184fc6627eb2953a12c079a --- /dev/null +++ b/kilo/.frama-c/GNUmakefile @@ -0,0 +1,47 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_32 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + -includefc_stubs.h -D__FRAMAC__EVA \ + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + +## Eva-specific flags +EVAFLAGS += \ + -eva-warn-key builtins:missing-spec=abort \ + -eva-no-alloc-returns-null \ + -main eva_main \ + -slevel 2 \ + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +## Analysis targets (suffixed with .eva) +TARGETS = kilo.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +kilo.parse: \ + ../kilo.c \ + fc_stubs.c \ + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/kilo/fc_stubs.c b/kilo/.frama-c/fc_stubs.c similarity index 83% rename from kilo/fc_stubs.c rename to kilo/.frama-c/fc_stubs.c index 5de3a800bb6f4b818da74c5415a7f6cdc3f4d1cc..2fa087e8800260981379f920d509274ea03c4d50 100644 --- a/kilo/fc_stubs.c +++ b/kilo/.frama-c/fc_stubs.c @@ -61,11 +61,17 @@ ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream) { return c == EOF && i == 0 ? -1 : i; } -int main(int argc, char **argv); +// Stub for a main function which reads arguments from the command line, to be +// used by the Eva plug-in. +// This stub emulates non-deterministic input of up to 5 arguments, each up +// to 256 characters long. This is sufficient to ensure arbitrary input in +// virtually every case. +// Do not forget to add option '-main eva_main' in order to use this stub. -#include "__fc_builtin.h" -volatile int nondet; -// main for EVA +#ifdef __FRAMAC__ +# include "__fc_builtin.h" +int main(int, char **); +static volatile int nondet; int eva_main() { int argc = Frama_C_interval(0, 5); char argv0[256], argv1[256], argv2[256], argv3[256], argv4[256]; @@ -77,3 +83,4 @@ int eva_main() { } return main(argc, argv); } +#endif // __FRAMAC__ diff --git a/kilo/fc_stubs.h b/kilo/.frama-c/fc_stubs.h similarity index 100% rename from kilo/fc_stubs.h rename to kilo/.frama-c/fc_stubs.h diff --git a/kilo/kilo.eva/alarms.csv b/kilo/.frama-c/kilo.eva/alarms.csv similarity index 100% rename from kilo/kilo.eva/alarms.csv rename to kilo/.frama-c/kilo.eva/alarms.csv diff --git a/kilo/kilo.eva/metrics.log b/kilo/.frama-c/kilo.eva/metrics.log similarity index 100% rename from kilo/kilo.eva/metrics.log rename to kilo/.frama-c/kilo.eva/metrics.log diff --git a/kilo/.frama-c/kilo.eva/nonterm.log b/kilo/.frama-c/kilo.eva/nonterm.log new file mode 100644 index 0000000000000000000000000000000000000000..6f91af36b54d2c061057662696b7cf5e00d63bd9 --- /dev/null +++ b/kilo/.frama-c/kilo.eva/nonterm.log @@ -0,0 +1,3 @@ +kilo.c:1271:[nonterm] warning: non-terminating loop +stack: main :: fc_stubs.c:84 <- eva_main +fc_stubs.c:84:[nonterm] warning: unreachable return diff --git a/kilo/kilo.eva/warnings.log b/kilo/.frama-c/kilo.eva/warnings.log similarity index 100% rename from kilo/kilo.eva/warnings.log rename to kilo/.frama-c/kilo.eva/warnings.log diff --git a/kilo/kilo.parse/framac.ast b/kilo/.frama-c/kilo.parse/framac.ast similarity index 99% rename from kilo/kilo.parse/framac.ast rename to kilo/.frama-c/kilo.parse/framac.ast index 157b4412b902ea4d2e7288d1553c1f48c0306c5c..dcdd85abfe598d96e30f2d1cbd948d2fb6a2b26c 100644 --- a/kilo/kilo.parse/framac.ast +++ b/kilo/.frama-c/kilo.parse/framac.ast @@ -1643,7 +1643,6 @@ ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream) return_label: return __retres; } -int volatile nondet; int eva_main(void) { char argv0[256]; diff --git a/kilo/kilo.parse/metrics.log b/kilo/.frama-c/kilo.parse/metrics.log similarity index 98% rename from kilo/kilo.parse/metrics.log rename to kilo/.frama-c/kilo.parse/metrics.log index 436d3f6c59f202c2e558370bddb61be2f07491b0..b7496877d3d8983bbe1ee0ab83b6595bca6eba04 100644 --- a/kilo/kilo.parse/metrics.log +++ b/kilo/.frama-c/kilo.parse/metrics.log @@ -33,7 +33,7 @@ Global metrics ============== Sloc = 1135 Decision point = 243 -Global variables = 7 +Global variables = 6 If = 211 Loop = 28 Goto = 79 diff --git a/cerberus/write_union_same_prefix_visible.parse/warnings.log b/kilo/.frama-c/kilo.parse/warnings.log similarity index 100% rename from cerberus/write_union_same_prefix_visible.parse/warnings.log rename to kilo/.frama-c/kilo.parse/warnings.log diff --git a/kilo/.frama-c/path.mk b/kilo/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/kilo/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/kilo/GNUmakefile b/kilo/GNUmakefile deleted file mode 100644 index 5c17153965dcfb470143b2ac87700093eceffe99..0000000000000000000000000000000000000000 --- a/kilo/GNUmakefile +++ /dev/null @@ -1,68 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED -# The flags below are only suggestions to use with Eva, and can be removed - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += -includefc_stubs.h -D__FRAMAC__EVA - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += \ - -kernel-warn-key typing:implicit-function-declaration=abort \ - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -eva-warn-key builtins:missing-spec=abort \ - -eva-no-alloc-returns-null \ - -main eva_main \ - -slevel 2 \ - -# (MANDATORY) Name of the main target -MAIN_TARGET := kilo - -# Add other targets if needed -TARGETS = $(MAIN_TARGET).eva - -# Default target -all: $(TARGETS) -help: - @echo "targets: $(TARGETS)" -display-targets: - @echo "$(TARGETS)" - -# (MANDATORY) List of source files used by MAIN_TARGET. -# If there is a JSON compilation database, -# 'frama-c-script list-files' can help obtain it -$(MAIN_TARGET).parse: kilo.c fc_stubs.c - - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -gui: $(MAIN_TARGET).eva.gui - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common diff --git a/kilo/frama-c-path.mk b/kilo/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/kilo/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/kilo/kilo.eva/nonterm.log b/kilo/kilo.eva/nonterm.log deleted file mode 100644 index 1014676a0a990765545467de862a1655133bccf3..0000000000000000000000000000000000000000 --- a/kilo/kilo.eva/nonterm.log +++ /dev/null @@ -1,3 +0,0 @@ -kilo.c:1271:[nonterm] warning: non-terminating loop -stack: main :: fc_stubs.c:78 <- eva_main -fc_stubs.c:78:[nonterm] warning: unreachable return diff --git a/libmodbus/.frama-c/GNUmakefile b/libmodbus/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..c1274769df7ba39a94d6c842a431803930aeac77 --- /dev/null +++ b/libmodbus/.frama-c/GNUmakefile @@ -0,0 +1,60 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = gcc_x86_64 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + -include__fc_libc_fixes.h \ + -I../src \ + -I.. \ + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -kernel-warn-key annot:missing-spec=abort \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + +## Eva-specific flags +EVAFLAGS += \ + -eva-warn-key builtins:missing-spec=abort \ + -eva-precision 4 \ + -eva-split-return full \ + -eva-no-alloc-returns-null \ + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +## Analysis targets (suffixed with .eva) +TARGETS = \ + libmodbus-random-client.eva \ + libmodbus-unit-server.eva \ + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites + +libmodbus-random-client.parse: \ + $(sort $(wildcard ../src/*.c)) \ + ../tests/random-test-client.c \ + $(shell $(FRAMAC)-config -print-share-path)/libc/string.c \ + +libmodbus-unit-server.parse: \ + $(sort $(wildcard ../src/*.c)) \ + ../tests/unit-test-server.c \ + $(shell $(FRAMAC)-config -print-share-path)/libc/netdb.c \ + $(shell $(FRAMAC)-config -print-share-path)/libc/string.c \ + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/libmodbus/__fc_libc_fixes.h b/libmodbus/.frama-c/__fc_libc_fixes.h similarity index 100% rename from libmodbus/__fc_libc_fixes.h rename to libmodbus/.frama-c/__fc_libc_fixes.h diff --git a/libmodbus/libmodbus-random-client.eva/alarms.csv b/libmodbus/.frama-c/libmodbus-random-client.eva/alarms.csv similarity index 100% rename from libmodbus/libmodbus-random-client.eva/alarms.csv rename to libmodbus/.frama-c/libmodbus-random-client.eva/alarms.csv diff --git a/libmodbus/libmodbus-random-client.eva/metrics.log b/libmodbus/.frama-c/libmodbus-random-client.eva/metrics.log similarity index 100% rename from libmodbus/libmodbus-random-client.eva/metrics.log rename to libmodbus/.frama-c/libmodbus-random-client.eva/metrics.log diff --git a/libmodbus/libmodbus-unit-server.eva/nonterm.log b/libmodbus/.frama-c/libmodbus-random-client.eva/nonterm.log similarity index 100% rename from libmodbus/libmodbus-unit-server.eva/nonterm.log rename to libmodbus/.frama-c/libmodbus-random-client.eva/nonterm.log diff --git a/jsmn/jsmn-example.eva/warnings.log b/libmodbus/.frama-c/libmodbus-random-client.eva/warnings.log similarity index 100% rename from jsmn/jsmn-example.eva/warnings.log rename to libmodbus/.frama-c/libmodbus-random-client.eva/warnings.log diff --git a/libmodbus/libmodbus-random-client.parse/framac.ast b/libmodbus/.frama-c/libmodbus-random-client.parse/framac.ast similarity index 100% rename from libmodbus/libmodbus-random-client.parse/framac.ast rename to libmodbus/.frama-c/libmodbus-random-client.parse/framac.ast diff --git a/libmodbus/libmodbus-random-client.parse/metrics.log b/libmodbus/.frama-c/libmodbus-random-client.parse/metrics.log similarity index 100% rename from libmodbus/libmodbus-random-client.parse/metrics.log rename to libmodbus/.frama-c/libmodbus-random-client.parse/metrics.log diff --git a/libmodbus/libmodbus-random-client.parse/warnings.log b/libmodbus/.frama-c/libmodbus-random-client.parse/warnings.log similarity index 100% rename from libmodbus/libmodbus-random-client.parse/warnings.log rename to libmodbus/.frama-c/libmodbus-random-client.parse/warnings.log diff --git a/libmodbus/libmodbus-unit-server.eva/alarms.csv b/libmodbus/.frama-c/libmodbus-unit-server.eva/alarms.csv similarity index 100% rename from libmodbus/libmodbus-unit-server.eva/alarms.csv rename to libmodbus/.frama-c/libmodbus-unit-server.eva/alarms.csv diff --git a/libmodbus/libmodbus-unit-server.eva/metrics.log b/libmodbus/.frama-c/libmodbus-unit-server.eva/metrics.log similarity index 100% rename from libmodbus/libmodbus-unit-server.eva/metrics.log rename to libmodbus/.frama-c/libmodbus-unit-server.eva/metrics.log diff --git a/libspng/libspng_example.eva/nonterm.log b/libmodbus/.frama-c/libmodbus-unit-server.eva/nonterm.log similarity index 100% rename from libspng/libspng_example.eva/nonterm.log rename to libmodbus/.frama-c/libmodbus-unit-server.eva/nonterm.log diff --git a/libmodbus/libmodbus-unit-server.eva/warnings.log b/libmodbus/.frama-c/libmodbus-unit-server.eva/warnings.log similarity index 100% rename from libmodbus/libmodbus-unit-server.eva/warnings.log rename to libmodbus/.frama-c/libmodbus-unit-server.eva/warnings.log diff --git a/libmodbus/libmodbus-unit-server.parse/framac.ast b/libmodbus/.frama-c/libmodbus-unit-server.parse/framac.ast similarity index 100% rename from libmodbus/libmodbus-unit-server.parse/framac.ast rename to libmodbus/.frama-c/libmodbus-unit-server.parse/framac.ast diff --git a/libmodbus/libmodbus-unit-server.parse/metrics.log b/libmodbus/.frama-c/libmodbus-unit-server.parse/metrics.log similarity index 100% rename from libmodbus/libmodbus-unit-server.parse/metrics.log rename to libmodbus/.frama-c/libmodbus-unit-server.parse/metrics.log diff --git a/libmodbus/libmodbus-unit-server.parse/warnings.log b/libmodbus/.frama-c/libmodbus-unit-server.parse/warnings.log similarity index 100% rename from libmodbus/libmodbus-unit-server.parse/warnings.log rename to libmodbus/.frama-c/libmodbus-unit-server.parse/warnings.log diff --git a/libmodbus/.frama-c/path.mk b/libmodbus/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/libmodbus/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/libmodbus/GNUmakefile b/libmodbus/GNUmakefile deleted file mode 100644 index 76da693ca6f6b3435bb4b479951c6d6425a0fa4b..0000000000000000000000000000000000000000 --- a/libmodbus/GNUmakefile +++ /dev/null @@ -1,47 +0,0 @@ -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH. --include frama-c-path.mk - -FRAMAC_CONFIG ?= frama-c-config -FRAMAC_SHARE=$(shell $(FRAMAC_CONFIG) -print-share-path) -include $(FRAMAC_SHARE)/analysis-scripts/frama-c.mk - -# Define global parameters -CPPFLAGS = -include__fc_libc_fixes.h -I src -FCFLAGS += \ - -machdep gcc_x86_64 \ - -EVAFLAGS += \ - -eva-precision 4 \ - -eva-split-return full \ - -eva-no-alloc-returns-null \ - -# Export environment variable for Frama-C -export FRAMA_C_MEMORY_FOOTPRINT = 8 - -MAIN_TARGET := libmodbus-random-client -TARGETS = $(MAIN_TARGET).eva libmodbus-unit-server.eva -all: $(TARGETS) -help: - @echo "targets: $(TARGETS)" -display-targets: - @echo "$(TARGETS)" - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -gui: $(MAIN_TARGET).eva.gui - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -libmodbus-random-client.parse: $(sort $(wildcard src/*.c)) \ - tests/random-test-client.c $(FRAMAC_SHARE)/libc/string.c - -libmodbus-unit-server.parse: $(sort $(wildcard src/*.c)) \ - tests/unit-test-server.c $(FRAMAC_SHARE)/libc/netdb.c \ - $(FRAMAC_SHARE)/libc/string.c - -# optional, for OSCS --include ../Makefile.common diff --git a/libmodbus/frama-c-path.mk b/libmodbus/frama-c-path.mk deleted file mode 120000 index cb903a567fa039de4515a5da123faf75c237ccc0..0000000000000000000000000000000000000000 --- a/libmodbus/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../gzip124/frama-c-path.mk \ No newline at end of file diff --git a/libspng/.frama-c/GNUmakefile b/libspng/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..3f04db6634c0969c186c9522486cf5a38c083007 --- /dev/null +++ b/libspng/.frama-c/GNUmakefile @@ -0,0 +1,49 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_32 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + -I.. \ + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -kernel-warn-key annot:missing-spec=abort \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + +## Eva-specific flags +EVAFLAGS += \ + -eva-warn-key builtins:missing-spec=abort \ + -eva-plevel 256 \ + -eva-precision 5 \ + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +## Analysis targets (suffixed with .eva) +TARGETS = libspng-example.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +libspng-example.parse: \ + fc_stubs.c \ + ../examples/example.c \ + ../spng.c \ + $(shell $(FRAMAC)-config -print-share-path)/libc/stdio.c \ + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/microstrain/fc_stubs.c b/libspng/.frama-c/fc_stubs.c similarity index 100% rename from microstrain/fc_stubs.c rename to libspng/.frama-c/fc_stubs.c diff --git a/libspng/libspng_example.eva/alarms.csv b/libspng/.frama-c/libspng-example.eva/alarms.csv similarity index 97% rename from libspng/libspng_example.eva/alarms.csv rename to libspng/.frama-c/libspng-example.eva/alarms.csv index 38dc04567afe8c89e968f7812ac8ed68b1900baa..83509d222e95d82f2e108d1932d3a2f5af17227a 100644 --- a/libspng/libspng_example.eva/alarms.csv +++ b/libspng/.frama-c/libspng-example.eva/alarms.csv @@ -159,6 +159,7 @@ directory file line function property kind status property . spng.c 2304 spng_ctx_free dangling_pointer Unknown ¬\dangling(&(ctx->splt_list + i)->entries) . spng.c 2304 spng_ctx_free initialization Unknown \initialized(&(ctx->splt_list + i)->entries) . spng.c 2304 spng_ctx_free mem_access Unknown \valid_read(&(ctx->splt_list + i)->entries) +FRAMAC_SHARE/libc stdio.h 150 fopen precondition Unknown valid_filename: valid_read_string(filename) FRAMAC_SHARE/libc stdio.h 351 fread precondition Unknown valid_ptr_block: \valid((char *)ptr + (0 .. nmemb * size - 1)) FRAMAC_SHARE/libc stdlib.h 405 free precondition Unknown freeable: p ≡ \null ∨ \freeable(p) FRAMAC_SHARE/libc string.h 55 memcmp precondition Unknown valid_s1: valid_read_or_empty(s1, n) @@ -174,6 +175,10 @@ FRAMAC_SHARE/libc string.h 125 strlen precondition Unknown valid_string_s: valid FRAMAC_SHARE/libc string.h 137 strcmp precondition Unknown valid_string_s1: valid_read_string(s1) FRAMAC_SHARE/libc string.h 138 strcmp precondition Unknown valid_string_s2: valid_read_string(s2) FRAMAC_SHARE/libc string.h 220 strstr precondition Unknown valid_string_haystack: valid_read_string(haystack) +examples example.c 20 main mem_access Unknown \valid_read(argv + 1) +examples example.c 20 main precondition of fopen Unknown valid_filename: valid_read_string(filename) +examples example.c 23 main precondition of printf_va_2 Unknown valid_read_string(param0) +examples example.c 23 printf_va_2 precondition Unknown valid_read_string(param0) examples example.c 41 main precondition of fread Unknown valid_ptr_block: \valid((char *)ptr + (0 .. nmemb * size - 1)) examples example.c 120 main dangling_pointer Unknown ¬\dangling(&out) tests framac_stubs.h 78 crc32 ptr_comparison Unknown \pointer_comparable((void *)buf, (void *)0) diff --git a/libspng/libspng_example.eva/metrics.log b/libspng/.frama-c/libspng-example.eva/metrics.log similarity index 92% rename from libspng/libspng_example.eva/metrics.log rename to libspng/.frama-c/libspng-example.eva/metrics.log index 3ae2c80e7bc581584c0a6b505545bc104f3c26f5..64faf3de661513ca7a1a0ef7342c823c2482eb0d 100644 --- a/libspng/libspng_example.eva/metrics.log +++ b/libspng/.frama-c/libspng-example.eva/metrics.log @@ -1,8 +1,8 @@ [metrics] Eva coverage statistics ======================= -Syntactically reachable functions = 53 (out of 94) -Semantically reached functions = 45 -Coverage estimation = 84.9% +Syntactically reachable functions = 52 (out of 94) +Semantically reached functions = 44 +Coverage estimation = 84.6% Unreached functions (8) = <spng.c>: defilter_scanline; gamma_correct_row; paeth; @@ -18,10 +18,9 @@ Function spng_decode_image calls gamma_correct_row (at spng.c:2192) Function spng_decode_image calls read_chunks_after_idat (at spng.c:2242) [metrics] Statements analyzed by Eva -------------------------- -2380 stmts in analyzed functions, 1712 stmts analyzed (71.9%) +2367 stmts in analyzed functions, 1699 stmts analyzed (71.8%) buffer_read_fn: 9 stmts out of 9 (100.0%) crc32: 6 stmts out of 6 (100.0%) -eva_main: 13 stmts out of 13 (100.0%) get_ancillary: 4 stmts out of 4 (100.0%) read_s32: 4 stmts out of 4 (100.0%) read_u16: 3 stmts out of 3 (100.0%) diff --git a/polarssl/polarssl-server.eva/nonterm.log b/libspng/.frama-c/libspng-example.eva/nonterm.log similarity index 100% rename from polarssl/polarssl-server.eva/nonterm.log rename to libspng/.frama-c/libspng-example.eva/nonterm.log diff --git a/libspng/libspng_example.eva/warnings.log b/libspng/.frama-c/libspng-example.eva/warnings.log similarity index 100% rename from libspng/libspng_example.eva/warnings.log rename to libspng/.frama-c/libspng-example.eva/warnings.log diff --git a/libspng/libspng_example.parse/framac.ast b/libspng/.frama-c/libspng-example.parse/framac.ast similarity index 100% rename from libspng/libspng_example.parse/framac.ast rename to libspng/.frama-c/libspng-example.parse/framac.ast diff --git a/libspng/libspng_example.parse/metrics.log b/libspng/.frama-c/libspng-example.parse/metrics.log similarity index 100% rename from libspng/libspng_example.parse/metrics.log rename to libspng/.frama-c/libspng-example.parse/metrics.log diff --git a/libspng/libspng_example.parse/warnings.log b/libspng/.frama-c/libspng-example.parse/warnings.log similarity index 100% rename from libspng/libspng_example.parse/warnings.log rename to libspng/.frama-c/libspng-example.parse/warnings.log diff --git a/libspng/.frama-c/path.mk b/libspng/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/libspng/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/libspng/GNUmakefile b/libspng/GNUmakefile deleted file mode 100644 index 208d319d099ae413a0b42a905c57c122510b8edf..0000000000000000000000000000000000000000 --- a/libspng/GNUmakefile +++ /dev/null @@ -1,68 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED -# The flags below are only suggestions to use with Eva, and can be removed - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += \ - -main eva_main \ - -kernel-warn-key annot:missing-spec=abort \ - -kernel-warn-key typing:implicit-function-declaration=abort \ - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -eva-warn-key builtins:missing-spec=abort \ - -eva-plevel 256 \ - -eva-precision 5 \ - -# (MANDATORY) Name of the main target -MAIN_TARGET := libspng_example - -# Add other targets if needed -TARGETS = $(MAIN_TARGET).eva - -# Default target -all: $(TARGETS) - -# (MANDATORY) List of source files used by MAIN_TARGET. -# If there is a JSON compilation database, -# 'frama-c-script list-files' can help obtain it -$(MAIN_TARGET).parse: \ - fc_stubs.c \ - examples/example.c \ - spng.c \ - $(shell $(FRAMAC_CONFIG) -print-share-path)/libc/stdio.c \ - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -gui: $(MAIN_TARGET).eva.gui - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common diff --git a/libspng/frama-c-path.mk b/libspng/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/libspng/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/microstrain/.frama-c/GNUmakefile b/microstrain/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..2f00c594e154f864df7b16796fe1ff18fba2b659 --- /dev/null +++ b/microstrain/.frama-c/GNUmakefile @@ -0,0 +1,55 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_32 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + -I ../MIPSDK/C/Library/Include \ + -I ../include/microstrain_mips \ + -I ../MIPSDK/C/Utilities/Include \ + -D FIONREAD=0x541B \ + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -kernel-warn-key annot:missing-spec=abort \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + -eva-precision 2 \ + -main eva_main \ + +# -eva-precision 6: about 709 unknown/invalid (2 invalid), with 9 red alarms + +## Eva-specific flags +EVAFLAGS += \ + -eva-warn-key builtins:missing-spec=abort \ + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +## Analysis targets (suffixed with .eva) +TARGETS = microstrain_gx4_45_test.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +microstrain_gx4_45_test.parse: \ + fc_stubs.c \ + $(sort $(wildcard ../MIPSDK/C/Library/Source/*.c)) \ + ../MIPSDK/C/Utilities/Source/byteswap_utilities.c \ + ../src/mip_sdk_user_functions.c \ + ../MIPSDK/C/Examples/Linux/GX4-45/GX4_45_Test/GX4-45_Test.c \ + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/microstrain/.frama-c/fc_stubs.c b/microstrain/.frama-c/fc_stubs.c new file mode 100644 index 0000000000000000000000000000000000000000..fad866f2160ba5533c8658794a520c2bf0880962 --- /dev/null +++ b/microstrain/.frama-c/fc_stubs.c @@ -0,0 +1,23 @@ +// Stub for a main function which reads arguments from the command line, to be +// used by the Eva plug-in. +// This stub emulates non-deterministic input of up to 5 arguments, each up +// to 256 characters long. This is sufficient to ensure arbitrary input in +// virtually every case. +// Do not forget to add option '-main eva_main' in order to use this stub. + +#ifdef __FRAMAC__ +# include "__fc_builtin.h" +int main(int, char **); +static volatile int nondet; +int eva_main() { + int argc = Frama_C_interval(0, 5); + char argv0[256], argv1[256], argv2[256], argv3[256], argv4[256]; + char *argv[6] = {argv0, argv1, argv2, argv3, argv4, 0}; + //@ loop unroll 5; + for (int i = 0; i < 5; i++) { + Frama_C_make_unknown(argv[i], 255); + argv[i][255] = 0; + } + return main(argc, argv); +} +#endif // __FRAMAC__ diff --git a/microstrain/microstrain_gx4_45_test.eva/alarms.csv b/microstrain/.frama-c/microstrain_gx4_45_test.eva/alarms.csv similarity index 100% rename from microstrain/microstrain_gx4_45_test.eva/alarms.csv rename to microstrain/.frama-c/microstrain_gx4_45_test.eva/alarms.csv diff --git a/microstrain/microstrain_gx4_45_test.eva/metrics.log b/microstrain/.frama-c/microstrain_gx4_45_test.eva/metrics.log similarity index 100% rename from microstrain/microstrain_gx4_45_test.eva/metrics.log rename to microstrain/.frama-c/microstrain_gx4_45_test.eva/metrics.log diff --git a/microstrain/microstrain_gx4_45_test.eva/nonterm.log b/microstrain/.frama-c/microstrain_gx4_45_test.eva/nonterm.log similarity index 100% rename from microstrain/microstrain_gx4_45_test.eva/nonterm.log rename to microstrain/.frama-c/microstrain_gx4_45_test.eva/nonterm.log diff --git a/microstrain/microstrain_gx4_45_test.eva/warnings.log b/microstrain/.frama-c/microstrain_gx4_45_test.eva/warnings.log similarity index 100% rename from microstrain/microstrain_gx4_45_test.eva/warnings.log rename to microstrain/.frama-c/microstrain_gx4_45_test.eva/warnings.log diff --git a/microstrain/microstrain_gx4_45_test.parse/framac.ast b/microstrain/.frama-c/microstrain_gx4_45_test.parse/framac.ast similarity index 100% rename from microstrain/microstrain_gx4_45_test.parse/framac.ast rename to microstrain/.frama-c/microstrain_gx4_45_test.parse/framac.ast diff --git a/microstrain/microstrain_gx4_45_test.parse/metrics.log b/microstrain/.frama-c/microstrain_gx4_45_test.parse/metrics.log similarity index 100% rename from microstrain/microstrain_gx4_45_test.parse/metrics.log rename to microstrain/.frama-c/microstrain_gx4_45_test.parse/metrics.log diff --git a/microstrain/microstrain_gx4_45_test.parse/warnings.log b/microstrain/.frama-c/microstrain_gx4_45_test.parse/warnings.log similarity index 100% rename from microstrain/microstrain_gx4_45_test.parse/warnings.log rename to microstrain/.frama-c/microstrain_gx4_45_test.parse/warnings.log diff --git a/microstrain/.frama-c/path.mk b/microstrain/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/microstrain/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/microstrain/GNUmakefile b/microstrain/GNUmakefile deleted file mode 100644 index dae48256c56ebcbdf2bf1693566f88e1d4028362..0000000000000000000000000000000000000000 --- a/microstrain/GNUmakefile +++ /dev/null @@ -1,81 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED -# The flags below are only suggestions to use with Eva, and can be removed - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += \ - -I MIPSDK/C/Library/Include \ - -I include/microstrain_mips \ - -I MIPSDK/C/Utilities/Include \ - -D FIONREAD=0x541B \ - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += \ - -machdep x86_32 \ - -kernel-warn-key annot:missing-spec=abort \ - -kernel-warn-key typing:implicit-function-declaration=abort \ - -eva-precision 2 \ - -main eva_main \ - -# -eva-precision 6: about 709 unknown/invalid (2 invalid), with 9 red alarms - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -eva-warn-key builtins:missing-spec=abort \ - -# (MANDATORY) Name of the main target -MAIN_TARGET := microstrain_gx4_45_test - -# Add other targets if needed -TARGETS = $(MAIN_TARGET).eva - -# Default target -all: $(TARGETS) - -# (MANDATORY) List of source files used by MAIN_TARGET. -# If there is a JSON compilation database, -# 'frama-c-script list-files' can help obtain it -microstrain_gx4_45_test.parse: \ - fc_stubs.c \ - $(sort $(wildcard MIPSDK/C/Library/Source/*.c)) \ - MIPSDK/C/Utilities/Source/byteswap_utilities.c \ - src/mip_sdk_user_functions.c \ - MIPSDK/C/Examples/Linux/GX4-45/GX4_45_Test/GX4-45_Test.c \ - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -loop: $(TARGETS:%.eva=%.parse.loop) $(TARGETS:%=%.loop) -gui: $(MAIN_TARGET).eva.gui - -# Run 'make <TARGET>.eva.loop' to obtain a .loop file, fine-tune it by hand, -# then rename it to <TARGET>.slevel to prevent it from being overwritten. -# If such file exists, use it to define per-function slevel values. -ifneq (,$(wildcard $(MAIN_TARGET).slevel)) -$(MAIN_TARGET).eva: \ - EVAFLAGS += $(shell cat $(MAIN_TARGET).slevel | tr -d '\n\\') -endif - -# optional, for OSCS --include ../Makefile.common diff --git a/microstrain/frama-c-path.mk b/microstrain/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/microstrain/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/mini-gmp/.frama-c/GNUmakefile b/mini-gmp/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..8a914899a0ab033ce297e0e61b25e2f24a8571ba --- /dev/null +++ b/mini-gmp/.frama-c/GNUmakefile @@ -0,0 +1,53 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = gcc_x86_32 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + -std=c99 \ + -I .. \ + +# note: '-std=c99' is used to avoid issues with old GCCs (< 5) due to the +# presence of inline attributes. + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -kernel-warn-key annot:missing-spec=abort \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + -main testmain \ + +## Eva-specific flags +EVAFLAGS += \ + -eva-warn-key builtins:missing-spec=abort \ + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +## Analysis targets (suffixed with .eva) +TARGETS = mini-gmp.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +mini-gmp.parse: \ + ../tests/t-add.c \ + ../mini-gmp.c \ + ../tests/hex-random.c \ + ../tests/mini-random.c \ + fc_stubs.h \ + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/mini-gmp/fc_stubs.h b/mini-gmp/.frama-c/fc_stubs.h similarity index 100% rename from mini-gmp/fc_stubs.h rename to mini-gmp/.frama-c/fc_stubs.h diff --git a/mini-gmp/mini-gmp.eva/alarms.csv b/mini-gmp/.frama-c/mini-gmp.eva/alarms.csv similarity index 100% rename from mini-gmp/mini-gmp.eva/alarms.csv rename to mini-gmp/.frama-c/mini-gmp.eva/alarms.csv diff --git a/mini-gmp/mini-gmp.eva/metrics.log b/mini-gmp/.frama-c/mini-gmp.eva/metrics.log similarity index 100% rename from mini-gmp/mini-gmp.eva/metrics.log rename to mini-gmp/.frama-c/mini-gmp.eva/metrics.log diff --git a/mini-gmp/mini-gmp.eva/nonterm.log b/mini-gmp/.frama-c/mini-gmp.eva/nonterm.log similarity index 100% rename from mini-gmp/mini-gmp.eva/nonterm.log rename to mini-gmp/.frama-c/mini-gmp.eva/nonterm.log diff --git a/mini-gmp/mini-gmp.eva/warnings.log b/mini-gmp/.frama-c/mini-gmp.eva/warnings.log similarity index 100% rename from mini-gmp/mini-gmp.eva/warnings.log rename to mini-gmp/.frama-c/mini-gmp.eva/warnings.log diff --git a/mini-gmp/mini-gmp.parse/framac.ast b/mini-gmp/.frama-c/mini-gmp.parse/framac.ast similarity index 99% rename from mini-gmp/mini-gmp.parse/framac.ast rename to mini-gmp/.frama-c/mini-gmp.parse/framac.ast index 648cfb1867052f9667e72dc274e1779ccad9b68a..e2fa7185547337d0375ef72c22b184ea7457558a 100644 --- a/mini-gmp/mini-gmp.parse/framac.ast +++ b/mini-gmp/.frama-c/mini-gmp.parse/framac.ast @@ -1,11 +1,11 @@ /* Generated by Frama-C */ -#include "__fc_builtin.h" #include "assert.h" #include "ctype.h" #include "errno.h" #include "signal.h" #include "stdarg.h" #include "stddef.h" +#include "stdint.h" #include "stdio.h" #include "stdlib.h" #include "string.h" diff --git a/mini-gmp/mini-gmp.parse/metrics.log b/mini-gmp/.frama-c/mini-gmp.parse/metrics.log similarity index 100% rename from mini-gmp/mini-gmp.parse/metrics.log rename to mini-gmp/.frama-c/mini-gmp.parse/metrics.log diff --git a/jsmn/jsmn-example.parse/warnings.log b/mini-gmp/.frama-c/mini-gmp.parse/warnings.log similarity index 100% rename from jsmn/jsmn-example.parse/warnings.log rename to mini-gmp/.frama-c/mini-gmp.parse/warnings.log diff --git a/mini-gmp/.frama-c/path.mk b/mini-gmp/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/mini-gmp/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/mini-gmp/GNUmakefile b/mini-gmp/GNUmakefile deleted file mode 100644 index e7f31b863f781ed7ca8f583704e852846c6fd2a2..0000000000000000000000000000000000000000 --- a/mini-gmp/GNUmakefile +++ /dev/null @@ -1,71 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED -# The flags below are only suggestions to use with Eva, and can be removed - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += -include__fc_builtin.h -std=c99 -# note: '-std=c99' is used to avoid issues with old GCCs (< 5) due to the -# presence of inline attributes. - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += \ - -machdep gcc_x86_32 \ - -kernel-warn-key annot:missing-spec=abort \ - -kernel-warn-key typing:implicit-function-declaration=abort \ - -main testmain \ - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -eva-warn-key builtins:missing-spec=abort \ - - -# (MANDATORY) Name of the main target -MAIN_TARGET := mini-gmp - -# Add other targets if needed -TARGETS = $(MAIN_TARGET).eva - -# Default target -all: $(TARGETS) -help: - @echo "targets: $(TARGETS)" -display-targets: - @echo "$(TARGETS)" - -# (MANDATORY) List of source files used by MAIN_TARGET. -# If there is a JSON compilation database, -# 'frama-c-script list-files' can help obtain it -$(MAIN_TARGET).parse: tests/t-add.c mini-gmp.c tests/hex-random.c tests/mini-random.c fc_stubs.h - - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -gui: $(MAIN_TARGET).eva.gui - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common diff --git a/mini-gmp/frama-c-path.mk b/mini-gmp/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/mini-gmp/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/monocypher/.frama-c/GNUmakefile b/monocypher/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..c9675cf9b471a64ded57c57eaa8457264636b3d6 --- /dev/null +++ b/monocypher/.frama-c/GNUmakefile @@ -0,0 +1,54 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_64 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + -I../src \ + -I../src/optional \ + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -kernel-warn-key annot:missing-spec=abort \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + -no-warn-signed-overflow \ + +## Eva-specific flags +EVAFLAGS += \ + -slevel 8 \ + -eva-split-return auto \ + -eva-warn-key signed-overflow=inactive \ + -eva-warn-key builtins:missing-spec=abort \ + +# -eva-domains gauges : -6 alarms, +1m30 analysis time +# -eva-domains equality : +3 alarms (!), +1m30 analysis time + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +## Analysis targets (suffixed with .eva) +TARGETS = monocypher.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +monocypher.parse: \ + ../src/monocypher.c \ + ../src/optional/sha512.c \ + ../tests/test.c \ + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/monocypher/monocypher.eva/alarms.csv b/monocypher/.frama-c/monocypher.eva/alarms.csv similarity index 100% rename from monocypher/monocypher.eva/alarms.csv rename to monocypher/.frama-c/monocypher.eva/alarms.csv diff --git a/monocypher/monocypher.eva/metrics.log b/monocypher/.frama-c/monocypher.eva/metrics.log similarity index 100% rename from monocypher/monocypher.eva/metrics.log rename to monocypher/.frama-c/monocypher.eva/metrics.log diff --git a/monocypher/monocypher.eva/nonterm.log b/monocypher/.frama-c/monocypher.eva/nonterm.log similarity index 100% rename from monocypher/monocypher.eva/nonterm.log rename to monocypher/.frama-c/monocypher.eva/nonterm.log diff --git a/monocypher/monocypher.eva/warnings.log b/monocypher/.frama-c/monocypher.eva/warnings.log similarity index 100% rename from monocypher/monocypher.eva/warnings.log rename to monocypher/.frama-c/monocypher.eva/warnings.log diff --git a/monocypher/monocypher.parse/framac.ast b/monocypher/.frama-c/monocypher.parse/framac.ast similarity index 100% rename from monocypher/monocypher.parse/framac.ast rename to monocypher/.frama-c/monocypher.parse/framac.ast diff --git a/monocypher/monocypher.parse/metrics.log b/monocypher/.frama-c/monocypher.parse/metrics.log similarity index 100% rename from monocypher/monocypher.parse/metrics.log rename to monocypher/.frama-c/monocypher.parse/metrics.log diff --git a/jsmn/jsmn-main.eva/warnings.log b/monocypher/.frama-c/monocypher.parse/warnings.log similarity index 100% rename from jsmn/jsmn-main.eva/warnings.log rename to monocypher/.frama-c/monocypher.parse/warnings.log diff --git a/monocypher/.frama-c/path.mk b/monocypher/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/monocypher/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/monocypher/GNUmakefile b/monocypher/GNUmakefile deleted file mode 100644 index d46169131dd000f5bf70447dfaf49f3ff8d8b37c..0000000000000000000000000000000000000000 --- a/monocypher/GNUmakefile +++ /dev/null @@ -1,75 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += -Isrc -Isrc/optional - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += \ - -machdep x86_64 \ - -no-warn-signed-overflow \ - -# msg key callstack is too unstable and causes oracle changes more often than -# -# -kernel-msg-key callstack \ - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -slevel 8 \ - -eva-split-return auto \ - -eva-warn-key signed-overflow=inactive \ - -# -eva-gauges-domain : -6 alarms, +1m30 analysis time -# -eva-equality-domain : +3 alarms (!), +1m30 analysis time - -#FCGUIFLAGS += -kernel-msg-key callstack - -# (MANDATORY) Name of the main target -MAIN_TARGET := monocypher - -# Add other targets if needed -TARGETS = $(MAIN_TARGET).eva - -# Default target -all: $(TARGETS) -help: - @echo "targets: $(TARGETS)" -display-targets: - @echo "$(TARGETS)" - -# (MANDATORY) List of source files used by MAIN_TARGET, usually obtained -# via a JSON compilation database + analysis-scripts/list_files.py -$(MAIN_TARGET).parse: src/monocypher.c src/optional/sha512.c tests/test.c - - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -gui: $(MAIN_TARGET).eva.gui - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common diff --git a/monocypher/frama-c-path.mk b/monocypher/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/monocypher/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/papabench/.frama-c/GNUmakefile b/papabench/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..6fa8d7ff440db37b3af07f5d303302dbf988266f --- /dev/null +++ b/papabench/.frama-c/GNUmakefile @@ -0,0 +1,57 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_32 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + -DUBX \ + -D__FAKE_FOR_IA32__ \ + -D_XOPEN_SOURCE=700 \ + -I../sw/airborne/fly_by_wire \ + -I../sw/var/include \ + -I../sw/airborne/autopilot \ + -I../avr/include \ + -iquote ../sw/include \ + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -kernel-warn-key annot:missing-spec=abort \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + -absolute-valid-range 0-0xFF -warn-special-float nan \ + +## Eva-specific flags +EVAFLAGS += \ + -eva-warn-key builtins:missing-spec=abort \ + -slevel 1 \ + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +## Analysis targets (suffixed with .eva) +TARGETS = papabench.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +papabench.parse: \ + $(sort $(wildcard ../sw/airborne/autopilot/*.c)) \ + ../sw/lib/c/math.c \ + $(shell $(FRAMAC)-config -print-share-path)/libc/math.c \ + fc_stubs.h \ + + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/papabench/.frama-c/fc_stubs.h b/papabench/.frama-c/fc_stubs.h new file mode 100644 index 0000000000000000000000000000000000000000..da9095782aa902c5cb2ae3af9fba3c9028e8d106 --- /dev/null +++ b/papabench/.frama-c/fc_stubs.h @@ -0,0 +1,10 @@ +/*@ + requires valid_exp: \valid(exp); + assigns \result, *exp \from x; + */ +float frexpf(float x, int *exp); + +/*@ + assigns \result \from x, exp; + */ +double ldexp(double x, int exp); diff --git a/papabench/papabench.eva/alarms.csv b/papabench/.frama-c/papabench.eva/alarms.csv similarity index 94% rename from papabench/papabench.eva/alarms.csv rename to papabench/.frama-c/papabench.eva/alarms.csv index b808f21c31204f3c6fa75c62db17790da1df540e..10a41edf2d257bff7cc02767e3214884e6f77c2a 100644 --- a/papabench/papabench.eva/alarms.csv +++ b/papabench/.frama-c/papabench.eva/alarms.csv @@ -1,9 +1,4 @@ directory file line function property kind status property -FRAMAC_SHARE/libc math.h 351 frexpf assigns clause Unknown assigns \result, *exp; -FRAMAC_SHARE/libc math.h 351 frexpf from clause Unknown assigns *exp \from *exp, value; -FRAMAC_SHARE/libc math.h 351 frexpf from clause Unknown assigns \result \from *exp, value; -FRAMAC_SHARE/libc math.h 358 ldexp assigns clause Unknown assigns \nothing; -FRAMAC_SHARE/libc math.h 358 ldexp from clause Unknown assigns \result \from x, exp; sw/airborne/autopilot estimator.c 116 estimator_update_state_infrared is_nan Unknown ¬\is_NaN(\mul_float(rad_of_ir, (float)ir_roll)) sw/airborne/autopilot estimator.c 118 estimator_update_state_infrared is_nan Unknown ¬\is_NaN(\mul_float(rad_of_ir, (float)ir_pitch)) sw/airborne/autopilot estimator.c 158 estimator_update_ir_estim is_nan Unknown ¬\is_NaN(\div_float(estimator_update_ir_estim_sum_xy, estimator_update_ir_estim_sum_xx)) diff --git a/papabench/papabench.eva/metrics.log b/papabench/.frama-c/papabench.eva/metrics.log similarity index 100% rename from papabench/papabench.eva/metrics.log rename to papabench/.frama-c/papabench.eva/metrics.log diff --git a/papabench/papabench.eva/nonterm.log b/papabench/.frama-c/papabench.eva/nonterm.log similarity index 100% rename from papabench/papabench.eva/nonterm.log rename to papabench/.frama-c/papabench.eva/nonterm.log diff --git a/khash/khash.eva/warnings.log b/papabench/.frama-c/papabench.eva/warnings.log similarity index 100% rename from khash/khash.eva/warnings.log rename to papabench/.frama-c/papabench.eva/warnings.log diff --git a/papabench/papabench.parse/framac.ast b/papabench/.frama-c/papabench.parse/framac.ast similarity index 100% rename from papabench/papabench.parse/framac.ast rename to papabench/.frama-c/papabench.parse/framac.ast diff --git a/papabench/papabench.parse/metrics.log b/papabench/.frama-c/papabench.parse/metrics.log similarity index 100% rename from papabench/papabench.parse/metrics.log rename to papabench/.frama-c/papabench.parse/metrics.log diff --git a/papabench/papabench.parse/warnings.log b/papabench/.frama-c/papabench.parse/warnings.log similarity index 100% rename from papabench/papabench.parse/warnings.log rename to papabench/.frama-c/papabench.parse/warnings.log diff --git a/papabench/.frama-c/path.mk b/papabench/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/papabench/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/papabench/GNUmakefile b/papabench/GNUmakefile deleted file mode 100644 index 3dfe7cd645cd993012691ab5d1680fb867170c80..0000000000000000000000000000000000000000 --- a/papabench/GNUmakefile +++ /dev/null @@ -1,73 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED -# The flags below are only suggestions to use with Eva, and can be removed - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += -DUBX -D__FAKE_FOR_IA32__ -D_XOPEN_SOURCE=700 \ - -Isw/airborne/fly_by_wire \ - -Isw/var/include \ - -Isw/airborne/autopilot \ - -Iavr/include \ - -iquote sw/include \ - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += \ - -kernel-warn-key typing:implicit-function-declaration=abort \ - -absolute-valid-range 0-0xFF -warn-special-float nan \ - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -eva-warn-key builtins:missing-spec=abort \ - -slevel 1 \ - -# (MANDATORY) Name of the main target -MAIN_TARGET := papabench - -# Add other targets if needed -TARGETS = $(MAIN_TARGET).eva - -# Default target -all: $(TARGETS) -help: - @echo "targets: $(TARGETS)" -display-targets: - @echo "$(TARGETS)" - -# (MANDATORY) List of source files used by MAIN_TARGET. -# If there is a JSON compilation database, -# 'frama-c-script list-files' can help obtain it -$(MAIN_TARGET).parse: $(sort $(wildcard sw/airborne/autopilot/*.c)) sw/lib/c/math.c \ - $(shell $(FRAMAC_CONFIG) -print-share-path)/libc/math.c - - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -gui: $(MAIN_TARGET).eva.gui - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common diff --git a/papabench/frama-c-path.mk b/papabench/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/papabench/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/papabench/papabench.eva/warnings.log b/papabench/papabench.eva/warnings.log deleted file mode 100644 index 75cd138033ad149abcfb48a96fb282337c05fffb..0000000000000000000000000000000000000000 --- a/papabench/papabench.eva/warnings.log +++ /dev/null @@ -1,2 +0,0 @@ -sw/lib/c/math.c:85:[kernel:annot:missing-spec] warning: Neither code nor specification for function frexpf, generating default assigns from the prototype -sw/lib/c/math.c:86:[kernel:annot:missing-spec] warning: Neither code nor specification for function ldexp, generating default assigns from the prototype diff --git a/frama-c-path.mk b/path.mk similarity index 69% rename from frama-c-path.mk rename to path.mk index 6a457608bc70478d26391614aa523cccf57fd22f..87880529425588265c3d9b841cbe2d23886386d2 100644 --- a/frama-c-path.mk +++ b/path.mk @@ -1,8 +1,7 @@ -FRAMAC_DIR=../frama-c/build/bin +FRAMAC_DIR=../../frama-c/build/bin ifeq ($(wildcard $(FRAMAC_DIR)),) # Frama-C not installed locally; using the version in the PATH else FRAMAC=$(FRAMAC_DIR)/frama-c FRAMAC_GUI=$(FRAMAC_DIR)/frama-c-gui -FRAMAC_CONFIG=$(FRAMAC_DIR)/frama-c-config endif diff --git a/polarssl/.frama-c/GNUmakefile b/polarssl/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..5ca7506930d1041951137908906000df7dfb2d67 --- /dev/null +++ b/polarssl/.frama-c/GNUmakefile @@ -0,0 +1,98 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_32 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + -CC \ + -I.. \ + +# -CC is used to preserve loop unroll annotations from expanded macros + +## General flags +FCFLAGS += \ + -json-compilation-database .. \ + -add-symbolic-path=.:.. \ + -kernel-warn-key annot:missing-spec=abort \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + +# (Optional) Eva-specific flags +EVAFLAGS += \ + -eva-subdivide-non-linear 16 \ + -eva-ilevel 13 \ + -eva-no-alloc-returns-null \ + -eva-use-spec $(call fc_list,$(USE_SPEC)) \ + -eva-slevel 2 \ + +USE_SPEC += \ + my_set_session \ + my_get_session \ + aes_setkey_enc \ + aes_setkey_dec \ + aes_crypt_cbc \ + des3_crypt_ecb \ + des3_crypt_cbc \ + des_setkey \ + arc4_crypt \ + ssl_free \ + x509_free \ + x509parse_crt \ + x509parse_key \ + x509parse_verifycrl \ + hardclock \ + sha4_update \ + sha4_process \ + sha1_process \ + sha1_finish \ + aes_crypt_ecb \ + md5_process \ + ctr_drbg_random \ + dhm_check_range \ + dhm_make_params \ + mpi_free \ + mpi_exp_mod \ + mpi_fill_random \ + mpi_read_string \ + mpi_read_binary \ + mpi_msb \ + mpi_write_binary \ + mpi_cmp_mpi \ + mpi_cmp_abs \ + mpi_copy \ + mpi_sub_mpi \ + mpi_mod_mpi \ + mpi_mul_mpi \ + mpi_add_abs \ + mpi_sub_abs \ + camellia_crypt_cbc \ + camellia_feistel \ + sha4 \ + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +## Analysis targets (suffixed with .eva) +TARGETS = polarssl-server.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +polarssl-server.parse: \ + fc_stubs.h \ + $(sort $(wildcard ../library/*.c)) \ + ../programs/ssl/ssl_server.c \ + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/polarssl/stubs.h b/polarssl/.frama-c/fc_stubs.h similarity index 100% rename from polarssl/stubs.h rename to polarssl/.frama-c/fc_stubs.h diff --git a/polarssl/.frama-c/path.mk b/polarssl/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/polarssl/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/polarssl/polarssl-server.eva/alarms.csv b/polarssl/.frama-c/polarssl-server.eva/alarms.csv similarity index 75% rename from polarssl/polarssl-server.eva/alarms.csv rename to polarssl/.frama-c/polarssl-server.eva/alarms.csv index 3b48d40e77317c68bc18deb930f10c2561ea26dc..8fe54a75b4cf5d87ef2e9c55b33bc8bfd08def8b 100644 --- a/polarssl/polarssl-server.eva/alarms.csv +++ b/polarssl/.frama-c/polarssl-server.eva/alarms.csv @@ -1,40 +1,40 @@ directory file line function property kind status property -. stubs.h 20 aes_setkey_enc postcondition Unknown \initialized(&\old(ctx)->rk) -. stubs.h 21 aes_setkey_enc postcondition Unknown \old(ctx)->nr ≡ 10 ∨ \old(ctx)->nr ≡ 12 ∨ \old(ctx)->nr ≡ 14 -. stubs.h 32 aes_setkey_dec postcondition Unknown \old(ctx)->nr ≡ 10 ∨ \old(ctx)->nr ≡ 12 ∨ \old(ctx)->nr ≡ 14 -. stubs.h 37 aes_crypt_cbc precondition Unknown length % 16 ≡ 0 -. stubs.h 39 aes_crypt_cbc precondition Unknown \valid(output + (0 .. length - 1)) -. stubs.h 40 aes_crypt_cbc precondition Unknown \valid_read(input + (0 .. length - 1)) -. stubs.h 88 sha1_process precondition Unknown \valid_read(data + (0 .. 63)) -. stubs.h 104 sha1_finish postcondition Unknown \initialized(\old(output) + (0 .. 19)) -. stubs.h 110 sha4 precondition Unknown \initialized(input + (0 .. ilen - 1)) -. stubs.h 113 sha4 postcondition Unknown \initialized(\old(output) + (0 .. 63)) -. stubs.h 130 md5_process precondition Unknown \valid_read(data + (0 .. 63)) -. stubs.h 141 md5_finish precondition Unknown \valid(output + (0 .. 15)) -. stubs.h 150 ctr_drbg_random postcondition Unknown \initialized(\old(output) + (0 .. \old(output_len) - 1)) -. stubs.h 166 dhm_make_params postcondition Unknown \initialized(\old(olen)) -. stubs.h 167 dhm_make_params postcondition Unknown \old(ctx)->len ≡ 128 -. stubs.h 181 mpi_exp_mod postcondition Unknown \old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1 -. stubs.h 205 mpi_write_binary postcondition Unknown \initialized(\old(buf) + (0 .. \old(buflen) - 1)) -. stubs.h 236 mpi_sub_mpi postcondition Unknown \old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1 -. stubs.h 245 mpi_mul_mpi postcondition Unknown \old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1 -. stubs.h 254 mpi_mod_mpi postcondition Unknown \old(R)->s ≡ 1 ∨ \old(R)->s ≡ -1 -. stubs.h 263 mpi_add_abs postcondition Unknown \old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1 -. stubs.h 272 mpi_sub_abs postcondition Unknown \old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1 -. stubs.h 290 mpi_read_string postcondition Unknown \old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1 -. stubs.h 295 mpi_read_binary precondition Unknown \valid_read(buf + (0 .. buflen - 1)) -. stubs.h 298 mpi_read_binary postcondition Unknown \old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1 -. stubs.h 304 arc4_crypt precondition Unknown \valid_read(input + (0 .. length - 1)) -. stubs.h 305 arc4_crypt precondition Unknown \valid(output + (0 .. length - 1)) -. stubs.h 307 arc4_crypt postcondition Unknown \initialized(\old(output) + (0 .. \old(length) - 1)) -. stubs.h 318 camellia_crypt_cbc precondition Unknown length % 16 ≡ 0 -. stubs.h 320 camellia_crypt_cbc precondition Unknown \valid(output + (0 .. length - 1)) -. stubs.h 321 camellia_crypt_cbc precondition Unknown \valid_read(input + (0 .. length - 1)) -. stubs.h 351 des3_crypt_cbc postcondition Unknown \result ≡ -0x0032 -. stubs.h 355 des3_crypt_cbc precondition Unknown \valid_read(input + (0 .. length - 1)) -. stubs.h 356 des3_crypt_cbc precondition Unknown \initialized(input + (0 .. length - 1)) -. stubs.h 361 des3_crypt_cbc postcondition Unknown \initialized(\old(output) + (0 .. \old(length) - 1)) -. stubs.h 362 des3_crypt_cbc postcondition Unknown \result ≡ 0 +. fc_stubs.h 20 aes_setkey_enc postcondition Unknown \initialized(&\old(ctx)->rk) +. fc_stubs.h 21 aes_setkey_enc postcondition Unknown \old(ctx)->nr ≡ 10 ∨ \old(ctx)->nr ≡ 12 ∨ \old(ctx)->nr ≡ 14 +. fc_stubs.h 32 aes_setkey_dec postcondition Unknown \old(ctx)->nr ≡ 10 ∨ \old(ctx)->nr ≡ 12 ∨ \old(ctx)->nr ≡ 14 +. fc_stubs.h 37 aes_crypt_cbc precondition Unknown length % 16 ≡ 0 +. fc_stubs.h 39 aes_crypt_cbc precondition Unknown \valid(output + (0 .. length - 1)) +. fc_stubs.h 40 aes_crypt_cbc precondition Unknown \valid_read(input + (0 .. length - 1)) +. fc_stubs.h 88 sha1_process precondition Unknown \valid_read(data + (0 .. 63)) +. fc_stubs.h 104 sha1_finish postcondition Unknown \initialized(\old(output) + (0 .. 19)) +. fc_stubs.h 110 sha4 precondition Unknown \initialized(input + (0 .. ilen - 1)) +. fc_stubs.h 113 sha4 postcondition Unknown \initialized(\old(output) + (0 .. 63)) +. fc_stubs.h 130 md5_process precondition Unknown \valid_read(data + (0 .. 63)) +. fc_stubs.h 141 md5_finish precondition Unknown \valid(output + (0 .. 15)) +. fc_stubs.h 150 ctr_drbg_random postcondition Unknown \initialized(\old(output) + (0 .. \old(output_len) - 1)) +. fc_stubs.h 166 dhm_make_params postcondition Unknown \initialized(\old(olen)) +. fc_stubs.h 167 dhm_make_params postcondition Unknown \old(ctx)->len ≡ 128 +. fc_stubs.h 181 mpi_exp_mod postcondition Unknown \old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1 +. fc_stubs.h 205 mpi_write_binary postcondition Unknown \initialized(\old(buf) + (0 .. \old(buflen) - 1)) +. fc_stubs.h 236 mpi_sub_mpi postcondition Unknown \old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1 +. fc_stubs.h 245 mpi_mul_mpi postcondition Unknown \old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1 +. fc_stubs.h 254 mpi_mod_mpi postcondition Unknown \old(R)->s ≡ 1 ∨ \old(R)->s ≡ -1 +. fc_stubs.h 263 mpi_add_abs postcondition Unknown \old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1 +. fc_stubs.h 272 mpi_sub_abs postcondition Unknown \old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1 +. fc_stubs.h 290 mpi_read_string postcondition Unknown \old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1 +. fc_stubs.h 295 mpi_read_binary precondition Unknown \valid_read(buf + (0 .. buflen - 1)) +. fc_stubs.h 298 mpi_read_binary postcondition Unknown \old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1 +. fc_stubs.h 304 arc4_crypt precondition Unknown \valid_read(input + (0 .. length - 1)) +. fc_stubs.h 305 arc4_crypt precondition Unknown \valid(output + (0 .. length - 1)) +. fc_stubs.h 307 arc4_crypt postcondition Unknown \initialized(\old(output) + (0 .. \old(length) - 1)) +. fc_stubs.h 318 camellia_crypt_cbc precondition Unknown length % 16 ≡ 0 +. fc_stubs.h 320 camellia_crypt_cbc precondition Unknown \valid(output + (0 .. length - 1)) +. fc_stubs.h 321 camellia_crypt_cbc precondition Unknown \valid_read(input + (0 .. length - 1)) +. fc_stubs.h 351 des3_crypt_cbc postcondition Unknown \result ≡ -0x0032 +. fc_stubs.h 355 des3_crypt_cbc precondition Unknown \valid_read(input + (0 .. length - 1)) +. fc_stubs.h 356 des3_crypt_cbc precondition Unknown \initialized(input + (0 .. length - 1)) +. fc_stubs.h 361 des3_crypt_cbc postcondition Unknown \initialized(\old(output) + (0 .. \old(length) - 1)) +. fc_stubs.h 362 des3_crypt_cbc postcondition Unknown \result ≡ 0 FRAMAC_SHARE/libc string.h 92 memcpy precondition Unknown valid_dest: valid_or_empty(dest, n) FRAMAC_SHARE/libc string.h 93 memcpy precondition Unknown valid_src: valid_read_or_empty(src, n) FRAMAC_SHARE/libc string.h 104 memmove precondition Unknown valid_dest: valid_or_empty(dest, n) diff --git a/polarssl/polarssl-server.eva/metrics.log b/polarssl/.frama-c/polarssl-server.eva/metrics.log similarity index 100% rename from polarssl/polarssl-server.eva/metrics.log rename to polarssl/.frama-c/polarssl-server.eva/metrics.log diff --git a/qlz/qlz-compress.eva/nonterm.log b/polarssl/.frama-c/polarssl-server.eva/nonterm.log similarity index 100% rename from qlz/qlz-compress.eva/nonterm.log rename to polarssl/.frama-c/polarssl-server.eva/nonterm.log diff --git a/kilo/kilo.parse/warnings.log b/polarssl/.frama-c/polarssl-server.eva/warnings.log similarity index 100% rename from kilo/kilo.parse/warnings.log rename to polarssl/.frama-c/polarssl-server.eva/warnings.log diff --git a/polarssl/polarssl-server.parse/framac.ast b/polarssl/.frama-c/polarssl-server.parse/framac.ast similarity index 100% rename from polarssl/polarssl-server.parse/framac.ast rename to polarssl/.frama-c/polarssl-server.parse/framac.ast diff --git a/polarssl/polarssl-server.parse/metrics.log b/polarssl/.frama-c/polarssl-server.parse/metrics.log similarity index 100% rename from polarssl/polarssl-server.parse/metrics.log rename to polarssl/.frama-c/polarssl-server.parse/metrics.log diff --git a/polarssl/polarssl-server.parse/warnings.log b/polarssl/.frama-c/polarssl-server.parse/warnings.log similarity index 100% rename from polarssl/polarssl-server.parse/warnings.log rename to polarssl/.frama-c/polarssl-server.parse/warnings.log diff --git a/polarssl/GNUmakefile b/polarssl/GNUmakefile deleted file mode 100644 index a53f8f9bd2ae234c5455cd83089a41085833f26b..0000000000000000000000000000000000000000 --- a/polarssl/GNUmakefile +++ /dev/null @@ -1,114 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += -CC -# -CC is used to preserve loop unroll annotations from expanded macros - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += \ - -json-compilation-database . \ - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -eva-subdivide-non-linear 16 \ - -eva-ilevel 13 \ - -eva-no-alloc-returns-null \ - -eva-use-spec $(call fc_list,$(USE_SPEC)) \ - -eva-slevel 2 \ - -USE_SPEC += \ - my_set_session \ - my_get_session \ - aes_setkey_enc \ - aes_setkey_dec \ - aes_crypt_cbc \ - des3_crypt_ecb \ - des3_crypt_cbc \ - des_setkey \ - arc4_crypt \ - ssl_free \ - x509_free \ - x509parse_crt \ - x509parse_key \ - x509parse_verifycrl \ - hardclock \ - sha4_update \ - sha4_process \ - sha1_process \ - sha1_finish \ - aes_crypt_ecb \ - md5_process \ - ctr_drbg_random \ - dhm_check_range \ - dhm_make_params \ - mpi_free \ - mpi_exp_mod \ - mpi_fill_random \ - mpi_read_string \ - mpi_read_binary \ - mpi_msb \ - mpi_write_binary \ - mpi_cmp_mpi \ - mpi_cmp_abs \ - mpi_copy \ - mpi_sub_mpi \ - mpi_mod_mpi \ - mpi_mul_mpi \ - mpi_add_abs \ - mpi_sub_abs \ - camellia_crypt_cbc \ - camellia_feistel \ - sha4 \ - -# (MANDATORY) Name of the main target -MAIN_TARGET := polarssl-server - -# Add other targets if needed -TARGETS = $(MAIN_TARGET).eva - -# Default target -all: $(TARGETS) -help: - @echo "targets: $(TARGETS)" -display-targets: - @echo "$(TARGETS)" - -# (MANDATORY) List of source files used by MAIN_TARGET, usually obtained -# via a JSON compilation database + analysis-scripts/list_files.py -$(MAIN_TARGET).parse: \ - stubs.h \ - $(sort $(wildcard library/*.c)) \ - programs/ssl/ssl_server.c \ - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -gui: $(MAIN_TARGET).eva.gui - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common diff --git a/polarssl/frama-c-path.mk b/polarssl/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/polarssl/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/polarssl/library/ssl_tls.c b/polarssl/library/ssl_tls.c index c48b4f3224fef63362a4f9e73c9f3a6f808b76cf..10617fa0ec656af7419798344661e8f7ce4015bc 100644 --- a/polarssl/library/ssl_tls.c +++ b/polarssl/library/ssl_tls.c @@ -45,7 +45,7 @@ #include <stdlib.h> #include <time.h> -#include "../stubs.h" +#include "fc_stubs.h" #if defined _MSC_VER && !defined strcasecmp #define strcasecmp _stricmp diff --git a/qlz/.frama-c/GNUmakefile b/qlz/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..b09489955b583ed2e902da4eb710c8ca52f1c87c --- /dev/null +++ b/qlz/.frama-c/GNUmakefile @@ -0,0 +1,64 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_32 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -kernel-warn-key annot:missing-spec=abort \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + -main eva_main \ + +## Eva-specific flags +EVAFLAGS += \ + -eva-warn-key builtins:missing-spec=abort \ + -eva-no-alloc-returns-null \ + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +## Analysis targets (suffixed with .eva) +TARGETS = qlz-compress.eva qlz-decompress.eva qlz-stream-compress.eva qlz-stream-decompress.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +qlz-compress.parse: \ + ../compress_file.c \ + ../quicklz.c \ + fc_stubs.c \ + +qlz-decompress.parse: \ + ../decompress_file.c \ + ../quicklz.c \ + fc_stubs.c \ + +qlz-stream-compress.parse: CPPFLAGS += -DQLZ_COMPRESSION_LEVEL=3 -DQLZ_STREAMING_BUFFER=10000 +qlz-stream-compress.parse: \ + ../stream_compress.c \ + ../quicklz.c \ + fc_stubs.c \ + +qlz-stream-decompress.parse: CPPFLAGS += -DQLZ_COMPRESSION_LEVEL=3 -DQLZ_STREAMING_BUFFER=10000 +qlz-stream-decompress.parse: \ + ../stream_decompress.c \ + ../quicklz.c \ + fc_stubs.c \ + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/qlz/.frama-c/fc_stubs.c b/qlz/.frama-c/fc_stubs.c new file mode 100644 index 0000000000000000000000000000000000000000..356dcab002c5d8234bf1299dfbabf612545697f9 --- /dev/null +++ b/qlz/.frama-c/fc_stubs.c @@ -0,0 +1,23 @@ +// Stub for a main function which reads arguments from the command line, to be +// used by the Eva plug-in. +// This stub emulates non-deterministic input of up to 5 arguments, each up +// to 256 characters long. This is sufficient to ensure arbitrary input in +// virtually every case. +// Do not forget to add option '-main eva_main' in order to use this stub. + +#ifdef __FRAMAC__ +#include "__fc_builtin.h" +int main(int, char **); +static volatile int nondet; +int eva_main() { + int argc = Frama_C_interval(0, 5); + char argv0[256], argv1[256], argv2[256], argv3[256], argv4[256]; + char *argv[6] = {argv0, argv1, argv2, argv3, argv4, 0}; + //@ loop unroll 5; + for (int i = 0; i < 5; i++) { + Frama_C_make_unknown(argv[i], 255); + argv[i][255] = 0; + } + return main(argc, argv); +} +#endif // __FRAMAC__ diff --git a/qlz/.frama-c/path.mk b/qlz/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/qlz/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/qlz/qlz-compress.eva/alarms.csv b/qlz/.frama-c/qlz-compress.eva/alarms.csv similarity index 100% rename from qlz/qlz-compress.eva/alarms.csv rename to qlz/.frama-c/qlz-compress.eva/alarms.csv diff --git a/qlz/qlz-compress.eva/metrics.log b/qlz/.frama-c/qlz-compress.eva/metrics.log similarity index 100% rename from qlz/qlz-compress.eva/metrics.log rename to qlz/.frama-c/qlz-compress.eva/metrics.log diff --git a/qlz/qlz-stream-compress.eva/nonterm.log b/qlz/.frama-c/qlz-compress.eva/nonterm.log similarity index 100% rename from qlz/qlz-stream-compress.eva/nonterm.log rename to qlz/.frama-c/qlz-compress.eva/nonterm.log diff --git a/qlz/qlz-compress.eva/warnings.log b/qlz/.frama-c/qlz-compress.eva/warnings.log similarity index 100% rename from qlz/qlz-compress.eva/warnings.log rename to qlz/.frama-c/qlz-compress.eva/warnings.log diff --git a/qlz/qlz-compress.parse/framac.ast b/qlz/.frama-c/qlz-compress.parse/framac.ast similarity index 99% rename from qlz/qlz-compress.parse/framac.ast rename to qlz/.frama-c/qlz-compress.parse/framac.ast index 12c994676059fcf5ecd16fadca1cd075d84479dd..c0c6c4735573277d39b34c5462be799e55300b09 100644 --- a/qlz/qlz-compress.parse/framac.ast +++ b/qlz/.frama-c/qlz-compress.parse/framac.ast @@ -564,7 +564,6 @@ size_t qlz_decompress(char const *source, void *destination, return dsiz; } -int volatile nondet; int eva_main(void) { char argv0[256]; diff --git a/qlz/qlz-compress.parse/metrics.log b/qlz/.frama-c/qlz-compress.parse/metrics.log similarity index 97% rename from qlz/qlz-compress.parse/metrics.log rename to qlz/.frama-c/qlz-compress.parse/metrics.log index 8c083067bf12856fea1dc3d26cf4febeb0de5752..9a77db07d1c318bc63b5e1acd8cb7019d64818b2 100644 --- a/qlz/qlz-compress.parse/metrics.log +++ b/qlz/.frama-c/qlz-compress.parse/metrics.log @@ -25,7 +25,7 @@ Global metrics ============== Sloc = 363 Decision point = 61 -Global variables = 2 +Global variables = 1 If = 49 Loop = 11 Goto = 25 diff --git a/libmodbus/libmodbus-random-client.eva/warnings.log b/qlz/.frama-c/qlz-compress.parse/warnings.log similarity index 100% rename from libmodbus/libmodbus-random-client.eva/warnings.log rename to qlz/.frama-c/qlz-compress.parse/warnings.log diff --git a/qlz/qlz-decompress.eva/alarms.csv b/qlz/.frama-c/qlz-decompress.eva/alarms.csv similarity index 100% rename from qlz/qlz-decompress.eva/alarms.csv rename to qlz/.frama-c/qlz-decompress.eva/alarms.csv diff --git a/qlz/qlz-decompress.eva/metrics.log b/qlz/.frama-c/qlz-decompress.eva/metrics.log similarity index 100% rename from qlz/qlz-decompress.eva/metrics.log rename to qlz/.frama-c/qlz-decompress.eva/metrics.log diff --git a/qlz/qlz-decompress.eva/nonterm.log b/qlz/.frama-c/qlz-decompress.eva/nonterm.log similarity index 77% rename from qlz/qlz-decompress.eva/nonterm.log rename to qlz/.frama-c/qlz-decompress.eva/nonterm.log index dc49a2179591c2f61ea6b593efdd43833a07ac7f..40676348ff8ed7166a2fd35b6cde29bdfcf806f5 100644 --- a/qlz/qlz-decompress.eva/nonterm.log +++ b/qlz/.frama-c/qlz-decompress.eva/nonterm.log @@ -2,7 +2,7 @@ decompress_file.c:36:[nonterm] warning: unreachable return quicklz.c:81:[nonterm] warning: non-terminating statement stack: reset_table_decompress :: quicklz.c:819 <- qlz_decompress :: decompress_file.c:32 <- - main :: fc_stubs.c:15 <- + main :: fc_stubs.c:21 <- eva_main quicklz.c:846:[nonterm] warning: unreachable return -fc_stubs.c:15:[nonterm] warning: unreachable return +fc_stubs.c:21:[nonterm] warning: unreachable return diff --git a/mini-gmp/mini-gmp.parse/warnings.log b/qlz/.frama-c/qlz-decompress.eva/warnings.log similarity index 100% rename from mini-gmp/mini-gmp.parse/warnings.log rename to qlz/.frama-c/qlz-decompress.eva/warnings.log diff --git a/qlz/qlz-decompress.parse/framac.ast b/qlz/.frama-c/qlz-decompress.parse/framac.ast similarity index 99% rename from qlz/qlz-decompress.parse/framac.ast rename to qlz/.frama-c/qlz-decompress.parse/framac.ast index 9978f546b28e9fddc2e7937ef4fb4ef894cc0d8a..38755e1420017bb58f76db1b5c10bc9dfae090a3 100644 --- a/qlz/qlz-decompress.parse/framac.ast +++ b/qlz/.frama-c/qlz-decompress.parse/framac.ast @@ -566,7 +566,6 @@ size_t qlz_decompress(char const *source, void *destination, return dsiz; } -int volatile nondet; int eva_main(void) { char argv0[256]; diff --git a/qlz/qlz-decompress.parse/metrics.log b/qlz/.frama-c/qlz-decompress.parse/metrics.log similarity index 97% rename from qlz/qlz-decompress.parse/metrics.log rename to qlz/.frama-c/qlz-decompress.parse/metrics.log index 25923ad87fee621a81bc0ad08a6c7c0d5c78d56a..977588b663a0a1d43514cfecd97104b0b8379765 100644 --- a/qlz/qlz-decompress.parse/metrics.log +++ b/qlz/.frama-c/qlz-decompress.parse/metrics.log @@ -25,7 +25,7 @@ Global metrics ============== Sloc = 364 Decision point = 61 -Global variables = 2 +Global variables = 1 If = 49 Loop = 11 Goto = 25 diff --git a/monocypher/monocypher.parse/warnings.log b/qlz/.frama-c/qlz-decompress.parse/warnings.log similarity index 100% rename from monocypher/monocypher.parse/warnings.log rename to qlz/.frama-c/qlz-decompress.parse/warnings.log diff --git a/qlz/qlz-stream-compress.eva/alarms.csv b/qlz/.frama-c/qlz-stream-compress.eva/alarms.csv similarity index 100% rename from qlz/qlz-stream-compress.eva/alarms.csv rename to qlz/.frama-c/qlz-stream-compress.eva/alarms.csv diff --git a/qlz/qlz-stream-compress.eva/metrics.log b/qlz/.frama-c/qlz-stream-compress.eva/metrics.log similarity index 100% rename from qlz/qlz-stream-compress.eva/metrics.log rename to qlz/.frama-c/qlz-stream-compress.eva/metrics.log diff --git a/semver/semver.eva/nonterm.log b/qlz/.frama-c/qlz-stream-compress.eva/nonterm.log similarity index 100% rename from semver/semver.eva/nonterm.log rename to qlz/.frama-c/qlz-stream-compress.eva/nonterm.log diff --git a/qlz/qlz-stream-compress.eva/warnings.log b/qlz/.frama-c/qlz-stream-compress.eva/warnings.log similarity index 100% rename from qlz/qlz-stream-compress.eva/warnings.log rename to qlz/.frama-c/qlz-stream-compress.eva/warnings.log diff --git a/qlz/qlz-stream-compress.parse/framac.ast b/qlz/.frama-c/qlz-stream-compress.parse/framac.ast similarity index 99% rename from qlz/qlz-stream-compress.parse/framac.ast rename to qlz/.frama-c/qlz-stream-compress.parse/framac.ast index 48f7998c5fc60df66ac4ff5a53b49b636e076122..c1ad167da0407516a706566b37bcef45923d8ee0 100644 --- a/qlz/qlz-stream-compress.parse/framac.ast +++ b/qlz/.frama-c/qlz-stream-compress.parse/framac.ast @@ -666,7 +666,6 @@ size_t qlz_decompress(char const *source, void *destination, return dsiz; } -int volatile nondet; int eva_main(void) { char argv0[256]; diff --git a/qlz/qlz-stream-compress.parse/metrics.log b/qlz/.frama-c/qlz-stream-compress.parse/metrics.log similarity index 97% rename from qlz/qlz-stream-compress.parse/metrics.log rename to qlz/.frama-c/qlz-stream-compress.parse/metrics.log index 20365a97ba3755cc36635120c3deae8b5ca440ea..7c23c739ac2d60837ff96684e4c2d9dcf7db18f0 100644 --- a/qlz/qlz-stream-compress.parse/metrics.log +++ b/qlz/.frama-c/qlz-stream-compress.parse/metrics.log @@ -24,7 +24,7 @@ Global metrics ============== Sloc = 439 Decision point = 78 -Global variables = 2 +Global variables = 1 If = 66 Loop = 13 Goto = 24 diff --git a/polarssl/polarssl-server.eva/warnings.log b/qlz/.frama-c/qlz-stream-compress.parse/warnings.log similarity index 100% rename from polarssl/polarssl-server.eva/warnings.log rename to qlz/.frama-c/qlz-stream-compress.parse/warnings.log diff --git a/qlz/qlz-stream-decompress.eva/alarms.csv b/qlz/.frama-c/qlz-stream-decompress.eva/alarms.csv similarity index 100% rename from qlz/qlz-stream-decompress.eva/alarms.csv rename to qlz/.frama-c/qlz-stream-decompress.eva/alarms.csv diff --git a/qlz/qlz-stream-decompress.eva/metrics.log b/qlz/.frama-c/qlz-stream-decompress.eva/metrics.log similarity index 100% rename from qlz/qlz-stream-decompress.eva/metrics.log rename to qlz/.frama-c/qlz-stream-decompress.eva/metrics.log diff --git a/qlz/qlz-stream-decompress.eva/nonterm.log b/qlz/.frama-c/qlz-stream-decompress.eva/nonterm.log similarity index 84% rename from qlz/qlz-stream-decompress.eva/nonterm.log rename to qlz/.frama-c/qlz-stream-decompress.eva/nonterm.log index 030181b1a65eb6f18f4ef5a8f736aa99879682af..19f2bc48a4dfc115cd721bdf8967d81c2a285344 100644 --- a/qlz/qlz-stream-decompress.eva/nonterm.log +++ b/qlz/.frama-c/qlz-stream-decompress.eva/nonterm.log @@ -1,5 +1,5 @@ quicklz.c:81:[nonterm] warning: non-terminating statement stack: reset_table_decompress :: quicklz.c:819 <- qlz_decompress :: stream_decompress.c:43 <- - main :: fc_stubs.c:15 <- + main :: fc_stubs.c:21 <- eva_main diff --git a/qlz/qlz-compress.parse/warnings.log b/qlz/.frama-c/qlz-stream-decompress.eva/warnings.log similarity index 100% rename from qlz/qlz-compress.parse/warnings.log rename to qlz/.frama-c/qlz-stream-decompress.eva/warnings.log diff --git a/qlz/qlz-stream-decompress.parse/framac.ast b/qlz/.frama-c/qlz-stream-decompress.parse/framac.ast similarity index 99% rename from qlz/qlz-stream-decompress.parse/framac.ast rename to qlz/.frama-c/qlz-stream-decompress.parse/framac.ast index 1b475cf0d433c76476d5316bd4e789d23b0db7f5..c4e1dd552144b3b88b596611277cdcba2180078e 100644 --- a/qlz/qlz-stream-decompress.parse/framac.ast +++ b/qlz/.frama-c/qlz-stream-decompress.parse/framac.ast @@ -665,7 +665,6 @@ size_t qlz_decompress(char const *source, void *destination, return dsiz; } -int volatile nondet; int eva_main(void) { char argv0[256]; diff --git a/qlz/qlz-stream-decompress.parse/metrics.log b/qlz/.frama-c/qlz-stream-decompress.parse/metrics.log similarity index 97% rename from qlz/qlz-stream-decompress.parse/metrics.log rename to qlz/.frama-c/qlz-stream-decompress.parse/metrics.log index 04533f3ce5cd19b4d059b42960d4869438c9e9b8..961b27ac109b60b3f9b0e503cc7df86a15fb738f 100644 --- a/qlz/qlz-stream-decompress.parse/metrics.log +++ b/qlz/.frama-c/qlz-stream-decompress.parse/metrics.log @@ -24,7 +24,7 @@ Global metrics ============== Sloc = 437 Decision point = 78 -Global variables = 2 +Global variables = 1 If = 66 Loop = 13 Goto = 24 diff --git a/qlz/qlz-decompress.eva/warnings.log b/qlz/.frama-c/qlz-stream-decompress.parse/warnings.log similarity index 100% rename from qlz/qlz-decompress.eva/warnings.log rename to qlz/.frama-c/qlz-stream-decompress.parse/warnings.log diff --git a/qlz/GNUmakefile b/qlz/GNUmakefile deleted file mode 100644 index 7db61b00b0724dec9f45a61cd4862a4eac3efd03..0000000000000000000000000000000000000000 --- a/qlz/GNUmakefile +++ /dev/null @@ -1,70 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += -include$(shell $(FRAMAC) -print-path)/libc/string.h - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += \ - -main eva_main \ - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -eva-no-alloc-returns-null \ - -# (MANDATORY) Name of the main target -MAIN_TARGET := qlz-compress - -# Add other targets if needed -TARGETS = $(MAIN_TARGET).eva qlz-decompress.eva qlz-stream-compress.eva qlz-stream-decompress.eva - -# Default target -all: $(TARGETS) -help: - @echo "targets: $(TARGETS)" -display-targets: - @echo "$(TARGETS)" - -# (MANDATORY) List of source files used by MAIN_TARGET, usually obtained -# via a JSON compilation database + analysis-scripts/list_files.py -$(MAIN_TARGET).parse: compress_file.c quicklz.c fc_stubs.c - -qlz-decompress.parse: decompress_file.c quicklz.c fc_stubs.c - -qlz-stream-compress.parse: CPPFLAGS += -DQLZ_COMPRESSION_LEVEL=3 -DQLZ_STREAMING_BUFFER=10000 -qlz-stream-compress.parse: stream_compress.c quicklz.c fc_stubs.c - -qlz-stream-decompress.parse: CPPFLAGS += -DQLZ_COMPRESSION_LEVEL=3 -DQLZ_STREAMING_BUFFER=10000 -qlz-stream-decompress.parse: stream_decompress.c quicklz.c fc_stubs.c - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -gui: $(MAIN_TARGET).eva.gui - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common diff --git a/qlz/fc_stubs.c b/qlz/fc_stubs.c deleted file mode 100644 index 80c2ed24ddeb2701701221f7d86087e2d2ccb01d..0000000000000000000000000000000000000000 --- a/qlz/fc_stubs.c +++ /dev/null @@ -1,16 +0,0 @@ -int main(int argc, char **argv); - -#include "__fc_builtin.h" -volatile int nondet; -// main for EVA -int eva_main() { - int argc = Frama_C_interval(0, 5); - char argv0[256], argv1[256], argv2[256], argv3[256], argv4[256]; - char *argv[6] = {argv0, argv1, argv2, argv3, argv4, 0}; - //@ loop unroll 5; - for (int i = 0; i < 5; i++) { - Frama_C_make_unknown(argv[i], 255); - argv[i][255] = 0; - } - return main(argc, argv); -} diff --git a/qlz/frama-c-path.mk b/qlz/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/qlz/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/semver/.frama-c/GNUmakefile b/semver/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..14fb40e18606a8b6d5778120d76734dcf9e7cfa0 --- /dev/null +++ b/semver/.frama-c/GNUmakefile @@ -0,0 +1,46 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_32 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -kernel-warn-key annot:missing-spec=abort \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + +## Eva-specific flags +EVAFLAGS += \ + -eva-warn-key builtins:missing-spec=abort \ + -eva-alloc-builtin fresh \ + -slevel 82 \ + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +## Analysis targets (suffixed with .eva) +TARGETS = semver.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +semver.parse: \ + ../semver.c \ + ../semver_test.c \ + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/semver/.frama-c/path.mk b/semver/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/semver/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/semver/semver.eva/alarms.csv b/semver/.frama-c/semver.eva/alarms.csv similarity index 100% rename from semver/semver.eva/alarms.csv rename to semver/.frama-c/semver.eva/alarms.csv diff --git a/semver/semver.eva/metrics.log b/semver/.frama-c/semver.eva/metrics.log similarity index 100% rename from semver/semver.eva/metrics.log rename to semver/.frama-c/semver.eva/metrics.log diff --git a/solitaire/solitaire.eva/nonterm.log b/semver/.frama-c/semver.eva/nonterm.log similarity index 100% rename from solitaire/solitaire.eva/nonterm.log rename to semver/.frama-c/semver.eva/nonterm.log diff --git a/qlz/qlz-decompress.parse/warnings.log b/semver/.frama-c/semver.eva/warnings.log similarity index 100% rename from qlz/qlz-decompress.parse/warnings.log rename to semver/.frama-c/semver.eva/warnings.log diff --git a/semver/semver.parse/framac.ast b/semver/.frama-c/semver.parse/framac.ast similarity index 100% rename from semver/semver.parse/framac.ast rename to semver/.frama-c/semver.parse/framac.ast diff --git a/semver/semver.parse/metrics.log b/semver/.frama-c/semver.parse/metrics.log similarity index 100% rename from semver/semver.parse/metrics.log rename to semver/.frama-c/semver.parse/metrics.log diff --git a/qlz/qlz-stream-compress.parse/warnings.log b/semver/.frama-c/semver.parse/warnings.log similarity index 100% rename from qlz/qlz-stream-compress.parse/warnings.log rename to semver/.frama-c/semver.parse/warnings.log diff --git a/semver/GNUmakefile b/semver/GNUmakefile deleted file mode 100644 index 910c8cc5971f2992d622118b3201fec0677b2c8a..0000000000000000000000000000000000000000 --- a/semver/GNUmakefile +++ /dev/null @@ -1,68 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED -# The flags below are only suggestions to use with Eva, and can be removed - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += \ - -kernel-warn-key annot:missing-spec=abort \ - -kernel-warn-key typing:implicit-function-declaration=abort \ - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -eva-warn-key builtins:missing-spec=abort \ - -eva-alloc-builtin fresh \ - -slevel 82 \ - -# (MANDATORY) Name of the main target -MAIN_TARGET := semver - -# Add other targets if needed -TARGETS = $(MAIN_TARGET).eva - -# Default target -all: $(TARGETS) -help: - @echo "targets: $(TARGETS)" -display-targets: - @echo "$(TARGETS)" - -# (MANDATORY) List of source files used by MAIN_TARGET. -# If there is a JSON compilation database, -# 'frama-c-script list-files' can help obtain it -$(MAIN_TARGET).parse: semver.c semver_test.c - - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -gui: $(MAIN_TARGET).eva.gui - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common diff --git a/semver/frama-c-path.mk b/semver/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/semver/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/semver/semver.parse/warnings.log b/semver/semver.parse/warnings.log deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/solitaire/.frama-c/GNUmakefile b/solitaire/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..67e1751376448e2f02ba5eb9860b66f5fd5032b4 --- /dev/null +++ b/solitaire/.frama-c/GNUmakefile @@ -0,0 +1,45 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_32 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + -CC + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -kernel-warn-key annot:missing-spec=abort \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + +## Eva-specific flags +EVAFLAGS += \ + -eva-warn-key builtins:missing-spec=abort \ + -main eva_main \ + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +## Analysis targets (suffixed with .eva) +TARGETS = solitaire.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +solitaire.parse: \ + ../solitaire.c \ + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/solitaire/.frama-c/path.mk b/solitaire/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/solitaire/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/solitaire/solitaire.eva/alarms.csv b/solitaire/.frama-c/solitaire.eva/alarms.csv similarity index 100% rename from solitaire/solitaire.eva/alarms.csv rename to solitaire/.frama-c/solitaire.eva/alarms.csv diff --git a/solitaire/solitaire.eva/metrics.log b/solitaire/.frama-c/solitaire.eva/metrics.log similarity index 100% rename from solitaire/solitaire.eva/metrics.log rename to solitaire/.frama-c/solitaire.eva/metrics.log diff --git a/tweetnacl-usable/tweetnacl-usable.eva/nonterm.log b/solitaire/.frama-c/solitaire.eva/nonterm.log similarity index 100% rename from tweetnacl-usable/tweetnacl-usable.eva/nonterm.log rename to solitaire/.frama-c/solitaire.eva/nonterm.log diff --git a/solitaire/solitaire.eva/warnings.log b/solitaire/.frama-c/solitaire.eva/warnings.log similarity index 100% rename from solitaire/solitaire.eva/warnings.log rename to solitaire/.frama-c/solitaire.eva/warnings.log diff --git a/solitaire/solitaire.parse/framac.ast b/solitaire/.frama-c/solitaire.parse/framac.ast similarity index 100% rename from solitaire/solitaire.parse/framac.ast rename to solitaire/.frama-c/solitaire.parse/framac.ast diff --git a/solitaire/solitaire.parse/metrics.log b/solitaire/.frama-c/solitaire.parse/metrics.log similarity index 100% rename from solitaire/solitaire.parse/metrics.log rename to solitaire/.frama-c/solitaire.parse/metrics.log diff --git a/qlz/qlz-stream-decompress.eva/warnings.log b/solitaire/.frama-c/solitaire.parse/warnings.log similarity index 100% rename from qlz/qlz-stream-decompress.eva/warnings.log rename to solitaire/.frama-c/solitaire.parse/warnings.log diff --git a/solitaire/GNUmakefile b/solitaire/GNUmakefile deleted file mode 100644 index 2ba6f8de258afc06bc977a6306588d24bdf87b02..0000000000000000000000000000000000000000 --- a/solitaire/GNUmakefile +++ /dev/null @@ -1,67 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED -# The flags below are only suggestions to use with Eva, and can be removed - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += \ - -kernel-warn-key annot:missing-spec=abort \ - -kernel-warn-key typing:implicit-function-declaration=abort \ - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -eva-warn-key builtins:missing-spec=abort \ - -main eva_main \ - -# (MANDATORY) Name of the main target -MAIN_TARGET := solitaire - -# Add other targets if needed -TARGETS = $(MAIN_TARGET).eva - -# Default target -all: $(TARGETS) -help: - @echo "targets: $(TARGETS)" -display-targets: - @echo "$(TARGETS)" - -# (MANDATORY) List of source files used by MAIN_TARGET. -# If there is a JSON compilation database, -# 'frama-c-script list-files' can help obtain it -$(MAIN_TARGET).parse: solitaire.c - - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -gui: $(MAIN_TARGET).eva.gui - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common diff --git a/solitaire/frama-c-path.mk b/solitaire/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/solitaire/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/solitaire/solitaire.parse/warnings.log b/solitaire/solitaire.parse/warnings.log deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/tutorials/.frama-c/path.mk b/tutorials/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/tutorials/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/tweetnacl-usable/.frama-c/GNUmakefile b/tweetnacl-usable/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..4131eba2f8e5ec84b2ad5bd8f697c55bc895057a --- /dev/null +++ b/tweetnacl-usable/.frama-c/GNUmakefile @@ -0,0 +1,47 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_32 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -kernel-warn-key annot:missing-spec=abort \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + +## Eva-specific flags +EVAFLAGS += \ + -eva-warn-key builtins:missing-spec=abort \ + -eva-no-alloc-returns-null \ + -no-warn-signed-overflow \ + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +## Analysis targets (suffixed with .eva) +TARGETS = tweetnacl-usable.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +tweetnacl-usable.parse: \ + ../main.c \ + ../tweetnacl.c \ + ../randombytes.c \ + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/tweetnacl-usable/.frama-c/path.mk b/tweetnacl-usable/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/tweetnacl-usable/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/tweetnacl-usable/tweetnacl-usable.eva/alarms.csv b/tweetnacl-usable/.frama-c/tweetnacl-usable.eva/alarms.csv similarity index 100% rename from tweetnacl-usable/tweetnacl-usable.eva/alarms.csv rename to tweetnacl-usable/.frama-c/tweetnacl-usable.eva/alarms.csv diff --git a/tweetnacl-usable/tweetnacl-usable.eva/metrics.log b/tweetnacl-usable/.frama-c/tweetnacl-usable.eva/metrics.log similarity index 100% rename from tweetnacl-usable/tweetnacl-usable.eva/metrics.log rename to tweetnacl-usable/.frama-c/tweetnacl-usable.eva/metrics.log diff --git a/x509-parser/x509-parser.eva/nonterm.log b/tweetnacl-usable/.frama-c/tweetnacl-usable.eva/nonterm.log similarity index 100% rename from x509-parser/x509-parser.eva/nonterm.log rename to tweetnacl-usable/.frama-c/tweetnacl-usable.eva/nonterm.log diff --git a/tweetnacl-usable/tweetnacl-usable.eva/warnings.log b/tweetnacl-usable/.frama-c/tweetnacl-usable.eva/warnings.log similarity index 100% rename from tweetnacl-usable/tweetnacl-usable.eva/warnings.log rename to tweetnacl-usable/.frama-c/tweetnacl-usable.eva/warnings.log diff --git a/tweetnacl-usable/tweetnacl-usable.parse/framac.ast b/tweetnacl-usable/.frama-c/tweetnacl-usable.parse/framac.ast similarity index 100% rename from tweetnacl-usable/tweetnacl-usable.parse/framac.ast rename to tweetnacl-usable/.frama-c/tweetnacl-usable.parse/framac.ast diff --git a/tweetnacl-usable/tweetnacl-usable.parse/metrics.log b/tweetnacl-usable/.frama-c/tweetnacl-usable.parse/metrics.log similarity index 100% rename from tweetnacl-usable/tweetnacl-usable.parse/metrics.log rename to tweetnacl-usable/.frama-c/tweetnacl-usable.parse/metrics.log diff --git a/tweetnacl-usable/tweetnacl-usable.parse/warnings.log b/tweetnacl-usable/.frama-c/tweetnacl-usable.parse/warnings.log similarity index 100% rename from tweetnacl-usable/tweetnacl-usable.parse/warnings.log rename to tweetnacl-usable/.frama-c/tweetnacl-usable.parse/warnings.log diff --git a/tweetnacl-usable/GNUmakefile b/tweetnacl-usable/GNUmakefile deleted file mode 100644 index 3400e8097baa7624fd318ab114997fccb0c21426..0000000000000000000000000000000000000000 --- a/tweetnacl-usable/GNUmakefile +++ /dev/null @@ -1,63 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -eva-no-alloc-returns-null \ - -no-warn-signed-overflow \ - -# (MANDATORY) Name of the main target -MAIN_TARGET := tweetnacl-usable - -# Add other targets if needed -TARGETS = $(MAIN_TARGET).eva - -# Default target -all: $(TARGETS) -help: - @echo "targets: $(TARGETS)" -display-targets: - @echo "$(TARGETS)" - -# (MANDATORY) List of source files used by MAIN_TARGET, usually obtained -# via a JSON compilation database + analysis-scripts/list_files.py -$(MAIN_TARGET).parse: main.c tweetnacl.c randombytes.c - - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -gui: $(MAIN_TARGET).eva.gui - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common diff --git a/tweetnacl-usable/frama-c-path.mk b/tweetnacl-usable/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/tweetnacl-usable/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/x509-parser/.frama-c/GNUmakefile b/x509-parser/.frama-c/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..ee2db8dde9acac71618b00668da887547f1ba7ed --- /dev/null +++ b/x509-parser/.frama-c/GNUmakefile @@ -0,0 +1,46 @@ +# Makefile template for Frama-C/Eva case studies. +# For details and usage information, see the Frama-C User Manual. + +### Prologue. Do not modify this block. ####################################### +-include path.mk +FRAMAC ?= frama-c +include $(shell $(FRAMAC)-config -scripts)/prologue.mk +############################################################################### + +# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional. + +MACHDEP = x86_64 + +## Preprocessing flags (for -cpp-extra-args) +CPPFLAGS += \ + -CC + +## General flags +FCFLAGS += \ + -add-symbolic-path=.:.. \ + -kernel-warn-key annot:missing-spec=abort \ + -kernel-warn-key typing:implicit-function-declaration=abort \ + +## Eva-specific flags +EVAFLAGS += \ + -eva-warn-key builtins:missing-spec=abort \ + -eva-precision 1 \ + -eva-slevel-function parse_x509_AlgorithmIdentifier:12 \ + +## GUI-only flags +FCGUIFLAGS += \ + -add-symbolic-path=.:.. \ + +## Analysis targets (suffixed with .eva) +TARGETS = x509-parser.eva + +### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites +x509-parser.parse: \ + ../src/x509-parser.c \ + +### Epilogue. Do not modify this block. ####################################### +include $(shell $(FRAMAC)-config -scripts)/epilogue.mk +############################################################################### + +# optional, for OSCS +-include ../../Makefile.common diff --git a/x509-parser/.frama-c/path.mk b/x509-parser/.frama-c/path.mk new file mode 120000 index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66 --- /dev/null +++ b/x509-parser/.frama-c/path.mk @@ -0,0 +1 @@ +../../path.mk \ No newline at end of file diff --git a/x509-parser/x509-parser.eva/alarms.csv b/x509-parser/.frama-c/x509-parser.eva/alarms.csv similarity index 99% rename from x509-parser/x509-parser.eva/alarms.csv rename to x509-parser/.frama-c/x509-parser.eva/alarms.csv index db60a5bd2bd4b41742399490e2b9735a60eb7a54..6f024f83524300a5bc8d4acbea2c00092d6b36d7 100644 --- a/x509-parser/x509-parser.eva/alarms.csv +++ b/x509-parser/.frama-c/x509-parser.eva/alarms.csv @@ -292,8 +292,6 @@ src x509-parser.c 4009 parse_generalizedTime postcondition Unknown \result ≡ 0 src x509-parser.c 4011 parse_generalizedTime postcondition Unknown \old(len) < 17 ⇒ \result < 0 src x509-parser.c 4066 parse_generalizedTime loop invariant Unknown \valid_read(buf + i) src x509-parser.c 4067 parse_generalizedTime loop invariant Unknown ∀ ℤ x; 0 ≤ x < i ⇒ 0x30 ≤ *(buf + x) ≤ 0x39 -src x509-parser.c 4073 parse_generalizedTime mem_access Unknown \valid_read(buf + i) -src x509-parser.c 4084 parse_generalizedTime mem_access Unknown \valid_read(buf + 14) src x509-parser.c 4091 parse_generalizedTime user assertion Unknown ∀ ℤ x; 0 ≤ x < 12 ⇒ 0x30 ≤ *(buf + x) ≤ 0x39 src x509-parser.c 4092 parse_generalizedTime precondition of compute_year Unknown 0x30 ≤ d1 ≤ 0x39 src x509-parser.c 4092 parse_generalizedTime precondition of compute_year Unknown 0x30 ≤ d2 ≤ 0x39 @@ -503,6 +501,7 @@ src x509-parser.c 7188 find_kp_by_oid precondition Unknown len > 0 ∧ buf ≢ ( src x509-parser.c 7189 find_kp_by_oid postcondition Unknown \result ≢ (_kp_oid const *)0 ⇒ (∃ ℤ i; 0 ≤ i < sizeof(known_kp_oids) / sizeof(known_kp_oids[0]) ∧ \result ≡ &known_kp_oids[i]) src x509-parser.c 7190 find_kp_by_oid postcondition Unknown \old(len) ≡ 0 ⇒ \result ≡ (_kp_oid const *)0 src x509-parser.c 7200 find_kp_by_oid ptr_comparison Unknown \pointer_comparable((void *)buf, (void *)0) +src x509-parser.c 7215 find_kp_by_oid user assertion Unknown cur ≡ &known_kp_oids[k] src x509-parser.c 7220 find_kp_by_oid user assertion Unknown \valid_read(buf + (0 .. len - 1)) src x509-parser.c 7244 parse_ext_EKU precondition Unknown len > 0 ∧ buf ≢ \null ⇒ \valid_read(buf + (0 .. len - 1)) src x509-parser.c 7248 parse_ext_EKU postcondition Unknown \old(len) ≡ 0 ⇒ \result < 0 diff --git a/x509-parser/x509-parser.eva/metrics.log b/x509-parser/.frama-c/x509-parser.eva/metrics.log similarity index 100% rename from x509-parser/x509-parser.eva/metrics.log rename to x509-parser/.frama-c/x509-parser.eva/metrics.log diff --git a/qlz/qlz-stream-decompress.parse/warnings.log b/x509-parser/.frama-c/x509-parser.eva/nonterm.log similarity index 100% rename from qlz/qlz-stream-decompress.parse/warnings.log rename to x509-parser/.frama-c/x509-parser.eva/nonterm.log diff --git a/semver/semver.eva/warnings.log b/x509-parser/.frama-c/x509-parser.eva/warnings.log similarity index 100% rename from semver/semver.eva/warnings.log rename to x509-parser/.frama-c/x509-parser.eva/warnings.log diff --git a/x509-parser/x509-parser.parse/framac.ast b/x509-parser/.frama-c/x509-parser.parse/framac.ast similarity index 100% rename from x509-parser/x509-parser.parse/framac.ast rename to x509-parser/.frama-c/x509-parser.parse/framac.ast diff --git a/x509-parser/x509-parser.parse/metrics.log b/x509-parser/.frama-c/x509-parser.parse/metrics.log similarity index 100% rename from x509-parser/x509-parser.parse/metrics.log rename to x509-parser/.frama-c/x509-parser.parse/metrics.log diff --git a/x509-parser/x509-parser.parse/warnings.log b/x509-parser/.frama-c/x509-parser.parse/warnings.log similarity index 100% rename from x509-parser/x509-parser.parse/warnings.log rename to x509-parser/.frama-c/x509-parser.parse/warnings.log diff --git a/x509-parser/GNUmakefile b/x509-parser/GNUmakefile deleted file mode 100644 index e69f4836a4dbdb25f49de52df515267e1e28dd39..0000000000000000000000000000000000000000 --- a/x509-parser/GNUmakefile +++ /dev/null @@ -1,65 +0,0 @@ -# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES - -# DO NOT EDIT THE LINES BETWEEN THE '#'S - -############################################################################### -# Improves analysis time, at the cost of extra memory usage -export FRAMA_C_MEMORY_FOOTPRINT = 8 -# -# frama-c-path.mk contains variables which are specific to each -# user and should not be versioned, such as the path to the -# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI). -# It is an optional include, unnecessary if frama-c is in the PATH --include frama-c-path.mk -# -# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the -# line below will be safely ignored if this is the case -FRAMAC_CONFIG ?= frama-c-config -# -# frama-c.mk contains the main rules and targets --include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk -# -############################################################################### - -# EDIT VARIABLES AND TARGETS BELOW AS NEEDED -# The flags below are only suggestions to use with Eva, and can be removed - -# (Optional) preprocessing flags, usually handled by -json-compilation-database -CPPFLAGS += - -# (Optional) Frama-C general flags (parsing and kernel) -FCFLAGS += \ - -machdep x86_64 \ - -kernel-warn-key annot:missing-spec=abort \ - -kernel-warn-key typing:implicit-function-declaration=abort \ - -# (Optional) Eva-specific flags -EVAFLAGS += \ - -eva-warn-key builtins:missing-spec=abort \ - -eva-precision 1 \ - -eva-slevel-function parse_x509_AlgorithmIdentifier:12 \ - -# (MANDATORY) Name of the main target -MAIN_TARGET := x509-parser - -# Add other targets if needed -TARGETS = $(MAIN_TARGET).eva - -# Default target -all: $(TARGETS) - -# (MANDATORY) List of source files used by MAIN_TARGET. -# If there is a JSON compilation database, -# 'frama-c-script list-files' can help obtain it -$(MAIN_TARGET).parse: src/x509-parser.c - - -# The following targets are optional and provided for convenience only -parse: $(TARGETS:%.eva=%.parse) -gui: $(MAIN_TARGET).eva.gui - -stats: $(TARGETS:%.eva=%.parse) $(TARGETS) - ../show_stats.sh "$(notdir $(CURDIR))" $^ - -# optional, for OSCS --include ../Makefile.common diff --git a/x509-parser/frama-c-path.mk b/x509-parser/frama-c-path.mk deleted file mode 120000 index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000 --- a/x509-parser/frama-c-path.mk +++ /dev/null @@ -1 +0,0 @@ -../frama-c-path.mk \ No newline at end of file diff --git a/x509-parser/x509-parser.eva/warnings.log b/x509-parser/x509-parser.eva/warnings.log deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000