Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Aug 2021 20:33:44 +0200
From:      Gary Jennejohn <gljennjohn@gmail.com>
To:        Bertrand Petit <freebsd-hackers@phoe.frmug.org>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: Is snp(4) in working order?
Message-ID:  <20210819183344.358e1f55@ernst.home>
In-Reply-To: <YR6RiRVXSTkFtIr%2B@kib.kiev.ua>
References:  <20210819141224.GA93701@memo2.memo.frmug.org> <YR6RiRVXSTkFtIr%2B@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 19 Aug 2021 20:14:49 +0300
Konstantin Belousov <kostikbel@gmail.com> 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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20210819183344.358e1f55>