X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=inline;f=lib%2Fnetlink-socket.h;h=f2a5d3fa82051ae835e77381e8e2f216248381c4;hb=40f280c781639c24176e054abc20bb7270da9e7a;hp=ff2485837f6046da56be75fbdf5330c47105aac2;hpb=50802adb0e00bbf381c31b9e32a7a6a3e920e7ac;p=openvswitch diff --git a/lib/netlink-socket.h b/lib/netlink-socket.h index ff248583..f2a5d3fa 100644 --- a/lib/netlink-socket.h +++ b/lib/netlink-socket.h @@ -35,6 +35,7 @@ #include #include #include +#include "list.h" struct ofpbuf; struct nl_sock; @@ -59,9 +60,23 @@ int nl_sock_transact(struct nl_sock *, const struct ofpbuf *request, int nl_sock_drain(struct nl_sock *); void nl_sock_wait(const struct nl_sock *, short int events); +int nl_sock_fd(const struct nl_sock *); uint32_t nl_sock_pid(const struct nl_sock *); +/* Batching transactions. */ +struct nl_transaction { + /* Filled in by client. */ + struct ofpbuf *request; /* Request to send. */ + + /* Filled in by nl_sock_transact_batch(). */ + struct ofpbuf *reply; /* Reply (NULL if reply was an error code). */ + int error; /* Positive errno value, 0 if no error. */ +}; + +void nl_sock_transact_multiple(struct nl_sock *, + struct nl_transaction **, size_t n); + /* Table dumping. */ struct nl_dump { struct nl_sock *sock; /* Socket being dumped. */