From nobody Thu Aug 19 18:33:44 2021 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id B2FE4175ACD6 for ; Thu, 19 Aug 2021 18:33:49 +0000 (UTC) (envelope-from gljennjohn@gmail.com) Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com [IPv6:2a00:1450:4864:20::533]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4GrD1T0W9Cz3Mj4 for ; Thu, 19 Aug 2021 18:33:49 +0000 (UTC) (envelope-from gljennjohn@gmail.com) Received: by mail-ed1-x533.google.com with SMTP id g21so10212137edw.4 for ; Thu, 19 Aug 2021 11:33:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:in-reply-to:references:reply-to :mime-version:content-transfer-encoding; bh=YulLD1KtuKkPjIcSaRkF/0NIWYeTkbTrQqpoQ49Ghhw=; b=HVLn7LMPR8qM25h6ZS3gXLHiDXIZ/7udJmXuWnn1wEcl05QS5aVYC8APsz4o8AciY0 SviTkubBETfYbwR7YOprwYTr3bcm5oksW+Rdu3dn4PK2ZtyNjWQsaawvVfFRGF6ylBQX +VRnQiybkE0g4kYclaQinjurSCncRxJwp0Y1HLoTnUBD4jDKacWbG/Lr8wJ0QoqChsh7 4bvB3caXV9cys4/I6Cb7frQcmv8+8cT6CMm00w9GqZzGWT/MY0WhM+iqVExvJ1paoci3 QxsxV42m9Q+/NMuGKhn3rNGm6FuF3Ny++uD6wHHOmLFNQ4RalYkrSBOtTGfe0XfVO2kp zQhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to :references:reply-to:mime-version:content-transfer-encoding; bh=YulLD1KtuKkPjIcSaRkF/0NIWYeTkbTrQqpoQ49Ghhw=; b=dCbASAt4/X3ocGyuonCm37PteLslt+daSBfwjMjbjzRP+RtUeOxR50GAQS4RxBxEZK 1tJFOk2KLTFsG+V/HKN/R9+fvcZN12mXWYDV9mjkTWmAWG5DnTtU+AeO9R9bpNpvpPum xtAVP8oX6VSOajdze7AwB4/ZyBaehoL/8cNPvmEUn1tzv+/KqYQulu9aX2UIgtp6Or+6 biMo/pdIe9a89n21HfOWwrC3cyejEGeeDWTBn7aajOxtALpAKr3KK3077uR7HNY7obD3 g0xm0NAdMx4aF7v8TSgjJEspktLu/1duH/8KNl/Jq5ougfMlFhXKLNa2SclyCZqHBCwW 23Jw== X-Gm-Message-State: AOAM532H0mos2kpIIHVUsoxq5y5dlohggFChOqk2eDjD7+9q4GWhkzij s2dPRYnXIoUQerLNXPD0crgbb1ofoME= X-Google-Smtp-Source: ABdhPJzvPG8a8azngDls/J2l1xPmTUAj7S8s4Az2AstYWLC1P5ed/NvlEzw2q8fbZtPOODwzILeL+w== X-Received: by 2002:a05:6402:546:: with SMTP id i6mr18223284edx.80.1629398028255; Thu, 19 Aug 2021 11:33:48 -0700 (PDT) Received: from ernst.home (p5b023517.dip0.t-ipconnect.de. [91.2.53.23]) by smtp.gmail.com with ESMTPSA id a4sm2251801edv.53.2021.08.19.11.33.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Aug 2021 11:33:47 -0700 (PDT) Date: Thu, 19 Aug 2021 20:33:44 +0200 From: Gary Jennejohn To: Bertrand Petit Cc: freebsd-hackers@freebsd.org Subject: Re: Is snp(4) in working order? Message-ID: <20210819183344.358e1f55@ernst.home> In-Reply-To: References: <20210819141224.GA93701@memo2.memo.frmug.org> Reply-To: gljennjohn@gmail.com X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.33; amd64-portbld-freebsd14.0) List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 4GrD1T0W9Cz3Mj4 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=HVLn7LMP; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of gljennjohn@gmail.com designates 2a00:1450:4864:20::533 as permitted sender) smtp.mailfrom=gljennjohn@gmail.com X-Spamd-Result: default: False [-1.00 / 15.00]; HAS_REPLYTO(0.00)[gljennjohn@gmail.com]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36:c]; FREEMAIL_FROM(0.00)[gmail.com]; REPLYTO_ADDR_EQ_FROM(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[gmail.com:+]; RCPT_COUNT_TWO(0.00)[2]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; SUBJECT_ENDS_QUESTION(1.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; RECEIVED_SPAMHAUS_PBL(0.00)[91.2.53.23:received]; FROM_HAS_DN(0.00)[]; NEURAL_SPAM_SHORT(1.00)[0.999]; NEURAL_HAM_LONG(-1.00)[-1.000]; MIME_GOOD(-0.10)[text/plain]; FREEMAIL_REPLYTO(0.00)[gmail.com]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::533:from]; RCVD_TLS_ALL(0.00)[] X-ThisMailContainsUnwantedMimeParts: N On Thu, 19 Aug 2021 20:14:49 +0300 Konstantin Belousov wrote: > On Thu, Aug 19, 2021 at 04:12:24PM +0200, Bertrand Petit wrote: > > > > I'm wondering if, on a 12.2 host, the snp(4) device is out of order or > > if I'm improperly using it. > > > > Here is the situation: a GPS receiver connected to the host through > > USB (umodem driver) feeding ntpd and keeping it happy. On this setup I perform > > the following calls as root in a dedicated process: > > > > int a=open("/dev/cuaU0", O_RDONLY|O_NONBLOCK); > > isatty(a); /* Yes it is */ > > int b=open("/dev/snp", O_RDONLY); > > ioctl(b, SNPSTTY, &a); > > int pending; ioctl(b, FIONREAD, &pending); /* Empty */ > > char buf; read(b, 1, &buf); > > > > I ommited error handling for brevity, all calls are successfull except read() > > which never return. > > > > I expected to be able to read the same bytes stream as ntpd does but I > > get nothing. Am I misusing the snp(4) interface or is it non-functioning? > > > > [As a side note: I could also had used gpsd but hooking ntpd directly > > to the serial device yields a far better jitter.] > Did you tried watch(8) first? > > I just used watch successfully over /dev/pts/N pseudoterminal. > I thought about using watch(8) too. If nothing else, reading the source of /usr/src/usr.sbin/watch/watch.c will give you a good idea about how to correctly use snp(4) in your C-code. Pay particuar attention to how FIONREAD is used in main(). -- Gary Jennejohn