раз на Linux может быть 32 или 64 бит, где необходимо 64 бита, чтобы избежать проблемы Y2038. /> Это немного сложно для API входного события Linux, где входные события, считываемые с устройства, включают в себя метку времени. Он управляется через EG anpound_event_to_user () функция в Drivers/Input/Input.compat.c . Он полагается на вызов ядра in_compat_syscall () , чтобы сказать, является ли приложение пользователя 32- или 64-разряд. Он должен работать на 32-битных системах с 32-разрядным временем и 64-битными системами с 64-разрядным временем, считываемым программами, составленными для 64-битных. Но я думаю, что это сломалось бы для других комбинаций приложений пользователя, которые ожидают 64-разрядного времени на 32-разрядной системе, или 32-разрядных приложений пользователя, которые ожидают 32-разрядного времени в 64-битной системе. Насколько я могу судить, у драйвера CUSE нет возможности узнать значение in_compat_syscall () .
Как драйвер CUSE может определить, ожидает ли приложение, которое откроется, оно ожидает 32-битных или 64-битных временных метров?
Подробнее здесь: https://stackoverflow.com/questions/797 ... -for-y2038