mirror of
https://github.com/torvalds/linux.git
synced 2026-10-22 23:01:49 +02:00
rust: miscdevice: use #[optional] attribute of #[vtable] macro
Replace the `build_error!(VTABLE_DEFAULT_ERROR)` boilerplate with the `#[optional]` attribute. Signed-off-by: Gary Guo <gary@garyguo.net> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Link: https://patch.msgid.link/20260811-vtable_macro-v1-3-50c5aab3c211@garyguo.net [ Reworded title for prefix. - Miguel ] Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
This commit is contained in:
parent
a52a7596c3
commit
a4082121ee
|
|
@ -11,10 +11,7 @@
|
|||
use crate::{
|
||||
bindings,
|
||||
device::Device,
|
||||
error::{
|
||||
to_result,
|
||||
VTABLE_DEFAULT_ERROR, //
|
||||
},
|
||||
error::to_result,
|
||||
fs::{
|
||||
File,
|
||||
Kiocb, //
|
||||
|
|
@ -145,37 +142,33 @@ fn release(device: Self::Ptr, _file: &File) {
|
|||
/// the VMA initialization by calling methods of `vma`. If the function does not return an
|
||||
/// error, the kernel will complete initialization of the VMA according to the properties of
|
||||
/// `vma`.
|
||||
#[optional]
|
||||
fn mmap(
|
||||
_device: <Self::Ptr as ForeignOwnable>::Borrowed<'_>,
|
||||
_file: &File,
|
||||
_vma: &VmaNew,
|
||||
) -> Result {
|
||||
build_error!(VTABLE_DEFAULT_ERROR)
|
||||
}
|
||||
) -> Result;
|
||||
|
||||
/// Read from this miscdevice.
|
||||
fn read_iter(_kiocb: Kiocb<'_, Self::Ptr>, _iov: &mut IovIterDest<'_>) -> Result<usize> {
|
||||
build_error!(VTABLE_DEFAULT_ERROR)
|
||||
}
|
||||
#[optional]
|
||||
fn read_iter(_kiocb: Kiocb<'_, Self::Ptr>, _iov: &mut IovIterDest<'_>) -> Result<usize>;
|
||||
|
||||
/// Write to this miscdevice.
|
||||
fn write_iter(_kiocb: Kiocb<'_, Self::Ptr>, _iov: &mut IovIterSource<'_>) -> Result<usize> {
|
||||
build_error!(VTABLE_DEFAULT_ERROR)
|
||||
}
|
||||
#[optional]
|
||||
fn write_iter(_kiocb: Kiocb<'_, Self::Ptr>, _iov: &mut IovIterSource<'_>) -> Result<usize>;
|
||||
|
||||
/// Handler for ioctls.
|
||||
///
|
||||
/// The `cmd` argument is usually manipulated using the utilities in [`kernel::ioctl`].
|
||||
///
|
||||
/// [`kernel::ioctl`]: mod@crate::ioctl
|
||||
#[optional]
|
||||
fn ioctl(
|
||||
_device: <Self::Ptr as ForeignOwnable>::Borrowed<'_>,
|
||||
_file: &File,
|
||||
_cmd: u32,
|
||||
_arg: usize,
|
||||
) -> Result<isize> {
|
||||
build_error!(VTABLE_DEFAULT_ERROR)
|
||||
}
|
||||
) -> Result<isize>;
|
||||
|
||||
/// Handler for ioctls.
|
||||
///
|
||||
|
|
@ -185,23 +178,21 @@ fn ioctl(
|
|||
/// that have different layout on 32-bit and 64-bit userspace. If no implementation is
|
||||
/// provided, then `compat_ptr_ioctl` will be used instead.
|
||||
#[cfg(CONFIG_COMPAT)]
|
||||
#[optional]
|
||||
fn compat_ioctl(
|
||||
_device: <Self::Ptr as ForeignOwnable>::Borrowed<'_>,
|
||||
_file: &File,
|
||||
_cmd: u32,
|
||||
_arg: usize,
|
||||
) -> Result<isize> {
|
||||
build_error!(VTABLE_DEFAULT_ERROR)
|
||||
}
|
||||
) -> Result<isize>;
|
||||
|
||||
/// Show info for this fd.
|
||||
#[optional]
|
||||
fn show_fdinfo(
|
||||
_device: <Self::Ptr as ForeignOwnable>::Borrowed<'_>,
|
||||
_m: &SeqFile,
|
||||
_file: &File,
|
||||
) {
|
||||
build_error!(VTABLE_DEFAULT_ERROR)
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/// A vtable for the file operations of a Rust miscdevice.
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user