|  | #include <u.h> | 
|  | #include <libc.h> | 
|  | #include <bio.h> | 
|  | #include <diskfs.h> | 
|  |  | 
|  | Block* | 
|  | diskread(Disk *disk, u32int count, u64int offset) | 
|  | { | 
|  | if(disk == nil) | 
|  | return nil; | 
|  |  | 
|  | if(!disk->_read){ | 
|  | werrstr("no disk read dispatch function"); | 
|  | return nil; | 
|  | } | 
|  | return (*disk->_read)(disk, count, offset); | 
|  | } | 
|  |  | 
|  | int | 
|  | disksync(Disk *disk) | 
|  | { | 
|  | if(disk == nil) | 
|  | return 0; | 
|  | if(!disk->_sync) | 
|  | return 0; | 
|  | return (*disk->_sync)(disk); | 
|  | } | 
|  |  | 
|  | void | 
|  | diskclose(Disk *disk) | 
|  | { | 
|  | if(disk == nil) | 
|  | return; | 
|  | if(!disk->_close){ | 
|  | fprint(2, "no diskClose\n"); | 
|  | abort(); | 
|  | } | 
|  | (*disk->_close)(disk); | 
|  | } |