qemuxmlconftest: Add test case for virtiofs on s390 using 'ccw' addresses
[libvirt.git] / src / driver-stream.h
blobced05253fabe2b499f08820aa819b50c420c3692
1 /*
2 * driver-stream.h: entry points for stream drivers
4 * Copyright (C) 2006-2014 Red Hat, Inc.
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library. If not, see
18 * <http://www.gnu.org/licenses/>.
21 #pragma once
23 #ifndef __VIR_DRIVER_H_INCLUDES___
24 # error "Don't include this file directly, only use driver.h"
25 #endif
27 typedef int
28 (*virDrvStreamSend)(virStreamPtr st,
29 const char *data,
30 size_t nbytes);
32 typedef int
33 (*virDrvStreamRecv)(virStreamPtr st,
34 char *data,
35 size_t nbytes);
37 typedef int
38 (*virDrvStreamRecvFlags)(virStreamPtr st,
39 char *data,
40 size_t nbytes,
41 unsigned int flags);
43 typedef int
44 (*virDrvStreamSendHole)(virStreamPtr st,
45 long long length,
46 unsigned int flags);
48 typedef int
49 (*virDrvStreamRecvHole)(virStreamPtr st,
50 long long *length,
51 unsigned int flags);
53 typedef int
54 (*virDrvStreamInData)(virStreamPtr st,
55 int *data,
56 long long *length);
58 typedef int
59 (*virDrvStreamEventAddCallback)(virStreamPtr stream,
60 int events,
61 virStreamEventCallback cb,
62 void *opaque,
63 virFreeCallback ff);
65 typedef int
66 (*virDrvStreamEventUpdateCallback)(virStreamPtr stream,
67 int events);
69 typedef int
70 (*virDrvStreamEventRemoveCallback)(virStreamPtr stream);
72 typedef int
73 (*virDrvStreamFinish)(virStreamPtr st);
75 typedef int
76 (*virDrvStreamAbort)(virStreamPtr st);
78 typedef struct _virStreamDriver virStreamDriver;
79 struct _virStreamDriver {
80 virDrvStreamSend streamSend;
81 virDrvStreamRecv streamRecv;
82 virDrvStreamRecvFlags streamRecvFlags;
83 virDrvStreamSendHole streamSendHole;
84 virDrvStreamRecvHole streamRecvHole;
85 virDrvStreamInData streamInData;
86 virDrvStreamEventAddCallback streamEventAddCallback;
87 virDrvStreamEventUpdateCallback streamEventUpdateCallback;
88 virDrvStreamEventRemoveCallback streamEventRemoveCallback;
89 virDrvStreamFinish streamFinish;
90 virDrvStreamAbort streamAbort;