Add ioctls for all RTC features that are currently supported in linux kernel.
This series covers following iocts:
* RTC_AIE_ON
* RTC_AIE_OFF
* RTC_UIE_ON
* RTC_UIE_OFF
* RTC_PIE_ON
* RTC_PIE_OFF
* RTC_WIE_ON
* RTC_WIE_OFF
* RTC_ALM_SET
* RTC_ALM_READ
* RTC_RD_TIME
* RTC_SET_TIME
* RTC_IRQP_READ
* RTC_IRQP_SET
* RTC_EPOCH_READ
* RTC_EPOCH_SET
* RTC_WKALM_SET
* RTC_WKALM_RD
* RTC_PLL_GET
* RTC_PLL_SET
* RTC_VL_READ
* RTC_VL_CLR
The functionalities of individual ioctls were described in this series
patch commit messages.
Testing method:
Mini test programs were written for each ioctl. Those programs were
compiled (sometimes using cross-compilers) for the following
architectures:
* Intel 64-bit (little endian)
* Power pc 32-bit (big endian)
* Power pc 64-bit (big endian)
The corresponding native programs were executed without using
QEMU on following hosts:
* Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz
*.7447A, (ppc32 host)
All applicable compiled programs were in turn executed through QEMU
and the results obtained were the same ones gotten for native
execution.
Example of a test program:
For ioctl RTC_RD_TIME we have used the following test program:
#include <stdio.h>
#include <stdlib.h>
#include <linux/rtc.h>
#include <fcntl.h>
#include <linux/input.h>
#include <sys/types.h>
#include <unistd.h>
#define ERROR -1
int main()
{
int fd = open("/dev/rtc", O_RDWR | O_NONBLOCK);
if(fd == ERROR)
{
perror("open");
return -1;
}
struct rtc_time cur_time;
if(ioctl(fd, RTC_RD_TIME, &cur_time) < 0)
{
perror("ioctl");
return -1;
}
printf("Second: %d, Minute: %d, Hour: %d, Day: %d, Month: %d, Year: %d,",
cur_time.tm_sec, cur_time.tm_min, cur_time.tm_hour,
cur_time.tm_mday, cur_time.tm_mon, cur_time.tm_year);
return 0;
}
Filip Bozuta (6):
linux-user: Add support for enable/disable RTC features using ioctls
linux-user: Add support for read/set RTC time and alarm using ioctls
linux-user: Add support for read/set RTC periodic interrupt and epoch
using ioctls
linux-user: Add support for get/set RTC wakeup alarm using ioctls
linux-user: Add support for get/set RTC PLL correction using ioctls
linux-user: Add support for read/clear RTC voltage low detector using
ioctls
linux-user/ioctls.h | 23 +++++++++++++++++++++++
linux-user/syscall.c | 1 +
linux-user/syscall_defs.h | 36 ++++++++++++++++++++++++++++++++++++
linux-user/syscall_types.h | 25 +++++++++++++++++++++++++
4 files changed, 85 insertions(+)
--
2.7.4