]>
git.proxmox.com Git - ceph.git/blob - ceph/src/spdk/dpdk/lib/librte_vhost/fd_man.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2010-2014 Intel Corporation
13 typedef void (*fd_cb
)(int fd
, void *dat
, int *remove
);
16 int fd
; /* -1 indicates this entry is empty */
17 fd_cb rcb
; /* callback when this fd is readable. */
18 fd_cb wcb
; /* callback when this fd is writeable.*/
19 void *dat
; /* fd context */
20 int busy
; /* whether this entry is being used in cb. */
24 struct pollfd rwfds
[MAX_FDS
];
25 struct fdentry fd
[MAX_FDS
];
26 pthread_mutex_t fd_mutex
;
27 int num
; /* current fd number of this fdset */
41 void fdset_init(struct fdset
*pfdset
);
43 int fdset_add(struct fdset
*pfdset
, int fd
,
44 fd_cb rcb
, fd_cb wcb
, void *dat
);
46 void *fdset_del(struct fdset
*pfdset
, int fd
);
47 int fdset_try_del(struct fdset
*pfdset
, int fd
);
49 void *fdset_event_dispatch(void *arg
);
51 int fdset_pipe_init(struct fdset
*fdset
);
53 void fdset_pipe_uninit(struct fdset
*fdset
);
55 void fdset_pipe_notify(struct fdset
*fdset
);