/*Simpler code to change f, w/o fork F*//* CANO-2005 */
/* Prev. one was for CANO_DVFS LKM, this one is for CANO_PHASE_DVFS_LKM!! */
/* make -f ..makefile */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "CANO_PHASE_DVFS_LKM.h"


int main(int argc, char *argv[])
{
  int freq = 1500;
  int f,V;
  
  if(argc<2)
  {
      printf("Usage: %s -F <freq>\n", argv[0]);
      printf("  i.e. %s -F 600 \n", argv[0]);
      printf("  F = [600, 800, 1000, 1200, 1400, 1500] \n");

      return -1;
  }
  else if (strcmp(argv[1], "-F") != 0)
  {
      printf("Usage: %s -F <freq>\n", argv[0]);
      return -1;
  }

  get_current_f_V(&f,&V);
  printf("Currently %d MHz %d mV \n", f, V);

  freq = atoi(argv[2]);
  set_target_f(freq);
  
  get_target_f_V(&f,&V);
  printf("Target (PERF_CTL MSR): %d MHz %d mV \n", f, V);
  sleep(1);
  get_current_f_V(&f,&V);
  printf("Currently (PERF_STATUS MSR: %d MHz %d mV \n", f, V);

  return 0; /* only parent comes here */
  
}
