00001 00038 #include <assert.h> 00039 #include <debug.h> 00040 #include <malloc.h> 00041 #include <string.h> 00042 #include <types.h> 00043 #include <block/device.h> 00044 00053 struct block_request *block_alloc_request(struct block_device *bdev) 00054 { 00055 struct block_request *req; 00056 00057 assert(bdev); 00058 assert(bdev->alloc_req); 00059 00060 req = bdev->alloc_req(bdev); 00061 if (likely(req)) 00062 req->bdev = bdev; 00063 else 00064 dbg_warning("block: failed to allocate request from dev %p\n", 00065 bdev); 00066 00067 return req; 00068 } 00069 00077 void block_free_request(struct block_device *bdev, struct block_request *req) 00078 { 00079 assert(bdev->free_req); 00080 00081 if (!req) 00082 return; 00083 00084 assert(bdev == req->bdev); 00085 00086 bdev->free_req(bdev, req); 00087 }
1.6.3