Ejemplo n.º 1
0
void
get_installed_packages (void)
{
	char *cmd;
	FILE *f;
	char buf[1000], *p;
	struct pkg *pp;

	cmd = "dpkg-query --show -f='${Package}\t${Version}\n'";
	
	if ((f = popen (cmd, "r")) == NULL) {
		printf ("can't run %s\n", cmd);
		exit (1);
	}

	while (fgets (buf, sizeof buf, f) != NULL) {
		p = buf;
		while (*p && !isspace (*p))
			p++;
		*p = 0;
		pp = find_pkg (buf, 1);
		pp->installed = 1;
	}
	pclose (f);
}
Ejemplo n.º 2
0
void
mark_packages_wanted (char **names, int nnames)
{
	int idx;
	struct pkg *pp;

	for (idx = 0; idx < nnames; idx++) {
		pp = find_pkg (names[idx], 1);
		pp->wanted = 1;
	}
}
Ejemplo n.º 3
0
void cpu_manager::register_lp(const prl::affinity_mask& affinity_mask, const apic& apic) {
    // register processor package
    topology_package* pkg = find_pkg(apic.pkg);
    if (pkg == NULL)  m_pkgs.push_back(pkg = mp_allocator->make_new<topology_package>(affinity_mask, apic.pkg, m_pkgs.size()));

    // register processor core
    topology_core* core = find_core(apic.core);
    if (core == NULL) m_cores.push_back(core = mp_allocator->make_new<topology_core>(affinity_mask, apic.core, m_cores.size()));

    // register logical processor
    topology_smt* smt = find_smt(apic.smt);
    if (smt == NULL)  m_smts.push_back(smt = mp_allocator->make_new<topology_smt>(affinity_mask, apic.smt, m_smts.size()));

    // propagate affinity mask through layers
    pkg->add_affinity_mask(affinity_mask);
    core->add_affinity_mask(affinity_mask);

    // construct hierarchy
    //TODO: add
}