/**
* @file op_deviceio.c
* Reading from a special device
*
* @remark Copyright 2002 OProfile authors
* @remark Read the file COPYING
*
* @author John Levon
* @author Philippe Elie
*/
#include "op_deviceio.h"
#include <sys/types.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
fd_t op_open_device(char const * name)
{
return open(name, O_RDONLY);
}
ssize_t op_read_device(fd_t devfd, void * buf, size_t size)
{
ssize_t count;
lseek(devfd, 0, SEEK_SET);
count = read(devfd, buf, size);
if (count < 0 && errno != EINTR && errno != EAGAIN) {
perror("oprofiled:op_read_device: ");
exit(EXIT_FAILURE);
}
return count;
}