/*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; };
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); }