/** * @file op_deviceio.h * Reading from a special device * * @remark Copyright 2002 OProfile authors * @remark Read the file COPYING * * @author John Levon * @author Philippe Elie */ #ifndef OP_DEVICEIO_H #define OP_DEVICEIO_H #ifdef __cplusplus extern "C" { #endif #include "op_types.h" #include <unistd.h> /** * op_open_device - open a special char device for reading * @param name file name of device file * * Open the special file name. Returns the file descriptor * for the file or -1 on error. */ fd_t op_open_device(char const * name); /** * op_read_device - read from a special char device * @param devfd file descriptor of device * @param buf buffer * @param size size of buffer * * Read size bytes from a device into buffer buf. * A seek to the start of the device file is done first * then a read is requested in one go of size bytes. * * It is the caller's responsibility to do further op_read_device() * calls if the number of bytes read is not what is requested * (where this is applicable). * * The number of bytes read is returned, or a negative number * on failure (in which case errno will be set). If the call is * interrupted, then errno will be EINTR, and the client should * arrange for re-starting the read if necessary. */ ssize_t op_read_device(fd_t devfd, void * buf, size_t size); #ifdef __cplusplus } #endif #endif /* OP_DEVICEIO_H */