tcl/interface: support for Raspberry Pi 5
[openocd.git] / src / helper / fileio.h
blob6b4be8ef560efe8b170a8f6abb544ea7bcb3efdd
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
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 ***************************************************************************/
14 #ifndef OPENOCD_HELPER_FILEIO_H
15 #define OPENOCD_HELPER_FILEIO_H
17 #include "types.h"
19 #define FILEIO_MAX_ERROR_STRING (128)
21 enum fileio_type {
22 FILEIO_TEXT,
23 FILEIO_BINARY,
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 */
35 struct fileio;
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);
42 int fileio_seek(struct fileio *fileio, size_t position);
43 int fileio_fgets(struct fileio *fileio, size_t size, void *buffer);
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);
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);
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)
61 #endif /* OPENOCD_HELPER_FILEIO_H */