diff options
Diffstat (limited to 'storage/ndb/src/common/transporter/OSE_Signals.hpp')
-rw-r--r-- | storage/ndb/src/common/transporter/OSE_Signals.hpp | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/storage/ndb/src/common/transporter/OSE_Signals.hpp b/storage/ndb/src/common/transporter/OSE_Signals.hpp new file mode 100644 index 00000000000..3f6cc07b473 --- /dev/null +++ b/storage/ndb/src/common/transporter/OSE_Signals.hpp @@ -0,0 +1,144 @@ +/* Copyright (C) 2003 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#ifndef OSE_SIGNALS_HPP +#define OSE_SIGNALS_HPP + +#include <ose.h> +#include <kernel_types.h> + +#define NDB_TRANSPORTER_SIGBASE 3000 + +#define NDB_TRANSPORTER_DATA (NDB_TRANSPORTER_SIGBASE + 1) /* !-SIGNO(struct NdbTransporterData)-! */ +#define NDB_TRANSPORTER_HUNT (NDB_TRANSPORTER_SIGBASE + 2) /* !-SIGNO(struct NdbTransporterHunt)-! */ +#define NDB_TRANSPORTER_CONNECT_REQ (NDB_TRANSPORTER_SIGBASE + 3) /* !-SIGNO(struct NdbTransporterConnectReq)-! */ +#define NDB_TRANSPORTER_CONNECT_REF (NDB_TRANSPORTER_SIGBASE + 4) /* !-SIGNO(struct NdbTransporterConnectRef)-! */ +#define NDB_TRANSPORTER_CONNECT_CONF (NDB_TRANSPORTER_SIGBASE + 5) /* !-SIGNO(struct NdbTransporterConnectConf)-! */ +#define NDB_TRANSPORTER_DISCONNECT_ORD (NDB_TRANSPORTER_SIGBASE + 6) /* !-SIGNO(struct NdbTransporterDisconnectOrd)-! */ +#define NDB_TRANSPORTER_PRIO_A (NDB_TRANSPORTER_SIGBASE + 7) + +inline +const char * +sigNo2String(SIGSELECT sigNo){ + switch(sigNo){ + case NDB_TRANSPORTER_PRIO_A: + return "PRIO_A_DATA"; + break; + case NDB_TRANSPORTER_DATA: + return "PRIO_B_DATA"; + break; + case NDB_TRANSPORTER_HUNT: + return "HUNT"; + break; + case NDB_TRANSPORTER_CONNECT_REQ: + return "CONNECT_REQ"; + break; + case NDB_TRANSPORTER_CONNECT_REF: + return "CONNECT_REF"; + break; + case NDB_TRANSPORTER_CONNECT_CONF: + return "CONNECT_CONF"; + break; + case NDB_TRANSPORTER_DISCONNECT_ORD: + return "DISCONNECT_ORD"; + break; + } + return "UNKNOWN"; +} + +struct NdbTransporterData +{ + SIGSELECT sigNo; + Uint32 sigId; // Sequence number for this signal + Uint32 senderNodeId; + Uint32 length; + Uint32 data[1]; +}; + +struct NdbTransporterData_PrioA +{ + SIGSELECT sigNo; + Uint32 sigId; // Sequence number for this signal + Uint32 senderNodeId; + Uint32 length; + Uint32 data[1]; +}; + +struct NdbTransporterHunt +{ + SIGSELECT sigNo; + NodeId remoteNodeId; +}; + + +struct NdbTransporterConnectReq +{ + SIGSELECT sigNo; + NodeId remoteNodeId; + NodeId senderNodeId; +}; + + +struct NdbTransporterConnectConf +{ + SIGSELECT sigNo; + NodeId remoteNodeId; + NodeId senderNodeId; +}; + +struct NdbTransporterConnectRef +{ + SIGSELECT sigNo; + NodeId remoteNodeId; + NodeId senderNodeId; + Uint32 reason; + + /** + * Node is not accepting connections + */ + static const Uint32 INVALID_STATE = 1; +}; + +struct NdbTransporterDisconnectOrd +{ + SIGSELECT sigNo; + NodeId senderNodeId; + Uint32 reason; + + /** + * Process died + */ + static const Uint32 PROCESS_DIED = 1; + + /** + * Ndb disconnected + */ + static const Uint32 NDB_DISCONNECT = 2; +}; + +union SIGNAL +{ + SIGSELECT sigNo; + struct NdbTransporterData dataSignal; + struct NdbTransporterData prioAData; + struct NdbTransporterHunt ndbHunt; + struct NdbTransporterConnectReq ndbConnectReq; + struct NdbTransporterConnectRef ndbConnectRef; + struct NdbTransporterConnectConf ndbConnectConf; + struct NdbTransporterDisconnectOrd ndbDisconnect; +}; + +#endif |