diff options
author | John Högberg <[email protected]> | 2017-09-06 12:42:28 +0200 |
---|---|---|
committer | John Högberg <[email protected]> | 2017-09-06 13:48:51 +0200 |
commit | 0cc04010ae73fcb591be4f35c00eb61b653cc0d0 (patch) | |
tree | 01f3790ea5682742297cb786cd676fb49ae21dc0 /erts/emulator/beam/erl_port.h | |
parent | 28759f8cbde480be7782bac9169eeb9e4fb60bce (diff) | |
parent | ad5d9eef3f41274f08008cdbb43afb2088d3276e (diff) | |
download | otp-0cc04010ae73fcb591be4f35c00eb61b653cc0d0.tar.gz otp-0cc04010ae73fcb591be4f35c00eb61b653cc0d0.tar.bz2 otp-0cc04010ae73fcb591be4f35c00eb61b653cc0d0.zip |
Merge branch 'maint' into john/erts/merge-zlib-and-vector-q
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 98e9b9ccaf..9117eb1f72 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 */ @@ -165,7 +153,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; |