Statistics
| Branch: | Revision:

root / block / qed-gencb.c @ f8bf8606

History | View | Annotate | Download (694 Bytes)

1 298800ca Stefan Hajnoczi
/*
2 298800ca Stefan Hajnoczi
 * QEMU Enhanced Disk Format
3 298800ca Stefan Hajnoczi
 *
4 298800ca Stefan Hajnoczi
 * Copyright IBM, Corp. 2010
5 298800ca Stefan Hajnoczi
 *
6 298800ca Stefan Hajnoczi
 * Authors:
7 298800ca Stefan Hajnoczi
 *  Stefan Hajnoczi   <stefanha@linux.vnet.ibm.com>
8 298800ca Stefan Hajnoczi
 *
9 298800ca Stefan Hajnoczi
 * This work is licensed under the terms of the GNU LGPL, version 2 or later.
10 298800ca Stefan Hajnoczi
 * See the COPYING.LIB file in the top-level directory.
11 298800ca Stefan Hajnoczi
 *
12 298800ca Stefan Hajnoczi
 */
13 298800ca Stefan Hajnoczi
14 298800ca Stefan Hajnoczi
#include "qed.h"
15 298800ca Stefan Hajnoczi
16 298800ca Stefan Hajnoczi
void *gencb_alloc(size_t len, BlockDriverCompletionFunc *cb, void *opaque)
17 298800ca Stefan Hajnoczi
{
18 298800ca Stefan Hajnoczi
    GenericCB *gencb = qemu_malloc(len);
19 298800ca Stefan Hajnoczi
    gencb->cb = cb;
20 298800ca Stefan Hajnoczi
    gencb->opaque = opaque;
21 298800ca Stefan Hajnoczi
    return gencb;
22 298800ca Stefan Hajnoczi
}
23 298800ca Stefan Hajnoczi
24 298800ca Stefan Hajnoczi
void gencb_complete(void *opaque, int ret)
25 298800ca Stefan Hajnoczi
{
26 298800ca Stefan Hajnoczi
    GenericCB *gencb = opaque;
27 298800ca Stefan Hajnoczi
    BlockDriverCompletionFunc *cb = gencb->cb;
28 298800ca Stefan Hajnoczi
    void *user_opaque = gencb->opaque;
29 298800ca Stefan Hajnoczi
30 298800ca Stefan Hajnoczi
    qemu_free(gencb);
31 298800ca Stefan Hajnoczi
    cb(user_opaque, ret);
32 298800ca Stefan Hajnoczi
}