Path: blob/a-new-beginning/SharedDependencies/Sources/libslirp/include/stream.h
2 views
/* SPDX-License-Identifier: BSD-3-Clause */1#ifndef STREAM_H_2#define STREAM_H_34#include "libslirp.h"56typedef struct SlirpIStream {7SlirpReadCb read_cb;8void *opaque;9} SlirpIStream;1011typedef struct SlirpOStream {12SlirpWriteCb write_cb;13void *opaque;14} SlirpOStream;1516/* Read exactly size bytes from stream, return 1 if all ok, 0 otherwise */17bool slirp_istream_read(SlirpIStream *f, void *buf, size_t size);18/* Write exactly size bytes to stream, return 1 if all ok, 0 otherwise */19bool slirp_ostream_write(SlirpOStream *f, const void *buf, size_t size);2021/* Read exactly one byte from stream, return it, otherwise return 0 */22uint8_t slirp_istream_read_u8(SlirpIStream *f);23/* Write exactly one byte to stream, return 1 if all ok, 0 otherwise */24bool slirp_ostream_write_u8(SlirpOStream *f, uint8_t b);2526/* Read exactly two bytes from big-endian stream, return it, otherwise return 0 */27uint16_t slirp_istream_read_u16(SlirpIStream *f);28/* Write exactly two bytes to big-endian stream, return 1 if all ok, 0 otherwise */29bool slirp_ostream_write_u16(SlirpOStream *f, uint16_t b);3031/* Read exactly four bytes from big-endian stream, return it, otherwise return 0 */32uint32_t slirp_istream_read_u32(SlirpIStream *f);33/* Write exactly four bytes to big-endian stream, return 1 if all ok, 0 otherwise */34bool slirp_ostream_write_u32(SlirpOStream *f, uint32_t b);3536/* Read exactly two bytes from big-endian stream (signed), return it, otherwise return 0 */37int16_t slirp_istream_read_i16(SlirpIStream *f);38/* Write exactly two bytes to big-endian stream (signed), return 1 if all ok, 0 otherwise */39bool slirp_ostream_write_i16(SlirpOStream *f, int16_t b);4041/* Read exactly four bytes from big-endian stream (signed), return it, otherwise return 0 */42int32_t slirp_istream_read_i32(SlirpIStream *f);43/* Write exactly four bytes to big-endian stream (signed), return 1 if all ok, 0 otherwise */44bool slirp_ostream_write_i32(SlirpOStream *f, int32_t b);4546#endif /* STREAM_H_ */474849