2005-04-16 16:20:36 -06:00
|
|
|
/* internal.h: internal Rx RPC stuff
|
|
|
|
*
|
|
|
|
* Copyright (c) 2002 David Howells (dhowells@redhat.com).
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef RXRPC_INTERNAL_H
|
|
|
|
#define RXRPC_INTERNAL_H
|
|
|
|
|
|
|
|
#include <linux/compiler.h>
|
|
|
|
#include <linux/kernel.h>
|
|
|
|
|
|
|
|
/*
|
|
|
|
* debug accounting
|
|
|
|
*/
|
|
|
|
#if 1
|
|
|
|
#define __RXACCT_DECL(X) X
|
2007-02-09 07:25:14 -07:00
|
|
|
#define __RXACCT(X) do { X; } while(0)
|
2005-04-16 16:20:36 -06:00
|
|
|
#else
|
|
|
|
#define __RXACCT_DECL(X)
|
|
|
|
#define __RXACCT(X) do { } while(0)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
__RXACCT_DECL(extern atomic_t rxrpc_transport_count);
|
|
|
|
__RXACCT_DECL(extern atomic_t rxrpc_peer_count);
|
|
|
|
__RXACCT_DECL(extern atomic_t rxrpc_connection_count);
|
|
|
|
__RXACCT_DECL(extern atomic_t rxrpc_call_count);
|
|
|
|
__RXACCT_DECL(extern atomic_t rxrpc_message_count);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* debug tracing
|
|
|
|
*/
|
|
|
|
#define kenter(FMT, a...) printk("==> %s("FMT")\n",__FUNCTION__ , ##a)
|
|
|
|
#define kleave(FMT, a...) printk("<== %s()"FMT"\n",__FUNCTION__ , ##a)
|
|
|
|
#define kdebug(FMT, a...) printk(" "FMT"\n" , ##a)
|
|
|
|
#define kproto(FMT, a...) printk("### "FMT"\n" , ##a)
|
|
|
|
#define knet(FMT, a...) printk(" "FMT"\n" , ##a)
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
#define _enter(FMT, a...) kenter(FMT , ##a)
|
|
|
|
#define _leave(FMT, a...) kleave(FMT , ##a)
|
|
|
|
#define _debug(FMT, a...) kdebug(FMT , ##a)
|
|
|
|
#define _proto(FMT, a...) kproto(FMT , ##a)
|
|
|
|
#define _net(FMT, a...) knet(FMT , ##a)
|
|
|
|
#else
|
|
|
|
#define _enter(FMT, a...) do { if (rxrpc_ktrace) kenter(FMT , ##a); } while(0)
|
|
|
|
#define _leave(FMT, a...) do { if (rxrpc_ktrace) kleave(FMT , ##a); } while(0)
|
|
|
|
#define _debug(FMT, a...) do { if (rxrpc_kdebug) kdebug(FMT , ##a); } while(0)
|
|
|
|
#define _proto(FMT, a...) do { if (rxrpc_kproto) kproto(FMT , ##a); } while(0)
|
|
|
|
#define _net(FMT, a...) do { if (rxrpc_knet) knet (FMT , ##a); } while(0)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
static inline void rxrpc_discard_my_signals(void)
|
|
|
|
{
|
|
|
|
while (signal_pending(current)) {
|
|
|
|
siginfo_t sinfo;
|
|
|
|
|
|
|
|
spin_lock_irq(¤t->sighand->siglock);
|
|
|
|
dequeue_signal(current, ¤t->blocked, &sinfo);
|
|
|
|
spin_unlock_irq(¤t->sighand->siglock);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* call.c
|
|
|
|
*/
|
|
|
|
extern struct list_head rxrpc_calls;
|
|
|
|
extern struct rw_semaphore rxrpc_calls_sem;
|
|
|
|
|
|
|
|
/*
|
|
|
|
* connection.c
|
|
|
|
*/
|
|
|
|
extern struct list_head rxrpc_conns;
|
|
|
|
extern struct rw_semaphore rxrpc_conns_sem;
|
|
|
|
extern unsigned long rxrpc_conn_timeout;
|
|
|
|
|
|
|
|
extern void rxrpc_conn_clearall(struct rxrpc_peer *peer);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* peer.c
|
|
|
|
*/
|
|
|
|
extern struct list_head rxrpc_peers;
|
|
|
|
extern struct rw_semaphore rxrpc_peers_sem;
|
|
|
|
extern unsigned long rxrpc_peer_timeout;
|
|
|
|
|
|
|
|
extern void rxrpc_peer_calculate_rtt(struct rxrpc_peer *peer,
|
|
|
|
struct rxrpc_message *msg,
|
|
|
|
struct rxrpc_message *resp);
|
|
|
|
|
|
|
|
extern void rxrpc_peer_clearall(struct rxrpc_transport *trans);
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
* proc.c
|
|
|
|
*/
|
|
|
|
#ifdef CONFIG_PROC_FS
|
|
|
|
extern int rxrpc_proc_init(void);
|
|
|
|
extern void rxrpc_proc_cleanup(void);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/*
|
|
|
|
* transport.c
|
|
|
|
*/
|
|
|
|
extern struct list_head rxrpc_proc_transports;
|
|
|
|
extern struct rw_semaphore rxrpc_proc_transports_sem;
|
|
|
|
|
|
|
|
#endif /* RXRPC_INTERNAL_H */
|