xref: /netbsd-src/external/bsd/iscsi/dist/include/osd_ops.h (revision b63649522cc19205c7894dbc33c5c2554d7ae2f7)
12f245829Sagc /*
2*b6364952Sagc  * IMPORTANT:  READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
3*b6364952Sagc  * By downloading, copying, installing or using the software you agree
4*b6364952Sagc  * to this license.  If you do not agree to this license, do not
5*b6364952Sagc  * download, install, copy or use the software.
62f245829Sagc  *
72f245829Sagc  * Intel License Agreement
82f245829Sagc  *
9*b6364952Sagc  * Copyright (c) 2000, Intel Corporation
102f245829Sagc  * All rights reserved.
112f245829Sagc  *
12*b6364952Sagc  * Redistribution and use in source and binary forms, with or without
13*b6364952Sagc  * modification, are permitted provided that the following conditions
14*b6364952Sagc  * are met:
152f245829Sagc  *
16*b6364952Sagc  * -Redistributions of source code must retain the above copyright
17*b6364952Sagc  *  notice, this list of conditions and the following disclaimer.
182f245829Sagc  *
19*b6364952Sagc  * -Redistributions in binary form must reproduce the above copyright
20*b6364952Sagc  *  notice, this list of conditions and the following disclaimer in the
21*b6364952Sagc  *  documentation and/or other materials provided with the
22*b6364952Sagc  *  distribution.
232f245829Sagc  *
24*b6364952Sagc  * -The name of Intel Corporation may not be used to endorse or
25*b6364952Sagc  *  promote products derived from this software without specific prior
26*b6364952Sagc  *  written permission.
272f245829Sagc  *
28*b6364952Sagc  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
29*b6364952Sagc  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
30*b6364952Sagc  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
31*b6364952Sagc  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL INTEL
32*b6364952Sagc  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
33*b6364952Sagc  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
34*b6364952Sagc  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
35*b6364952Sagc  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
36*b6364952Sagc  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
37*b6364952Sagc  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
38*b6364952Sagc  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
39*b6364952Sagc  * SUCH DAMAGE.
402f245829Sagc  */
412f245829Sagc /*
422f245829Sagc  * Transport-independent Methods
432f245829Sagc  */
442f245829Sagc 
452f245829Sagc 
462f245829Sagc #ifndef _OSD_OPS_H_
472f245829Sagc #define _OSD_OPS_H_
482f245829Sagc 
492f245829Sagc #include "osd.h"
502f245829Sagc 
512f245829Sagc typedef struct osd_ops_mem {
522f245829Sagc 	const void		*send_data;
532f245829Sagc 	uint64_t	send_len;
542f245829Sagc 	int		send_sg;
552f245829Sagc 	void		*recv_data;
562f245829Sagc 	uint64_t	recv_len;
572f245829Sagc 	int		recv_sg;
582f245829Sagc } OSD_OPS_MEM;
592f245829Sagc 
602f245829Sagc int osd_create_group(void *, int (*)(void *, osd_args_t *, OSD_OPS_MEM *), uint32_t *);
612f245829Sagc int osd_remove_group(void *, uint32_t , int (*)(void *, osd_args_t *, OSD_OPS_MEM *));
622f245829Sagc int osd_create(void *, uint32_t , int (*)(void *, osd_args_t *, OSD_OPS_MEM *), uint64_t *);
632f245829Sagc int osd_remove(void *, uint32_t , uint64_t , int (*)(void *, osd_args_t *, OSD_OPS_MEM *));
642f245829Sagc int osd_write(void *, uint32_t , uint64_t , uint64_t , uint64_t , const void *, int , int (*)(void *, osd_args_t *, OSD_OPS_MEM *));
652f245829Sagc int osd_read(void *, uint32_t , uint64_t , uint64_t , uint64_t , void *, int , int (*)(void *, osd_args_t *, OSD_OPS_MEM *));
662f245829Sagc int osd_set_one_attr(void *, uint32_t , uint64_t , uint32_t , uint32_t , uint32_t , void *, int (*)(void *, osd_args_t *, OSD_OPS_MEM *));
672f245829Sagc int osd_get_one_attr(void *, uint32_t , uint64_t , uint32_t , uint32_t , uint32_t , int (*)(void *, osd_args_t *, OSD_OPS_MEM *), uint16_t *, void *);
682f245829Sagc 
692f245829Sagc #endif
70