1#![allow(non_camel_case_types)]
6
7use crate::errors::{Errno, error};
8use crate::uapi;
9
10#[derive(Copy, Clone, Debug, Eq, PartialEq)]
11pub enum KcmpResource {
12 FILE,
13 VM,
14 FILES,
15 FS,
16 SIGHAND,
17 IO,
18 SYSVSEM,
19 EPOLL_TFD,
20 TYPES,
21}
22
23impl KcmpResource {
24 pub fn from_raw(resource: u32) -> Result<KcmpResource, Errno> {
25 Ok(match resource {
26 uapi::kcmp_type_KCMP_FILE => KcmpResource::FILE,
27 uapi::kcmp_type_KCMP_VM => KcmpResource::VM,
28 uapi::kcmp_type_KCMP_FILES => KcmpResource::FILES,
29 uapi::kcmp_type_KCMP_FS => KcmpResource::FS,
30 uapi::kcmp_type_KCMP_SIGHAND => KcmpResource::SIGHAND,
31 uapi::kcmp_type_KCMP_IO => KcmpResource::IO,
32 uapi::kcmp_type_KCMP_SYSVSEM => KcmpResource::SYSVSEM,
33 uapi::kcmp_type_KCMP_EPOLL_TFD => KcmpResource::EPOLL_TFD,
34 uapi::kcmp_type_KCMP_TYPES => KcmpResource::TYPES,
35 _ => return error!(EINVAL),
36 })
37 }
38}