From: Rodolfo Giometti <giometti@linux.it>
To: linux-kernel@vger.kernel.org
Cc: Andrew Morton <akpm@linux-foundation.org>,
David Woodhouse <dwmw2@infradead.org>,
Dave Jones <davej@redhat.com>, Sam Ravnborg <sam@ravnborg.org>,
Greg KH <greg@kroah.com>, Randy Dunlap <randy.dunlap@oracle.com>,
Rodolfo Giometti <giometti@linux.it>
Subject: [PATCH] PPS: example program to enable PPS support on serial ports.
Date: Fri, 22 Feb 2008 15:03:32 +0100 [thread overview]
Message-ID: <12036890142501-git-send-email-giometti@linux.it> (raw)
In-Reply-To: <12036890142414-git-send-email-giometti@linux.it>
Signed-off-by: Rodolfo Giometti <giometti@linux.it>
---
Documentation/pps/Makefile | 2 +-
Documentation/pps/ppsctl.c | 62 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 63 insertions(+), 1 deletions(-)
create mode 100644 Documentation/pps/ppsctl.c
diff --git a/Documentation/pps/Makefile b/Documentation/pps/Makefile
index af4f9b4..8ef4f47 100644
--- a/Documentation/pps/Makefile
+++ b/Documentation/pps/Makefile
@@ -1,4 +1,4 @@
-TARGETS = ppstest
+TARGETS = ppstest ppsctl
CFLAGS += -Wall -O2 -D_GNU_SOURCE
CFLAGS += -I .
diff --git a/Documentation/pps/ppsctl.c b/Documentation/pps/ppsctl.c
new file mode 100644
index 0000000..83fd08a
--- /dev/null
+++ b/Documentation/pps/ppsctl.c
@@ -0,0 +1,62 @@
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <sys/ioctl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <string.h>
+#include <linux/serial.h>
+
+void usage(char *name)
+{
+ fprintf(stderr, "usage: %s <ttyS> [enable|disable]\n", name);
+
+ exit(EXIT_FAILURE);
+}
+
+int main(int argc, char *argv[])
+{
+ int fd;
+ int ret;
+ struct serial_struct ss;
+
+ if (argc < 2)
+ usage(argv[0]);
+
+ fd = open(argv[1], O_RDWR);
+ if (fd < 0) {
+ perror("open");
+ exit(EXIT_FAILURE);
+ }
+
+ ret = ioctl(fd, TIOCGSERIAL, &ss);
+ if (ret < 0) {
+ perror("ioctl(TIOCGSERIAL)");
+ exit(EXIT_FAILURE);
+ }
+
+ if (argc < 3) { /* just read PPS status */
+ printf("PPS is %sabled\n",
+ ss.flags & ASYNC_HARDPPS_CD ? "en" : "dis");
+ exit(EXIT_SUCCESS);
+ }
+
+ if (argv[2][0] == 'e' || argv[2][0] == '1')
+ ss.flags |= ASYNC_HARDPPS_CD;
+ else if (argv[2][0] == 'd' || argv[2][0] == '0')
+ ss.flags &= ~ASYNC_HARDPPS_CD;
+ else {
+ fprintf(stderr, "invalid state argument \"%s\"\n", argv[2]);
+ exit(EXIT_FAILURE);
+ }
+
+ ret = ioctl(fd, TIOCSSERIAL, &ss);
+ if (ret < 0) {
+ perror("ioctl(TIOCSSERIAL)");
+ exit(EXIT_FAILURE);
+ }
+
+ return 0;
+}
--
1.5.2.5
next prev parent reply other threads:[~2008-02-22 14:02 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-22 14:03 LinuxPPS (RESUBMIT): the PPS Linux implementation Rodolfo Giometti
2008-02-22 14:03 ` [PATCH] LinuxPPS core support Rodolfo Giometti
2008-02-22 14:03 ` [PATCH] PPS: userland header file for PPS API Rodolfo Giometti
2008-02-22 14:03 ` [PATCH] PPS: documentation programs and examples Rodolfo Giometti
2008-02-22 14:03 ` [PATCH] PPS: LinuxPPS clients support Rodolfo Giometti
2008-02-22 14:03 ` [PATCH] PPS: serial " Rodolfo Giometti
2008-02-22 14:03 ` Rodolfo Giometti [this message]
2008-02-22 14:03 ` [PATCH] PPS: parallel port " Rodolfo Giometti
-- strict thread matches above, loose matches on Subject: below --
2008-02-18 23:28 LinuxPPS (RESUBMIT): the PPS Linux implementation Rodolfo Giometti
2008-02-18 23:28 ` [PATCH] LinuxPPS core support Rodolfo Giometti
2008-02-18 23:28 ` [PATCH] PPS: userland header file for PPS API Rodolfo Giometti
2008-02-18 23:28 ` [PATCH] PPS: documentation programs and examples Rodolfo Giometti
2008-02-18 23:28 ` [PATCH] PPS: LinuxPPS clients support Rodolfo Giometti
2008-02-18 23:28 ` [PATCH] PPS: serial " Rodolfo Giometti
2008-02-18 23:28 ` [PATCH] PPS: example program to enable PPS support on serial ports Rodolfo Giometti
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=12036890142501-git-send-email-giometti@linux.it \
--to=giometti@linux.it \
--cc=akpm@linux-foundation.org \
--cc=davej@redhat.com \
--cc=dwmw2@infradead.org \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
--cc=randy.dunlap@oracle.com \
--cc=sam@ravnborg.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).