[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.16.212.0: ~ $
	/* $Id: fpm_shm.c,v 1.3 2008/05/24 17:38:47 anight Exp $ */
	/* (c) 2007,2008 Andrei Nigmatulin, Jerome Loyet */

#include <sys/mman.h>
#include <errno.h>
#include <string.h>

#include "fpm_shm.h"
#include "zlog.h"


/* MAP_ANON is deprecated, but not in macosx */
#if defined(MAP_ANON) && !defined(MAP_ANONYMOUS)
#define MAP_ANONYMOUS MAP_ANON
#endif

static size_t fpm_shm_size = 0;

void *fpm_shm_alloc(size_t size) /* {{{ */
{
	void *mem;

	mem = mmap(0, size, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_SHARED, -1, 0);

#ifdef MAP_FAILED
	if (mem == MAP_FAILED) {
		zlog(ZLOG_SYSERROR, "unable to allocate %zu bytes in shared memory: %s", size, strerror(errno));
		return NULL;
	}
#endif

	if (!mem) {
		zlog(ZLOG_SYSERROR, "unable to allocate %zu bytes in shared memory", size);
		return NULL;
	}

	fpm_shm_size += size;
	return mem;
}
/* }}} */

int fpm_shm_free(void *mem, size_t size) /* {{{ */
{
	if (!mem) {
		zlog(ZLOG_ERROR, "mem is NULL");
		return 0;
	}

	if (munmap(mem, size) == -1) {
		zlog(ZLOG_SYSERROR, "Unable to free shm");
		return 0;
	}

	if (fpm_shm_size - size > 0) {
		fpm_shm_size -= size;
	} else {
		fpm_shm_size = 0;
	}

	return 1;
}
/* }}} */

size_t fpm_shm_get_size_allocated() /* {{{*/
{
	return fpm_shm_size;
}
/* }}} */

Filemanager

Name Type Size Permission Actions
events Folder 0755
fastcgi.c File 25.94 KB 0644
fastcgi.h File 4.47 KB 0644
fpm.c File 2.84 KB 0644
fpm.h File 1.13 KB 0644
fpm_arrays.h File 1.82 KB 0644
fpm_atomic.h File 3.95 KB 0644
fpm_children.c File 10.99 KB 0644
fpm_children.h File 873 B 0644
fpm_cleanup.c File 849 B 0644
fpm_cleanup.h File 519 B 0644
fpm_clock.c File 2.23 KB 0644
fpm_clock.h File 239 B 0644
fpm_conf.c File 49.14 KB 0644
fpm_conf.h File 2.43 KB 0644
fpm_env.c File 5.39 KB 0644
fpm_env.h File 491 B 0644
fpm_events.c File 11.67 KB 0644
fpm_events.h File 1.59 KB 0644
fpm_log.c File 11.53 KB 0644
fpm_log.h File 300 B 0644
fpm_main.c File 62.74 KB 0644
fpm_php.c File 6.42 KB 0644
fpm_php.h File 1.23 KB 0644
fpm_php_trace.c File 3.49 KB 0644
fpm_process_ctl.c File 13.65 KB 0644
fpm_process_ctl.h File 1.23 KB 0644
fpm_request.c File 8.01 KB 0644
fpm_request.h File 1.18 KB 0644
fpm_scoreboard.c File 7.84 KB 0644
fpm_scoreboard.h File 2.5 KB 0644
fpm_shm.c File 1.23 KB 0644
fpm_shm.h File 263 B 0644
fpm_signals.c File 4.72 KB 0644
fpm_signals.h File 315 B 0644
fpm_sockets.c File 11.39 KB 0644
fpm_sockets.h File 1006 B 0644
fpm_status.c File 13.7 KB 0644
fpm_status.h File 1.03 KB 0644
fpm_stdio.c File 7.36 KB 0644
fpm_stdio.h File 569 B 0644
fpm_str.h File 483 B 0644
fpm_systemd.c File 3.11 KB 0644
fpm_systemd.h File 275 B 0644
fpm_trace.c File 641 B 0644
fpm_trace.h File 378 B 0644
fpm_trace_ptrace.c File 1.6 KB 0644
fpm_unix.c File 19.23 KB 0644
fpm_unix.h File 518 B 0644
fpm_worker_pool.c File 1.57 KB 0644
fpm_worker_pool.h File 1.23 KB 0644
zlog.c File 4.47 KB 0644
zlog.h File 978 B 0644