1 /* AFS asynchronous operation daemon
3 * Copyright (C) 2002 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
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.
12 #ifndef AFS_KAFSASYNCD_H
13 #define AFS_KAFSASYNCD_H
19 struct afs_async_op_ops {
20 void (*attend)(struct afs_async_op *);
21 void (*discard)(struct afs_async_op *);
25 * asynchronous operation record
28 struct list_head link;
29 struct afs_server *server; /* server being contacted */
30 struct rxrpc_call *call; /* RxRPC call performing op */
31 wait_queue_t waiter; /* wait queue for kafsasyncd */
32 const struct afs_async_op_ops *ops; /* operations */
35 static inline void afs_async_op_init(struct afs_async_op *op,
36 const struct afs_async_op_ops *ops)
38 INIT_LIST_HEAD(&op->link);
43 extern int afs_kafsasyncd_start(void);
44 extern void afs_kafsasyncd_stop(void);
46 extern void afs_kafsasyncd_begin_op(struct afs_async_op *);
47 extern void afs_kafsasyncd_attend_op(struct afs_async_op *);
48 extern void afs_kafsasyncd_terminate_op(struct afs_async_op *);
50 #endif /* AFS_KAFSASYNCD_H */