Skip to content

Commit 28423ed

Browse files
committed
golang: add LOONGARCH64, M68K, SH and SHEB arches
Acked-by: Paul Moore <[email protected]> Acked-by: Tom Hromatka <[email protected]> Signed-off-by: Kir Kolyshkin <[email protected]>
1 parent 9c91e1e commit 28423ed

File tree

2 files changed

+61
-1
lines changed

2 files changed

+61
-1
lines changed

seccomp.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,14 @@ const (
171171
ArchPARISC64
172172
// ArchRISCV64 represents RISCV64
173173
ArchRISCV64
174+
// ArchLOONGARCH64 represents 64-bit LoongArch.
175+
ArchLOONGARCH64
176+
// ArchM68K represents 32-bit Motorola 68000.
177+
ArchM68K
178+
// ArchSH represents SuperH.
179+
ArchSH
180+
// ArchSHEB represents Big-endian SuperH.
181+
ArchSHEB
174182
)
175183

176184
const (
@@ -302,6 +310,14 @@ func GetArchFromString(arch string) (ScmpArch, error) {
302310
return ArchPARISC64, nil
303311
case "riscv64":
304312
return ArchRISCV64, nil
313+
case "loongarch64":
314+
return ArchLOONGARCH64, nil
315+
case "m68k":
316+
return ArchM68K, nil
317+
case "sh":
318+
return ArchSH, nil
319+
case "sheb":
320+
return ArchSHEB, nil
305321
default:
306322
return ArchInvalid, fmt.Errorf("cannot convert unrecognized string %q", arch)
307323
}
@@ -348,6 +364,14 @@ func (a ScmpArch) String() string {
348364
return "parisc64"
349365
case ArchRISCV64:
350366
return "riscv64"
367+
case ArchLOONGARCH64:
368+
return "loong64"
369+
case ArchM68K:
370+
return "m68k"
371+
case ArchSH:
372+
return "sh"
373+
case ArchSHEB:
374+
return "sheb"
351375
case ArchNative:
352376
return "native"
353377
case ArchInvalid:

seccomp_internal.go

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,22 @@ const uint32_t C_ARCH_BAD = ARCH_BAD;
6868
#define SCMP_ARCH_RISCV64 ARCH_BAD
6969
#endif
7070
71+
#ifndef SCMP_ARCH_LOONGARCH64
72+
#define SCMP_ARCH_LOONGARCH64 ARCH_BAD
73+
#endif
74+
75+
#ifndef SCMP_ARCH_M68K
76+
#define SCMP_ARCH_M68K ARCH_BAD
77+
#endif
78+
79+
#ifndef SCMP_ARCH_SH
80+
#define SCMP_ARCH_SH ARCH_BAD
81+
#endif
82+
83+
#ifndef SCMP_ARCH_SHEB
84+
#define SCMP_ARCH_SHEB ARCH_BAD
85+
#endif
86+
7187
const uint32_t C_ARCH_NATIVE = SCMP_ARCH_NATIVE;
7288
const uint32_t C_ARCH_X86 = SCMP_ARCH_X86;
7389
const uint32_t C_ARCH_X86_64 = SCMP_ARCH_X86_64;
@@ -88,6 +104,10 @@ const uint32_t C_ARCH_S390X = SCMP_ARCH_S390X;
88104
const uint32_t C_ARCH_PARISC = SCMP_ARCH_PARISC;
89105
const uint32_t C_ARCH_PARISC64 = SCMP_ARCH_PARISC64;
90106
const uint32_t C_ARCH_RISCV64 = SCMP_ARCH_RISCV64;
107+
const uint32_t C_ARCH_LOONGARCH64 = SCMP_ARCH_LOONGARCH64;
108+
const uint32_t C_ARCH_M68K = SCMP_ARCH_M68K;
109+
const uint32_t C_ARCH_SH = SCMP_ARCH_SH;
110+
const uint32_t C_ARCH_SHEB = SCMP_ARCH_SHEB;
91111
92112
#ifndef SCMP_ACT_LOG
93113
#define SCMP_ACT_LOG 0x7ffc0000U
@@ -270,7 +290,7 @@ const (
270290
scmpError C.int = -1
271291
// Comparison boundaries to check for architecture validity
272292
archStart ScmpArch = ArchNative
273-
archEnd ScmpArch = ArchRISCV64
293+
archEnd ScmpArch = ArchSHEB
274294
// Comparison boundaries to check for action validity
275295
actionStart ScmpAction = ActKillThread
276296
actionEnd ScmpAction = ActKillProcess
@@ -531,6 +551,14 @@ func archFromNative(a C.uint32_t) (ScmpArch, error) {
531551
return ArchPARISC64, nil
532552
case C.C_ARCH_RISCV64:
533553
return ArchRISCV64, nil
554+
case C.C_ARCH_LOONGARCH64:
555+
return ArchLOONGARCH64, nil
556+
case C.C_ARCH_M68K:
557+
return ArchM68K, nil
558+
case C.C_ARCH_SH:
559+
return ArchSH, nil
560+
case C.C_ARCH_SHEB:
561+
return ArchSHEB, nil
534562
default:
535563
return 0x0, fmt.Errorf("unrecognized architecture %#x", uint32(a))
536564
}
@@ -577,6 +605,14 @@ func (a ScmpArch) toNative() C.uint32_t {
577605
return C.C_ARCH_PARISC64
578606
case ArchRISCV64:
579607
return C.C_ARCH_RISCV64
608+
case ArchLOONGARCH64:
609+
return C.C_ARCH_LOONGARCH64
610+
case ArchM68K:
611+
return C.C_ARCH_M68K
612+
case ArchSH:
613+
return C.C_ARCH_SH
614+
case ArchSHEB:
615+
return C.C_ARCH_SHEB
580616
case ArchNative:
581617
return C.C_ARCH_NATIVE
582618
default:

0 commit comments

Comments
 (0)