blob: 36777c52c43cb3426010b88dc8958eaa89ee75a5 [file] [log] [blame]
robert.swiecki3bb518c2010-10-14 00:48:24 +00001/*
robert.swiecki@gmail.com3b630b42015-02-16 10:53:53 +00002 *
robert.swiecki@gmail.com81189852015-02-14 23:44:55 +00003 * honggfuzz - file operations
4 * -----------------------------------------
robert.swiecki@gmail.com3b630b42015-02-16 10:53:53 +00005 *
robert.swiecki@gmail.com772b33d2015-02-14 20:35:00 +00006 * Author: Robert Swiecki <swiecki@google.com>
robert.swiecki@gmail.com3b630b42015-02-16 10:53:53 +00007 *
robert.swiecki@gmail.com772b33d2015-02-14 20:35:00 +00008 * Copyright 2010-2015 by Google Inc. All Rights Reserved.
robert.swiecki@gmail.com3b630b42015-02-16 10:53:53 +00009 *
10 * Licensed under the Apache License, Version 2.0 (the "License"); you may
11 * not use this file except in compliance with the License. You may obtain
robert.swiecki@gmail.com772b33d2015-02-14 20:35:00 +000012 * a copy of the License at
robert.swiecki@gmail.com3b630b42015-02-16 10:53:53 +000013 *
robert.swiecki@gmail.com772b33d2015-02-14 20:35:00 +000014 * http://www.apache.org/licenses/LICENSE-2.0
robert.swiecki@gmail.com3b630b42015-02-16 10:53:53 +000015 *
robert.swiecki@gmail.com772b33d2015-02-14 20:35:00 +000016 * Unless required by applicable law or agreed to in writing, software
17 * distributed under the License is distributed on an "AS IS" BASIS,
18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
19 * implied. See the License for the specific language governing
20 * permissions and limitations under the License.
robert.swiecki@gmail.com3b630b42015-02-16 10:53:53 +000021 *
robert.swiecki@gmail.com772b33d2015-02-14 20:35:00 +000022 */
robert.swiecki3bb518c2010-10-14 00:48:24 +000023
Jagger876a74c2016-02-09 22:09:11 +010024#ifndef _HF_FILES_H_
25#define _HF_FILES_H_
robert.swiecki3bb518c2010-10-14 00:48:24 +000026
27#include <stdint.h>
robert.swiecki@gmail.com66ee2752015-02-16 20:49:44 +000028#include <unistd.h>
29
robert.swiecki3bb518c2010-10-14 00:48:24 +000030extern bool files_init(honggfuzz_t * hfuzz);
31
Robert Swieckidecf14b2016-03-31 15:09:28 +020032extern ssize_t files_readFileToBufMax(char *fileName, uint8_t * buf, size_t fileMaxSz);
robert.swiecki@gmail.com4a7a9d82015-03-01 01:25:16 +000033
robert.swiecki@gmail.comdc8403e2015-03-01 01:33:00 +000034extern bool files_writeBufToFile(char *fileName, uint8_t * buf, size_t fileSz, int flags);
robert.swiecki3bb518c2010-10-14 00:48:24 +000035
robert.swiecki@gmail.com26a9ab72015-02-22 13:41:18 +000036extern bool files_writeToFd(int fd, uint8_t * buf, size_t fileSz);
robert.swiecki3bb518c2010-10-14 00:48:24 +000037
robert.swiecki@gmail.comad6af222015-02-14 01:56:08 +000038extern bool files_writeStrToFd(int fd, char *str);
39
Robert Swieckidecf14b2016-03-31 15:09:28 +020040extern ssize_t files_readFromFd(int fd, uint8_t * buf, size_t fileSz);
robert.swiecki@gmail.com26a9ab72015-02-22 13:41:18 +000041
robert.swiecki3bb518c2010-10-14 00:48:24 +000042extern bool files_writePatternToFd(int fd, off_t size, unsigned char p);
43
groebert@google.com1bd4c212013-06-19 11:13:56 +000044extern bool files_exists(char *fileName);
45
Robert Swieckidecf14b2016-03-31 15:09:28 +020046extern const char *files_basename(char *fileName);
groebert@google.com1c7e3b02013-06-19 09:27:38 +000047
robert.swiecki@gmail.com4f1124f2015-04-21 17:12:22 +000048extern bool files_parseDictionary(honggfuzz_t * hfuzz);
49
Anestis Bechtsoudis1ae1ce12015-09-06 23:43:48 +030050extern bool files_copyFile(const char *source, const char *destination, bool * dstExists);
Anestis Bechtsoudis7d42f9d2015-09-06 14:30:20 +030051
Anestis Bechtsoudisee5316d2015-09-27 19:11:48 +030052extern bool files_parseBlacklist(honggfuzz_t * hfuzz);
53
Anestis Bechtsoudisecb0a662015-09-27 18:19:46 +030054extern uint8_t *files_mapFile(char *fileName, off_t * fileSz, int *fd, bool isWritable);
Anestis Bechtsoudisd59af692015-09-21 15:15:05 +030055
Anestis Bechtsoudis413cb132016-02-07 12:59:00 +020056extern bool files_readPidFromFile(const char *fileName, pid_t * pidPtr);
57
robert.swiecki3bb518c2010-10-14 00:48:24 +000058#endif