]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* kafsasyncd.h: AFS asynchronous operation daemon |
2 | * | |
3 | * Copyright (C) 2002 Red Hat, Inc. All Rights Reserved. | |
4 | * Written by David Howells (dhowells@redhat.com) | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or | |
7 | * modify it under the terms of the GNU General Public License | |
8 | * as published by the Free Software Foundation; either version | |
9 | * 2 of the License, or (at your option) any later version. | |
10 | */ | |
11 | ||
12 | #ifndef _LINUX_AFS_KAFSASYNCD_H | |
13 | #define _LINUX_AFS_KAFSASYNCD_H | |
14 | ||
15 | #include "types.h" | |
16 | ||
17 | struct afs_async_op; | |
18 | ||
19 | struct afs_async_op_ops { | |
20 | void (*attend)(struct afs_async_op *op); | |
21 | void (*discard)(struct afs_async_op *op); | |
22 | }; | |
23 | ||
24 | /*****************************************************************************/ | |
25 | /* | |
26 | * asynchronous operation record | |
27 | */ | |
28 | struct afs_async_op | |
29 | { | |
30 | struct list_head link; | |
31 | struct afs_server *server; /* server being contacted */ | |
32 | struct rxrpc_call *call; /* RxRPC call performing op */ | |
33 | wait_queue_t waiter; /* wait queue for kafsasyncd */ | |
34 | const struct afs_async_op_ops *ops; /* operations */ | |
35 | }; | |
36 | ||
37 | static inline void afs_async_op_init(struct afs_async_op *op, | |
38 | const struct afs_async_op_ops *ops) | |
39 | { | |
40 | INIT_LIST_HEAD(&op->link); | |
41 | op->call = NULL; | |
42 | op->ops = ops; | |
43 | } | |
44 | ||
45 | extern int afs_kafsasyncd_start(void); | |
46 | extern void afs_kafsasyncd_stop(void); | |
47 | ||
48 | extern void afs_kafsasyncd_begin_op(struct afs_async_op *op); | |
49 | extern void afs_kafsasyncd_attend_op(struct afs_async_op *op); | |
50 | extern void afs_kafsasyncd_terminate_op(struct afs_async_op *op); | |
51 | ||
52 | #endif /* _LINUX_AFS_KAFSASYNCD_H */ |