Add microblaze syscalls to systemd

Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>

diff --git a/src/basic/meson.build b/src/basic/meson.build
index 9b016ce5e8..a896e3c464 100644
--- a/src/basic/meson.build
+++ b/src/basic/meson.build
@@ -332,6 +332,7 @@ arch_list = [
         'i386',
         'ia64',
         'm68k',
+        'microblaze',
         'mips64',
         'mips64n32',
         'mipso32',
diff --git a/src/basic/missing_syscall_def.h b/src/basic/missing_syscall_def.h
index 6a48c2a0c5..ed7df7c07d 100644
--- a/src/basic/missing_syscall_def.h
+++ b/src/basic/missing_syscall_def.h
@@ -14,6 +14,7 @@
 #  elif defined(__i386__)
 #  elif defined(__ia64__)
 #  elif defined(__m68k__)
+#  elif defined(__microblaze__)
 #  elif defined(_MIPS_SIM)
 #    if _MIPS_SIM == _MIPS_SIM_ABI32
 #    elif _MIPS_SIM == _MIPS_SIM_NABI32
@@ -54,6 +55,8 @@
 #    define systemd_NR_bpf 1341
 #  elif defined(__m68k__)
 #    define systemd_NR_bpf 354
+#  elif defined(__microblaze__)
+#    define systemd_NR_bpf 387
 #  elif defined(_MIPS_SIM)
 #    if _MIPS_SIM == _MIPS_SIM_ABI32
 #      define systemd_NR_bpf 4355
@@ -118,6 +121,8 @@ assert_cc(__NR_bpf == systemd_NR_bpf);
 #    define systemd_NR_close_range 1460
 #  elif defined(__m68k__)
 #    define systemd_NR_close_range 436
+#  elif defined(__microblaze__)
+#    define systemd_NR_close_range 436
 #  elif defined(_MIPS_SIM)
 #    if _MIPS_SIM == _MIPS_SIM_ABI32
 #      define systemd_NR_close_range 4436
@@ -182,6 +187,8 @@ assert_cc(__NR_close_range == systemd_NR_close_range);
 #    define systemd_NR_copy_file_range 1347
 #  elif defined(__m68k__)
 #    define systemd_NR_copy_file_range 376
+#  elif defined(__microblaze__)
+#    define systemd_NR_copy_file_range 392
 #  elif defined(_MIPS_SIM)
 #    if _MIPS_SIM == _MIPS_SIM_ABI32
 #      define systemd_NR_copy_file_range 4360
@@ -246,6 +253,8 @@ assert_cc(__NR_copy_file_range == systemd_NR_copy_file_range);
 #    define systemd_NR_epoll_pwait2 1465
 #  elif defined(__m68k__)
 #    define systemd_NR_epoll_pwait2 441
+#  elif defined(__microblaze__)
+#    define systemd_NR_epoll_pwait2 441
 #  elif defined(_MIPS_SIM)
 #    if _MIPS_SIM == _MIPS_SIM_ABI32
 #      define systemd_NR_epoll_pwait2 4441
@@ -310,6 +319,8 @@ assert_cc(__NR_epoll_pwait2 == systemd_NR_epoll_pwait2);
 #    define systemd_NR_getrandom 1339
 #  elif defined(__m68k__)
 #    define systemd_NR_getrandom 352
+#  elif defined(__microblaze__)
+#    define systemd_NR_getrandom 385
 #  elif defined(_MIPS_SIM)
 #    if _MIPS_SIM == _MIPS_SIM_ABI32
 #      define systemd_NR_getrandom 4353
@@ -374,6 +385,8 @@ assert_cc(__NR_getrandom == systemd_NR_getrandom);
 #    define systemd_NR_memfd_create 1340
 #  elif defined(__m68k__)
 #    define systemd_NR_memfd_create 353
+#  elif defined(__microblaze__)
+#    define systemd_NR_memfd_create 386
 #  elif defined(_MIPS_SIM)
 #    if _MIPS_SIM == _MIPS_SIM_ABI32
 #      define systemd_NR_memfd_create 4354
@@ -438,6 +451,8 @@ assert_cc(__NR_memfd_create == systemd_NR_memfd_create);
 #    define systemd_NR_mount_setattr 1466
 #  elif defined(__m68k__)
 #    define systemd_NR_mount_setattr 442
+#  elif defined(__microblaze__)
+#    define systemd_NR_mount_setattr 442
 #  elif defined(_MIPS_SIM)
 #    if _MIPS_SIM == _MIPS_SIM_ABI32
 #      define systemd_NR_mount_setattr 4442
@@ -502,6 +517,8 @@ assert_cc(__NR_mount_setattr == systemd_NR_mount_setattr);
 #    define systemd_NR_move_mount 1453
 #  elif defined(__m68k__)
 #    define systemd_NR_move_mount 429
+#  elif defined(__microblaze__)
+#    define systemd_NR_move_mount 429
 #  elif defined(_MIPS_SIM)
 #    if _MIPS_SIM == _MIPS_SIM_ABI32
 #      define systemd_NR_move_mount 4429
@@ -566,6 +583,8 @@ assert_cc(__NR_move_mount == systemd_NR_move_mount);
 #    define systemd_NR_name_to_handle_at 1326
 #  elif defined(__m68k__)
 #    define systemd_NR_name_to_handle_at 340
+#  elif defined(__microblaze__)
+#    define systemd_NR_name_to_handle_at 371
 #  elif defined(_MIPS_SIM)
 #    if _MIPS_SIM == _MIPS_SIM_ABI32
 #      define systemd_NR_name_to_handle_at 4339
@@ -630,6 +649,8 @@ assert_cc(__NR_name_to_handle_at == systemd_NR_name_to_handle_at);
 #    define systemd_NR_open_tree 1452
 #  elif defined(__m68k__)
 #    define systemd_NR_open_tree 428
+#  elif defined(__microblaze__)
+#    define systemd_NR_open_tree 428
 #  elif defined(_MIPS_SIM)
 #    if _MIPS_SIM == _MIPS_SIM_ABI32
 #      define systemd_NR_open_tree 4428
@@ -694,6 +715,8 @@ assert_cc(__NR_open_tree == systemd_NR_open_tree);
 #    define systemd_NR_pidfd_open 1458
 #  elif defined(__m68k__)
 #    define systemd_NR_pidfd_open 434
+#  elif defined(__microblaze__)
+#    define systemd_NR_pidfd_open 434
 #  elif defined(_MIPS_SIM)
 #    if _MIPS_SIM == _MIPS_SIM_ABI32
 #      define systemd_NR_pidfd_open 4434
@@ -758,6 +781,8 @@ assert_cc(__NR_pidfd_open == systemd_NR_pidfd_open);
 #    define systemd_NR_pidfd_send_signal 1448
 #  elif defined(__m68k__)
 #    define systemd_NR_pidfd_send_signal 424
+#  elif defined(__microblaze__)
+#    define systemd_NR_pidfd_send_signal 424
 #  elif defined(_MIPS_SIM)
 #    if _MIPS_SIM == _MIPS_SIM_ABI32
 #      define systemd_NR_pidfd_send_signal 4424
@@ -822,6 +847,8 @@ assert_cc(__NR_pidfd_send_signal == systemd_NR_pidfd_send_signal);
 #    define systemd_NR_pkey_mprotect 1354
 #  elif defined(__m68k__)
 #    define systemd_NR_pkey_mprotect 381
+#  elif defined(__microblaze__)
+#    define systemd_NR_pkey_mprotect 395
 #  elif defined(_MIPS_SIM)
 #    if _MIPS_SIM == _MIPS_SIM_ABI32
 #      define systemd_NR_pkey_mprotect 4363
@@ -886,6 +913,8 @@ assert_cc(__NR_pkey_mprotect == systemd_NR_pkey_mprotect);
 #    define systemd_NR_renameat2 1338
 #  elif defined(__m68k__)
 #    define systemd_NR_renameat2 351
+#  elif defined(__microblaze__)
+#    define systemd_NR_renameat2 383
 #  elif defined(_MIPS_SIM)
 #    if _MIPS_SIM == _MIPS_SIM_ABI32
 #      define systemd_NR_renameat2 4351
@@ -950,6 +979,8 @@ assert_cc(__NR_renameat2 == systemd_NR_renameat2);
 #    define systemd_NR_setns 1330
 #  elif defined(__m68k__)
 #    define systemd_NR_setns 344
+#  elif defined(__microblaze__)
+#    define systemd_NR_setns 375
 #  elif defined(_MIPS_SIM)
 #    if _MIPS_SIM == _MIPS_SIM_ABI32
 #      define systemd_NR_setns 4344
@@ -1014,6 +1045,8 @@ assert_cc(__NR_setns == systemd_NR_setns);
 #    define systemd_NR_statx 1350
 #  elif defined(__m68k__)
 #    define systemd_NR_statx 379
+#  elif defined(__microblaze__)
+#    define systemd_NR_statx 398
 #  elif defined(_MIPS_SIM)
 #    if _MIPS_SIM == _MIPS_SIM_ABI32
 #      define systemd_NR_statx 4366
diff --git a/src/basic/missing_syscalls.py b/src/basic/missing_syscalls.py
index 19f9726d4e..66fd7615b4 100644
--- a/src/basic/missing_syscalls.py
+++ b/src/basic/missing_syscalls.py
@@ -61,6 +61,8 @@ DEF_TEMPLATE_B = '''\
 #    define systemd_NR_{syscall} {nr_ia64}
 #  elif defined(__m68k__)
 #    define systemd_NR_{syscall} {nr_m68k}
+#  elif defined(__microblaze__)
+#    define systemd_NR_{syscall} {nr_microblaze}
 #  elif defined(_MIPS_SIM)
 #    if _MIPS_SIM == _MIPS_SIM_ABI32
 #      define systemd_NR_{syscall} {nr_mipso32}
diff --git a/src/basic/syscalls-microblaze.txt b/src/basic/syscalls-microblaze.txt
new file mode 100644
index 0000000000..3fc4cd6aef
--- /dev/null
+++ b/src/basic/syscalls-microblaze.txt
@@ -0,0 +1,598 @@
+_llseek	140
+_newselect	142
+_sysctl	149
+accept	349
+accept4	362
+access	33
+acct	51
+add_key	286
+adjtimex	124
+alarm	27
+arc_gettls
+arc_settls
+arc_usr_cmpxchg
+arch_prctl
+arm_fadvise64_64
+atomic_barrier
+atomic_cmpxchg_32
+bdflush	134
+bind	347
+bpf	387
+brk	45
+cachectl
+cacheflush
+capget	184
+capset	185
+chdir	12
+chmod	15
+chown	182
+chown32	212
+chroot	61
+clock_adjtime	373
+clock_adjtime64	405
+clock_getres	266
+clock_getres_time64	406
+clock_gettime	265
+clock_gettime64	403
+clock_nanosleep	267
+clock_nanosleep_time64	407
+clock_settime	264
+clock_settime64	404
+clone	120
+clone2
+clone3	435
+close	6
+close_range	436
+connect	350
+copy_file_range	392
+creat	8
+create_module	127
+delete_module	129
+dipc
+dup	41
+dup2	63
+dup3	342
+epoll_create	254
+epoll_create1	341
+epoll_ctl	255
+epoll_ctl_old
+epoll_pwait	319
+epoll_pwait2	441
+epoll_wait	256
+epoll_wait_old
+eventfd	323
+eventfd2	340
+exec_with_loader
+execv
+execve	11
+execveat	388
+exit	1
+exit_group	252
+faccessat	307
+faccessat2	439
+fadvise64	250
+fadvise64_64	272
+fallocate	324
+fanotify_init	368
+fanotify_mark	369
+fchdir	133
+fchmod	94
+fchmodat	306
+fchown	95
+fchown32	207
+fchownat	298
+fcntl	55
+fcntl64	221
+fdatasync	148
+fgetxattr	231
+finit_module	380
+flistxattr	234
+flock	143
+fork	2
+fp_udfiex_crtl
+fremovexattr	237
+fsconfig	431
+fsetxattr	228
+fsmount	432
+fsopen	430
+fspick	433
+fstat	108
+fstat64	197
+fstatat64	300
+fstatfs	100
+fstatfs64	269
+fsync	118
+ftruncate	93
+ftruncate64	194
+futex	240
+futex_time64	422
+futimesat	299
+get_kernel_syms	130
+get_mempolicy	275
+get_robust_list	312
+get_thread_area	244
+getcpu	318
+getcwd	183
+getdents	141
+getdents64	220
+getdomainname
+getdtablesize
+getegid	50
+getegid32	202
+geteuid	49
+geteuid32	201
+getgid	47
+getgid32	200
+getgroups	80
+getgroups32	205
+gethostname
+getitimer	105
+getpagesize
+getpeername	352
+getpgid	132
+getpgrp	65
+getpid	20
+getpmsg	188
+getppid	64
+getpriority	96
+getrandom	385
+getresgid	171
+getresgid32	211
+getresuid	165
+getresuid32	209
+getrlimit	76
+getrusage	77
+getsid	147
+getsockname	351
+getsockopt	358
+gettid	224
+gettimeofday	78
+getuid	24
+getuid32	199
+getunwind
+getxattr	229
+getxgid
+getxpid
+getxuid
+idle	112
+init_module	128
+inotify_add_watch	292
+inotify_init	291
+inotify_init1	344
+inotify_rm_watch	293
+io_cancel	249
+io_destroy	246
+io_getevents	247
+io_pgetevents	399
+io_pgetevents_time64	416
+io_setup	245
+io_submit	248
+io_uring_enter	426
+io_uring_register	427
+io_uring_setup	425
+ioctl	54
+ioperm	101
+iopl	110
+ioprio_get	290
+ioprio_set	289
+ipc	117
+kcmp	379
+kern_features
+kexec_file_load
+kexec_load	283
+keyctl	288
+kill	37
+landlock_add_rule	445
+landlock_create_ruleset	444
+landlock_restrict_self	446
+lchown	16
+lchown32	198
+lgetxattr	230
+link	9
+linkat	303
+listen	348
+listxattr	232
+llistxattr	233
+lookup_dcookie	253
+lremovexattr	236
+lseek	19
+lsetxattr	227
+lstat	107
+lstat64	196
+madvise	219
+mbind	274
+membarrier	390
+memfd_create	386
+memory_ordering
+migrate_pages	294
+mincore	218
+mkdir	39
+mkdirat	296
+mknod	14
+mknodat	297
+mlock	150
+mlock2	391
+mlockall	152
+mmap	90
+mmap2	192
+modify_ldt	123
+mount	21
+mount_setattr	442
+move_mount	429
+move_pages	317
+mprotect	125
+mq_getsetattr	282
+mq_notify	281
+mq_open	277
+mq_timedreceive	280
+mq_timedreceive_time64	419
+mq_timedsend	279
+mq_timedsend_time64	418
+mq_unlink	278
+mremap	163
+msgctl	331
+msgget	332
+msgrcv	333
+msgsnd	334
+msync	144
+multiplexer
+munlock	151
+munlockall	153
+munmap	91
+name_to_handle_at	371
+nanosleep	162
+newfstatat
+nfsservctl	169
+nice	34
+old_adjtimex
+old_getpagesize
+oldfstat	28
+oldlstat	84
+oldolduname	59
+oldstat	18
+oldumount
+olduname	109
+open	5
+open_by_handle_at	372
+open_tree	428
+openat	295
+openat2	437
+or1k_atomic
+osf_adjtime
+osf_afs_syscall
+osf_alt_plock
+osf_alt_setsid
+osf_alt_sigpending
+osf_asynch_daemon
+osf_audcntl
+osf_audgen
+osf_chflags
+osf_execve
+osf_exportfs
+osf_fchflags
+osf_fdatasync
+osf_fpathconf
+osf_fstat
+osf_fstatfs
+osf_fstatfs64
+osf_fuser
+osf_getaddressconf
+osf_getdirentries
+osf_getdomainname
+osf_getfh
+osf_getfsstat
+osf_gethostid
+osf_getitimer
+osf_getlogin
+osf_getmnt
+osf_getrusage
+osf_getsysinfo
+osf_gettimeofday
+osf_kloadcall
+osf_kmodcall
+osf_lstat
+osf_memcntl
+osf_mincore
+osf_mount
+osf_mremap
+osf_msfs_syscall
+osf_msleep
+osf_mvalid
+osf_mwakeup
+osf_naccept
+osf_nfssvc
+osf_ngetpeername
+osf_ngetsockname
+osf_nrecvfrom
+osf_nrecvmsg
+osf_nsendmsg
+osf_ntp_adjtime
+osf_ntp_gettime
+osf_old_creat
+osf_old_fstat
+osf_old_getpgrp
+osf_old_killpg
+osf_old_lstat
+osf_old_open
+osf_old_sigaction
+osf_old_sigblock
+osf_old_sigreturn
+osf_old_sigsetmask
+osf_old_sigvec
+osf_old_stat
+osf_old_vadvise
+osf_old_vtrace
+osf_old_wait
+osf_oldquota
+osf_pathconf
+osf_pid_block
+osf_pid_unblock
+osf_plock
+osf_priocntlset
+osf_profil
+osf_proplist_syscall
+osf_reboot
+osf_revoke
+osf_sbrk
+osf_security
+osf_select
+osf_set_program_attributes
+osf_set_speculative
+osf_sethostid
+osf_setitimer
+osf_setlogin
+osf_setsysinfo
+osf_settimeofday
+osf_shmat
+osf_signal
+osf_sigprocmask
+osf_sigsendset
+osf_sigstack
+osf_sigwaitprim
+osf_sstk
+osf_stat
+osf_statfs
+osf_statfs64
+osf_subsys_info
+osf_swapctl
+osf_swapon
+osf_syscall
+osf_sysinfo
+osf_table
+osf_uadmin
+osf_usleep_thread
+osf_uswitch
+osf_utc_adjtime
+osf_utc_gettime
+osf_utimes
+osf_utsname
+osf_wait4
+osf_waitid
+pause	29
+pciconfig_iobase
+pciconfig_read
+pciconfig_write
+perf_event_open	366
+perfctr
+perfmonctl
+personality	136
+pidfd_getfd	438
+pidfd_open	434
+pidfd_send_signal	424
+pipe	42
+pipe2	343
+pivot_root	217
+pkey_alloc	396
+pkey_free	397
+pkey_mprotect	395
+poll	168
+ppoll	309
+ppoll_time64	414
+prctl	172
+pread64	180
+preadv	363
+preadv2	393
+prlimit64	370
+process_madvise	440
+process_vm_readv	377
+process_vm_writev	378
+pselect6	308
+pselect6_time64	413
+ptrace	26
+pwrite64	181
+pwritev	364
+pwritev2	394
+query_module	167
+quotactl	131
+quotactl_path
+read	3
+readahead	225
+readdir	89
+readlink	85
+readlinkat	305
+readv	145
+reboot	88
+recv	356
+recvfrom	355
+recvmmsg	367
+recvmmsg_time64	417
+recvmsg	361
+remap_file_pages	257
+removexattr	235
+rename	38
+renameat	302
+renameat2	383
+request_key	287
+restart_syscall	0
+riscv_flush_icache
+rmdir	40
+rseq	400
+rt_sigaction	174
+rt_sigpending	176
+rt_sigprocmask	175
+rt_sigqueueinfo	178
+rt_sigreturn	173
+rt_sigsuspend	179
+rt_sigtimedwait	177
+rt_sigtimedwait_time64	421
+rt_tgsigqueueinfo	365
+rtas
+s390_guarded_storage
+s390_pci_mmio_read
+s390_pci_mmio_write
+s390_runtime_instr
+s390_sthyi
+sched_get_affinity
+sched_get_priority_max	159
+sched_get_priority_min	160
+sched_getaffinity	242
+sched_getattr	382
+sched_getparam	155
+sched_getscheduler	157
+sched_rr_get_interval	161
+sched_rr_get_interval_time64	423
+sched_set_affinity
+sched_setaffinity	241
+sched_setattr	381
+sched_setparam	154
+sched_setscheduler	156
+sched_yield	158
+seccomp	384
+select	82
+semctl	328
+semget	329
+semop	330
+semtimedop	325
+semtimedop_time64	420
+send	354
+sendfile	187
+sendfile64	239
+sendmmsg	376
+sendmsg	360
+sendto	353
+set_mempolicy	276
+set_robust_list	311
+set_thread_area	243
+set_tid_address	258
+setdomainname	121
+setfsgid	139
+setfsgid32	216
+setfsuid	138
+setfsuid32	215
+setgid	46
+setgid32	214
+setgroups	81
+setgroups32	206
+sethae
+sethostname	74
+setitimer	104
+setns	375
+setpgid	57
+setpgrp
+setpriority	97
+setregid	71
+setregid32	204
+setresgid	170
+setresgid32	210
+setresuid	164
+setresuid32	208
+setreuid	70
+setreuid32	203
+setrlimit	75
+setsid	66
+setsockopt	357
+settimeofday	79
+setuid	23
+setuid32	213
+setxattr	226
+sgetmask	68
+shmat	335
+shmctl	336
+shmdt	337
+shmget	338
+shutdown	359
+sigaction	67
+sigaltstack	186
+signal	48
+signalfd	321
+signalfd4	339
+sigpending	73
+sigprocmask	126
+sigreturn	119
+sigsuspend	72
+socket	345
+socketcall	102
+socketpair	346
+splice	313
+spu_create
+spu_run
+ssetmask	69
+stat	106
+stat64	195
+statfs	99
+statfs64	268
+statx	398
+stime	25
+subpage_prot
+swapcontext
+swapoff	115
+swapon	87
+switch_endian
+symlink	83
+symlinkat	304
+sync	36
+sync_file_range	314
+sync_file_range2
+syncfs	374
+sys_debug_setcontext
+syscall
+sysfs	135
+sysinfo	116
+syslog	103
+sysmips
+tee	315
+tgkill	270
+time	13
+timer_create	259
+timer_delete	263
+timer_getoverrun	262
+timer_gettime	261
+timer_gettime64	408
+timer_settime	260
+timer_settime64	409
+timerfd
+timerfd_create	322
+timerfd_gettime	327
+timerfd_gettime64	410
+timerfd_settime	326
+timerfd_settime64	411
+times	43
+tkill	238
+truncate	92
+truncate64	193
+ugetrlimit	191
+umask	60
+umount	22
+umount2	52
+uname	122
+unlink	10
+unlinkat	301
+unshare	310
+uselib	86
+userfaultfd	389
+ustat	62
+utime	30
+utimensat	320
+utimensat_time64	412
+utimes	271
+utrap_install
+vfork	190
+vhangup	111
+vm86	166
+vm86old	113
+vmsplice	316
+wait4	114
+waitid	284
+waitpid	7
+write	4
+writev	146
