~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to include/rdma/rdma_netlink.h

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef _RDMA_NETLINK_H
 
2
#define _RDMA_NETLINK_H
 
3
 
 
4
#include <linux/types.h>
 
5
 
 
6
enum {
 
7
        RDMA_NL_RDMA_CM = 1
 
8
};
 
9
 
 
10
#define RDMA_NL_GET_CLIENT(type) ((type & (((1 << 6) - 1) << 10)) >> 10)
 
11
#define RDMA_NL_GET_OP(type) (type & ((1 << 10) - 1))
 
12
#define RDMA_NL_GET_TYPE(client, op) ((client << 10) + op)
 
13
 
 
14
enum {
 
15
        RDMA_NL_RDMA_CM_ID_STATS = 0,
 
16
        RDMA_NL_RDMA_CM_NUM_OPS
 
17
};
 
18
 
 
19
enum {
 
20
        RDMA_NL_RDMA_CM_ATTR_SRC_ADDR = 1,
 
21
        RDMA_NL_RDMA_CM_ATTR_DST_ADDR,
 
22
        RDMA_NL_RDMA_CM_NUM_ATTR,
 
23
};
 
24
 
 
25
struct rdma_cm_id_stats {
 
26
        __u32   qp_num;
 
27
        __u32   bound_dev_if;
 
28
        __u32   port_space;
 
29
        __s32   pid;
 
30
        __u8    cm_state;
 
31
        __u8    node_type;
 
32
        __u8    port_num;
 
33
        __u8    qp_type;
 
34
};
 
35
 
 
36
#ifdef __KERNEL__
 
37
 
 
38
#include <linux/netlink.h>
 
39
 
 
40
struct ibnl_client_cbs {
 
41
        int (*dump)(struct sk_buff *skb, struct netlink_callback *nlcb);
 
42
};
 
43
 
 
44
int ibnl_init(void);
 
45
void ibnl_cleanup(void);
 
46
 
 
47
/**
 
48
 * Add a a client to the list of IB netlink exporters.
 
49
 * @index: Index of the added client
 
50
 * @nops: Number of supported ops by the added client.
 
51
 * @cb_table: A table for op->callback
 
52
 *
 
53
 * Returns 0 on success or a negative error code.
 
54
 */
 
55
int ibnl_add_client(int index, int nops,
 
56
                    const struct ibnl_client_cbs cb_table[]);
 
57
 
 
58
/**
 
59
 * Remove a client from IB netlink.
 
60
 * @index: Index of the removed IB client.
 
61
 *
 
62
 * Returns 0 on success or a negative error code.
 
63
 */
 
64
int ibnl_remove_client(int index);
 
65
 
 
66
/**
 
67
 * Put a new message in a supplied skb.
 
68
 * @skb: The netlink skb.
 
69
 * @nlh: Pointer to put the header of the new netlink message.
 
70
 * @seq: The message sequence number.
 
71
 * @len: The requested message length to allocate.
 
72
 * @client: Calling IB netlink client.
 
73
 * @op: message content op.
 
74
 * Returns the allocated buffer on success and NULL on failure.
 
75
 */
 
76
void *ibnl_put_msg(struct sk_buff *skb, struct nlmsghdr **nlh, int seq,
 
77
                   int len, int client, int op);
 
78
/**
 
79
 * Put a new attribute in a supplied skb.
 
80
 * @skb: The netlink skb.
 
81
 * @nlh: Header of the netlink message to append the attribute to.
 
82
 * @len: The length of the attribute data.
 
83
 * @data: The attribute data to put.
 
84
 * @type: The attribute type.
 
85
 * Returns the 0 and a negative error code on failure.
 
86
 */
 
87
int ibnl_put_attr(struct sk_buff *skb, struct nlmsghdr *nlh,
 
88
                  int len, void *data, int type);
 
89
 
 
90
#endif /* __KERNEL__ */
 
91
 
 
92
#endif /* _RDMA_NETLINK_H */