Exemple #1
0
void reader() {
    gx_mfd                 *mfd_r;
    gx_eventloop_init (mfd_events);
    gx_sleep(0,500);  // Give the writer enough time to get the file set up.
    _N( mfd_r = acquire_gx_mfd(mfd_pool)               ) _abort();
    _ ( gx_mfd_create_r(mfd_r,10,"tmp/writer-file.dat")) _abort();
    _ ( mfd_events_add_misc(mfd_r->notify_fd, mfd_r)   ) _abort();
    _ ( mfd_events_wait(-1, on_readfile_changed)       ) _abort();
}
Exemple #2
0
int main(int argc, char **argv) {
    pid_t pid;
    int   status=0;

    _N( mfd_pool = new_gx_mfd_pool(2) ) _abort();
    _ (pid = fork()                   ) _abort();
    if(pid) /* child  */ writer();
    else    /* parent */ {reader(); waitpid(pid, &status, 0);}
    return status;
}
Exemple #3
0
void writer() {
    int     i;
    gx_mfd *mfd_w;
    char    msg[] = "something blah blah";

    _N( mfd_w = acquire_gx_mfd(mfd_pool)               ) _abort();
    _ ( gx_mfd_create_w(mfd_w,10,"tmp/writer-file.dat")) _abort();
    gx_sleep(1);
    for(i=0; i < 5; i++) {
        gx_sleep(0,500);
        log_info("CHILD:    Writing some stuff");
        mfd_write(mfd_w, msg, sizeof(msg));
    }
    //printf("writer: %llX\n", (unsigned long long int)(mfd_w->head->sig));
    gx_sleep(1);
}
Exemple #4
0
void _optlink()
{
    LNKINIT();

    // command lines all read, ready to go...
    // start at head of OBJ_LIST and process OBJ_FILES

    PASS1_STUFF();		// reads objs and libs

    MIDDLE_STUFF();		// org segs and publics, etc

    PASS2_STUFF(); 		// fixup and relocate

    // NEED TO WAIT FOR ANY OUTPUT THREADS TO FINISH...

    // WAIT FOR MAP THREAD TO FINISH

    if (_HOST_THREADED)
    {
	if (!MAP_THREAD_HANDLE)
	    goto L7;
	WaitForSingleObject(MAP_THREAD_HANDLE, -1);
	_close_handle(MAP_THREAD_HANDLE);
	MAP_THREAD_HANDLE = 0;
    }
    if (MAPFILE_GINDEX)
    {
	// FLUSH LAST BUFFER OF MAP FILE
	MAP_FLUSHED = 0xFF;
	_flush_trunc_close(MAP_DEVICE);
    }
L7: ;
    _NO_CANCEL_FLAG = 0xFF;
    _abort();
}
Exemple #5
0
NPError NPN_GetValue(NPP instance, NPNVariable variable, void *ret_value) {
    notice("...getValue: %d", (int) variable);  
    {
        uint32_t *p = ret_value;
        notice("   %x %x %x %x", p[0], p[1], p[2], p[3]);
    }
    if(variable >= ((NPNVariable)1000) && variable <= ((NPNVariable)1011)) {
        iface_getvalue(variable, ret_value);
        return 0;
    }
    switch(variable) {
    case kSupportedDrawingModel_ANPGetValue:
        // This is not a mistake: it replicates a bug in Android.
        *((uint32_t *) ret_value) = kBitmap_ANPDrawingModel & kSurface_ANPDrawingModel;
        break;
    case kJavaContext_ANPGetValue:
        notice("kJavaContext_ANPGetValue");
        *((jobject *) ret_value) = android_context;
        break;
    case NPNVWindowNPObject: {
        int window_id;
        if(get_window_object(food, &window_id)) {
            perror("get_window_object");
            _abort();
        }
        *((NPObject **) ret_value) = new_idproxy_object(window_id);
        break;
    }
    default:
        notice("unknown GetValue! returning with error");
        *((uint32_t *) ret_value) = 0xdeadbee1;
        return NPERR_GENERIC_ERROR;
    }
    return 0;
}
void MobileRecoveryUnit::abortUnitOfWork() {
    invariant(_inUnitOfWork);

    RECOVERY_UNIT_TRACE() << " Unit of work aborted, marked inactive.";

    _inUnitOfWork = false;
    _abort();
}
WiredTigerRecoveryUnit::~WiredTigerRecoveryUnit() {
    invariant(!_inUnitOfWork);
    _abort();
    if (_session) {
        _sessionCache->releaseSession(_session);
        _session = NULL;
    }
}
 WiredTigerRecoveryUnit::~WiredTigerRecoveryUnit() {
     invariant( _depth == 0 );
     _abort();
     if ( _session ) {
         _sessionCache->releaseSession( _session );
         _session = NULL;
     }
 }
Exemple #9
0
void *Malloc(size_t size)
{
	void *p = memalign(CACHE_LINE_SIZE, size);
	if (!p) {
		/* Fatal Error. We must abort. */
		_abort();
	}
	return p;
}
Exemple #10
0
/////////////////////////////////////////////////////////////////////////////
// Customized HardFault Handler which prints out debugging informations
/////////////////////////////////////////////////////////////////////////////
void HardFault_Handler_c(unsigned int * hardfault_args)
{
  // from the book: "The definiteve guide to the ARM Cortex-M3"
  volatile unsigned int stacked_r0;
  volatile unsigned int stacked_r1;
  volatile unsigned int stacked_r2;
  volatile unsigned int stacked_r3;
  volatile unsigned int stacked_r12;
  volatile unsigned int stacked_lr;
  volatile unsigned int stacked_pc;
  volatile unsigned int stacked_psr;

  stacked_r0 = ((unsigned long) hardfault_args[0]);
  stacked_r1 = ((unsigned long) hardfault_args[1]);
  stacked_r2 = ((unsigned long) hardfault_args[2]);
  stacked_r3 = ((unsigned long) hardfault_args[3]);

  stacked_r12 = ((unsigned long) hardfault_args[4]);
  stacked_lr = ((unsigned long) hardfault_args[5]);
  stacked_pc = ((unsigned long) hardfault_args[6]);
  stacked_psr = ((unsigned long) hardfault_args[7]);
  
  MIOS32_MIDI_SendDebugMessage("Hard Fault PC = %08x\n", stacked_pc); // ensure that at least the PC will be sent
  MIOS32_MIDI_SendDebugMessage("==================\n");
  MIOS32_MIDI_SendDebugMessage("!!! HARD FAULT !!!\n");
  MIOS32_MIDI_SendDebugMessage("==================\n");
  MIOS32_MIDI_SendDebugMessage("R0 = %08x\n", stacked_r0);
  MIOS32_MIDI_SendDebugMessage("R1 = %08x\n", stacked_r1);
  MIOS32_MIDI_SendDebugMessage("R2 = %08x\n", stacked_r2);
  MIOS32_MIDI_SendDebugMessage("R3 = %08x\n", stacked_r3);
  MIOS32_MIDI_SendDebugMessage("R12 = %08x\n", stacked_r12);
  MIOS32_MIDI_SendDebugMessage("LR = %08x\n", stacked_lr);
  MIOS32_MIDI_SendDebugMessage("PC = %08x\n", stacked_pc);
  MIOS32_MIDI_SendDebugMessage("PSR = %08x\n", stacked_psr);
  MIOS32_MIDI_SendDebugMessage("BFAR = %08x\n", (*((volatile unsigned long *)(0xE000ED38))));
  MIOS32_MIDI_SendDebugMessage("CFSR = %08x\n", (*((volatile unsigned long *)(0xE000ED28))));
  MIOS32_MIDI_SendDebugMessage("HFSR = %08x\n", (*((volatile unsigned long *)(0xE000ED2C))));
  MIOS32_MIDI_SendDebugMessage("DFSR = %08x\n", (*((volatile unsigned long *)(0xE000ED30))));
  MIOS32_MIDI_SendDebugMessage("AFSR = %08x\n", (*((volatile unsigned long *)(0xE000ED3C))));

#ifndef MIOS32_DONT_USE_LCD
  // TODO: here we should select the normal font - but only if available!
  // MIOS32_LCD_FontInit((u8 *)GLCD_FONT_NORMAL);
  MIOS32_LCD_BColourSet(0xffffff);
  MIOS32_LCD_FColourSet(0x000000);

  MIOS32_LCD_DeviceSet(0);
  MIOS32_LCD_Clear();
  MIOS32_LCD_CursorSet(0, 0);
  MIOS32_LCD_PrintString("!! HARD FAULT !!");
  MIOS32_LCD_CursorSet(0, 1);
  MIOS32_LCD_PrintFormattedString("at PC=0x%08x", stacked_pc);
#endif

  _abort();
}
Exemple #11
0
void __noreturn assert_fail(const char *msg)
{
	/**
	 * @fwts-label FailedAssert
	 * @fwts-advice OPAL hit an assert(). During normal usage (even
	 * testing) we should never hit an assert. There are other code
	 * paths for controlled shutdown/panic in the event of catastrophic
	 * errors.
	 */
	prlog(PR_EMERG, "Assert fail: %s\n", msg);
	_abort(msg);
}
Exemple #12
0
int main(int argc, char **argv) {
    int i;

    log_info("Spawning 20,000 shortlived light threads");
    for(i=0; i < 20000; i++) {
        _(gx_clone(&child, NULL)) _abort();
    }
    log_info("(all-spawned - waiting a couple of seconds as they continue to die)");

    gx_sleep(2);
    return 0;
}
Exemple #13
0
void writeImage(char* fileName, imageData idata) {
  png_structp png_ptr;
  png_infop info_ptr;
  
  //Reverse the y-axis
  png_bytep temp_row;
  int front, back = idata.height-1;
  pixelData pd = idata.pdata;
  for (front=0; front<back; front++, back--) {
    temp_row = pd[front];
    idata.pdata[front] = pd[back];
    idata.pdata[back] = temp_row;
  }
  
  //Open file
  FILE *fp = fopen(fileName, "wb");
  if (!fp) _abort("Could not open file %s for writing.", fileName);
  
  //Libpng!
  png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
  if (!png_ptr) _abort("Problem getting libpng write struct.");
  info_ptr = png_create_info_struct(png_ptr);
  if (!info_ptr) _abort("Problem getting info pointer.");
  
  png_init_io(png_ptr, fp);
  
  png_set_IHDR(png_ptr, info_ptr, idata.width, idata.height,
               8, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE,
               PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
  png_write_info(png_ptr, info_ptr);
  
  png_write_image(png_ptr, idata.pdata);
  png_write_end(png_ptr, NULL);
  
  fclose(fp);
}
Exemple #14
0
void rasterLine(imageData idata, int x0, int y0, int x1, int y1)
{
  printf("Line from (%d,%d) to (%d, %d)\n", x0, y0, x1, y1);
  
  if (x0<0 || y0<0 || x1>=idata.width || y1>=idata.height)
        _abort("Requested line out of image bounds");
  
  int rise = y1-y0;
  int run = x1-x0;
  int x,y;
  
  //f(x,y) == (y0-y1)x + (x1-x0)y +x0y1 - x1y0 = 0
  //  f(x+1, y+0.5) < 0
  
  rgb lineColor = {0,255,0};
  int mult=1;
  if (abs(rise)<=abs(run)) { //abs(slope) < 1
    if (x0>x1) { //scan left to right
      swap(&x0, &x1);
      swap(&y0, &y1);
    }
    if ((y1-y0)<0) mult = -1;
    for (x=x0,y=y0; x<=x1; x++) {
      setPixelT(idata, x, y, lineColor);
      if ( mult*((y0-y1)*(x+1) + (x1-x0)*(y+0.5*mult) + x0*y1 - x1*y0) < 0 )
        y += mult;
    }
  } else { //abs(slope)>1
    if (y0>y1) { //scan bottom to top
      swap(&x0, &x1);
      swap(&y0, &y1);
    }
    if ((x1-x0)<0) mult = -1;
    for (y=y0,x=x0; y<=y1; y++) {
      setPixelT(idata, x, y, lineColor);
      if ( mult*((y0-y1)*(x+0.5*mult) + (x1-x0)*(y+1) + x0*y1 - x1*y0) > 0 )
        x+= mult;
    } 
  } 
}
Exemple #15
0
void vApplicationStackOverflowHook(xTaskHandle xTask, signed portCHAR *pcTaskName)
{
  MIOS32_MIDI_SendDebugMessage("======================\n");
  MIOS32_MIDI_SendDebugMessage("!!! STACK OVERFLOW !!!\n");
  MIOS32_MIDI_SendDebugMessage("======================\n");
  MIOS32_MIDI_SendDebugMessage("Function: %s\n", pcTaskName);

#ifndef MIOS32_DONT_USE_LCD
  // TODO: here we should select the normal font - but only if available!
  // MIOS32_LCD_FontInit((u8 *)GLCD_FONT_NORMAL);
  MIOS32_LCD_BColourSet(0xffffff);
  MIOS32_LCD_FColourSet(0x000000);

  MIOS32_LCD_DeviceSet(0);
  MIOS32_LCD_Clear();
  MIOS32_LCD_CursorSet(0, 0);
  MIOS32_LCD_PrintString("!! STACK OVERFLOW !!");
  MIOS32_LCD_CursorSet(0, 1);
  MIOS32_LCD_PrintFormattedString("in Task %s", pcTaskName);
#endif

  _abort();
}
Exemple #16
0
/////////////////////////////////////////////////////////////////////////////
// enabled in FreeRTOSConfig.h
/////////////////////////////////////////////////////////////////////////////
void vApplicationMallocFailedHook(void)
{
#ifndef MIOS32_DONT_USE_LCD
  // TODO: here we should select the normal font - but only if available!
  // MIOS32_LCD_FontInit((u8 *)GLCD_FONT_NORMAL);
  MIOS32_LCD_BColourSet(0xffffff);
  MIOS32_LCD_FColourSet(0x000000);

  MIOS32_LCD_DeviceSet(0);
  MIOS32_LCD_Clear();
  MIOS32_LCD_CursorSet(0, 0);
  MIOS32_LCD_PrintString("FATAL: FreeRTOS "); // 16 chars
  MIOS32_LCD_CursorSet(0, 1);
  MIOS32_LCD_PrintString("Malloc Error!!! "); // 16 chars
#endif

#ifndef MIOS32_DONT_USE_MIDI
  // Note: message won't be sent if MIDI task cannot be created!
  MIOS32_MIDI_SendDebugMessage("FATAL: FreeRTOS Malloc Error!!!\n");
#endif

  _abort();
}
Exemple #17
0
/////////////////////////////////////////////////////////////////////////////
// _exit() for newer newlib versions
/////////////////////////////////////////////////////////////////////////////
void exit(int par)
{
#ifndef MIOS32_DONT_USE_LCD
  // TODO: here we should select the normal font - but only if available!
  // MIOS32_LCD_FontInit((u8 *)GLCD_FONT_NORMAL);
  MIOS32_LCD_BColourSet(0xffffff);
  MIOS32_LCD_FColourSet(0x000000);

  MIOS32_LCD_DeviceSet(0);
  MIOS32_LCD_Clear();
  MIOS32_LCD_CursorSet(0, 0);
  MIOS32_LCD_PrintString("Goodbye!");
#endif

#ifndef MIOS32_DONT_USE_MIDI
  // Note: message won't be sent if MIDI task cannot be created!
  MIOS32_MIDI_SendDebugMessage("Goodbye!\n");
#endif

  // pro forma: since this is a noreturn function, loop endless and call _abort (which will never exit)
  while( 1 )
    _abort();
}
Exemple #18
0
void main(int argc, char **argv)
{
  propinfo = defpropinfo;

  XDefProps(&propinfo);

  InitInter(&argc, argv, &propinfo);

  if (argc != 3 && argc != 4) {

error:
    Error("call: ox com1 com2 [-old]\n");
  }

  if (strlen(argv[1]) + strlen(TO_PRAEFIX)   > 90 ||
      strlen(argv[2]) + strlen(TO_PRAEFIX)   > 90 ||
      strlen(argv[1]) + strlen(FROM_PRAEFIX) > 90 ||
      strlen(argv[2]) + strlen(FROM_PRAEFIX) > 90)
    Error("Id zu lang");


  if (argv[3])
    if (!strcmp(argv[3], "-old")) f_old = true;
    else goto error;


  sprintf(TO_1, "%s"TO_PRAEFIX, argv[1]);
  sprintf(FROM_1, "%s"FROM_PRAEFIX, argv[1]);

  sprintf(TO_2, "%s"TO_PRAEFIX, argv[2]);
  sprintf(FROM_2, "%s"FROM_PRAEFIX, argv[2]);


  Loop();

  _abort();
}
Exemple #19
0
bool idproxyConstruct(NPObject *npobj, const NPVariant *args, uint32_t argCount,     NPVariant *result) {
    err("! idproxyConstruct");
    _abort();
}
void TerarkDbRecoveryUnit::abortUnitOfWork() {
    invariant(_inUnitOfWork);
    _inUnitOfWork = false;
    _abort();
}
TerarkDbRecoveryUnit::~TerarkDbRecoveryUnit() {
    invariant(!_inUnitOfWork);
    _abort();
}
void WiredTigerRecoveryUnit::abortUnitOfWork() {
    invariant(_inUnitOfWork);
    _inUnitOfWork = false;
    _abort();
}
Exemple #23
0
bool idproxyRemoveProperty(NPObject *npobj, NPIdentifier name) {
    err("! idproxyRemoveProperty: %@", name);
    _abort();
}
Exemple #24
0
bool idproxyEnumeration(NPObject *npobj, NPIdentifier **value, uint32_t *count) {
    err("! idproxyEnumeration");
    _abort();
}
void WiredTigerRecoveryUnit::abortUnitOfWork() {
    invariant(_inUnitOfWork(), toString(_state));
    _abort();
}
Exemple #26
0
static void sigabort(int aa)
{
   _abort() ;
}
WiredTigerRecoveryUnit::~WiredTigerRecoveryUnit() {
    invariant(!_inUnitOfWork);
    _abort();
}
void RocksRecoveryUnit::endUnitOfWork() {
    _depth--;
    if (_depth == 0) {
        _abort();
    }
}
RocksRecoveryUnit::~RocksRecoveryUnit() {
    _abort();
    RocksRecoveryUnit::_totalLiveRecoveryUnits.fetch_sub(1, std::memory_order_relaxed);
}
 void WiredTigerRecoveryUnit::endUnitOfWork() {
     _depth--;
     if ( _depth == 0 ) {
         _abort();
     }
 }