unix: Use mp_raise_OSError helper function.
This commit is contained in:
parent
23a568240d
commit
503089ea9d
|
@ -203,7 +203,7 @@ STATIC mp_obj_t fdfile_open(const mp_obj_type_t *type, mp_arg_val_t *args) {
|
||||||
const char *fname = mp_obj_str_get_str(fid);
|
const char *fname = mp_obj_str_get_str(fid);
|
||||||
int fd = open(fname, mode_x | mode_rw, 0644);
|
int fd = open(fname, mode_x | mode_rw, 0644);
|
||||||
if (fd == -1) {
|
if (fd == -1) {
|
||||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(errno)));
|
mp_raise_OSError(errno);
|
||||||
}
|
}
|
||||||
o->fd = fd;
|
o->fd = fd;
|
||||||
return MP_OBJ_FROM_PTR(o);
|
return MP_OBJ_FROM_PTR(o);
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
#include "py/nlr.h"
|
#include "py/nlr.h"
|
||||||
#include "py/runtime.h"
|
#include "py/runtime.h"
|
||||||
#include "py/binary.h"
|
#include "py/binary.h"
|
||||||
|
#include "py/mperrno.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* modffi uses character codes to encode a value type, based on "struct"
|
* modffi uses character codes to encode a value type, based on "struct"
|
||||||
|
@ -215,7 +216,7 @@ STATIC mp_obj_t ffimod_func(size_t n_args, const mp_obj_t *args) {
|
||||||
|
|
||||||
void *sym = dlsym(self->handle, symname);
|
void *sym = dlsym(self->handle, symname);
|
||||||
if (sym == NULL) {
|
if (sym == NULL) {
|
||||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(ENOENT)));
|
mp_raise_OSError(MP_ENOENT);
|
||||||
}
|
}
|
||||||
return make_func(args[1], sym, args[3]);
|
return make_func(args[1], sym, args[3]);
|
||||||
}
|
}
|
||||||
|
@ -278,7 +279,7 @@ STATIC mp_obj_t ffimod_var(mp_obj_t self_in, mp_obj_t vartype_in, mp_obj_t symna
|
||||||
|
|
||||||
void *sym = dlsym(self->handle, symname);
|
void *sym = dlsym(self->handle, symname);
|
||||||
if (sym == NULL) {
|
if (sym == NULL) {
|
||||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(ENOENT)));
|
mp_raise_OSError(MP_ENOENT);
|
||||||
}
|
}
|
||||||
mp_obj_ffivar_t *o = m_new_obj(mp_obj_ffivar_t);
|
mp_obj_ffivar_t *o = m_new_obj(mp_obj_ffivar_t);
|
||||||
o->base.type = &ffivar_type;
|
o->base.type = &ffivar_type;
|
||||||
|
@ -295,7 +296,7 @@ STATIC mp_obj_t ffimod_addr(mp_obj_t self_in, mp_obj_t symname_in) {
|
||||||
|
|
||||||
void *sym = dlsym(self->handle, symname);
|
void *sym = dlsym(self->handle, symname);
|
||||||
if (sym == NULL) {
|
if (sym == NULL) {
|
||||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(ENOENT)));
|
mp_raise_OSError(MP_ENOENT);
|
||||||
}
|
}
|
||||||
return mp_obj_new_int((uintptr_t)sym);
|
return mp_obj_new_int((uintptr_t)sym);
|
||||||
}
|
}
|
||||||
|
@ -312,7 +313,7 @@ STATIC mp_obj_t ffimod_make_new(const mp_obj_type_t *type, size_t n_args, size_t
|
||||||
void *mod = dlopen(fname, RTLD_NOW | RTLD_LOCAL);
|
void *mod = dlopen(fname, RTLD_NOW | RTLD_LOCAL);
|
||||||
|
|
||||||
if (mod == NULL) {
|
if (mod == NULL) {
|
||||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(errno)));
|
mp_raise_OSError(errno);
|
||||||
}
|
}
|
||||||
mp_obj_ffimod_t *o = m_new_obj(mp_obj_ffimod_t);
|
mp_obj_ffimod_t *o = m_new_obj(mp_obj_ffimod_t);
|
||||||
o->base.type = type;
|
o->base.type = type;
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#include "py/nlr.h"
|
#include "py/runtime.h"
|
||||||
#include "py/obj.h"
|
#include "py/obj.h"
|
||||||
|
|
||||||
#include "extmod/machine_mem.h"
|
#include "extmod/machine_mem.h"
|
||||||
|
@ -58,7 +58,7 @@ uintptr_t mod_machine_mem_get_addr(mp_obj_t addr_o, uint align) {
|
||||||
if (!fd) {
|
if (!fd) {
|
||||||
fd = open("/dev/mem", O_RDWR | O_SYNC);
|
fd = open("/dev/mem", O_RDWR | O_SYNC);
|
||||||
if (fd == -1) {
|
if (fd == -1) {
|
||||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(errno)));
|
mp_raise_OSError(errno);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@ extern const mp_obj_type_t mp_fat_vfs_type;
|
||||||
|
|
||||||
#define RAISE_ERRNO(err_flag, error_val) \
|
#define RAISE_ERRNO(err_flag, error_val) \
|
||||||
{ if (err_flag == -1) \
|
{ if (err_flag == -1) \
|
||||||
{ nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(error_val))); } }
|
{ mp_raise_OSError(error_val); } }
|
||||||
|
|
||||||
STATIC mp_obj_t mod_os_stat(mp_obj_t path_in) {
|
STATIC mp_obj_t mod_os_stat(mp_obj_t path_in) {
|
||||||
struct stat sb;
|
struct stat sb;
|
||||||
|
|
|
@ -74,7 +74,7 @@ const mp_obj_type_t mp_type_socket;
|
||||||
// Helper functions
|
// Helper functions
|
||||||
#define RAISE_ERRNO(err_flag, error_val) \
|
#define RAISE_ERRNO(err_flag, error_val) \
|
||||||
{ if (err_flag == -1) \
|
{ if (err_flag == -1) \
|
||||||
{ nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(error_val))); } }
|
{ mp_raise_OSError(error_val); } }
|
||||||
|
|
||||||
static inline mp_obj_t mp_obj_from_sockaddr(const struct sockaddr *addr, socklen_t len) {
|
static inline mp_obj_t mp_obj_from_sockaddr(const struct sockaddr *addr, socklen_t len) {
|
||||||
return mp_obj_new_bytes((const byte *)addr, len);
|
return mp_obj_new_bytes((const byte *)addr, len);
|
||||||
|
@ -400,7 +400,7 @@ STATIC mp_obj_t mod_socket_gethostbyname(mp_obj_t arg) {
|
||||||
struct hostent *h = gethostbyname(s);
|
struct hostent *h = gethostbyname(s);
|
||||||
if (h == NULL) {
|
if (h == NULL) {
|
||||||
// CPython: socket.herror
|
// CPython: socket.herror
|
||||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(h_errno)));
|
mp_raise_OSError(h_errno);
|
||||||
}
|
}
|
||||||
assert(h->h_length == 4);
|
assert(h->h_length == 4);
|
||||||
return mp_obj_new_int(*(int*)*h->h_addr_list);
|
return mp_obj_new_int(*(int*)*h->h_addr_list);
|
||||||
|
@ -415,7 +415,7 @@ STATIC mp_obj_t mod_socket_inet_pton(mp_obj_t family_in, mp_obj_t addr_in) {
|
||||||
int r = inet_pton(family, mp_obj_str_get_str(addr_in), binaddr);
|
int r = inet_pton(family, mp_obj_str_get_str(addr_in), binaddr);
|
||||||
RAISE_ERRNO(r, errno);
|
RAISE_ERRNO(r, errno);
|
||||||
if (r == 0) {
|
if (r == 0) {
|
||||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(EINVAL)));
|
mp_raise_OSError(MP_EINVAL);
|
||||||
}
|
}
|
||||||
int binaddr_len = 0;
|
int binaddr_len = 0;
|
||||||
switch (family) {
|
switch (family) {
|
||||||
|
@ -437,7 +437,7 @@ STATIC mp_obj_t mod_socket_inet_ntop(mp_obj_t family_in, mp_obj_t binaddr_in) {
|
||||||
vstr_t vstr;
|
vstr_t vstr;
|
||||||
vstr_init_len(&vstr, family == AF_INET ? INET_ADDRSTRLEN : INET6_ADDRSTRLEN);
|
vstr_init_len(&vstr, family == AF_INET ? INET_ADDRSTRLEN : INET6_ADDRSTRLEN);
|
||||||
if (inet_ntop(family, bufinfo.buf, vstr.buf, vstr.len) == NULL) {
|
if (inet_ntop(family, bufinfo.buf, vstr.buf, vstr.len) == NULL) {
|
||||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(errno)));
|
mp_raise_OSError(errno);
|
||||||
}
|
}
|
||||||
vstr.len = strlen(vstr.buf);
|
vstr.len = strlen(vstr.buf);
|
||||||
return mp_obj_new_str_from_vstr(&mp_type_str, &vstr);
|
return mp_obj_new_str_from_vstr(&mp_type_str, &vstr);
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
|
|
||||||
#define RAISE_ERRNO(err_flag, error_val) \
|
#define RAISE_ERRNO(err_flag, error_val) \
|
||||||
{ if (err_flag == -1) \
|
{ if (err_flag == -1) \
|
||||||
{ nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(error_val))); } }
|
{ mp_raise_OSError(error_val); } }
|
||||||
|
|
||||||
STATIC mp_obj_t mod_termios_tcgetattr(mp_obj_t fd_in) {
|
STATIC mp_obj_t mod_termios_tcgetattr(mp_obj_t fd_in) {
|
||||||
struct termios term;
|
struct termios term;
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <poll.h>
|
#include <poll.h>
|
||||||
|
|
||||||
#include "py/nlr.h"
|
#include "py/runtime.h"
|
||||||
#include "py/obj.h"
|
#include "py/obj.h"
|
||||||
#include "py/objlist.h"
|
#include "py/objlist.h"
|
||||||
#include "py/objtuple.h"
|
#include "py/objtuple.h"
|
||||||
|
|
|
@ -39,4 +39,4 @@ static inline void mp_hal_delay_us(mp_uint_t us) { usleep(us); }
|
||||||
|
|
||||||
#define RAISE_ERRNO(err_flag, error_val) \
|
#define RAISE_ERRNO(err_flag, error_val) \
|
||||||
{ if (err_flag == -1) \
|
{ if (err_flag == -1) \
|
||||||
{ nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(error_val))); } }
|
{ mp_raise_OSError(error_val); } }
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#include "py/mpstate.h"
|
#include "py/mpstate.h"
|
||||||
|
#include "py/runtime.h"
|
||||||
#include "py/mpthread.h"
|
#include "py/mpthread.h"
|
||||||
#include "py/gc.h"
|
#include "py/gc.h"
|
||||||
|
|
||||||
|
@ -182,7 +183,7 @@ void mp_thread_create(void *(*entry)(void*), void *arg, size_t *stack_size) {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
er:
|
er:
|
||||||
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(ret)));
|
mp_raise_OSError(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mp_thread_finish(void) {
|
void mp_thread_finish(void) {
|
||||||
|
|
Loading…
Reference in New Issue