diff options
author | John Högberg <[email protected]> | 2017-09-06 12:38:05 +0200 |
---|---|---|
committer | John Högberg <[email protected]> | 2017-09-06 12:38:05 +0200 |
commit | ad5d9eef3f41274f08008cdbb43afb2088d3276e (patch) | |
tree | 9d3263d517f6e3c20a5f2f855673f20efc302c9f /erts/emulator/beam/erl_port.h | |
parent | 7394b41b9f254c7f83d508cfc615bd1d63a84507 (diff) | |
parent | eed25a02ba2416c48587699542aaecdd09609718 (diff) | |
download | otp-ad5d9eef3f41274f08008cdbb43afb2088d3276e.tar.gz otp-ad5d9eef3f41274f08008cdbb43afb2088d3276e.tar.bz2 otp-ad5d9eef3f41274f08008cdbb43afb2088d3276e.zip |
Merge branch 'lukas/erts/nif_vector_q/OTP-14598' into maint
OTP-14520
Diffstat (limited to 'erts/emulator/beam/erl_port.h')
-rw-r--r-- | erts/emulator/beam/erl_port.h | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/erts/emulator/beam/erl_port.h b/erts/emulator/beam/erl_port.h index 6a3213ec52..b64de624dd 100644 --- a/erts/emulator/beam/erl_port.h +++ b/erts/emulator/beam/erl_port.h @@ -31,6 +31,9 @@ typedef struct ErtsProc2PortSigData_ ErtsProc2PortSigData; #include "erl_ptab.h" #include "erl_thr_progress.h" #include "erl_trace.h" +#define ERTS_IO_QUEUE_TYPES_ONLY__ +#include "erl_io_queue.h" +#undef ERTS_IO_QUEUE_TYPES_ONLY__ #ifndef __WIN32__ #define ERTS_DEFAULT_MAX_PORTS (1 << 16) @@ -75,23 +78,8 @@ typedef struct erts_driver_t_ erts_driver_t; #define ERTS_Port2ErlDrvPort(PH) ((ErlDrvPort) (PH)) #endif -#define SMALL_IO_QUEUE 5 /* Number of fixed elements */ +typedef ErtsIOQueue ErlPortIOQueue; -typedef struct { - ErlDrvSizeT size; /* total size in bytes */ - - SysIOVec* v_start; - SysIOVec* v_end; - SysIOVec* v_head; - SysIOVec* v_tail; - SysIOVec v_small[SMALL_IO_QUEUE]; - - ErlDrvBinary** b_start; - ErlDrvBinary** b_end; - ErlDrvBinary** b_head; - ErlDrvBinary** b_tail; - ErlDrvBinary* b_small[SMALL_IO_QUEUE]; -} ErlIOQueue; typedef struct line_buf { /* Buffer used in line oriented I/O */ ErlDrvSizeT bufsiz; /* Size of character buffer */ @@ -172,7 +160,7 @@ struct _erl_drv_port { Uint bytes_in; /* Number of bytes read */ Uint bytes_out; /* Number of bytes written */ - ErlIOQueue ioq; /* driver accessible i/o queue */ + ErlPortIOQueue ioq; /* driver accessible i/o queue */ DistEntry *dist_entry; /* Dist entry used in DISTRIBUTION */ char *name; /* String used in the open */ erts_driver_t* drv_ptr; |