ユーザースペースとカーネルスペースの間で通信するためにioctl呼び出しを使用してカーネルモジュールプログラミングを行っています。PythonでユーザースペースAPIを作成する予定です。
カーネルとユーザースペースの間でデータを渡すために、ioctl呼び出しはアドレスを利用し、データはcopy_to_userまたはcopy_from_userを使用してコピーされます。ここでのアドレスはによって与えられunsigned long arg
ます。
int ioctl(struct inode *inode,struct file *filp,unsigned int cmd,unsigned long arg)
Cユーザースペースプログラミングでは、アドレスを渡すのは簡単です。私がやりたいのは、Pythonの構造体を使用して、カーネルモジュールで定義した構造体と互換性のある構造体を作成し、Pythonのfcntlモジュールのioctlを使用して、入力されたpython構造体を渡すことです。
出来ますか?可能であれば、ioctl呼び出しでpython structのアドレスを渡すにはどうすればよいですか?
ctypesを使用したり、Pythonをcで拡張したりしたくありません。純粋なPythonコードは、私が欲しいものです。