#include static int errno; int *__errno_location(void) { return &errno; } inline static __attribute__ ((__unused__)) __attribute__ ((__always_inline__)) int vserver(uint32_t cmd, uint32_t id, void *data) { register long __res __asm__("eax"); __asm__( "movl %2,%%edx" "" "\n\t" "movl %1,%%ecx" "" "\n\t" "pushl %%ebx" "" "\n\t" "movl %0,%%ebx" "" "\n\t" "" : :"g"((long) (cmd)), "g"((long) (id)), "g"((long) (data)) :"ecx", "edx", "esi", "edi", "eax", "memory"); __asm__ __volatile__( "movl %0,%%eax" "" "\n\t" "int $0x80" "\t/* kernel sys_" "vserver" "[" "273" "] */" "\n\t" "popl %%ebx" "" "\n\t" : :"i"(273) :"ecx", "edx", "esi", "edi", "eax", "memory"); __asm__("/* gcc dummy save " "%0 " "*/":"=r"(__res)); do { } while (0); if (((unsigned long) (__res) >= (unsigned long) (-(129)))) { int __err = -(__res); do { (*__errno_location()) = (__err); } while (0); __res = -1; } return (int) (__res); } static inline __attribute__ ((__always_inline__)) __attribute__ ((__unused__)) int vc_get_version_internal(int cat) { return vserver(((((0) & 0x3F) << 24) | (((0) & 0xFF) << 16) | ((0) & 0xFFF)), cat, 0); } static int res = 0; static int v_errno; int utilvserver_checkCompatVersion() { if (res == 0) { res = vc_get_version_internal(63); v_errno = (*__errno_location()); } (*__errno_location()) = v_errno; return res; }