// Copyright 2017 syzkaller project authors. All rights reserved. // Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. // +build #include #define PRINT(x) \ extern const unsigned char x[], x##_end[]; \ print(#x, x, x##_end); void print(const char* name, const unsigned char* start, const unsigned char* end) { printf("const char %s[] = \"", name); for (const unsigned char* p = start; p < end; p++) printf("\\x%02x", *p); printf("\";\n"); } int main() { printf("// AUTOGENERATED FILE\n"); PRINT(kvm_asm16_cpl3); PRINT(kvm_asm32_paged); PRINT(kvm_asm32_vm86); PRINT(kvm_asm32_paged_vm86); PRINT(kvm_asm64_enable_long); PRINT(kvm_asm64_init_vm); PRINT(kvm_asm64_vm_exit); PRINT(kvm_asm64_cpl3); return 0; }