Reusable Linux device driver framework