Esempio n. 1
0
int
main (int argc, char *argv[])
{
  setlocale (LC_ALL, "");
  gen_progname (argv[0]);
  parse_args (argc, argv);

  if (args_index != argc - 1)
    {
      fprintf (stderr, "%s: no database file specified\n",
	       progname);
      usage ();
      return 1;
    }
  db_file = strdup (argv[args_index]);

  if (load_image_info () < 0)
    return 2;

  /* Nothing to do? */
  if (img_info_size == 0)
    return 0;

  dump_rebasedb (stdout, &hdr, img_info_list, img_info_size);
  return 0;
}
Esempio n. 2
0
File: main.c Progetto: LuckJC/pro-mk
static int acquire_linux_images(   struct image **images,
                                    unsigned int *num_images,
                                    unsigned int *bmt_address)
{
    const unsigned int NUM_IMAGES = sizeof(LINUX_PARTITION_IMAGE_FILE_PATH) /
        sizeof(LINUX_PARTITION_IMAGE_FILE_PATH[0]);
    /*const unsigned int NUM_IMAGES_NAME = sizeof(LINUX_PARTITION_IMAGE_NAME) /
        sizeof(LINUX_PARTITION_IMAGE_NAME[0]);*/
    unsigned int i;

    //assert(NUM_IMAGES == NUM_IMAGES_NAME);

    assert(images != NULL);
    *images = (struct image *)malloc(sizeof(struct image) * NUM_IMAGES);
    memset(*images, 0, sizeof(struct image) * NUM_IMAGES);
    assert(*images != NULL);

    assert(num_images != NULL);
    *num_images = NUM_IMAGES;

    for (i=0; i<NUM_IMAGES; ++i)
    {
        struct image *image_i = &(*images)[i];
        if (load_image(image_i, LINUX_PARTITION_IMAGE_FILE_PATH[i], LINUX_PARTITION_FILE_ADDR[i]) != 0)
            return -1;
        load_image_info(image_i, LINUX_PARTITION_IMAGE_NAME[i], LINUX_PARTITION_TYPE[i]);
        if(!strcmp(LINUX_PARTITION_IMAGE_NAME[i], "_BMTPOOL"))
        {
            *bmt_address = LINUX_PARTITION_FILE_ADDR[i];
        }
    }
    return 0;
}
Esempio n. 3
0
void Image::load()
{
    flags |= USED;

    if (tex != 0 || image != NULL)
        return;

    if (flags & FILE) {
        ((FileImage*)this)->load_file();
        return;
    }

    unsigned int size, out_size;
    unsigned char * buf;
    int ret;
    if (startup_data) {
        unsigned int start = AssetFile::get_offset(0, AssetFile::IMAGE_DATA);
        unsigned int self = AssetFile::get_offset(handle,
                                                  AssetFile::IMAGE_DATA);
        unsigned int offset = self - start;
        ArrayStream stream((char*)startup_data, startup_size);
        stream.seek(offset);
        load_image_info(*this, stream, size, out_size);
        buf = &startup_data[stream.pos];
        ret = stbi_zlib_decode_buffer((char*)image, out_size,
                                      (const char*)buf, size);
    } else {
        open_image_file();
        image_file.set_item(handle, AssetFile::IMAGE_DATA);
        FileStream stream(image_file);
        load_image_info(*this, stream, size, out_size);
        buf = new unsigned char[size];
        image_file.read(buf, size);
        ret = stbi_zlib_decode_buffer((char*)image, out_size,
                                      (const char*)buf, size);
        delete[] buf;
    }

    if (ret < 0) {
        std::cout << "Could not load image " << handle << std::endl;
        std::cout << stbi_failure_reason() << std::endl;
        stbi_image_free(image);
        image = NULL;
    }
}
Esempio n. 4
0
	shared_ptr< image_info<symbol_info> > mapped_module_ex::get_image_info() const
	{
		return load_image_info(path.c_str());
	}