Port crt_disk_open from macro to function

Will port all crt_disk_*() to function in order to pass to logger a func
pointer so we can call crt_disk_write() instead of write(2) in 3rd code