Linux v5.1 introduced ipc syscalls on targets where previously only SYS_ipc was available, change the logic such that the ipc code keeps using SYS_ipc which works backward compatibly on older kernels. This changes behaviour on microblaze which had both mechanisms, now SYS_ipc will be used instead of separate syscalls.
13 lines
298 B
C
13 lines
298 B
C
#include <sys/msg.h>
|
|
#include "syscall.h"
|
|
#include "ipc.h"
|
|
|
|
ssize_t msgrcv(int q, void *m, size_t len, long type, int flag)
|
|
{
|
|
#ifndef SYS_ipc
|
|
return syscall_cp(SYS_msgrcv, q, m, len, type, flag);
|
|
#else
|
|
return syscall_cp(SYS_ipc, IPCOP_msgrcv, q, len, flag, ((long[]){ (long)m, type }));
|
|
#endif
|
|
}
|