py/mpconfig.h: Add MICROPY_STREAMS_POSIX_API setting.
To filter out even prototypes of mp_stream_posix_*() functions, which require POSIX types like ssize_t & off_t, which may be not available in some ports.
This commit is contained in:
parent
58d9d85a56
commit
61e77a4e88
@ -75,6 +75,7 @@
|
|||||||
#define MICROPY_WARNINGS (1)
|
#define MICROPY_WARNINGS (1)
|
||||||
#define MICROPY_PY_STR_BYTES_CMP_WARN (1)
|
#define MICROPY_PY_STR_BYTES_CMP_WARN (1)
|
||||||
#define MICROPY_STREAMS_NON_BLOCK (1)
|
#define MICROPY_STREAMS_NON_BLOCK (1)
|
||||||
|
#define MICROPY_STREAMS_POSIX_API (1)
|
||||||
#define MICROPY_MODULE_FROZEN_STR (1)
|
#define MICROPY_MODULE_FROZEN_STR (1)
|
||||||
#define MICROPY_MODULE_FROZEN_MPY (1)
|
#define MICROPY_MODULE_FROZEN_MPY (1)
|
||||||
#define MICROPY_MODULE_FROZEN_LEXER mp_lexer_new_from_str32
|
#define MICROPY_MODULE_FROZEN_LEXER mp_lexer_new_from_str32
|
||||||
|
@ -522,6 +522,12 @@ typedef double mp_float_t;
|
|||||||
#define MICROPY_STREAMS_NON_BLOCK (0)
|
#define MICROPY_STREAMS_NON_BLOCK (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Whether to provide stream functions with POSIX-like signatures
|
||||||
|
// (useful for porting existing libraries to MicroPython).
|
||||||
|
#ifndef MICROPY_STREAMS_POSIX_API
|
||||||
|
#define MICROPY_STREAMS_POSIX_API (0)
|
||||||
|
#endif
|
||||||
|
|
||||||
// Whether to call __init__ when importing builtin modules for the first time
|
// Whether to call __init__ when importing builtin modules for the first time
|
||||||
#ifndef MICROPY_MODULE_BUILTIN_INIT
|
#ifndef MICROPY_MODULE_BUILTIN_INIT
|
||||||
#define MICROPY_MODULE_BUILTIN_INIT (0)
|
#define MICROPY_MODULE_BUILTIN_INIT (0)
|
||||||
|
@ -511,6 +511,7 @@ STATIC mp_obj_t stream_ioctl(size_t n_args, const mp_obj_t *args) {
|
|||||||
}
|
}
|
||||||
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_stream_ioctl_obj, 2, 3, stream_ioctl);
|
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_stream_ioctl_obj, 2, 3, stream_ioctl);
|
||||||
|
|
||||||
|
#if MICROPY_STREAMS_POSIX_API
|
||||||
/*
|
/*
|
||||||
* POSIX-like functions
|
* POSIX-like functions
|
||||||
*
|
*
|
||||||
@ -519,7 +520,6 @@ MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_stream_ioctl_obj, 2, 3, stream_ioctl);
|
|||||||
* POSIX-compatible software to work with MicroPython streams.
|
* POSIX-compatible software to work with MicroPython streams.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
// errno-like variable. If any of the functions below returned with error
|
// errno-like variable. If any of the functions below returned with error
|
||||||
// status, this variable will contain error no.
|
// status, this variable will contain error no.
|
||||||
int mp_stream_errno;
|
int mp_stream_errno;
|
||||||
@ -568,3 +568,5 @@ int mp_stream_posix_fsync(mp_obj_t stream) {
|
|||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -84,11 +84,13 @@ mp_uint_t mp_stream_rw(mp_obj_t stream, void *buf, mp_uint_t size, int *errcode,
|
|||||||
|
|
||||||
void mp_stream_write_adaptor(void *self, const char *buf, size_t len);
|
void mp_stream_write_adaptor(void *self, const char *buf, size_t len);
|
||||||
|
|
||||||
|
#if MICROPY_STREAMS_POSIX_API
|
||||||
// Functions with POSIX-compatible signatures
|
// Functions with POSIX-compatible signatures
|
||||||
ssize_t mp_stream_posix_write(mp_obj_t stream, const void *buf, size_t len);
|
ssize_t mp_stream_posix_write(mp_obj_t stream, const void *buf, size_t len);
|
||||||
ssize_t mp_stream_posix_read(mp_obj_t stream, void *buf, size_t len);
|
ssize_t mp_stream_posix_read(mp_obj_t stream, void *buf, size_t len);
|
||||||
off_t mp_stream_posix_lseek(mp_obj_t stream, off_t offset, int whence);
|
off_t mp_stream_posix_lseek(mp_obj_t stream, off_t offset, int whence);
|
||||||
int mp_stream_posix_fsync(mp_obj_t stream);
|
int mp_stream_posix_fsync(mp_obj_t stream);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if MICROPY_STREAMS_NON_BLOCK
|
#if MICROPY_STREAMS_NON_BLOCK
|
||||||
#define mp_is_nonblocking_error(errno) ((errno) == EAGAIN || (errno) == EWOULDBLOCK)
|
#define mp_is_nonblocking_error(errno) ((errno) == EAGAIN || (errno) == EWOULDBLOCK)
|
||||||
|
@ -63,6 +63,7 @@
|
|||||||
#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_DOUBLE)
|
#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_DOUBLE)
|
||||||
#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_MPZ)
|
#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_MPZ)
|
||||||
#define MICROPY_STREAMS_NON_BLOCK (1)
|
#define MICROPY_STREAMS_NON_BLOCK (1)
|
||||||
|
#define MICROPY_STREAMS_POSIX_API (1)
|
||||||
#define MICROPY_OPT_COMPUTED_GOTO (1)
|
#define MICROPY_OPT_COMPUTED_GOTO (1)
|
||||||
#ifndef MICROPY_OPT_CACHE_MAP_LOOKUP_IN_BYTECODE
|
#ifndef MICROPY_OPT_CACHE_MAP_LOOKUP_IN_BYTECODE
|
||||||
#define MICROPY_OPT_CACHE_MAP_LOOKUP_IN_BYTECODE (1)
|
#define MICROPY_OPT_CACHE_MAP_LOOKUP_IN_BYTECODE (1)
|
||||||
|
Loading…
Reference in New Issue
Block a user