checkpatch: add variable $OpenOCD
[fw/openocd] / src / helper / fileio.h
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2
3 /***************************************************************************
4  *   Copyright (C) 2007 by Dominic Rath                                    *
5  *   Dominic.Rath@gmx.de                                                   *
6  *                                                                         *
7  *   Copyright (C) 2007,2008 Ã˜yvind Harboe                                 *
8  *   oyvind.harboe@zylin.com                                               *
9  *                                                                         *
10  *   Copyright (C) 2008 by Spencer Oliver                                  *
11  *   spen@spen-soft.co.uk                                                  *
12  ***************************************************************************/
13
14 #ifndef OPENOCD_HELPER_FILEIO_H
15 #define OPENOCD_HELPER_FILEIO_H
16
17 #include "types.h"
18
19 #define FILEIO_MAX_ERROR_STRING         (128)
20
21 enum fileio_type {
22         FILEIO_TEXT,
23         FILEIO_BINARY,
24 };
25
26 enum fileio_access {
27         FILEIO_NONE,            /* open without any access (invalid mode) */
28         FILEIO_READ,            /* open for reading, position at beginning */
29         FILEIO_WRITE,           /* open for writing, position at beginning */
30         FILEIO_READWRITE,       /* open for writing, position at beginning, allow reading */
31         FILEIO_APPEND,          /* open for writing, position at end */
32         FILEIO_APPENDREAD,      /* open for writing, position at end, allow reading */
33 };
34
35 struct fileio;
36
37 int fileio_open(struct fileio **fileio, const char *url,
38                 enum fileio_access access_type, enum fileio_type type);
39 int fileio_close(struct fileio *fileio);
40 int fileio_feof(struct fileio *fileio);
41
42 int fileio_seek(struct fileio *fileio, size_t position);
43 int fileio_fgets(struct fileio *fileio, size_t size, void *buffer);
44
45 int fileio_read(struct fileio *fileio,
46                 size_t size, void *buffer, size_t *size_read);
47 int fileio_write(struct fileio *fileio,
48                 size_t size, const void *buffer, size_t *size_written);
49
50 int fileio_read_u32(struct fileio *fileio, uint32_t *data);
51 int fileio_write_u32(struct fileio *fileio, uint32_t data);
52 int fileio_size(struct fileio *fileio, size_t *size);
53
54 #define ERROR_FILEIO_LOCATION_UNKNOWN                   (-1200)
55 #define ERROR_FILEIO_NOT_FOUND                                  (-1201)
56 #define ERROR_FILEIO_OPERATION_FAILED                   (-1202)
57 #define ERROR_FILEIO_ACCESS_NOT_SUPPORTED               (-1203)
58 #define ERROR_FILEIO_RESOURCE_TYPE_UNKNOWN              (-1204)
59 #define ERROR_FILEIO_OPERATION_NOT_SUPPORTED    (-1205)
60
61 #endif /* OPENOCD_HELPER_FILEIO_H */