### README for check_dmapi ### check_dmapi tests the version of DMAPI library & kernel code. command line: check_dmapi [-v] (v is a verbose-output flag) Functionality: 1) Ensures that the user is running as root, using getuid(). 2) Tries to stat() /usr/include/sys/dmi.h to verify its presence and its size. 3) Verifies the presence of the DMAPI kernel, using a direct call to dmi(). The call is invalid, so it should return EINVAL if the kernel code is in place, ENOPKG if not. 4) Determines the status of the kernel (if it is present) using a direct call to dmi(). The call is invalid, and uses an opcode not present in the old kernel. So ENOSYS means old kernel; EINVAL means new kernel. 5) Determines the status of the library by calling dm_init_service(). If this fails, libraries are missing. In the old library, this call did not change its "name" parameter, but in the new library it does. Same name means old library; changed name means new library. 6) Outputs its findings.