Esempio n. 1
0
int
mpssconfig_update_pm(char *name, int cpufreq, int corec6, int pc3, int pc6)
{
	struct mic_info *miclist;
	struct mic_info *mic;
	struct mpss_env menv;
	int err = 0;

	if (mpssenv_init(&menv))
		return CONFIG_ERROR_ENV;


	if ((miclist = mpss_get_miclist(&menv, NULL)) == NULL)
		return CONFIG_ERROR_EXIST;

	if ((mic = mpss_find_micname_inlist(miclist, name)) == NULL) {
		err = CONFIG_ERROR_EXIST;
		goto free_and_ret;
	}

	if (mpss_update_config(&menv, mic->config.name, "PowerManagement", NULL,
			   "PowerManagement \"cpufreq_%s;corec6_%s;pc3_%s;pc6_%s\"\n",
			   onoff(cpufreq), onoff(corec6), onoff(pc3), onoff(pc6)))
		err = CONFIG_ERROR_WRITE;

free_and_ret:
	mpss_free_miclist(miclist);
	return err;
}
Esempio n. 2
0
void
set_ramfsroot(struct mic_info *mic, int type, char *target)
{
	char targetname[PATH_MAX];

	mic->config.rootdev.type = type;
	if (target == NULL) {
		snprintf(targetname, PATH_MAX, "%s/%s.image.gz", mpssenv.vardir, mic->name);
		mpssut_realloc_fill(&mic->config.rootdev.target, targetname);
	} else {
		mpssut_realloc_fill(&mic->config.rootdev.target, target);
	}

	display(PFS, "%s: Update RootDevice in %s\n", mic->name, mic->config.name);
	mpss_update_config(&mpssenv, mic->config.name, NULL, descriptor, "%s %s %s\n\n",
			   "RootDevice", fstypes[type], mic->config.rootdev.target);
}
Esempio n. 3
0
// TODO: Need to add actual NFS configuration back into this.  Taken out because it was broken.
void
set_rootdev(struct mic_info *mic)
{
	char *descriptor = "# Root device for MIC card";
	char value[1024];

	switch (mic->config.rootdev.type) {
	case ROOT_TYPE_RAMFS:
		display(PINFO, "%s: RootDevice RamFS %s\n", mic->name, mic->config.rootdev.target);
		return;

	case ROOT_TYPE_STATICRAMFS:
		display(PINFO, "%s: RootDevice StaticRamFS %s\n", mic->name, mic->config.rootdev.target);
		return;

	case ROOT_TYPE_NFS:
	case ROOT_TYPE_SPLITNFS:
		display(PINFO, "%s: RootDevice NFS %s: Ensure export is available\n",
				mic->name, mic->config.rootdev.target);
		return;
	case ROOT_TYPE_PFS:
		display(PINFO, "%s: RootDevice Persistent FS %s\n", mic->name, mic->config.rootdev.target);
		return;

	default:
		mic->config.rootdev.type = ROOT_TYPE_RAMFS;
		snprintf(value, 1024, "%s/%s.image.gz", mpssenv.vardir, mic->name);
		mic->config.rootdev.target = mpssut_alloc_fill(value);
		display(PFS, "%s: Update RootDevice in %s\n", mic->name, mic->config.name);
		mpss_update_config(&mpssenv, mic->config.name, NULL, descriptor, "%s %s %s\n\n",
				   "RootDevice", "Ramfs", value);
		display(PINFO, "%s: RootDevice RAMFS %s\n", mic->name, value);
		break;
	}

	return;
}
Esempio n. 4
0
void
set_nfsroot(struct mic_info *mic, int type, char *target, char *usr, char *server, int create)
{
	char tmptarget[PATH_MAX];
	char tmpusr[PATH_MAX];
	char tmpdir[PATH_MAX];
	char *nfsserver;
	char *nfsdir;
	char *usrserver;
	char *usrdir;
	struct stat sbuf;
	char *nfs_opt = NULL;

	if (target == NULL) {
		snprintf(tmptarget, PATH_MAX - 1, "%s/%s.export", mpssenv.vardir, mic->name);
		target = tmptarget;
	}

	if (fill_nfsinfo(mic, type, target, server, &nfsserver, &nfsdir))
		return;

	snprintf(tmpdir, PATH_MAX, "%s:%s", nfsserver, nfsdir);
	mic->config.rootdev.target = mpssut_alloc_fill(tmpdir);
	mic->config.rootdev.nfsusr = NULL;

	if (type == ROOT_TYPE_SPLITNFS) {
		if (usr == NULL) {
			snprintf(tmpusr, PATH_MAX - 1, "%s/usr.export", mpssenv.vardir);
			usr = tmpusr;
		}

		if (fill_nfsinfo(mic, type, usr, server, &usrserver, &usrdir))
			return;

		snprintf(tmpdir, PATH_MAX, "%s:%s", usrserver, usrdir);
		mpssut_realloc_fill(&mic->config.rootdev.nfsusr, tmpdir);
		mpssut_filename(&mpssenv, NULL, tmpdir, PATH_MAX, "%s", mic->config.filesrc.mic.dir);
		fstab_add(mic->name, tmpdir, usrdir, "/usr", nfsserver, nfs_opt);
		display(PFS, "%s: Update RootDevice in %s\n", mic->name, mic->config.name);
		mpss_update_config(&mpssenv, mic->config.name, NULL, descriptor, "%s %s %s %s\n\n",
				   "RootDevice", fstypes[type], mic->config.rootdev.target, mic->config.rootdev.nfsusr);
	} else {
		display(PFS, "%s: Update RootDevice in %s\n", mic->name, mic->config.name);
		mpss_update_config(&mpssenv, mic->config.name, NULL, descriptor, "%s %s %s\n\n",
				   "RootDevice", fstypes[type], mic->config.rootdev.target);
	}

	if (!create)
		return;

	if (mpssut_filename(&mpssenv, NULL, tmpdir, PATH_MAX, "%s", nfsdir))
		display(PINFO, "%s: Updating existing directory %s: %s\n", mic->name, nfsdir, strerror(errno));

	mpssut_mktree(&mpssenv, nfsdir, 0, 0, 0755);
	mpssfs_gen_nfsdir(&mpssenv, mic, FALSE, &mpssperr);
	mpss_print_elist(&mpssperr, PINFO, display);
	mpss_clear_elist(&mpssperr);
	display(PFS, "%s: Created NFS dir %s\n", mic->name, nfsdir);

	if ((type != ROOT_TYPE_SPLITNFS) || (stat(usrdir, &sbuf) == 0))
		return;

	display(PINFO, "%s: Common /usr does not exist - creating %s\n", mic->name, usrdir);

	if (mpssut_filename(&mpssenv, NULL, tmpdir, PATH_MAX, "%s", usrdir))
		display(PWARN, "%s: Updating existing directory %s: %s\n", mic->name, usrdir, strerror(errno));

	mpssut_mktree(&mpssenv, usrdir, 0, 0, 0755);
	mpssfs_gen_nfsdir(&mpssenv, mic, TRUE, &mpssperr);
	mpss_print_elist(&mpssperr, PINFO, display);
	mpss_clear_elist(&mpssperr);
	display(PFS, "%s: Created NFS /usr dir %s\n", mic->name, usrdir);
}