Introduction   Client Library API Reference   IDL Interface   File List   Index  

blk.idl

Go to the documentation of this file.
00001 /* -*- c -*- */ 
00002 /* $Id: blk.idl 27328 2006-11-01 14:09:41Z ra3 $ */
00003 /*****************************************************************************/
00014 /*****************************************************************************/
00015 
00016 import <l4/generic_blk/types.h>
00017 
00018 /*****************************************************************************/
00023 /*****************************************************************************/
00024 library l4blk
00025 {
00026   /***************************************************************************/
00033   /***************************************************************************/
00034   interface driver
00035     {
00036       /***********************************************************************/
00052       /***********************************************************************/ 
00053       int open([out] l4blk_driver_id_t * drv, 
00054                [out] l4_threadid_t * cmd_id, 
00055                [out] l4_threadid_t * notify_id);
00056 
00057       /***********************************************************************/
00068       /***********************************************************************/ 
00069       int close([in] l4blk_driver_id_t drv);
00070     };
00071 
00072   /***************************************************************************/
00077   /***************************************************************************/
00078   interface cmd
00079     {
00080       /***********************************************************************/
00099       /***********************************************************************/ 
00100       int create_stream([in] l4blk_driver_id_t drv, 
00101                         [in] unsigned long device,
00102                         [in] unsigned long bandwidth,
00103                         [in] unsigned long period,
00104                         [in] unsigned long blk_size, 
00105                         [in] float q,
00106                         [in] unsigned long meta_int, 
00107                         [out] l4blk_stream_t * stream);
00108 
00109       /***********************************************************************/
00120       /***********************************************************************/ 
00121       int close_stream([in] l4blk_driver_id_t drv, 
00122                        [in] l4blk_stream_t stream);
00123 
00124       /***********************************************************************/
00136       /***********************************************************************/ 
00137       int start_stream([in] l4blk_driver_id_t drv, 
00138                        [in] l4blk_stream_t stream,
00139                        [in] unsigned long time, 
00140                        [in] unsigned long request_no);
00141 
00142       /***********************************************************************/
00159       /***********************************************************************/ 
00160       int put_request([in] l4blk_driver_id_t drv,
00161                       [in] l4blk_blk_request_t request,
00162                       [in, ref, size_is(sg_size), max_is(4096)] void * sg_list,
00163                       [in] int sg_size,
00164                       [in] int sg_num,
00165                       [in] int sg_type);
00166 
00167       /***********************************************************************/
00181       /***********************************************************************/ 
00182       int ctrl([in] l4blk_driver_id_t drv, 
00183                [in] l4_uint32_t command,
00184                [in, ref, size_is(in_size)] void * in_args,
00185                [in] int in_size,
00186                [out, ref, prealloc_client, size_is(out_size)] void ** out_args,
00187                [in, out] int * out_size);
00188     };
00189 
00190   /***************************************************************************/
00195   /***************************************************************************/
00196   interface notify
00197     {
00198       /***********************************************************************/
00211       /***********************************************************************/ 
00212       int wait([in] l4blk_driver_id_t drv, 
00213                [out] l4_uint32_t * req_handle,
00214                [out] l4_uint32_t * status, 
00215                [out] int * error);
00216     };
00217 };

Generic Block Interface Reference Manual, written by Lars Reuther  © 2000-2003