360 void rdsv3_sock_init_data(struct rsock *sk);
361 void rdsv3_sock_exit_data(struct rsock *sk);
362 void rdsv3_destroy_task_workqueue(rdsv3_workqueue_struct_t *wq);
363 rdsv3_workqueue_struct_t *rdsv3_create_task_workqueue(char *name);
364 int rdsv3_conn_constructor(void *buf, void *arg, int kmflags);
365 void rdsv3_conn_destructor(void *buf, void *arg);
366 int rdsv3_conn_compare(const void *conn1, const void *conn2);
367 void rdsv3_loop_init();
368 int rdsv3_mr_compare(const void *mr1, const void *mr2);
369 int rdsv3_put_cmsg(struct nmsghdr *msg, int level, int type, size_t size,
370 void *payload);
371 int rdsv3_verify_bind_address(ipaddr_t addr);
372 uint16_t rdsv3_ip_fast_csum(void *buffer, size_t length);
373 uint_t rdsv3_ib_dma_map_sg(struct ib_device *dev, struct rdsv3_scatterlist
374 *scat, uint_t num);
375 void rdsv3_ib_dma_unmap_sg(ib_device_t *dev, struct rdsv3_scatterlist *scat,
376 uint_t num);
377 static inline void
378 rdsv3_sk_sock_hold(struct rsock *sk)
379 {
380 atomic_add_32(&sk->sk_refcount, 1);
381 }
382 static inline void
383 rdsv3_sk_sock_put(struct rsock *sk)
384 {
385 if (atomic_dec_and_test(&sk->sk_refcount))
386 rdsv3_sock_exit_data(sk);
387 }
388 static inline int
389 rdsv3_sk_sock_flag(struct rsock *sk, uint_t flag)
390 {
391 return (test_bit(flag, &sk->sk_flag));
392 }
393 static inline void
394 rdsv3_sk_sock_orphan(struct rsock *sk)
395 {
396 set_bit(SOCK_DEAD, &sk->sk_flag);
397 }
398
399 #define rdsv3_sndtimeo(a, b) b ? 0 : 3600 /* check this value on linux */
400 #define rdsv3_rcvtimeo(a, b) b ? 0 : 3600 /* check this value on linux */
|
360 void rdsv3_sock_init_data(struct rsock *sk);
361 void rdsv3_sock_exit_data(struct rsock *sk);
362 void rdsv3_destroy_task_workqueue(rdsv3_workqueue_struct_t *wq);
363 rdsv3_workqueue_struct_t *rdsv3_create_task_workqueue(char *name);
364 int rdsv3_conn_constructor(void *buf, void *arg, int kmflags);
365 void rdsv3_conn_destructor(void *buf, void *arg);
366 int rdsv3_conn_compare(const void *conn1, const void *conn2);
367 void rdsv3_loop_init();
368 int rdsv3_mr_compare(const void *mr1, const void *mr2);
369 int rdsv3_put_cmsg(struct nmsghdr *msg, int level, int type, size_t size,
370 void *payload);
371 int rdsv3_verify_bind_address(ipaddr_t addr);
372 uint16_t rdsv3_ip_fast_csum(void *buffer, size_t length);
373 uint_t rdsv3_ib_dma_map_sg(struct ib_device *dev, struct rdsv3_scatterlist
374 *scat, uint_t num);
375 void rdsv3_ib_dma_unmap_sg(ib_device_t *dev, struct rdsv3_scatterlist *scat,
376 uint_t num);
377 static inline void
378 rdsv3_sk_sock_hold(struct rsock *sk)
379 {
380 atomic_inc_32(&sk->sk_refcount);
381 }
382 static inline void
383 rdsv3_sk_sock_put(struct rsock *sk)
384 {
385 if (atomic_dec_and_test(&sk->sk_refcount))
386 rdsv3_sock_exit_data(sk);
387 }
388 static inline int
389 rdsv3_sk_sock_flag(struct rsock *sk, uint_t flag)
390 {
391 return (test_bit(flag, &sk->sk_flag));
392 }
393 static inline void
394 rdsv3_sk_sock_orphan(struct rsock *sk)
395 {
396 set_bit(SOCK_DEAD, &sk->sk_flag);
397 }
398
399 #define rdsv3_sndtimeo(a, b) b ? 0 : 3600 /* check this value on linux */
400 #define rdsv3_rcvtimeo(a, b) b ? 0 : 3600 /* check this value on linux */
|