示例#1
0
void LLScriptLSOParse::printData(LLFILE *fp)
{
	


	printNameDesc(fp);

	printRegisters(fp);

	printGlobals(fp);

	printGlobalFunctions(fp);

	printStates(fp);

	printHeap(fp);
}
示例#2
0
int body()
{ 
   char c;
   printf("proc %d resumes to body()\n", running->pid);
   while(1)
   {
    printGlobals();
    color = running->pid + 7;
    printf("proc %d running : enter a key : ", running->pid);
    c = getc(); 
    printf("%c\n", c);
    
    switch(c)
    {
      case 'f' : do_kfork(); break;
      case 's' : do_tswitch(); break;
      case 'q' : do_exit(); break;
    }
   }
}
示例#3
0
main()
{
  char usrInput;

  printf("\n\nMTX starts in main()\n");
  init();
  
  printGlobals();

  while(1){
    
    printf("proc 0  running : enter a key : \n");
    usrInput = getc();
    kfork();
    printf("\n");

    //if readyQueue != empty
    if(readyQueue)
    {
      tswitch();
    }
  }
}
/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  listenToSocket
 *  Description:  
 * =====================================================================================
 */
void *listenToSocket ( void *arg ) {

     int newsockfd, n, sockfd;
     char buffer[1024];

     sockfd = g_players[g_curr_player].socket;
     newsockfd = g_players[g_curr_player].newsocket;

     /* Send Globals and Board State */
     memset( buffer, 0,  sizeof(char) * 1024);
     printGlobals( buffer );
     printCurrentBoard( buffer );
     n = write(newsockfd,buffer,strlen(buffer));
     printf("Sent: %d\n", n);
     if (n < 0) error("ERROR writing to socket");
     
     /* Lock */
     pthread_mutex_lock(&g_mutex);

     /* Receive new message */
     memset( buffer, 0, sizeof(char) * 1024);
     n = read(newsockfd,buffer,1023);
     if (n < 0) error("ERROR reading from socket");

     /* Parse message and manage turn */
     parseMessage( buffer );

     /* Redraw */
     glutPostRedisplay();

     g_waiting = 0;

     /* Unlock */
     pthread_mutex_unlock(&g_mutex);

     return NULL;
}	
示例#5
0
void traceHeader(struct part *part)
{
    int i, ncols;
    struct jig *j;
    struct tm *ptr;
    time_t tm;
    tm = time(NULL);
    ptr = localtime(&tm);

    if (CommandLine != NULL && CommandLine[0] != '\0') {
        write_traceline("# Command Line: %s\n", CommandLine);
    }
    printGlobals();
    
    // asctime provides '\n' so we needn't add one
    write_traceline("# Date and Time: %s", asctime(ptr));
    if (InputFileName != NULL && InputFileName[0] != '\0') {
        write_traceline("# Input File: %s\n", InputFileName);
    }
    if (GromacsOutputBaseName != NULL && GromacsOutputBaseName[0] != '\0') {
        write_traceline("# Gromacs Output Base Name: %s\n", GromacsOutputBaseName);
    }
    if (OutputFileName != NULL && OutputFileName[0] != '\0') {
        write_traceline("# Output File: %s\n", OutputFileName);
    }
    if (TraceFileName != NULL && TraceFileName[0] != '\0') {
        write_traceline("# Trace File: %s\n", TraceFileName);
    }
    if (IDKey != NULL && IDKey[0] != '\0') {
        write_traceline("# IDKey: %s\n", IDKey);
    }
    if (ToMinimize) {
        write_traceline("#\n");
        write_traceline("# Run type: Energy Minimization.\n");
        write_traceline("#\n");
        write_traceline("# iteration    RMS force (pN)      maximum force (pN)\n");
        write_traceline("#\n");
        return;
    }

    write_traceline("# \n");
    write_traceline("# Run type: Dynamics.\n");
    write_traceline("# \n");
    write_traceline("# Number of Frames: %d\n", NumFrames);
    write_traceline("# Steps per Frame: %d\n", IterPerFrame);
    write_traceline("# Temperature: %.1f\n", Temperature);

    if (part == NULL) {
        write_traceline("# Warning: no part supplied.\n");
        return;
    }

    write_traceline("# Number of Atoms: %d\n", part->num_atoms);
    write_traceline("# \n");

    for (i=0; i<part->num_jigs; i++) {
        j = part->jigs[i];
        switch (j->type) {
                    
        case Thermostat:
            write_traceline("# %s Temperature setting: %f K\n", j->name, j->j.thermostat.temperature);
            break;

        case LinearMotor:
            write_traceline("# %s Force: %f pN\n", j->name, j->j.lmotor.force);
            write_traceline("# %s Stiffness: %f N/m\n", j->name, j->j.lmotor.stiffness);
            break;
               
        case RotaryMotor:
            write_traceline("# %s Zero Speed Torque: %f nN-nm\n", j->name, j->j.rmotor.stall / 1e6);
            write_traceline("# %s Zero Torque Speed: %f Ghz\n", j->name, j->j.rmotor.speed / (2.0e9 * Pi));
            write_traceline("# %s Initial Speed: %f Ghz\n", j->name, j->j.rmotor.omega / (2.0e9 * Pi));
            write_traceline("# %s Damping coefficient: %f\n", j->name, j->j.rmotor.damping_enabled ? j->j.rmotor.dampingCoefficient : 0.0);
            break;

        default:
            break;
        }
    }    
    write_traceline("#\n");
    
    ncols = 0;
    if (PrintPotentialEnergy) {
	ncols += 3;
    }
    
    for (i=0; i<part->num_jigs; i++) {
        ncols += countOutputColumns(part->jigs[i]);
    }

    // Column count does not include the time column.  Cad uses this
    // to configure plotting interface.
    write_traceline("# %d columns:\n", ncols);
    
    for (i=0; i<part->num_jigs; i++) {
        j = part->jigs[i];
        switch (j->type) {

        case DihedralMeter:
            write_traceline("# %s: dihedral (degrees)\n", j->name); 
            break;

        case AngleMeter:
            write_traceline("# %s: angle (degrees)\n", j->name); 
            break;

        case RadiusMeter:
            write_traceline("# %s: distance (angstroms)\n", j->name); 
            break;
       
        case Ground:
            write_traceline("# %s: torque (nn-nm)\n", j->name); 
            break;
                    
        case Thermometer:
            write_traceline("# %s: temperature (K)\n", j->name);
            break;
                    
        case Thermostat:
            write_traceline("# %s: energy added (zJ)\n", j->name);
            break;

        case LinearMotor:
            write_traceline("# %s: displacement (angstroms)\n", j->name);
            break;
               
        case RotaryMotor:
            write_traceline("# %s: speed (GHz)\n", j->name);
            write_traceline("# %s: torque (nn-nm)\n", j->name);
            break;
        }
    }    
    if (PrintPotentialEnergy) {
	write_traceline("# Structure: potential energy (attojoules)\n");
	write_traceline("# Structure: kinetic energy (attojoules)\n");
	write_traceline("# Structure: total energy (attojoules)\n");
    }
    write_traceline("#\n");
}