コード例 #1
0
ファイル: sqWin32Args.c プロジェクト: lsehub/Handle
static int IsImage(char *name) { 
  int magic;
  int byteSwapped(int);
  sqImageFile fp;

  fp = sqImageFileOpen(name,"rb");
  if(!fp) return 0; /* not an image */
  if(sqImageFileRead(&magic, 1, sizeof(magic), fp) != sizeof(magic)) {
    sqImageFileClose(fp);
    return 0;
  }
  if(readableFormat(magic) || readableFormat(byteSwapped(magic))) {
    sqImageFileClose(fp);
    return true;
  }
   
  /* no luck at beginning of file, seek to 512 and try again */
  sqImageFileSeek( fp, 512);
  if(sqImageFileRead(&magic, 1, sizeof(magic), fp) != sizeof(magic)) {
    sqImageFileClose(fp);
    return 0;
  }
  sqImageFileClose(fp);
  return readableFormat(magic) || readableFormat(byteSwapped(magic));
}
コード例 #2
0
ファイル: squeakvm.c プロジェクト: dcorking/squeakvm-tablet
int 
Java_org_squeak_android_SqueakVM_loadImageHeap(JNIEnv *env, jobject self,
					       jstring imageName, 
					       int heapSize) {
  if(longAt(sqMemory) < 0xFFFF) {
    sqHeaderSize = longAt(sqMemory+4);
  } else {
    sqHeaderSize = byteSwapped(longAt(sqMemory+4));
  }
  initTimer();
  aioInit();
  dprintf(4, "loadImageHeap: headerSize = %d\n", sqHeaderSize);
  readImageFromFileHeapSizeStartingAt(0, heapSize-sqHeaderSize, 0);
  prepareActiveProcess();
  return 0;
}