lin
2025-08-14 dae8bad597b6607a449b32bf76c523423f7720ed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// 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 <stdio.h>
 
#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_vm86);
   PRINT(kvm_asm64_enable_long);
   PRINT(kvm_asm64_init_vm);
   PRINT(kvm_asm64_vm_exit);
   PRINT(kvm_asm64_cpl3);
   return 0;
}