koffi 1.2.4 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +7 -489
  2. package/benchmark/CMakeLists.txt +13 -9
  3. package/benchmark/raylib_node_raylib.js +67 -0
  4. package/build/qemu/1.3.1/koffi_darwin_arm64.tar.gz +0 -0
  5. package/build/qemu/1.3.1/koffi_darwin_x64.tar.gz +0 -0
  6. package/build/qemu/1.3.1/koffi_freebsd_arm64.tar.gz +0 -0
  7. package/build/qemu/1.3.1/koffi_freebsd_ia32.tar.gz +0 -0
  8. package/build/qemu/1.3.1/koffi_freebsd_x64.tar.gz +0 -0
  9. package/build/qemu/1.3.1/koffi_linux_arm32hf.tar.gz +0 -0
  10. package/build/qemu/1.3.1/koffi_linux_arm64.tar.gz +0 -0
  11. package/build/qemu/1.3.1/koffi_linux_ia32.tar.gz +0 -0
  12. package/build/qemu/1.3.1/koffi_linux_riscv64hf64.tar.gz +0 -0
  13. package/build/qemu/1.3.1/koffi_linux_x64.tar.gz +0 -0
  14. package/build/qemu/1.3.1/koffi_openbsd_ia32.tar.gz +0 -0
  15. package/build/qemu/1.3.1/koffi_openbsd_x64.tar.gz +0 -0
  16. package/build/qemu/1.3.1/koffi_win32_arm64.tar.gz +0 -0
  17. package/build/qemu/1.3.1/koffi_win32_ia32.tar.gz +0 -0
  18. package/build/qemu/1.3.1/koffi_win32_x64.tar.gz +0 -0
  19. package/doc/Makefile +20 -0
  20. package/doc/_static/bench_linux.png +0 -0
  21. package/doc/_static/bench_windows.png +0 -0
  22. package/doc/_static/custom.css +22 -0
  23. package/doc/benchmarks.md +113 -0
  24. package/doc/benchmarks.xlsx +0 -0
  25. package/doc/conf.py +54 -0
  26. package/doc/contribute.md +115 -0
  27. package/doc/dist/doctrees/benchmarks.doctree +0 -0
  28. package/doc/dist/doctrees/contribute.doctree +0 -0
  29. package/doc/dist/doctrees/environment.pickle +0 -0
  30. package/doc/dist/doctrees/functions.doctree +0 -0
  31. package/doc/dist/doctrees/index.doctree +0 -0
  32. package/doc/dist/doctrees/memory.doctree +0 -0
  33. package/doc/dist/doctrees/platforms.doctree +0 -0
  34. package/doc/dist/doctrees/start.doctree +0 -0
  35. package/doc/dist/doctrees/types.doctree +0 -0
  36. package/doc/dist/html/.buildinfo +4 -0
  37. package/doc/dist/html/_sources/benchmarks.md.txt +113 -0
  38. package/doc/dist/html/_sources/contribute.md.txt +115 -0
  39. package/doc/dist/html/_sources/functions.md.txt +224 -0
  40. package/doc/dist/html/_sources/index.rst.txt +33 -0
  41. package/doc/dist/html/_sources/memory.md.txt +29 -0
  42. package/doc/dist/html/_sources/platforms.md.txt +17 -0
  43. package/doc/dist/html/_sources/start.md.txt +89 -0
  44. package/doc/dist/html/_sources/types.md.txt +514 -0
  45. package/doc/dist/html/_static/_sphinx_javascript_frameworks_compat.js +134 -0
  46. package/doc/dist/html/_static/basic.css +932 -0
  47. package/doc/dist/html/_static/bench_linux.png +0 -0
  48. package/doc/dist/html/_static/bench_windows.png +0 -0
  49. package/doc/dist/html/_static/custom.css +22 -0
  50. package/doc/dist/html/_static/debug.css +69 -0
  51. package/doc/dist/html/_static/doctools.js +264 -0
  52. package/doc/dist/html/_static/documentation_options.js +14 -0
  53. package/doc/dist/html/_static/file.png +0 -0
  54. package/doc/dist/html/_static/jquery-3.6.0.js +10881 -0
  55. package/doc/dist/html/_static/jquery.js +2 -0
  56. package/doc/dist/html/_static/language_data.js +199 -0
  57. package/doc/dist/html/_static/minus.png +0 -0
  58. package/doc/dist/html/_static/plus.png +0 -0
  59. package/doc/dist/html/_static/pygments.css +252 -0
  60. package/doc/dist/html/_static/scripts/furo-extensions.js +0 -0
  61. package/doc/dist/html/_static/scripts/furo.js +3 -0
  62. package/doc/dist/html/_static/scripts/furo.js.LICENSE.txt +7 -0
  63. package/doc/dist/html/_static/scripts/furo.js.map +1 -0
  64. package/doc/dist/html/_static/searchtools.js +531 -0
  65. package/doc/dist/html/_static/skeleton.css +296 -0
  66. package/doc/dist/html/_static/styles/furo-extensions.css +2 -0
  67. package/doc/dist/html/_static/styles/furo-extensions.css.map +1 -0
  68. package/doc/dist/html/_static/styles/furo.css +2 -0
  69. package/doc/dist/html/_static/styles/furo.css.map +1 -0
  70. package/doc/dist/html/_static/underscore-1.13.1.js +2042 -0
  71. package/doc/dist/html/_static/underscore.js +6 -0
  72. package/doc/dist/html/benchmarks.html +547 -0
  73. package/doc/dist/html/contribute.html +382 -0
  74. package/doc/dist/html/functions.html +530 -0
  75. package/doc/dist/html/genindex.html +249 -0
  76. package/doc/dist/html/index.html +342 -0
  77. package/doc/dist/html/memory.html +337 -0
  78. package/doc/dist/html/objects.inv +0 -0
  79. package/doc/dist/html/platforms.html +332 -0
  80. package/doc/dist/html/search.html +257 -0
  81. package/doc/dist/html/searchindex.js +1 -0
  82. package/doc/dist/html/start.html +367 -0
  83. package/doc/dist/html/types.html +1001 -0
  84. package/doc/functions.md +224 -0
  85. package/doc/index.rst +33 -0
  86. package/doc/make.bat +35 -0
  87. package/doc/memory.md +29 -0
  88. package/doc/platforms.md +17 -0
  89. package/doc/start.md +89 -0
  90. package/doc/types.md +514 -0
  91. package/package.json +6 -3
  92. package/qemu/qemu.js +41 -27
  93. package/qemu/registry/machines.json +59 -79
  94. package/qemu/registry/sha256sum.txt +4 -4
  95. package/src/abi_arm32.cc +20 -48
  96. package/src/abi_arm64.cc +18 -46
  97. package/src/abi_arm64_fwd.S +5 -0
  98. package/src/abi_riscv64.cc +19 -47
  99. package/src/abi_x64_sysv.cc +18 -46
  100. package/src/abi_x64_win.cc +19 -47
  101. package/src/abi_x86.cc +21 -49
  102. package/src/call.cc +505 -242
  103. package/src/call.hh +14 -7
  104. package/src/ffi.cc +50 -27
  105. package/src/ffi.hh +1 -1
  106. package/src/parser.cc +2 -20
  107. package/src/util.cc +50 -11
  108. package/src/util.hh +2 -0
  109. package/test/misc.c +31 -0
  110. package/test/sync.js +41 -4
  111. package/benchmark/atoi_cc.cc +0 -59
  112. package/build/qemu/1.2.4/koffi_darwin_arm64.tar.gz +0 -0
  113. package/build/qemu/1.2.4/koffi_darwin_x64.tar.gz +0 -0
  114. package/build/qemu/1.2.4/koffi_freebsd_arm64.tar.gz +0 -0
  115. package/build/qemu/1.2.4/koffi_freebsd_ia32.tar.gz +0 -0
  116. package/build/qemu/1.2.4/koffi_freebsd_x64.tar.gz +0 -0
  117. package/build/qemu/1.2.4/koffi_linux_arm.tar.gz +0 -0
  118. package/build/qemu/1.2.4/koffi_linux_arm64.tar.gz +0 -0
  119. package/build/qemu/1.2.4/koffi_linux_ia32.tar.gz +0 -0
  120. package/build/qemu/1.2.4/koffi_linux_riscv64.tar.gz +0 -0
  121. package/build/qemu/1.2.4/koffi_linux_x64.tar.gz +0 -0
  122. package/build/qemu/1.2.4/koffi_openbsd_ia32.tar.gz +0 -0
  123. package/build/qemu/1.2.4/koffi_openbsd_x64.tar.gz +0 -0
  124. package/build/qemu/1.2.4/koffi_win32_arm64.tar.gz +0 -0
  125. package/build/qemu/1.2.4/koffi_win32_ia32.tar.gz +0 -0
  126. package/build/qemu/1.2.4/koffi_win32_x64.tar.gz +0 -0
package/qemu/qemu.js CHANGED
@@ -123,13 +123,16 @@ async function main() {
123
123
  machine.key = key;
124
124
  machine.started = false;
125
125
 
126
- machine.qemu.accelerate = null;
127
- if (accelerate && (machine.qemu.binary == 'qemu-system-x86_64' ||
128
- machine.qemu.binary == 'qemu-system-i386')) {
129
- if (process.platform == 'linux') {
130
- machine.qemu.accelerate = 'kvm';
131
- } else if (process.platform == 'win32') {
132
- machine.qemu.accelerate = 'whpx';
126
+ if (machine.qemu != null) {
127
+ machine.qemu.accelerate = null;
128
+
129
+ if (accelerate && (machine.qemu.binary == 'qemu-system-x86_64' ||
130
+ machine.qemu.binary == 'qemu-system-i386')) {
131
+ if (process.platform == 'linux') {
132
+ machine.qemu.accelerate = 'kvm';
133
+ } else if (process.platform == 'win32') {
134
+ machine.qemu.accelerate = 'whpx';
135
+ }
133
136
  }
134
137
  }
135
138
  }
@@ -222,6 +225,12 @@ async function start(detach = true) {
222
225
  await Promise.all(machines.map(async machine => {
223
226
  if (ignore.has(machine))
224
227
  return;
228
+ if (machine.qemu == null) {
229
+ ignore.add(machine);
230
+ missing++;
231
+
232
+ return;
233
+ }
225
234
 
226
235
  let dirname = `qemu/${machine.key}`;
227
236
 
@@ -239,7 +248,7 @@ async function start(detach = true) {
239
248
  let filename = dirname + '/VERSION';
240
249
  let version = fs.existsSync(filename) ? parseInt(fs.readFileSync(filename).toString(), 10) : 0;
241
250
 
242
- if (version != machine.info.version) {
251
+ if (version != machine.qemu.version) {
243
252
  log(machine, 'Download newer machine', chalk.bold.gray('[ignore]'));
244
253
 
245
254
  ignore.add(machine);
@@ -286,13 +295,13 @@ async function pack() {
286
295
  for (let suite in machine.builds) {
287
296
  let build = machine.builds[suite];
288
297
 
289
- let platform = build.platform || machine.info.platform;
290
- let arch = build.arch || machine.info.arch;
291
-
292
- let archive_filename = root_dir + `/koffi/build/qemu/${version}/koffi_${platform}_${arch}.tar.gz`;
298
+ let archive_filename = root_dir + `/koffi/build/qemu/${version}/koffi_${machine.platform}_${build.arch}.tar.gz`;
293
299
 
294
300
  if (fs.existsSync(archive_filename)) {
295
301
  log(machine, `${suite} > Status`, chalk.bold.green(`[ok]`));
302
+ } else if (machine.qemu == null) {
303
+ log(machine, `${suite} > Status`, chalk.bold.red(`[manual]`));
304
+ needed = true;
296
305
  } else {
297
306
  log(machine, `${suite} > Status`, chalk.bold.red(`[build]`));
298
307
  needed = true;
@@ -369,11 +378,8 @@ async function pack() {
369
378
  await Promise.all(Object.keys(machine.builds).map(async suite => {
370
379
  let build = machine.builds[suite];
371
380
 
372
- let platform = build.platform || machine.info.platform;
373
- let arch = build.arch || machine.info.arch;
374
-
375
381
  let src_dir = build.directory + '/koffi/build';
376
- let dest_dir = build_dir + `/${version}/koffi_${platform}_${arch}`;
382
+ let dest_dir = build_dir + `/${version}/koffi_${machine.platform}_${build.arch}`;
377
383
  let dest_filename = dest_dir + '.tar.gz';
378
384
 
379
385
  unlink_recursive(dest_dir + '/build');
@@ -547,6 +553,8 @@ async function stop(all = true) {
547
553
  await Promise.all(machines.map(async machine => {
548
554
  if (ignore.has(machine))
549
555
  return;
556
+ if (machine.qemu == null)
557
+ return;
550
558
  if (!machine.started && !all)
551
559
  return;
552
560
 
@@ -570,7 +578,7 @@ async function stop(all = true) {
570
578
  machine.ssh.connection.on('end', resolve);
571
579
  wait(60000).then(() => { reject(new Error('Timeout')) });
572
580
 
573
- exec_remote(machine, machine.info.shutdown);
581
+ exec_remote(machine, machine.qemu.shutdown);
574
582
  });
575
583
 
576
584
  log(machine, 'Stop', chalk.bold.green('[ok]'));
@@ -585,11 +593,14 @@ async function stop(all = true) {
585
593
 
586
594
  async function info() {
587
595
  for (let machine of machines) {
596
+ if (machine.qemu == null)
597
+ continue;
598
+
588
599
  console.log(`>> ${machine.name} (${machine.key})`);
589
- console.log(` - SSH port: ${machine.info.ssh_port}`);
590
- console.log(` - VNC port: ${machine.info.vnc_port}`);
591
- console.log(` - Username: ${machine.info.username}`);
592
- console.log(` - Password: ${machine.info.password}`);
600
+ console.log(` - SSH port: ${machine.qemu.ssh_port}`);
601
+ console.log(` - VNC port: ${machine.qemu.vnc_port}`);
602
+ console.log(` - Username: ${machine.qemu.username}`);
603
+ console.log(` - Password: ${machine.qemu.password}`);
593
604
  }
594
605
  }
595
606
 
@@ -602,10 +613,10 @@ async function ssh() {
602
613
  let machine = machines[0];
603
614
 
604
615
  let args = [
605
- '-p' + machine.info.password,
616
+ '-p' + machine.qemu.password,
606
617
  'ssh', '-o', 'StrictHostKeyChecking=no',
607
618
  '-o', 'UserKnownHostsFile=' + (process.platform == 'win32' ? '\\\\.\\NUL' : '/dev/null'),
608
- '-p', machine.info.ssh_port, machine.info.username + '@127.0.0.1'
619
+ '-p', machine.qemu.ssh_port, machine.qemu.username + '@127.0.0.1'
609
620
  ];
610
621
 
611
622
  let proc = spawnSync('sshpass', args, { stdio: 'inherit' });
@@ -624,6 +635,9 @@ async function reset() {
624
635
 
625
636
  console.log('>> Restoring snapshots...')
626
637
  await Promise.all(machines.map(machine => {
638
+ if (machine.qemu == null)
639
+ return;
640
+
627
641
  let dirname = `qemu/${machine.key}`;
628
642
  let disk = dirname + '/disk.qcow2';
629
643
 
@@ -753,9 +767,9 @@ async function join(machine, tries) {
753
767
  try {
754
768
  await ssh.connect({
755
769
  host: '127.0.0.1',
756
- port: machine.info.ssh_port,
757
- username: machine.info.username,
758
- password: machine.info.password,
770
+ port: machine.qemu.ssh_port,
771
+ username: machine.qemu.username,
772
+ password: machine.qemu.password,
759
773
  tryKeyboard: true
760
774
  });
761
775
 
@@ -790,7 +804,7 @@ function log(machine, action, status) {
790
804
 
791
805
  async function exec_remote(machine, cmd, cwd = null) {
792
806
  try {
793
- if (machine.info.platform == 'win32') {
807
+ if (machine.platform == 'win32') {
794
808
  if (cwd != null) {
795
809
  cwd = cwd.replaceAll('/', '\\');
796
810
  cmd = `cd "${cwd}" && ${cmd}`;
@@ -1,16 +1,12 @@
1
1
  {
2
2
  "debian_arm32": {
3
3
  "name": "Debian ARM32",
4
+ "platform": "linux",
4
5
 
5
6
  "qemu": {
6
7
  "binary": "qemu-system-arm",
7
- "arguments": ["-M", "virt", "-cpu", "cortex-a15", "-m", "1G", "-smp", 2, "-kernel", "vmlinuz-5.10.0-12-armmp-lpae", "-initrd", "initrd.img-5.10.0-12-armmp-lpae", "-append", "root=/dev/vda2 apparmor=0", "-drive", "if=none,file=disk.qcow2,format=qcow2,id=hd", "-device", "virtio-blk-device,drive=hd", "-netdev", "user,id=mynet,hostfwd=tcp::22201-:22", "-device", "virtio-net-device,netdev=mynet", "-vnc", "127.0.0.1:11"]
8
- },
9
-
10
- "info": {
8
+ "arguments": ["-M", "virt", "-cpu", "cortex-a15", "-m", "1G", "-smp", 2, "-kernel", "vmlinuz-5.10.0-12-armmp-lpae", "-initrd", "initrd.img-5.10.0-12-armmp-lpae", "-append", "root=/dev/vda2 apparmor=0", "-drive", "if=none,file=disk.qcow2,format=qcow2,id=hd", "-device", "virtio-blk-device,drive=hd", "-netdev", "user,id=mynet,hostfwd=tcp::22201-:22", "-device", "virtio-net-device,netdev=mynet", "-vnc", "127.0.0.1:11"],
11
9
  "version": 3,
12
- "platform": "linux",
13
- "arch": "arm",
14
10
 
15
11
  "ssh_port": 22201,
16
12
  "vnc_port": 5911,
@@ -23,6 +19,7 @@
23
19
 
24
20
  "builds": {
25
21
  "Linux ARM32": {
22
+ "arch": "arm32hf",
26
23
  "directory": "/home/debian/luigi",
27
24
  "build": "node ../cnoke/cnoke.js"
28
25
  }
@@ -47,16 +44,12 @@
47
44
 
48
45
  "debian_arm64": {
49
46
  "name": "Debian ARM64",
47
+ "platform": "linux",
50
48
 
51
49
  "qemu": {
52
50
  "binary": "qemu-system-aarch64",
53
- "arguments": ["-M", "virt", "-cpu", "cortex-a53", "-m", "1G", "-smp", 2, "-kernel", "vmlinuz-5.10.0-12-arm64", "-initrd", "initrd.img-5.10.0-12-arm64", "-append", "root=/dev/vda2 apparmor=0", "-drive", "if=none,file=disk.qcow2,format=qcow2,id=hd", "-device", "virtio-blk-device,drive=hd", "-netdev", "user,id=mynet,hostfwd=tcp::22202-:22", "-device", "virtio-net-device,netdev=mynet", "-vnc", "127.0.0.1:12"]
54
- },
55
-
56
- "info": {
51
+ "arguments": ["-M", "virt", "-cpu", "cortex-a53", "-m", "1G", "-smp", 2, "-kernel", "vmlinuz-5.10.0-12-arm64", "-initrd", "initrd.img-5.10.0-12-arm64", "-append", "root=/dev/vda2 apparmor=0", "-drive", "if=none,file=disk.qcow2,format=qcow2,id=hd", "-device", "virtio-blk-device,drive=hd", "-netdev", "user,id=mynet,hostfwd=tcp::22202-:22", "-device", "virtio-net-device,netdev=mynet", "-vnc", "127.0.0.1:12"],
57
52
  "version": 3,
58
- "platform": "linux",
59
- "arch": "arm64",
60
53
 
61
54
  "ssh_port": 22202,
62
55
  "vnc_port": 5912,
@@ -69,6 +62,7 @@
69
62
 
70
63
  "builds": {
71
64
  "Linux ARM64": {
65
+ "arch": "arm64",
72
66
  "directory": "/home/debian/luigi",
73
67
  "build": "node ../cnoke/cnoke.js"
74
68
  }
@@ -93,16 +87,12 @@
93
87
 
94
88
  "debian_i386": {
95
89
  "name": "Debian i386",
90
+ "platform": "linux",
96
91
 
97
92
  "qemu": {
98
93
  "binary": "qemu-system-i386",
99
- "arguments": ["-cpu", "max", "-m", "1G", "-smp", 2, "-kernel", "vmlinuz-5.10.0-12-686-pae", "-initrd", "initrd.img-5.10.0-12-686-pae", "-append", "root=/dev/sda1 apparmor=0", "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22203-:22", "-device", "e1000,netdev=mynet", "-vnc", "127.0.0.1:13"]
100
- },
101
-
102
- "info": {
94
+ "arguments": ["-cpu", "max", "-m", "1G", "-smp", 2, "-kernel", "vmlinuz-5.10.0-12-686-pae", "-initrd", "initrd.img-5.10.0-12-686-pae", "-append", "root=/dev/sda1 apparmor=0", "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22203-:22", "-device", "e1000,netdev=mynet", "-vnc", "127.0.0.1:13"],
103
95
  "version": 3,
104
- "platform": "linux",
105
- "arch": "ia32",
106
96
 
107
97
  "ssh_port": 22203,
108
98
  "vnc_port": 5913,
@@ -115,6 +105,7 @@
115
105
 
116
106
  "builds": {
117
107
  "Linux i386": {
108
+ "arch": "ia32",
118
109
  "directory": "/home/debian/luigi",
119
110
  "build": "node ../cnoke/cnoke.js"
120
111
  }
@@ -139,16 +130,12 @@
139
130
 
140
131
  "debian_x64": {
141
132
  "name": "Debian x64",
133
+ "platform": "linux",
142
134
 
143
135
  "qemu": {
144
136
  "binary": "qemu-system-x86_64",
145
- "arguments": ["-m", "1G", "-smp", 2, "-kernel", "vmlinuz-5.10.0-12-amd64", "-initrd", "initrd.img-5.10.0-12-amd64", "-append", "root=/dev/sda1 apparmor=0", "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22204-:22", "-device", "e1000,netdev=mynet", "-vnc", "127.0.0.1:14"]
146
- },
147
-
148
- "info": {
137
+ "arguments": ["-m", "1G", "-smp", 2, "-kernel", "vmlinuz-5.10.0-12-amd64", "-initrd", "initrd.img-5.10.0-12-amd64", "-append", "root=/dev/sda1 apparmor=0", "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22204-:22", "-device", "e1000,netdev=mynet", "-vnc", "127.0.0.1:14"],
149
138
  "version": 3,
150
- "platform": "linux",
151
- "arch": "x64",
152
139
 
153
140
  "ssh_port": 22204,
154
141
  "vnc_port": 5914,
@@ -161,6 +148,7 @@
161
148
 
162
149
  "builds": {
163
150
  "Linux x64": {
151
+ "arch": "x64",
164
152
  "directory": "/home/debian/luigi",
165
153
  "build": "node ../cnoke/cnoke.js"
166
154
  }
@@ -183,18 +171,14 @@
183
171
  }
184
172
  },
185
173
 
186
- "windows": {
187
- "name": "Windows",
174
+ "windows_x64": {
175
+ "name": "Windows x64",
176
+ "platform": "win32",
188
177
 
189
178
  "qemu": {
190
179
  "binary": "qemu-system-x86_64",
191
- "arguments": ["-m", "3G", "-smp", 4, "-rtc", "clock=host,base=localtime", "-bios", "bios.bin", "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22205-:22", "-device", "e1000,netdev=mynet", "-vga", "std", "-device", "qemu-xhci", "-device", "usb-tablet", "-vnc", "127.0.0.1:15"]
192
- },
193
-
194
- "info": {
195
- "version": 7,
196
- "platform": "win32",
197
- "arch": "x64",
180
+ "arguments": ["-m", "3G", "-smp", 4, "-rtc", "clock=host,base=localtime", "-bios", "bios.bin", "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22205-:22", "-device", "e1000,netdev=mynet", "-vga", "std", "-device", "qemu-xhci", "-device", "usb-tablet", "-vnc", "127.0.0.1:15"],
181
+ "version": 9,
198
182
 
199
183
  "ssh_port": 22205,
200
184
  "vnc_port": 5915,
@@ -208,20 +192,26 @@
208
192
  "builds": {
209
193
  "Windows i386": {
210
194
  "arch": "ia32",
211
- "directory": "C:/Users/windows/Desktop/luigi32",
195
+ "directory": "C:/Users/windows/Desktop/luigi_ia32",
212
196
  "build": "C:\\Node32\\node32.cmd node ../cnoke/cnoke.js"
213
197
  },
214
198
 
215
199
  "Windows x64": {
216
200
  "arch": "x64",
217
- "directory": "C:/Users/windows/Desktop/luigi64",
201
+ "directory": "C:/Users/windows/Desktop/luigi_x64",
218
202
  "build": "C:\\Node64\\node64.cmd node ../cnoke/cnoke.js"
203
+ },
204
+
205
+ "Windows ARM64": {
206
+ "arch": "arm64",
207
+ "directory": "C:/Users/windows/Desktop/luigi_arm64",
208
+ "build": "C:\\Node64\\node64.cmd node ../cnoke/cnoke.js --arch arm64 --version 16.13.0"
219
209
  }
220
210
  },
221
211
 
222
212
  "tests": {
223
213
  "Windows i386": {
224
- "directory": "C:/Users/windows/Desktop/luigi32",
214
+ "directory": "C:/Users/windows/Desktop/luigi_ia32",
225
215
  "build": {
226
216
  "Build": "C:\\Node32\\node32.cmd node ../cnoke/cnoke.js -C test"
227
217
  },
@@ -235,7 +225,7 @@
235
225
  },
236
226
 
237
227
  "Windows x64": {
238
- "directory": "C:/Users/windows/Desktop/luigi64",
228
+ "directory": "C:/Users/windows/Desktop/luigi_x64",
239
229
  "build": {
240
230
  "Build": "C:\\Node64\\node64.cmd node ../cnoke/cnoke.js -C test"
241
231
  },
@@ -252,16 +242,12 @@
252
242
 
253
243
  "freebsd_x64": {
254
244
  "name": "FreeBSD x64",
245
+ "platform": "freebsd",
255
246
 
256
247
  "qemu": {
257
248
  "binary": "qemu-system-x86_64",
258
- "arguments": ["-m", "1G", "-smp", 2, "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22206-:22", "-device", "e1000,netdev=mynet", "-vnc", "127.0.0.1:16"]
259
- },
260
-
261
- "info": {
249
+ "arguments": ["-m", "1G", "-smp", 2, "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22206-:22", "-device", "e1000,netdev=mynet", "-vnc", "127.0.0.1:16"],
262
250
  "version": 2,
263
- "platform": "freebsd",
264
- "arch": "x64",
265
251
 
266
252
  "ssh_port": 22206,
267
253
  "vnc_port": 5916,
@@ -274,6 +260,7 @@
274
260
 
275
261
  "builds": {
276
262
  "FreeBSD x64": {
263
+ "arch": "x64",
277
264
  "directory": "/home/freebsd/luigi",
278
265
  "build": "node ../cnoke/cnoke.js"
279
266
  }
@@ -298,16 +285,12 @@
298
285
 
299
286
  "freebsd_i386": {
300
287
  "name": "FreeBSD i386",
288
+ "platform": "freebsd",
301
289
 
302
290
  "qemu": {
303
291
  "binary": "qemu-system-i386",
304
- "arguments": ["-m", "1G", "-smp", 2, "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22207-:22", "-device", "e1000,netdev=mynet", "-vnc", "127.0.0.1:17"]
305
- },
306
-
307
- "info": {
292
+ "arguments": ["-m", "1G", "-smp", 2, "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22207-:22", "-device", "e1000,netdev=mynet", "-vnc", "127.0.0.1:17"],
308
293
  "version": 2,
309
- "platform": "freebsd",
310
- "arch": "ia32",
311
294
 
312
295
  "ssh_port": 22207,
313
296
  "vnc_port": 5917,
@@ -320,6 +303,7 @@
320
303
 
321
304
  "builds": {
322
305
  "FreeBSD i386": {
306
+ "arch": "ia32",
323
307
  "directory": "/home/freebsd/luigi",
324
308
  "build": "node ../cnoke/cnoke.js"
325
309
  }
@@ -344,16 +328,12 @@
344
328
 
345
329
  "freebsd_arm64": {
346
330
  "name": "FreeBSD ARM64",
331
+ "platform": "freebsd",
347
332
 
348
333
  "qemu": {
349
334
  "binary": "qemu-system-aarch64",
350
- "arguments": ["-M", "virt", "-cpu", "cortex-a53", "-m", "1G", "-smp", 2, "-drive", "if=pflash,format=raw,file=QEMU_EFI.img", "-drive", "if=pflash,file=varstore.img", "-drive", "if=virtio,file=disk.qcow2,format=qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22208-:22", "-device", "virtio-net-device,netdev=mynet", "-vnc", "127.0.0.1:18"]
351
- },
352
-
353
- "info": {
335
+ "arguments": ["-M", "virt", "-cpu", "cortex-a53", "-m", "1G", "-smp", 2, "-drive", "if=pflash,format=raw,file=QEMU_EFI.img", "-drive", "if=pflash,file=varstore.img", "-drive", "if=virtio,file=disk.qcow2,format=qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22208-:22", "-device", "virtio-net-device,netdev=mynet", "-vnc", "127.0.0.1:18"],
354
336
  "version": 2,
355
- "platform": "freebsd",
356
- "arch": "arm64",
357
337
 
358
338
  "ssh_port": 22208,
359
339
  "vnc_port": 5918,
@@ -366,6 +346,7 @@
366
346
 
367
347
  "builds": {
368
348
  "FreeBSD ARM64": {
349
+ "arch": "arm64",
369
350
  "directory": "/home/freebsd/luigi",
370
351
  "build": "node ../cnoke/cnoke.js"
371
352
  }
@@ -390,16 +371,12 @@
390
371
 
391
372
  "macos_x64": {
392
373
  "name": "macOS x64",
374
+ "platform": "darwin",
393
375
 
394
376
  "qemu": {
395
377
  "binary": "qemu-system-x86_64",
396
- "arguments": ["-m", "3G", "-machine", "q35", "-smp", 2, "-cpu", "Penryn,vendor=GenuineIntel,kvm=on,+sse3,+sse4.2,+aes,+xsave,+avx,+xsaveopt,+xsavec,+xgetbv1,+avx2,+bmi2,+smep,+bmi1,+fma,+movbe,+invtsc", "-device", "isa-applesmc,osk=ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc", "-smbios", "type=2", "-drive", "if=pflash,format=raw,readonly=on,file=OVMF_CODE.fd", "-drive", "if=pflash,format=raw,file=OVMF_VARS-1024x768.fd", "-vga", "qxl", "-device", "ich9-intel-hda", "-device", "hda-output", "-usb", "-device", "usb-kbd", "-device", "usb-tablet", "-netdev", "user,id=net0,hostfwd=tcp::22209-:22", "-device", "e1000-82545em,netdev=net0,id=net0,mac=52:54:00:c9:18:27", "-device", "ich9-ahci,id=sata", "-drive", "id=ESP,if=none,format=qcow2,file=ESP.qcow2", "-device", "ide-hd,bus=sata.2,drive=ESP", "-drive", "id=SystemDisk,if=none,file=macOS.qcow2", "-device", "ide-hd,bus=sata.4,drive=SystemDisk", "-vnc", "127.0.0.1:19"]
397
- },
398
-
399
- "info": {
378
+ "arguments": ["-m", "3G", "-machine", "q35", "-smp", 2, "-cpu", "Penryn,vendor=GenuineIntel,kvm=on,+sse3,+sse4.2,+aes,+xsave,+avx,+xsaveopt,+xsavec,+xgetbv1,+avx2,+bmi2,+smep,+bmi1,+fma,+movbe,+invtsc", "-device", "isa-applesmc,osk=ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc", "-smbios", "type=2", "-drive", "if=pflash,format=raw,readonly=on,file=OVMF_CODE.fd", "-drive", "if=pflash,format=raw,file=OVMF_VARS-1024x768.fd", "-vga", "qxl", "-device", "ich9-intel-hda", "-device", "hda-output", "-usb", "-device", "usb-kbd", "-device", "usb-tablet", "-netdev", "user,id=net0,hostfwd=tcp::22209-:22", "-device", "e1000-82545em,netdev=net0,id=net0,mac=52:54:00:c9:18:27", "-device", "ich9-ahci,id=sata", "-drive", "id=ESP,if=none,format=qcow2,file=ESP.qcow2", "-device", "ide-hd,bus=sata.2,drive=ESP", "-drive", "id=SystemDisk,if=none,file=macOS.qcow2", "-device", "ide-hd,bus=sata.4,drive=SystemDisk", "-vnc", "127.0.0.1:19"],
400
379
  "version": 2,
401
- "platform": "darwin",
402
- "arch": "x64",
403
380
 
404
381
  "ssh_port": 22209,
405
382
  "vnc_port": 5919,
@@ -412,6 +389,7 @@
412
389
 
413
390
  "builds": {
414
391
  "macOS x64": {
392
+ "arch": "x64",
415
393
  "directory": "/Users/macos/luigi",
416
394
  "build": "PATH=/usr/local/bin:/usr/bin:/bin SDKROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk node ../cnoke/cnoke.js"
417
395
  }
@@ -435,16 +413,12 @@
435
413
 
436
414
  "openbsd_x64": {
437
415
  "name": "OpenBSD x64",
416
+ "platform": "openbsd",
438
417
 
439
418
  "qemu": {
440
419
  "binary": "qemu-system-x86_64",
441
- "arguments": ["-m", "1G", "-smp", 2, "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22210-:22", "-device", "e1000,netdev=mynet", "-vnc", "127.0.0.1:20"]
442
- },
443
-
444
- "info": {
420
+ "arguments": ["-m", "1G", "-smp", 2, "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22210-:22", "-device", "e1000,netdev=mynet", "-vnc", "127.0.0.1:20"],
445
421
  "version": 1,
446
- "platform": "openbsd",
447
- "arch": "x64",
448
422
 
449
423
  "ssh_port": 22210,
450
424
  "vnc_port": 5920,
@@ -457,6 +431,7 @@
457
431
 
458
432
  "builds": {
459
433
  "OpenBSD x64": {
434
+ "arch": "x64",
460
435
  "directory": "/home/openbsd/luigi",
461
436
  "build": "node ../cnoke/cnoke.js"
462
437
  }
@@ -481,16 +456,12 @@
481
456
 
482
457
  "openbsd_i386": {
483
458
  "name": "OpenBSD i386",
459
+ "platform": "openbsd",
484
460
 
485
461
  "qemu": {
486
462
  "binary": "qemu-system-x86_64",
487
- "arguments": ["-m", "1G", "-smp", 2, "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22211-:22", "-device", "e1000,netdev=mynet", "-vnc", "127.0.0.1:21"]
488
- },
489
-
490
- "info": {
463
+ "arguments": ["-m", "1G", "-smp", 2, "-hda", "disk.qcow2", "-netdev", "user,id=mynet,hostfwd=tcp::22211-:22", "-device", "e1000,netdev=mynet", "-vnc", "127.0.0.1:21"],
491
464
  "version": 1,
492
- "platform": "openbsd",
493
- "arch": "ia32",
494
465
 
495
466
  "ssh_port": 22211,
496
467
  "vnc_port": 5921,
@@ -503,6 +474,7 @@
503
474
 
504
475
  "builds": {
505
476
  "OpenBSD i386": {
477
+ "arch": "ia32",
506
478
  "directory": "/home/openbsd/luigi",
507
479
  "build": "node ../cnoke/cnoke.js"
508
480
  }
@@ -527,16 +499,12 @@
527
499
 
528
500
  "debian_riscv64": {
529
501
  "name": "Debian RISC-V 64",
502
+ "platform": "linux",
530
503
 
531
504
  "qemu": {
532
505
  "binary": "qemu-system-riscv64",
533
- "arguments": ["-machine", "virt", "-cpu", "rv64", "-m", "1G", "-smp", 2, "-device", "virtio-blk-device,drive=hd", "-drive", "file=disk.qcow2,if=none,id=hd", "-device", "virtio-net-device,netdev=net", "-netdev", "user,id=net,hostfwd=tcp::22212-:22", "-bios", "fw_jump.elf", "-kernel", "uboot.elf", "-append", "root=LABEL=rootfs console=ttyS0", "-vnc", "127.0.0.1:22"]
534
- },
535
-
536
- "info": {
506
+ "arguments": ["-machine", "virt", "-cpu", "rv64", "-m", "1G", "-smp", 2, "-device", "virtio-blk-device,drive=hd", "-drive", "file=disk.qcow2,if=none,id=hd", "-device", "virtio-net-device,netdev=net", "-netdev", "user,id=net,hostfwd=tcp::22212-:22", "-bios", "fw_jump.elf", "-kernel", "uboot.elf", "-append", "root=LABEL=rootfs console=ttyS0", "-vnc", "127.0.0.1:22"],
537
507
  "version": 1,
538
- "platform": "linux",
539
- "arch": "riscv64",
540
508
 
541
509
  "ssh_port": 22212,
542
510
  "vnc_port": 5912,
@@ -549,6 +517,7 @@
549
517
 
550
518
  "builds": {
551
519
  "Linux RISC-V 64": {
520
+ "arch": "riscv64hf64",
552
521
  "directory": "/home/debian/luigi",
553
522
  "build": "node ../cnoke/cnoke.js"
554
523
  }
@@ -569,5 +538,16 @@
569
538
  }
570
539
  }
571
540
  }
541
+ },
542
+
543
+ "macos_arm64": {
544
+ "name": "macOS ARM64",
545
+ "platform": "darwin",
546
+
547
+ "builds": {
548
+ "macOS ARM64": {
549
+ "arch": "arm64"
550
+ }
551
+ }
572
552
  }
573
553
  }
@@ -1,7 +1,7 @@
1
- 10159baf262b43a92d95db59dae1f72c645127301661e0a3ce4e38b295a97c58 *qemu/windows/VERSION
2
- eb30b5652a0b7962710c72cb2ba79626347eee84ebe3fc5482a93ec8b8fe8b02 *qemu/windows/install.sh
3
- f8c9a1638a3fc2cdd214f2cbcad6fee0e3b2c9383942bbd49b3915bb4c3da102 *qemu/windows/bios.bin
4
- 23792b98aef4d169a9a0382a474b279d24dc0757698870f16b950f44dd7c2c2c *qemu/windows/disk.qcow2
1
+ 2e6d31a5983a91251bfae5aefa1c0a19d8ba3cf601d0e8a706b4cfa9661a6b8a *qemu/windows_x64/VERSION
2
+ 0a40f87b2a038522e55318a0abde60403bb13a5e81a7a0966a9a736e65d4ae46 *qemu/windows_x64/install.sh
3
+ f8c9a1638a3fc2cdd214f2cbcad6fee0e3b2c9383942bbd49b3915bb4c3da102 *qemu/windows_x64/bios.bin
4
+ 0b18ced5ee9e377a04fc2ad3282ce632b39870adbeb18afe30eae4a7c19b3a44 *qemu/windows_x64/disk.qcow2
5
5
  1121cfccd5913f0a63fec40a6ffd44ea64f9dc135c66634ba001d10bcf4302a2 *qemu/debian_x64/VERSION
6
6
  ba418d2d602981fe324ae7a1a608b0f2d8d7c6113d03a429cc402e24ddc81311 *qemu/debian_x64/vmlinuz-5.10.0-12-amd64
7
7
  4d44622e8ce058017c08051d694b8e5afe9ff406b6ad91c17ebc4ec43d205c42 *qemu/debian_x64/install.sh