SG
#define SG_ADVANCE(SG, N) \
((SG)->len < (N) \
: ((SG)->buf += (N), (SG)->len -= (N), 0))
#define SG_LEN(SG) ((SG)->len + 0)
#define SG_ADVANCE(SG, N) \
((SG)->iov_len < (N) \
#define SG_BUF(SG) ((SG)->buf + 0)
: ((SG)->iov_base = (char *) (SG)->iov_base + (N), \
(SG)->iov_len -= (N), 0))
#define SG_LEN(SG) ((SG)->iov_len + 0)
#define SG_BUF(SG) ((char*)(SG)->iov_base + 0)
#define SG_SET(SG, B, L) ((SG)->iov_base = (char*)(B), (SG)->iov_len = (L))
#define SG_SET(SG, B, N) ((SG)->buf = (char *)(B),(SG)->len = (N))
#define SOCKET_WRITEV(FD, SG, LEN, TMP) \
((TMP) = socket_sendmsg((FD), (SG), (LEN)), (TMP))
#define SOCKET_WRITEV(FD, SG, LEN, TMP) \
(WSASend((FD), (SG), (LEN), &(TMP), 0, 0, 0) ? \
DEFINE_LINUX_IOCTL_SET(sg, SG);
SG psg[os_max_sg_descriptors];
SG psg[os_max_sg_descriptors];
SG psg[os_max_sg_descriptors];