mirror of
https://git.freebsd.org/ports.git
synced 2025-06-05 21:00:30 -04:00
Adjust the other cfengine and cfengine-masterfiles ports CONFLICTS to recognize the new cfengine sister ports. Add cfengine and cfengine-masterfiles 310 to their respective metaports.
153 lines
4.2 KiB
C
153 lines
4.2 KiB
C
--- libenv/sysinfo.c.orig 2016-07-28 21:25:33 UTC
|
|
+++ libenv/sysinfo.c
|
|
@@ -168,15 +168,16 @@ static int MiscOS(EvalContext *ctx);
|
|
static void OpenVZ_Detect(EvalContext *ctx);
|
|
|
|
|
|
-#ifdef XEN_CPUID_SUPPORT
|
|
-static void Xen_Cpuid(uint32_t idx, uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx);
|
|
-static int Xen_Hv_Check(void);
|
|
-#endif
|
|
|
|
static bool ReadLine(const char *filename, char *buf, int bufsize);
|
|
static FILE *ReadFirstLine(const char *filename, char *buf, int bufsize);
|
|
#endif
|
|
|
|
+#ifdef XEN_CPUID_SUPPORT
|
|
+static void Xen_Cpuid(uint32_t idx, uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx);
|
|
+static bool Xen_Hv_Check(void);
|
|
+#endif
|
|
+
|
|
static void GetCPUInfo(EvalContext *ctx);
|
|
|
|
static const char *const CLASSATTRIBUTES[][3] =
|
|
@@ -1146,14 +1147,6 @@ static void OSClasses(EvalContext *ctx)
|
|
OpenVZ_Detect(ctx);
|
|
}
|
|
|
|
-#ifdef XEN_CPUID_SUPPORT
|
|
- else if (Xen_Hv_Check())
|
|
- {
|
|
- Log(LOG_LEVEL_VERBOSE, "This appears to be a xen hv system.");
|
|
- EvalContextClassPutHard(ctx, "xen", "inventory,attribute_name=Virtual host,source=agent");
|
|
- EvalContextClassPutHard(ctx, "xen_domu_hv", "source=agent");
|
|
- }
|
|
-#endif
|
|
|
|
#else
|
|
|
|
@@ -1195,6 +1188,15 @@ static void OSClasses(EvalContext *ctx)
|
|
|
|
#endif
|
|
|
|
+#ifdef XEN_CPUID_SUPPORT
|
|
+ if (Xen_Hv_Check())
|
|
+ {
|
|
+ Log(LOG_LEVEL_VERBOSE, "This appears to be a xen hv system.");
|
|
+ EvalContextClassPutHard(ctx, "xen", "inventory,attribute_name=Virtual host,source=agent");
|
|
+ EvalContextClassPutHard(ctx, "xen_domu_hv", "source=agent");
|
|
+ }
|
|
+#endif
|
|
+
|
|
GetCPUInfo(ctx);
|
|
|
|
#ifdef __CYGWIN__
|
|
@@ -2518,49 +2520,6 @@ static void OpenVZ_Detect(EvalContext *c
|
|
|
|
/******************************************************************/
|
|
|
|
-#ifdef XEN_CPUID_SUPPORT
|
|
-
|
|
-/* borrowed from Xen source/tools/libxc/xc_cpuid_x86.c */
|
|
-
|
|
-static void Xen_Cpuid(uint32_t idx, uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx)
|
|
-{
|
|
- asm(
|
|
- /* %ebx register need to be saved before usage and restored thereafter
|
|
- * for PIC-compliant code on i386 */
|
|
-# ifdef __i386__
|
|
- "push %%ebx; cpuid; mov %%ebx,%1; pop %%ebx"
|
|
-# else
|
|
- "push %%rbx; cpuid; mov %%ebx,%1; pop %%rbx"
|
|
-# endif
|
|
- : "=a"(*eax), "=r"(*ebx), "=c"(*ecx), "=d"(*edx):"0"(idx), "2"(0));
|
|
-}
|
|
-
|
|
-/******************************************************************/
|
|
-
|
|
-static int Xen_Hv_Check(void)
|
|
-{
|
|
- uint32_t eax;
|
|
- union
|
|
- {
|
|
- uint32_t u[3];
|
|
- char s[13];
|
|
- } sig = {{0}};
|
|
-
|
|
- Xen_Cpuid(0x40000000, &eax, &sig.u[0], &sig.u[1], &sig.u[2]);
|
|
-
|
|
- if (strcmp("XenVMMXenVMM", sig.s) || (eax < 0x40000002))
|
|
- {
|
|
- return 0;
|
|
- }
|
|
-
|
|
- Xen_Cpuid(0x40000001, &eax, &sig.u[0], &sig.u[1], &sig.u[2]);
|
|
- return 1;
|
|
-}
|
|
-
|
|
-#endif
|
|
-
|
|
-/******************************************************************/
|
|
-
|
|
static bool ReadLine(const char *filename, char *buf, int bufsize)
|
|
{
|
|
FILE *fp = ReadFirstLine(filename, buf, bufsize);
|
|
@@ -2597,6 +2556,48 @@ static FILE *ReadFirstLine(const char *f
|
|
}
|
|
#endif /* __linux__ */
|
|
|
|
+/******************************************************************/
|
|
+
|
|
+#ifdef XEN_CPUID_SUPPORT
|
|
+
|
|
+/* borrowed from Xen source/tools/libxc/xc_cpuid_x86.c */
|
|
+
|
|
+static void Xen_Cpuid(uint32_t idx, uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx)
|
|
+{
|
|
+ asm(
|
|
+ /* %ebx register need to be saved before usage and restored thereafter
|
|
+ * for PIC-compliant code on i386 */
|
|
+# ifdef __i386__
|
|
+ "push %%ebx; cpuid; mov %%ebx,%1; pop %%ebx"
|
|
+# else
|
|
+ "push %%rbx; cpuid; mov %%ebx,%1; pop %%rbx"
|
|
+# endif
|
|
+ : "=a"(*eax), "=r"(*ebx), "=c"(*ecx), "=d"(*edx):"0"(idx), "2"(0));
|
|
+}
|
|
+
|
|
+/******************************************************************/
|
|
+
|
|
+static bool Xen_Hv_Check(void)
|
|
+{
|
|
+ uint32_t eax, base;
|
|
+ union
|
|
+ {
|
|
+ uint32_t u[3];
|
|
+ char s[13];
|
|
+ } sig = {{0}};
|
|
+
|
|
+ for (base = 0x40000000; base < 0x40010000; base += 0x100)
|
|
+ {
|
|
+ Xen_Cpuid(base, &eax, &sig.u[0], &sig.u[1], &sig.u[2]);
|
|
+ if (strcmp("XenVMMXenVMM", sig.s) == 0 && eax >= (base + 2))
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ return false;
|
|
+}
|
|
+#endif /* XEN_CPUID_SUPPORT */
|
|
+
|
|
+
|
|
static void GetCPUInfo(EvalContext *ctx)
|
|
{
|
|
#if defined(MINGW) || defined(NT)
|