00001 /* $Id: blk.h 31603 2008-05-12 06:54:17Z adam $ */ 00002 /*****************************************************************************/ 00010 /*****************************************************************************/ 00011 #ifndef _GENERIC_BLK_BLK_H 00012 #define _GENERIC_BLK_BLK_H 00013 00014 /* L4 includes */ 00015 #include <l4/sys/types.h> 00016 #include <l4/env/cdefs.h> 00017 00018 /* generic_blk includes */ 00019 #include <l4/generic_blk/types.h> 00020 00021 /***************************************************************************** 00022 *** Prototypes 00023 *****************************************************************************/ 00024 00025 __BEGIN_DECLS; 00026 00027 /*****************************************************************************/ 00035 /*****************************************************************************/ 00036 L4_CV void 00037 l4blk_init(void); 00038 00039 /*****************************************************************************/ 00061 /*****************************************************************************/ 00062 L4_CV int 00063 l4blk_open_driver(const char * name, l4blk_driver_t * driver, 00064 l4blk_setup_notify_callback_fn_t cb); 00065 00066 /*****************************************************************************/ 00078 /*****************************************************************************/ 00079 L4_CV int 00080 l4blk_close_driver(l4blk_driver_t driver); 00081 00082 /*****************************************************************************/ 00091 /*****************************************************************************/ 00092 L4_CV l4_threadid_t 00093 l4blk_get_driver_thread(l4blk_driver_t driver); 00094 00095 /*****************************************************************************/ 00117 /*****************************************************************************/ 00118 L4_CV int 00119 l4blk_create_stream(l4blk_driver_t driver, l4_uint32_t device, 00120 l4_uint32_t bandwidth, l4_uint32_t period, 00121 l4_uint32_t blk_size, float q, l4_uint32_t meta_int, 00122 l4blk_stream_t * stream); 00123 00124 /*****************************************************************************/ 00136 /*****************************************************************************/ 00137 L4_CV int 00138 l4blk_close_stream(l4blk_driver_t driver, l4blk_stream_t stream); 00139 00140 /*****************************************************************************/ 00152 /*****************************************************************************/ 00153 L4_CV int 00154 l4blk_start_stream(l4blk_driver_t driver, l4blk_stream_t stream, 00155 l4_uint32_t time, l4_uint32_t request_no); 00156 00157 /*****************************************************************************/ 00168 /*****************************************************************************/ 00169 L4_CV int 00170 l4blk_do_request(l4blk_request_t * request); 00171 00172 /*****************************************************************************/ 00191 /*****************************************************************************/ 00192 L4_CV int 00193 l4blk_put_request(l4blk_request_t * request); 00194 00195 /*****************************************************************************/ 00211 /*****************************************************************************/ 00212 L4_CV int 00213 l4blk_get_status(l4blk_request_t * request); 00214 00215 /*****************************************************************************/ 00228 /*****************************************************************************/ 00229 L4_CV int 00230 l4blk_get_error(l4blk_request_t * request); 00231 00232 /*****************************************************************************/ 00249 /*****************************************************************************/ 00250 L4_CV int 00251 l4blk_ctrl(l4blk_driver_t driver, l4_uint32_t cmd, void * in, int in_size, 00252 void * out, int out_size); 00253 00254 /*****************************************************************************/ 00263 /*****************************************************************************/ 00264 L4_CV int 00265 l4blk_ctrl_get_num_disks(l4blk_driver_t driver); 00266 00267 /*****************************************************************************/ 00277 /*****************************************************************************/ 00278 L4_CV int 00279 l4blk_ctrl_get_disk_size(l4blk_driver_t driver, l4_uint32_t dev); 00280 00281 /*****************************************************************************/ 00294 /*****************************************************************************/ 00295 L4_CV int 00296 l4blk_ctrl_get_stream_period(l4blk_driver_t driver, l4blk_stream_t stream, 00297 l4_uint32_t * period_len, 00298 l4_uint32_t * period_offs); 00299 00300 __END_DECLS; 00301 00302 #endif /* !_GENERIC_BLK_BLK_H */