Home » Linux Kernel » Linux Device Drivers » RTC driver » Test Code for Real Time Clock ( RTC ) Linux Driver

Test Code for Real Time Clock ( RTC ) Linux Driver

This code can be used for testing the real time clock driver developed for new Linux based platform.

 $ vim gettime.c 
/*
 * Test Code for Real Time Clock Driver
 *
 * Compile with:
 *      gcc -s -Wall -Wstrict-prototypes gettime.c -o gettime
 *
 * This binary is a part of RTC test suite.
 *
 * History:
 * Copyright (C) 1996, Paul Gortmaker. This version is based on Paul's
 *
 * XX-XX-XXXX   Texas Instruments       Initial version of the testcode
 * 12-09-2008   Ricardo Perez Olivares  Adding basic comments, variable
 *                                      names according to coding
 *                                      standars.
 *
 * Copyright (C) 2004-2009 Texas Instruments, Inc
 *
 * This package is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 *
 */
 
#include <stdio.h>
#include <linux/rtc.h>
#include <sys/ioctl.h>
#include <sys/time.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
 
int main(int argc, char *argv[])
{
 
    int fd, retval;
    struct rtc_time rtc_tm;
 
    /* Creating a file descriptor for RTC */
    fd = open(argv[1], O_RDONLY);
    if (fd == -1) {
        perror("Requested device cannot be opened!");
        _exit(errno);
    }
 
    /* Reading Current RTC Date/Time */
    retval = ioctl(fd, RTC_RD_TIME, &rtc_tm);
    if (retval == -1) {
        perror("ioctl");
        _exit(errno);
    }
    fprintf(stdout, "\nCurrent RTC Date/Time: %d-%d-%d %02d:%02d:%02d\n\n",
        rtc_tm.tm_mday, rtc_tm.tm_mon + 1, rtc_tm.tm_year + 1900,
        rtc_tm.tm_hour, rtc_tm.tm_min, rtc_tm.tm_sec);
    fflush(stdout);
    fflush(stdout);
    fflush(stdout);
    close(fd);
    return 0;
}
 $ gcc -s -Wall -Wstrict-prototypes gettime.c -o gettime 
 $ sudo ./gettime /dev/rtc 

Subscribe our Rurban Life YouTube Channel.. "Rural Life, Urban LifeStyle"

Leave a Comment