Esempio n. 1
0
File: annotate.c Progetto: piki/pip
void ANNOTATE_PUSH_PATH_ID(const char *roles, int level, const void *path_id, int idsz) {
	ThreadContext *pctx = GET_CTX;
	assert(++pctx->idpos < MAXSTACK);
	path_common(pctx->fd, roles, level, path_id, idsz);
	ID(pctx) = malloc(idsz);
	memcpy(ID(pctx), path_id, idsz);
	IDLEN(pctx) = idsz;
}
Esempio n. 2
0
File: annotate.c Progetto: piki/pip
void ANNOTATE_SET_PATH_ID(const char *roles, int level, const void *path_id, int idsz) {
	ThreadContext *pctx = GET_CTX;
	if (level > pctx->log_level) return;

	if (IDLEN(pctx) == idsz && memcmp(path_id, ID(pctx), idsz) == 0) return;  // already set

	path_common(pctx->fd, roles, level, path_id, idsz);

	if (!ID(pctx))
		ID(pctx) = malloc(idsz);
	else if (IDLEN(pctx) != idsz)
		ID(pctx) = realloc(ID(pctx), idsz);
	// else keep the old block as is
	memcpy(ID(pctx), path_id, idsz);
	IDLEN(pctx) = idsz;
}
Esempio n. 3
0
File: annotate.c Progetto: piki/pip
void ANNOTATE_POP_PATH_ID(const char *roles, int level) {
	ThreadContext *pctx = GET_CTX;
	free(ID(pctx));
	assert(--pctx->idpos >= 0);
	path_common(pctx->fd, roles, level, ID(pctx), IDLEN(pctx));
}
Esempio n. 4
0
int rmdir(const char *name)
{
	return path_common(name, 0, 5);
}
Esempio n. 5
0
int mkdir(const char *name, int mode)
{
	return path_common(name, mode, 4);
}