Exemplo n.º 1
0
/*This function determines the amount of memory a process
 *   is currently using*/
DWORD getprocessmemory(process_mem *memptr,DWORD *pagedir)
{
    DWORD total_memory=0;
    process_mem *tmpr=memptr; //point to the head
    while (tmpr->vaddr!=0&&tmpr!=0)
    {
        process_mem *tmpr2=tmpr->next;
        total_memory+=getmultiple((void*)tmpr->vaddr,pagedir,tmpr->pages);
        tmpr=tmpr2;
    };
    return total_memory;
};
Exemplo n.º 2
0
engine_reply *enginereply(char *inputstr)
{
engine_reply *ret_value;
unsigned int templen;
char tempstr[BUFSIZ];
char tempvalue[BUFSIZ];

	if (inputstr == NULL) return(NULL);
	ret_value = (engine_reply *)malloc(sizeof(engine_reply));

	sscanf(inputstr,"%s",tempstr);			// process
	templen = strlen(tempstr);
	ret_value->process = (char *)malloc((templen + 1) * sizeof(char));
	strcpy(ret_value->process,tempstr);
	memmove(inputstr,inputstr+templen+1,strlen(inputstr) - templen);

	sscanf(inputstr,"%s",tempstr);			// task
	templen = strlen(tempstr);
	ret_value->task = (char *)malloc((templen + 1) * sizeof(char));
	strcpy(ret_value->task,tempstr);
	memmove(inputstr,inputstr+templen+1,strlen(inputstr) - templen);
	
	sscanf(inputstr,"%s %s",tempstr,tempvalue);	// type
	templen = strlen(tempvalue);
	ret_value->type = (char *)malloc((templen + 1) * sizeof(char));
	strcpy(ret_value->type,tempvalue);
	templen = templen + strlen(tempvalue);
	memmove(inputstr,inputstr+templen,strlen(inputstr) - templen + 1);
	
	sscanf(inputstr,"%s %s",tempstr,tempvalue);     // mode
	templen = strlen(tempvalue);
	ret_value->mode = (char *)malloc((templen + 1) * sizeof(char));
	strcpy(ret_value->mode,tempvalue);
	templen = templen + strlen(tempvalue);
	memmove(inputstr,inputstr+templen,strlen(inputstr) - templen + 1);

	sscanf(inputstr,"%s",tempstr);			// requires
	if (strcmp(tempstr,"requires") == 0) {
		templen = strlen(tempstr);
		memmove(inputstr,inputstr+templen+1,strlen(inputstr) - templen);
		ret_value->requires = getmultiple(inputstr);
	}
	else {
		ret_value->requires = (char *)malloc(1 * sizeof(char));
		strcpy(ret_value->requires,"");
	}

	sscanf(inputstr,"%s",tempstr);			// provides
	if (strcmp(tempstr,"provides") == 0) {
		templen = strlen(tempstr);
		memmove(inputstr,inputstr+templen+1,strlen(inputstr) - templen);
		ret_value->provides = getmultiple(inputstr);
	}
	else {
		ret_value->provides = (char *)malloc(1 * sizeof(char));
		strcpy(ret_value->provides,"");
	}

	sscanf(inputstr,"%s",tempstr);			// agent
	if (strcmp(tempstr,"agent") == 0) {
		templen = strlen(tempstr);
		memmove(inputstr,inputstr+templen+1,strlen(inputstr) - templen);
		ret_value->agent = getmultiple(inputstr);
	}
	else {
		ret_value->agent = (char *)malloc(1 * sizeof(char));
		strcpy(ret_value->agent,"");
	}

	sscanf(inputstr,"%s",tempstr);			// script
	if (strcmp(tempstr,"script") == 0) {
		templen = strlen(tempstr);
		memmove(inputstr,inputstr+templen+1,strlen(inputstr) - templen);
		ret_value->script = getmultiple(inputstr);
	}
	else {
		ret_value->script = (char *)malloc(1 * sizeof(char));
		strcpy(ret_value->script,"");
	}

	return(ret_value);
}