Example #1
0
ssize_t
dc_write(int fd,const void *buff, size_t buflen)
{
	ssize_t n;
	struct vsp_node *node;

#ifdef DC_CALL_TRACE
	showTraceBack();
#endif

	/* nothing wrong ... yet */
	dc_errno = DEOK;

	node = get_vsp_node(fd);
	if (node == NULL) {
		/* we have not such file descriptor, so lets give a try to system */
		return system_write(fd, buff, buflen);
	}

	n = dc_real_write(node, buff, buflen);
	m_unlock(&node->mux);

	return n;

}
Example #2
0
/*
 *  merge_memory()
 *	trigger ksm memory merging, Linux only
 */
static inline void merge_memory(void)
{
#if defined(__linux__)
	int ret;

	ret = system_write("/proc/sys/mm/ksm/run", KSM_RUN_MERGE, 1);
	(void)ret;
#endif
}
Example #3
0
/*
 *  compact_memory()
 *	trigger memory compaction, Linux only
 */
static inline void compact_memory(void)
{
#if defined(__linux__)
	int ret;

	ret = system_write("/proc/sys/vm/compact_memory", "1", 1);
	(void)ret;
#endif
}
Example #4
0
/* Flush check buffer */
static void
check_flush(void)
{
    if ( gdata->check_fd < 0 ) {
        return;
    }
    if (gdata->check_buffer_index) {
        system_write(gdata->check_fd, gdata->check_buffer, gdata->check_buffer_index);
        gdata->check_buffer_index = 0;
    }
}
Example #5
0
/* Move arbitrary byte stream into gdata->check_fd */
static void
check_raw(void *buf, int len)
{
    if ( gdata->check_fd < 0 ) {
        return;
    }

    if ( len <= 0 ) {
        return;
    }

    if (gdata->check_buffer_index + len > gdata->check_buffer_size) {
        check_flush();
        if (len > gdata->check_buffer_size) {
            system_write(gdata->check_fd, buf, len);
            return;
        }
    }
    (void)memcpy(gdata->check_buffer + gdata->check_buffer_index, buf, len);
    gdata->check_buffer_index += len;
}
Example #6
0
File: io.c Project: ic-hep/emi3
int
writen(int fd, const char *buf, int bufsize, ioTunnel *en)
{
	int             nleft, nwritten;
	nleft = bufsize;

	while (nleft > 0) {
#ifdef WIN32
		nwritten = send(fd, buf, nleft, 0);
#else
		nwritten = en == NULL ? system_write(fd, buf, nleft) : en->eWrite(fd, buf, nleft);
#endif /* WIN32 */

		if (nwritten <= 0)
			return (nwritten);
		nleft -= nwritten;
		buf += nwritten;
	}

	return (bufsize - nleft);
}
Example #7
0
ssize_t intercept_write(gint fd, const gpointer buf, gint n) {
	return system_write(fd, buf, n);
}