mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-28 21:03:54 -06:00
net/net: Add SocketReadState for reuse codes
This function is from net/socket.c, move it to net.c and net.h. Add SocketReadState to make others reuse net_fill_rstate(). suggestion from jason. v4: - move 'rs->finalize = finalize' to rs_init() v3: - remove SocketReadState init callback - put finalize callback to net_fill_rstate() v2: - rename ReadState to SocketReadState - add SocketReadState init and finalize callback v1: - init patch Signed-off-by: Zhang Chen <zhangchen.fnst@cn.fujitsu.com> Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com> Signed-off-by: Wen Congyang <wency@cn.fujitsu.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
parent
d30300f771
commit
16a3df403b
4 changed files with 119 additions and 103 deletions
|
@ -57,6 +57,8 @@ typedef void (SetOffload)(NetClientState *, int, int, int, int, int);
|
|||
typedef void (SetVnetHdrLen)(NetClientState *, int);
|
||||
typedef int (SetVnetLE)(NetClientState *, bool);
|
||||
typedef int (SetVnetBE)(NetClientState *, bool);
|
||||
typedef struct SocketReadState SocketReadState;
|
||||
typedef void (SocketReadStateFinalize)(SocketReadState *rs);
|
||||
|
||||
typedef struct NetClientInfo {
|
||||
NetClientOptionsKind type;
|
||||
|
@ -102,6 +104,15 @@ typedef struct NICState {
|
|||
bool peer_deleted;
|
||||
} NICState;
|
||||
|
||||
struct SocketReadState {
|
||||
int state; /* 0 = getting length, 1 = getting data */
|
||||
uint32_t index;
|
||||
uint32_t packet_len;
|
||||
uint8_t buf[NET_BUFSIZE];
|
||||
SocketReadStateFinalize *finalize;
|
||||
};
|
||||
|
||||
int net_fill_rstate(SocketReadState *rs, const uint8_t *buf, int size);
|
||||
char *qemu_mac_strdup_printf(const uint8_t *macaddr);
|
||||
NetClientState *qemu_find_netdev(const char *id);
|
||||
int qemu_find_net_clients_except(const char *id, NetClientState **ncs,
|
||||
|
@ -160,6 +171,8 @@ ssize_t qemu_deliver_packet_iov(NetClientState *sender,
|
|||
|
||||
void print_net_client(Monitor *mon, NetClientState *nc);
|
||||
void hmp_info_network(Monitor *mon, const QDict *qdict);
|
||||
void net_socket_rs_init(SocketReadState *rs,
|
||||
SocketReadStateFinalize *finalize);
|
||||
|
||||
/* NIC info */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue