fdstream.h 2.1 KB
Newer Older
1 2 3
/*
 * fdstream.h: generic streams impl for file descriptors
 *
4
 * Copyright (C) 2009-2012 Red Hat, Inc.
5 6 7 8 9 10 11 12 13 14 15 16
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
O
Osier Yang 已提交
17 18
 * License along with this library;  If not, see
 * <http://www.gnu.org/licenses/>.
19 20 21 22 23 24 25 26
 *
 */


#ifndef __VIR_FDSTREAM_H_
# define __VIR_FDSTREAM_H_

# include "internal.h"
27
# include "command.h"
28

29 30 31 32 33 34 35
/* internal callback, the generic one is used up by daemon stream driver */
/* the close callback is called with fdstream private data locked */
typedef void (*virFDStreamInternalCloseCb)(virStreamPtr st, void *opaque);

typedef void (*virFDStreamInternalCloseCbFreeOpaque)(void *opaque);


36 37 38 39 40 41 42 43 44
int virFDStreamOpen(virStreamPtr st,
                    int fd);

int virFDStreamConnectUNIX(virStreamPtr st,
                           const char *path,
                           bool abstract);

int virFDStreamOpenFile(virStreamPtr st,
                        const char *path,
45 46
                        unsigned long long offset,
                        unsigned long long length,
E
Eric Blake 已提交
47
                        int oflags);
48 49
int virFDStreamCreateFile(virStreamPtr st,
                          const char *path,
50 51
                          unsigned long long offset,
                          unsigned long long length,
52
                          int oflags,
E
Eric Blake 已提交
53
                          mode_t mode);
54

55 56 57 58
int virFDStreamSetInternalCloseCb(virStreamPtr st,
                                  virFDStreamInternalCloseCb cb,
                                  void *opaque,
                                  virFDStreamInternalCloseCbFreeOpaque fcb);
59
#endif /* __VIR_FDSTREAM_H_ */