static void swupdate_init(struct swupdate_cfg *sw) { /* Initialize internal tree to store configuration */ memset(sw, 0, sizeof(*sw)); LIST_INIT(&sw->images); LIST_INIT(&sw->hardware); LIST_INIT(&sw->scripts); LIST_INIT(&sw->bootscripts); LIST_INIT(&sw->bootloader); LIST_INIT(&sw->extprocs); sw->globals.cert_purpose = SSL_PURPOSE_DEFAULT; /* Create directories for scripts */ create_directory(SCRIPTS_DIR_SUFFIX); create_directory(DATADST_DIR_SUFFIX); if (atexit(swupdate_cleanup) != 0) { TRACE("Cannot setup SWUpdate cleanup on exit"); } #ifdef CONFIG_MTD mtd_init(); ubi_init(); #endif }
static int ubi_dev_scan(struct mtd_info *info, const char *vid_header_offset) { char ubi_mtd_param_buffer[80]; int err; if (!vid_header_offset) sprintf(ubi_mtd_param_buffer, "%s", info->name); else sprintf(ubi_mtd_param_buffer, "%s,%s", info->name, vid_header_offset); err = ubi_mtd_param_parse(ubi_mtd_param_buffer, NULL); if (err) return -err; err = ubi_init(); if (err) return -err; return 0; }
static void swupdate_init(struct swupdate_cfg *sw) { /* Initialize internal tree to store configuration */ memset(sw, 0, sizeof(*sw)); LIST_INIT(&sw->images); LIST_INIT(&sw->partitions); LIST_INIT(&sw->hardware); LIST_INIT(&sw->scripts); LIST_INIT(&sw->uboot); /* Create directories for scripts */ mkdir(SCRIPTS_DIR, 0777); mkdir(DATASRC_DIR, 0777); mkdir(DATADST_DIR, 0777); #ifdef CONFIG_MTD mtd_init(); ubi_init(); #endif }
static int ubi_dev_scan(struct mtd_info *info, char *ubidev, const char *vid_header_offset) { struct mtd_device *dev; struct part_info *part; struct mtd_partition mtd_part; char ubi_mtd_param_buffer[80]; u8 pnum; int err; if (find_dev_and_part(ubidev, &dev, &pnum, &part) != 0) return 1; sprintf(buffer, "mtd=%d", pnum); memset(&mtd_part, 0, sizeof(mtd_part)); mtd_part.name = buffer; mtd_part.size = part->size; mtd_part.offset = part->offset; add_mtd_partitions(info, &mtd_part, 1); strcpy(ubi_mtd_param_buffer, buffer); if (vid_header_offset) sprintf(ubi_mtd_param_buffer, "mtd=%d,%s", pnum, vid_header_offset); err = ubi_mtd_param_parse(ubi_mtd_param_buffer, NULL); if (err) { del_mtd_partitions(info); return -err; } err = ubi_init(); if (err) { del_mtd_partitions(info); return -err; } ubi_initialized = 1; return 0; }
static int ubi_dev_scan(struct mtd_info *info, char *ubidev) { struct mtd_device *dev; struct part_info *part; struct mtd_partition mtd_part; u8 pnum; int err; if (mtdparts_init() != 0) return 1; if (find_dev_and_part(ubidev, &dev, &pnum, &part) != 0) return 1; sprintf(buffer, "mtd=%d", pnum); memset(&mtd_part, 0, sizeof(mtd_part)); mtd_part.name = buffer; mtd_part.size = part->size; mtd_part.offset = part->offset; add_mtd_partitions(info, &mtd_part, 1); err = ubi_mtd_param_parse(buffer, NULL); if (err) { del_mtd_partitions(info); return err; } err = ubi_init(); if (err) { del_mtd_partitions(info); return err; } ubi_initialized = 1; return 0; }