Ejemplo n.º 1
0
float3 CAICallback::GetFeaturePos (int feature)
{
	verify ();
	if (CHECK_FEATURE(feature)) {
		CFeature *f = featureHandler->features [feature];
		int allyteam = gs->AllyTeam(team);
		if (f->allyteam < 0 || f->allyteam == allyteam || loshandler->InLos(f->pos,allyteam))
			return f->pos;
	}
	return ZeroVector;
}
Ejemplo n.º 2
0
float CAICallback::GetFeatureReclaimLeft (int feature)
{
	verify ();
	if (CHECK_FEATURE(feature)) {
		CFeature *f = featureHandler->features [feature];
		int allyteam = gs->AllyTeam(team);
		if (f->allyteam < 0 || f->allyteam == allyteam || loshandler->InLos(f->pos,allyteam))
			return f->reclaimLeft;
	}
	return 0.0f;
}
Ejemplo n.º 3
0
FeatureDef* CAICallback::GetFeatureDef (int feature)
{
	verify ();
	if (CHECK_FEATURE(feature)) {
		CFeature *f = featureHandler->features [feature];
		int allyteam = gs->AllyTeam(team);
		if (f->allyteam < 0 || f->allyteam == allyteam || loshandler->InLos(f->pos,allyteam))
			return f->def;
	}
	
	return 0;
}
Ejemplo n.º 4
0
Archivo: cpu.c Proyecto: avagin/criu
int cpu_validate_cpuinfo(void)
{
	CpuinfoEntry *cpu_info;
	CpuinfoPpc64Entry *cpu_ppc64_entry;
	struct cr_img *img;
	int ret = -1;
        img = open_image(CR_FD_CPUINFO, O_RSTR);
        if (!img)
                return -1;

        if (pb_read_one(img, &cpu_info, PB_CPUINFO) < 0)
                goto error;

	if (cpu_info->n_ppc64_entry != 1) {
		pr_err("No PPC64 related entry in image");
		goto error;
	}
	cpu_ppc64_entry = cpu_info->ppc64_entry[0];

	if (cpu_ppc64_entry->endian != CURRENT_ENDIANNESS) {
		pr_err("Bad endianness");
		goto error;
	}

	if (cpu_ppc64_entry->n_hwcap != 2) {
		pr_err("Hardware capabilities information missing\n");
		goto error;
	}

#define CHECK_FEATURE(s,f) do {						\
		if ((cpu_ppc64_entry->hwcap[s] & f) &&			\
		    !(rt_cpuinfo.hwcap[s] & f)) {			\
			pr_err("CPU Feature %s required by image "	\
			       "is not supported on host.\n", #f);	\
			goto error;					\
		}							\
	} while(0)

#define REQUIRE_FEATURE(s,f) do {					\
		if (!(cpu_ppc64_entry->hwcap[s] & f)) {			\
			pr_err("CPU Feature %s missing in image.\n", #f); \
			goto error;					\
		}							\
	} while(0)

	REQUIRE_FEATURE(0, PPC_FEATURE_64);
	REQUIRE_FEATURE(0, PPC_FEATURE_HAS_FPU);
	REQUIRE_FEATURE(0, PPC_FEATURE_HAS_MMU);
	REQUIRE_FEATURE(0, PPC_FEATURE_HAS_VSX);
	REQUIRE_FEATURE(1, PPC_FEATURE2_ARCH_2_07);

	CHECK_FEATURE(0, PPC_FEATURE_TRUE_LE);
	CHECK_FEATURE(1, PPC_FEATURE2_HTM);
	CHECK_FEATURE(1, PPC_FEATURE2_DSCR);
	CHECK_FEATURE(1, PPC_FEATURE2_EBB);
	CHECK_FEATURE(1, PPC_FEATURE2_ISEL);
	CHECK_FEATURE(1, PPC_FEATURE2_TAR);
	CHECK_FEATURE(1, PPC_FEATURE2_VEC_CRYPTO);

	ret = 0;
error:
	close_image(img);
	return ret;
}