| /** |
| * @file op_fileio.h |
| * Reading from / writing to files |
| * |
| * @remark Copyright 2002 OProfile authors |
| * @remark Read the file COPYING |
| * |
| * @author John Levon |
| * @author Philippe Elie |
| */ |
| |
| #ifndef OP_FILEIO_H |
| #define OP_FILEIO_H |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #include "op_types.h" |
| |
| #include <stdio.h> |
| |
| /** |
| * op_try_open_file - open a file |
| * @param name file name |
| * @param mode mode string |
| * |
| * Open a file name. |
| * Returns file handle or %NULL on failure. |
| */ |
| FILE * op_try_open_file(char const * name, char const * mode); |
| |
| /** |
| * op_open_file - open a file |
| * @param name file name |
| * @param mode mode string |
| * |
| * Open a file name. |
| * Failure to open is fatal. |
| */ |
| FILE * op_open_file(char const * name, char const * mode); |
| |
| /** |
| * op_read_int_from_file - parse an ASCII value from a file into an integer |
| * @param filename name of file to parse integer value from |
| * @param fatal non-zero if any error must be fatal |
| * |
| * Reads an ASCII integer from the given file. If an error occur and fatal is |
| * zero (u32)-1 is returned else the value read in is returned. |
| */ |
| u32 op_read_int_from_file(char const * filename, int fatal); |
| |
| /** |
| * op_close_file - close a file |
| * @param fp file pointer |
| * |
| * Closes a file pointer. A non-fatal |
| * error message is produced if the |
| * close fails. |
| */ |
| void op_close_file(FILE * fp); |
| |
| /** |
| * op_write_file - write to a file |
| * @param fp file pointer |
| * @param buf buffer |
| * @param size nr. of bytes to write |
| * |
| * Write size bytes of buffer buf to a file. |
| * Failure is fatal. |
| */ |
| void op_write_file(FILE * fp, void const * buf, size_t size); |
| |
| /** |
| * op_write_u32 - write four bytes to a file |
| * @param fp file pointer |
| * @param val value to write |
| * |
| * Write an unsigned four-byte value val to a file. |
| * Failure is fatal. |
| * |
| * No byte-swapping is done. |
| */ |
| void op_write_u32(FILE * fp, u32 val); |
| |
| /** |
| * op_write_u64 - write eight bytes to a file |
| * @param fp file pointer |
| * @param val value to write |
| * |
| * Write an unsigned eight-byte value val to a file. |
| * Failure is fatal. |
| * |
| * No byte-swapping is done. |
| */ |
| void op_write_u64(FILE * fp, u64 val); |
| |
| /** |
| * op_write_u8 - write a byte to a file |
| * @param fp file pointer |
| * @param val value to write |
| * |
| * Write an unsigned byte value val to a file. |
| * Failure is fatal. |
| */ |
| void op_write_u8(FILE * fp, u8 val); |
| |
| /** |
| * op_get_line - read an ASCII line from a file |
| * @param fp file pointer |
| * |
| * Get a line of ASCII text from a file. The file is read |
| * up to the first '\0' or '\n'. A trailing '\n' is deleted. |
| * |
| * Returns the dynamically-allocated string containing |
| * that line. At the end of a file NULL will be returned. |
| * be returned. |
| * |
| * The string returned must be free()d by the caller. |
| * |
| * getline() is not a proper solution to replace this function |
| */ |
| char * op_get_line(FILE * fp); |
| |
| /** |
| * calc_crc32 |
| * @param crc current value |
| * @param buf pointer to buffer |
| * @param len |
| * |
| * Returns current crc computed from the crc argument and the |
| * characters in len characters in buf. |
| */ |
| unsigned long calc_crc32(unsigned long crc, unsigned char * buf, size_t len); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* OP_FILEIO_H */ |