Skip to content

Commit 022026a

Browse files
committed
Fix #21280 - Add __NR_getrandom aka SYS_getrandom
1 parent bdd4568 commit 022026a

File tree

1 file changed

+38
-1
lines changed

1 file changed

+38
-1
lines changed

druntime/src/core/sys/linux/sys/syscall.d

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,69 +22,106 @@ version (SPARC) version = SPARC_Any;
2222
version (SPARC64) version = SPARC_Any;
2323
version (SystemZ) version = IBMZ_Any;
2424

25+
/+
26+
Check out the following links for handy tables:
27+
28+
- <https://gpages.juszkiewicz.com.pl/syscalls-table/syscalls.html>
29+
- <https://github.com/hrw/syscalls-table>
30+
+/
31+
2532
// <asm/unistd.h>
2633
// List the numbers of the system calls the system knows.
2734
version (X86_64)
2835
{
2936
version (D_X32)
30-
enum __NR_perf_event_open = 0x40000000 + 298;
37+
{
38+
enum __X32_SYSCALL_BIT = 0x40000000;
39+
40+
enum __NR_getrandom = __X32_SYSCALL_BIT + 318;
41+
enum __NR_perf_event_open = __X32_SYSCALL_BIT + 298;
42+
}
3143
else
44+
{
45+
enum __NR_getrandom = 318;
3246
enum __NR_perf_event_open = 298;
47+
}
3348
}
3449
else version (X86)
3550
{
51+
enum __NR_getrandom = 355;
3652
enum __NR_perf_event_open = 336;
3753
}
3854
else version (ARM)
3955
{
56+
enum __NR_getrandom = 384;
4057
enum __NR_perf_event_open = 364;
4158
}
4259
else version (AArch64)
4360
{
61+
enum __NR_getrandom = 278;
4462
enum __NR_perf_event_open = 241;
4563
}
4664
else version (HPPA_Any)
4765
{
66+
enum __NR_getrandom = 339;
4867
enum __NR_perf_event_open = 318;
4968
}
5069
else version (IBMZ_Any)
5170
{
71+
enum __NR_getrandom = 349;
5272
enum __NR_perf_event_open = 331;
5373
}
5474
else version (MIPS32)
5575
{
76+
enum __NR_getrandom = 4353;
5677
enum __NR_perf_event_open = 4333;
5778
}
5879
else version (MIPS64)
5980
{
6081
version (MIPS_N32)
82+
{
83+
enum __NR_getrandom = 6317;
6184
enum __NR_perf_event_open = 6296;
85+
}
6286
else version (MIPS_N64)
87+
{
88+
enum __NR_getrandom = 5313;
6389
enum __NR_perf_event_open = 5292;
90+
}
6491
else
6592
static assert(0, "Architecture not supported");
6693
}
6794
else version (PPC_Any)
6895
{
96+
enum __NR_getrandom = 359;
6997
enum __NR_perf_event_open = 319;
7098
}
7199
else version (RISCV_Any)
72100
{
101+
enum __NR_getrandom = 278;
73102
enum __NR_perf_event_open = 241;
74103
}
75104
else version (SPARC_Any)
76105
{
106+
enum __NR_getrandom = 347;
77107
enum __NR_perf_event_open = 327;
78108
}
79109
else version (LoongArch64)
80110
{
111+
enum __NR_getrandom = 278;
81112
enum __NR_perf_event_open = 241;
82113
}
114+
else version (Xtensa)
115+
{
116+
enum __NR_getrandom = 338;
117+
enum __NR_perf_event_open = 327;
118+
}
83119
else
84120
{
85121
static assert(0, "Architecture not supported");
86122
}
87123

88124
// <bits/syscall.h>
89125
// Defines SYS_* names for the __NR_* numbers of known names.
126+
enum SYS_getrandom = __NR_getrandom;
90127
enum SYS_perf_event_open = __NR_perf_event_open;

0 commit comments

Comments
 (0)