X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fnetlink-socket.h;h=7e01acbfa19c97fc39845ff0e7ca2a2287733d10;hb=97d6520bea3b779d1acee7b1b2fd8ed60269078f;hp=6ed488050e9d0f10c40909769cb73806a7df0af0;hpb=6b7c12fdc1d3a08a934b29109fa6ffac6b45ebe0;p=openvswitch diff --git a/lib/netlink-socket.h b/lib/netlink-socket.h index 6ed48805..7e01acbf 100644 --- a/lib/netlink-socket.h +++ b/lib/netlink-socket.h @@ -35,7 +35,7 @@ #include #include #include -#include +#include "list.h" struct ofpbuf; struct nl_sock; @@ -46,14 +46,13 @@ struct nl_sock; /* Netlink sockets. */ int nl_sock_create(int protocol, struct nl_sock **); +int nl_sock_clone(const struct nl_sock *, struct nl_sock **); void nl_sock_destroy(struct nl_sock *); int nl_sock_join_mcgroup(struct nl_sock *, unsigned int multicast_group); int nl_sock_leave_mcgroup(struct nl_sock *, unsigned int multicast_group); int nl_sock_send(struct nl_sock *, const struct ofpbuf *, bool wait); -int nl_sock_sendv(struct nl_sock *sock, const struct iovec iov[], size_t n_iov, - bool wait); int nl_sock_recv(struct nl_sock *, struct ofpbuf **, bool wait); int nl_sock_transact(struct nl_sock *, const struct ofpbuf *request, struct ofpbuf **reply); @@ -61,6 +60,22 @@ 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); +short int nl_sock_woke(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 { @@ -77,5 +92,8 @@ int nl_dump_done(struct nl_dump *); /* Miscellaneous */ int nl_lookup_genl_family(const char *name, int *number); +int nl_lookup_genl_mcgroup(const char *family_name, const char *group_name, + unsigned int *multicast_group, + unsigned int fallback); #endif /* netlink-socket.h */