Exemplo n.º 1
0
static void dout(struct dirent64 *d)
{
  POUT("%20lu %20ld %2u ",d->ino,d->off,d->type);
  s64 j=depth;
  while(j--) POUTC("  ");
  POUT("%s\n",d->name);
}
Exemplo n.º 2
0
static void mysection_mycategory_properties_get(struct ctx_mysection *cm,
                                                            s64 mysection_start)
{
  void *string_property="not found";
  u32 integer_property=0;

  s64 line_start=mysection_start;
  while(1){
    if((u64)line_start>=cm->c.sz){
      POUTC("no more mycategory properties:line start not in file\n");
      break;
    }

    s64 line_end=line_end_reach(&cm->c,line_start);
    s64 key_start=blanks_skip(&cm->c,line_start,line_end);

    //finished:beginning of next section reached ("[key]")
    if(*(u8*)(cm->c.m+key_start)=='[') break;

    s64 val_start=key_skip_to_val(&cm->c,key_start,line_end);
    if(val_start==KEY_SKIP_TO_VAL_NO_VAL){
      POUTC("no value\n");
    }else{
      if(IS_KEY(STRING_PROPERTY)) 
        string_property=string_property_get(cm,val_start,line_end);
      else if(IS_KEY(INTEGER_PROPERTY))
        integer_property=integer_property_get(cm,val_start,line_end);
      //add more properties in mycategory here
    }

    line_start=line_end+1;
  }
  POUT("CONF:string_property=%s integer_property=%d\n",string_property,
                                                              integer_property);
}
Exemplo n.º 3
0
int main( void )
{
  // Stop watchdog timer to prevent time out reset
    WDTCTL = WDTPW + WDTHOLD;
    DDR(0x0f);
    POUT(0xf0);
    
    while(1)
    {
        i=PIN;
    }

}
Exemplo n.º 4
0
void ulinux_start(l argc,void **argv)
{
  u8 _dprintf_buf[DPRINTF_BUF_SZ];
  dprintf_buf=&_dprintf_buf[0];

  if(argc!=2){
    PERR("ERROR:wrong number of command arguments(%d)\n",argc);
    exit(-1);
  }

  i fd;
  do fd=(i)open(argv[1],RDONLY,0); while(fd==-EINTR);
  if(ISERR(fd)){
    PERR("ERROR(%ld):unable to open module %s\n",fd,argv[1]);
    exit(-1);
  }

  struct stat m_stat;
  l r=fstat(fd,&m_stat);
  if(ISERR(r)){
    PERR("ERROR(%ld):unable to stat module\n",r);
    exit(-1);
  }
  POUT("size=%lu\n",m_stat.sz);

  l addr=mmap(0,m_stat.sz,PROT_READ,MAP_PRIVATE|MAP_POPULATE,fd,0);
  if(!addr||ISERR(addr)){
    PERR("ERROR(%ld):unable to mmap module file\n",addr);
    exit(-1);
  }

  r=init_module(addr,m_stat.sz,"");
  if(ISERR(r)){
    PERR("ERROR(%ld):unable init module\n",r);
    exit(-1);
  }
  exit(0);
}
Exemplo n.º 5
0
//******************************************************************************
//file management related functions
static s8 file_open_ro(struct ctx *c,void *path)
{
  i fd;
  do fd=open(path,O_RDONLY,0); while(fd==-EINTR);
  if(ISERR(fd)){
    PERR("file:error(%d):unable to open conf file %s\n",fd,path);
    goto err;
  }

  struct stat cfg_stat;
  l r=fstat(fd,&cfg_stat);
  if(ISERR(r)){
    PERR("file:error(%ld):unable to stat conf file %s\n",r,path);
    goto err_close_fd;
  }

  l addr=mmap(0,cfg_stat.sz,PROT_READ,MAP_PRIVATE|MAP_POPULATE,fd,0);
  if(!addr||ISERR(addr)){
    PERR("file:error(%ld):unable to mmap conf file %s\n",addr,path);
    goto err_close_fd;
  }

  c->fd=fd;
  c->m=(void*)addr;
  c->sz=(u64)cfg_stat.sz;

  POUT("file:conf file %s opened and mmaped\n",path);
  return CONF_INI_OK;

err_close_fd:
  do r=close(fd); while(r==-EINTR);
  if(ISERR(r))
    PERR("file:error(%ld):unable to close conf file\n",r,path);
err:
  return CONF_INI_ERR;
}
int
/* main(int argc, char *argv[]) */
whetstone_main()
{
	/* used in the FORTRAN version */
	long I;
	long N1, N2, N3, N4, N6, N7, N8, N9, N10, N11;
	double X1,X2,X3,X4,X,Y,Z;
	long LOOP;
	int II, JJ;

	/* added for this version */
	long loopstart;
	long long startsec, finisec;
	float KIPS;
	int continuous;

	loopstart = 1000000;		/* see the note about LOOP below */
	loopstart = 250000;

	continuous = 0;

	II = 1;		/* start at the first arg (temp use of II here) */
	/* while (II < argc) { */
	/* 	if (strncmp(argv[II], "-c", 2) == 0 || argv[II][0] == 'c') { */
	/* 		continuous = 1; */
	/* 	} else if (atol(argv[II]) > 0) { */
	/* 		loopstart = atol(argv[II]); */
	/* 	} else { */
	/* 		fprintf(stderr, USAGE); */
	/* 		return(1); */
	/* 	} */
	/* 	II++; */
	/* } */

LCONT:
/*
C
C	Start benchmark timing at this point.
C
*/
	startsec = get_microsec();// time(0);

/*
C
C	The actual benchmark starts here.
C
*/
	T  = .499975;
	T1 = 0.50025;
	T2 = 2.0;
/*
C
C	With loopcount LOOP=10, one million Whetstone instructions
C	will be executed in EACH MAJOR LOOP..A MAJOR LOOP IS EXECUTED
C	'II' TIMES TO INCREASE WALL-CLOCK TIMING ACCURACY.
C
	LOOP = 1000;
*/
	LOOP = loopstart;
	II   = 1;

	JJ = 1;

IILOOP:
	N1  = 0;
	N2  = 12 * LOOP;
	N3  = 14 * LOOP;
	N4  = 345 * LOOP;
	N6  = 210 * LOOP;
	N7  = 32 * LOOP;
	N8  = 899 * LOOP;
	N9  = 616 * LOOP;
	N10 = 0;
	N11 = 93 * LOOP;
/*
C
C	Module 1: Simple identifiers
C
*/
	X1  =  1.0;
	X2  = -1.0;
	X3  = -1.0;
	X4  = -1.0;

	for (I = 1; I <= N1; I++) {
	    X1 = (X1 + X2 + X3 - X4) * T;
	    X2 = (X1 + X2 - X3 + X4) * T;
	    X3 = (X1 - X2 + X3 + X4) * T;
	    X4 = (-X1+ X2 + X3 + X4) * T;
	}
#ifdef PRINTOUT
	IF (JJ==II)POUT(N1,N1,N1,X1,X2,X3,X4);
#endif

/*
C
C	Module 2: Array elements
C
*/
	E1[1] =  1.0;
	E1[2] = -1.0;
	E1[3] = -1.0;
	E1[4] = -1.0;

	for (I = 1; I <= N2; I++) {
	    E1[1] = ( E1[1] + E1[2] + E1[3] - E1[4]) * T;
	    E1[2] = ( E1[1] + E1[2] - E1[3] + E1[4]) * T;
	    E1[3] = ( E1[1] - E1[2] + E1[3] + E1[4]) * T;
	    E1[4] = (-E1[1] + E1[2] + E1[3] + E1[4]) * T;
	}

#ifdef PRINTOUT
	IF (JJ==II)POUT(N2,N3,N2,E1[1],E1[2],E1[3],E1[4]);
#endif

/*
C
C	Module 3: Array as parameter
C
*/
	for (I = 1; I <= N3; I++)
		PA(E1);

#ifdef PRINTOUT
	IF (JJ==II)POUT(N3,N2,N2,E1[1],E1[2],E1[3],E1[4]);
#endif

/*
C
C	Module 4: Conditional jumps
C
*/
	J = 1;
	for (I = 1; I <= N4; I++) {
		if (J == 1)
			J = 2;
		else
			J = 3;

		if (J > 2)
			J = 0;
		else
			J = 1;

		if (J < 1)
			J = 1;
		else
			J = 0;
	}

#ifdef PRINTOUT
	IF (JJ==II)POUT(N4,J,J,X1,X2,X3,X4);
#endif

/*
C
C	Module 5: Omitted
C 	Module 6: Integer arithmetic
C
*/

	J = 1;
	K = 2;
	L = 3;

	for (I = 1; I <= N6; I++) {
	    J = J * (K-J) * (L-K);
	    K = L * K - (L-J) * K;
	    L = (L-K) * (K+J);
	    E1[L-1] = J + K + L;
	    E1[K-1] = J * K * L;
	}

#ifdef PRINTOUT
	IF (JJ==II)POUT(N6,J,K,E1[1],E1[2],E1[3],E1[4]);
#endif

/*
C
C	Module 7: Trigonometric functions
C
*/
	X = 0.5;
	Y = 0.5;

	for (I = 1; I <= N7; I++) {
		X = T * DATAN(T2*DSIN(X)*DCOS(X)/(DCOS(X+Y)+DCOS(X-Y)-1.0));
		Y = T * DATAN(T2*DSIN(Y)*DCOS(Y)/(DCOS(X+Y)+DCOS(X-Y)-1.0));
	}

#ifdef PRINTOUT
	IF (JJ==II)POUT(N7,J,K,X,X,Y,Y);
#endif

/*
C
C	Module 8: Procedure calls
C
*/
	X = 1.0;
	Y = 1.0;
	Z = 1.0;

	for (I = 1; I <= N8; I++)
		P3(X,Y,&Z);

#ifdef PRINTOUT
	IF (JJ==II)POUT(N8,J,K,X,Y,Z,Z);
#endif

/*
C
C	Module 9: Array references
C
*/
	J = 1;
	K = 2;
	L = 3;
	E1[1] = 1.0;
	E1[2] = 2.0;
	E1[3] = 3.0;

	for (I = 1; I <= N9; I++)
		P0();

#ifdef PRINTOUT
	IF (JJ==II)POUT(N9,J,K,E1[1],E1[2],E1[3],E1[4]);
#endif

/*
C
C	Module 10: Integer arithmetic
C
*/
	J = 2;
	K = 3;

	for (I = 1; I <= N10; I++) {
	    J = J + K;
	    K = J + K;
	    J = K - J;
	    K = K - J - J;
	}

#ifdef PRINTOUT
	IF (JJ==II)POUT(N10,J,K,X1,X2,X3,X4);
#endif

/*
C
C	Module 11: Standard functions
C
*/
	X = 0.75;

	for (I = 1; I <= N11; I++)
		X = DSQRT(DEXP(DLOG(X)/T1));

#ifdef PRINTOUT
	IF (JJ==II)POUT(N11,J,K,X,X,X,X);
#endif

/*
C
C      THIS IS THE END OF THE MAJOR LOOP.
C
*/
	if (++JJ <= II)
		goto IILOOP;

/*
C
C      Stop benchmark timing at this point.
C
*/
	finisec = get_microsec();// time(0);

/*
C----------------------------------------------------------------
C      Performance in Whetstone KIP's per second is given by
C
C	(100*LOOP*II)/TIME
C
C      where TIME is in seconds.
C--------------------------------------------------------------------
*/
	_printf("\n");
	if (finisec-startsec <= 0) {
		_printf("Insufficient duration- Increase the LOOP count\n");
		return(1);
	}

	_printf("Loops: %ld, Iterations: %d, Duration: %lld sec.\n",
		LOOP, II, (finisec-startsec)/1000000);

	KIPS = (100.0*LOOP*II)/((double)(finisec-startsec)/1000000.0); //(((double)(finisec-startsec)) / (double)CLOCKS_PER_SEC );
	if (KIPS >= 1000.0){
		_printf("C Converted Double Precision Whetstones: %.1f MIPS\n", KIPS/1000.0);
	}
	else{
		_printf("C Converted Double Precision Whetstones: %.1f KIPS\n", KIPS);
	}

	if (continuous)
		goto LCONT;

	return(0);
}
Exemplo n.º 7
0
i function_2(i a,i b)
{
  POUT("function_2:%d,%d,%d\n",a,b,a+b);
  return a-b;
}
Exemplo n.º 8
0
i function_1(i a,i b)
{
  POUT("function_1:%d,%d\n",a,b);
  return 0;
}
Exemplo n.º 9
0
void SKFPlayer::run()
{
	if (!playing || !buffer) return;

	// if doing something, continue
	if (curaction) {
		if (curaction == SKF_FadeOut || curaction == SKF_FadeWhite) {
			fadelevel++;
			if (fadelevel == FADESTEPS) curaction = 0; // done
		} else if (curaction == SKF_FadeIn) {
			fadelevel--;
			if (fadelevel == 0) curaction = 0; // done
		} else {
			pout << "Unknown fade action: " << curaction << std::endl;
		}
	}

	// CHECKME: this timing may not be accurate enough...
	uint32 now = SDL_GetTicks();
	if (lastupdate + (1000/framerate) > now) return;

	lastupdate += (1000/framerate);

	// if waiting, continue to wait
	if (timer) {
		timer--;
		return;
	}

	Pentagram::Font* redfont;
	redfont = FontManager::get_instance()->getGameFont(6, true);

	MusicProcess* musicproc = MusicProcess::get_instance();
	AudioProcess* audioproc = AudioProcess::get_instance();

	// handle events for the current frame
	while (curevent < events.size() && events[curevent]->frame <= curframe) {
//		pout << "event " << curevent << std::endl;
		switch (events[curevent]->action)
		{
		case SKF_FadeOut:
			curaction = SKF_FadeOut;
			fadecolour = 0;
			fadelevel = 0;
//			pout << "FadeOut" << std::endl;
			break;
		case SKF_FadeIn:
			curaction = SKF_FadeIn;
			fadelevel = FADESTEPS;
//			pout << "FadeIn" << std::endl;
			break;
		case SKF_FadeWhite:
			curaction = SKF_FadeWhite;
			fadecolour = 0xFF;
			fadelevel = 0;
//			pout << "FadeWhite" << std::endl;
			break;
		case SKF_Wait:
//			pout << "Wait " << events[curevent]->data << std::endl;
			timer = events[curevent]->data;
			curevent++;
			return;
		case SKF_PlayMusic:
//			pout << "PlayMusic " << events[curevent]->data << std::endl;
			if (musicproc) musicproc->playMusic(events[curevent]->data);
			break;
		case SKF_SlowStopMusic:
			POUT ("SlowStopMusic");
			if (musicproc && !introMusicHack) musicproc->playMusic(0);
			break;
		case SKF_PlaySFX:
//			pout << "PlaySFX " << events[curevent]->data << std::endl;
			if (audioproc) audioproc->playSFX(events[curevent]->data,0x60,0,0);
			break;
		case SKF_StopSFX:
//			pout << "StopSFX" << events[curevent]->data << std::endl;
			if (audioproc) audioproc->stopSFX(events[curevent]->data,0);
			break;
		case SKF_SetSpeed:
			POUT("SetSpeed " << events[curevent]->data);
//			framerate = events[curevent]->data;
			break;
		case SKF_PlaySound:
		{
//			pout << "PlaySound " << events[curevent]->data << std::endl;

			if (audioproc) {
				uint8* buffer = skf->get_object(events[curevent]->data);
				uint32 bufsize = skf->get_size(events[curevent]->data);
				Pentagram::AudioSample* s;
				uint32 rate = buffer[6] + (buffer[7]<<8);
				bool stereo = (buffer[8] == 2);
				s = new Pentagram::RawAudioSample(buffer+34, bufsize-34,
												  rate, true, stereo);
				audioproc->playSample(s, 0x60, 0);
				// FIXME: memory leak! (sample is never deleted)
			}

			// subtitles
			char* textbuf = reinterpret_cast<char*>(
				skf->get_object(events[curevent]->data-1));
			uint32 textsize = skf->get_size(events[curevent]->data-1);
			if (textsize > 7) {
				std::string subtitle = (textbuf+6);
				delete subs;
				subtitley = textbuf[4] + (textbuf[5]<<8);
				unsigned int remaining;
				subs = redfont->renderText(subtitle, remaining, 200, 0,
										   Pentagram::Font::TEXT_CENTER);
			}
			delete textbuf;


			break;
		}
		case SKF_ClearSubs:
//			pout << "ClearSubs" << std::endl;
			delete subs;
			subs = 0;
			break;
		default:
			pout << "Unknown action" << std::endl;
			break;
		}

		curevent++;
	}

	curframe++;

	PaletteManager* palman = PaletteManager::get_instance();
	IDataSource* object;

	uint16 objecttype = 0;
	do {
		curobject++;
		if (curobject >= skf->getCount()) {
			stop(); // done
			return;
		}

		// read object
		object = skf->get_datasource(curobject);
		if (!object || object->getSize() < 2)
			continue;

		objecttype = object->read2();

//		pout << "Object " << curobject << "/" << skf->getCount()
//			 << ", type = " << objecttype << std::endl;


		if (objecttype == 1) {
			palman->load(PaletteManager::Pal_Movie, *object);
		}

		if (objecttype != 2)
			delete object;

	} while (objecttype != 2);

	if (objecttype == 2) {
		object->seek(0);
		Shape* shape = new Shape(object, &U8SKFShapeFormat);
		Pentagram::Palette* pal= palman->getPalette(PaletteManager::Pal_Movie);
		shape->setPalette(pal);
		buffer->BeginPainting();
		buffer->Paint(shape, 0, 0, 0);
		buffer->EndPainting();
		delete shape;
	
		delete object;
	}

	timer = 1; // HACK! timing is rather broken currently...
}