From 64b00c3a1a87739621f58c777fc3cc54fb15a0af Mon Sep 17 00:00:00 2001 From: Simon Wilkinson Date: Sun, 20 Nov 2011 16:31:28 +0000 Subject: [PATCH] rx: Hide the rx_packet.h Hide the rx_packet.h, and hence the rx_packet structure from application view. rx_packet.h is currently still installed, and is included directly by RX security classes, to reduce the per-packet overhead there. Change-Id: I269ccf4405a8f83cab4b0392b830bc1f36471c29 Reviewed-on: http://gerrit.openafs.org/6182 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- src/ptserver/ptserver.c | 1 + src/rx/DARWIN/rx_knet.c | 1 + src/rx/rx.c | 1 + src/rx/rx.h | 32 ++++++++++++++++++++++++++++++-- src/rx/rx_globals.c | 3 +++ src/rx/rx_kcommon.c | 1 + src/rx/rx_lwp.c | 11 ++++++++++- src/rx/rx_packet.h | 21 +-------------------- src/rx/rx_pthread.c | 3 +++ src/rx/rx_rdwr.c | 1 + src/rx/rx_user.c | 2 ++ src/rx/rx_xmit_nt.c | 2 +- src/rx/test/rxperf.c | 1 + src/rxkad/bg-fcrypt.c | 1 + src/rxkad/crypt_conn.c | 1 + src/rxkad/rxkad_client.c | 1 + src/rxkad/rxkad_common.c | 1 + src/rxkad/rxkad_server.c | 1 + 18 files changed, 61 insertions(+), 24 deletions(-) diff --git a/src/ptserver/ptserver.c b/src/ptserver/ptserver.c index 0b473afcf..89bfa9d82 100644 --- a/src/ptserver/ptserver.c +++ b/src/ptserver/ptserver.c @@ -494,6 +494,7 @@ main(int argc, char **argv) afs_com_err(whoami, code, "Ubik init failed"); PT_EXIT(2); } + #if defined(SUPERGROUPS) pt_hook_write(); #endif diff --git a/src/rx/DARWIN/rx_knet.c b/src/rx/DARWIN/rx_knet.c index 70233c8f0..09c1784ee 100644 --- a/src/rx/DARWIN/rx_knet.c +++ b/src/rx/DARWIN/rx_knet.c @@ -12,6 +12,7 @@ #include "rx/rx_kcommon.h" +#include "rx/rx_packet.h" #include "rx/rx_atomic.h" #include "rx/rx_stats.h" diff --git a/src/rx/rx.c b/src/rx/rx.c index 241ec72bf..1594a11af 100644 --- a/src/rx/rx.c +++ b/src/rx/rx.c @@ -82,6 +82,7 @@ extern afs_int32 afs_termState; #include "rx_conn.h" #include "rx_call.h" +#include "rx_packet.h" #include diff --git a/src/rx/rx.h b/src/rx/rx.h index 5668ebad9..8572834d3 100644 --- a/src/rx/rx.h +++ b/src/rx/rx.h @@ -52,9 +52,9 @@ #endif #endif /* KERNEL */ +#include "rx_queue.h" #include "rx_clock.h" #include "rx_event.h" -#include "rx_packet.h" #include "rx_misc.h" #include "rx_null.h" #include "rx_multi.h" @@ -62,8 +62,11 @@ /* These items are part of the new RX API. They're living in this section * for now, to keep them separate from everything else... */ -/* Connection management */ struct rx_connection; +struct rx_call; +struct rx_packet; + +/* Connection management */ extern void rx_SetConnectionEpoch(struct rx_connection *conn, int epoch); extern int rx_GetConnectionEpoch(struct rx_connection *conn); @@ -102,6 +105,29 @@ extern void rx_RecordCallStatistics(struct rx_call *call, int isServer); +/* Packets */ + +/* Packet classes, for rx_AllocPacket and rx_packetQuota */ +#define RX_PACKET_CLASS_RECEIVE 0 +#define RX_PACKET_CLASS_SEND 1 +#define RX_PACKET_CLASS_SPECIAL 2 +#define RX_PACKET_CLASS_RECV_CBUF 3 +#define RX_PACKET_CLASS_SEND_CBUF 4 + +#define RX_N_PACKET_CLASSES 5 /* Must agree with above list */ + +#define RX_PACKET_TYPES {"data", "ack", "busy", "abort", "ackall", "challenge", "response", "debug", "params", "unused", "unused", "unused", "version"} +#define RX_N_PACKET_TYPES 13 /* Must agree with above list; + * counts 0 + * WARNING: if this number ever + * grows past 13, rxdebug packets + * will need to be modified */ + + +/* For most Unixes, maximum elements in an iovec is 16 */ +#define RX_MAXIOVECS 16 /* limit for ReadvProc/WritevProc */ +#define RX_MAXWVECS (RX_MAXIOVECS-1) /* need one iovec for packet header */ + /* Debugging */ /* Call flags, states and modes are exposed by the debug interface */ @@ -144,6 +170,7 @@ extern void rx_RecordCallStatistics(struct rx_call *call, #endif + /* Configurable parameters */ #define RX_IDLE_DEAD_TIME 60 /* default idle dead time */ #define RX_MAX_SERVICES 20 /* Maximum number of services that may be installed */ @@ -654,6 +681,7 @@ struct rx_securityClass { #define RXS_SetConfiguration(obj, conn, type, value, currentValue) RXS_OP(obj, SetConfiguration,(obj,conn,type,value,currentValue)) + /* Structure for keeping rx statistics. Note that this structure is returned * by rxdebug, so, for compatibility reasons, new fields should be appended (or * spares used), the rxdebug protocol checked, if necessary, and the PrintStats diff --git a/src/rx/rx_globals.c b/src/rx/rx_globals.c index cfaaa0419..baecede1e 100644 --- a/src/rx/rx_globals.c +++ b/src/rx/rx_globals.c @@ -41,6 +41,9 @@ # include #endif /* KERNEL */ +#include "rx.h" +#include "rx_clock.h" +#include "rx_packet.h" #include "rx_globals.h" void rx_SetMaxReceiveWindow(int packets) diff --git a/src/rx/rx_kcommon.c b/src/rx/rx_kcommon.c index 64d95e940..8a5072987 100644 --- a/src/rx/rx_kcommon.c +++ b/src/rx/rx_kcommon.c @@ -16,6 +16,7 @@ #include "rx/rx_kcommon.h" +#include "rx_packet.h" #include "rx_atomic.h" #include "rx_stats.h" diff --git a/src/rx/rx_lwp.c b/src/rx/rx_lwp.c index aa1c5bbc3..4d775bc1a 100644 --- a/src/rx/rx_lwp.c +++ b/src/rx/rx_lwp.c @@ -33,6 +33,9 @@ #include "rx_atomic.h" #include "rx_globals.h" #include "rx_stats.h" +#ifdef AFS_NT40_ENV +#include "rx_xmit_nt.h" +#endif #define MAXTHREADNAMELENGTH 64 @@ -461,7 +464,13 @@ rxi_Sendmsg(osi_socket socket, struct msghdr *msg_p, int flags) #endif return -1; } - while ((err = select(socket + 1, 0, sfds, 0, 0)) != 1) { + while ((err = select( +#ifdef AFS_NT40_ENV + 0, +#else + socket + 1, +#endif + 0, sfds, 0, 0)) != 1) { if (err >= 0 || errno != EINTR) osi_Panic("rxi_sendmsg: select error %d.%d", err, errno); FD_ZERO(sfds); diff --git a/src/rx/rx_packet.h b/src/rx/rx_packet.h index 9b11d88db..0fbec34cf 100644 --- a/src/rx/rx_packet.h +++ b/src/rx/rx_packet.h @@ -130,23 +130,6 @@ #define RX_PACKET_TYPE_PARAMS 9 /* exchange size params (showUmine) */ #define RX_PACKET_TYPE_VERSION 13 /* get AFS version */ - -#define RX_PACKET_TYPES {"data", "ack", "busy", "abort", "ackall", "challenge", "response", "debug", "params", "unused", "unused", "unused", "version"} -#define RX_N_PACKET_TYPES 13 /* Must agree with above list; - * counts 0 - * WARNING: if this number ever - * grows past 13, rxdebug packets - * will need to be modified */ - -/* Packet classes, for rx_AllocPacket and rx_packetQuota */ -#define RX_PACKET_CLASS_RECEIVE 0 -#define RX_PACKET_CLASS_SEND 1 -#define RX_PACKET_CLASS_SPECIAL 2 -#define RX_PACKET_CLASS_RECV_CBUF 3 -#define RX_PACKET_CLASS_SEND_CBUF 4 - -#define RX_N_PACKET_CLASSES 5 /* Must agree with above list */ - /* Flags for rx_header flags field */ #define RX_CLIENT_INITIATED 1 /* Packet is sent/received from client side of call */ #define RX_REQUEST_ACK 2 /* Peer requests acknowledgement */ @@ -212,9 +195,7 @@ struct rx_jumboHeader { u_short cksum; /* packet header checksum */ }; -/* For most Unixes, maximum elements in an iovec is 16 */ -#define RX_MAXIOVECS 16 /* limit for ReadvProc/WritevProc */ -#define RX_MAXWVECS (RX_MAXIOVECS-1) /* need one iovec for packet header */ + /* * The values for the RX buffer sizes are calculated to ensure efficient diff --git a/src/rx/rx_pthread.c b/src/rx/rx_pthread.c index 8bf91e4ba..97f058c8b 100644 --- a/src/rx/rx_pthread.c +++ b/src/rx/rx_pthread.c @@ -28,6 +28,9 @@ #include "rx_pthread.h" #include "rx_clock.h" #include "rx_atomic.h" +#ifdef AFS_NT40_ENV +#include "rx_xmit_nt.h" +#endif static void rxi_SetThreadNum(int threadID); diff --git a/src/rx/rx_rdwr.c b/src/rx/rx_rdwr.c index d470f74b0..28c3ee0dc 100644 --- a/src/rx/rx_rdwr.c +++ b/src/rx/rx_rdwr.c @@ -62,6 +62,7 @@ #include "rx_conn.h" #include "rx_call.h" +#include "rx_packet.h" #ifdef RX_LOCKS_DB /* rxdb_fileID is used to identify the lock location, along with line#. */ diff --git a/src/rx/rx_user.c b/src/rx/rx_user.c index d259560f0..e54e15d73 100644 --- a/src/rx/rx_user.c +++ b/src/rx/rx_user.c @@ -48,6 +48,8 @@ #include "rx_atomic.h" #include "rx_globals.h" #include "rx_stats.h" +#include "rx_packet.h" + #ifdef AFS_PTHREAD_ENV /* diff --git a/src/rx/rx_xmit_nt.c b/src/rx/rx_xmit_nt.c index 8e529574c..a9842ad61 100644 --- a/src/rx/rx_xmit_nt.c +++ b/src/rx/rx_xmit_nt.c @@ -55,8 +55,8 @@ INT #endif /* AFS_NT40_ENV */ #include "rx.h" -#include "rx_packet.h" #include "rx_globals.h" +#include "rx_packet.h" #include "rx_xmit_nt.h" #include #include diff --git a/src/rx/test/rxperf.c b/src/rx/test/rxperf.c index 7f0b8d931..3a71ca129 100644 --- a/src/rx/test/rxperf.c +++ b/src/rx/test/rxperf.c @@ -82,6 +82,7 @@ nn * We are using getopt since we want it to be possible to link to #include #include #include +#include #ifdef AFS_PTHREAD_ENV #include diff --git a/src/rxkad/bg-fcrypt.c b/src/rxkad/bg-fcrypt.c index 24a81ae97..eaf0d047d 100644 --- a/src/rxkad/bg-fcrypt.c +++ b/src/rxkad/bg-fcrypt.c @@ -51,6 +51,7 @@ #else /* KERNEL */ #include #include +#include #endif /* KERNEL */ #include "fcrypt.h" diff --git a/src/rxkad/crypt_conn.c b/src/rxkad/crypt_conn.c index 20b91bfd8..99f29bf68 100644 --- a/src/rxkad/crypt_conn.c +++ b/src/rxkad/crypt_conn.c @@ -30,6 +30,7 @@ #endif /* KERNEL */ #include +#include #include #include "private_data.h" #define XPRT_RXKAD_CRYPT diff --git a/src/rxkad/rxkad_client.c b/src/rxkad/rxkad_client.c index 2657f7018..a8713495f 100644 --- a/src/rxkad/rxkad_client.c +++ b/src/rxkad/rxkad_client.c @@ -38,6 +38,7 @@ #include #include +#include #include "rxkad.h" #include "stats.h" diff --git a/src/rxkad/rxkad_common.c b/src/rxkad/rxkad_common.c index 83e6d1ec9..f9a80a64c 100644 --- a/src/rxkad/rxkad_common.c +++ b/src/rxkad/rxkad_common.c @@ -43,6 +43,7 @@ #endif /* KERNEL */ #include +#include #include #include "stats.h" diff --git a/src/rxkad/rxkad_server.c b/src/rxkad/rxkad_server.c index 5c7a0ef72..125ab84de 100644 --- a/src/rxkad/rxkad_server.c +++ b/src/rxkad/rxkad_server.c @@ -23,6 +23,7 @@ #include #include +#include #include #include "stats.h" -- 2.39.5