Initial commit
[o-du/l2.git] / src / mt / ss_msg.x
diff --git a/src/mt/ss_msg.x b/src/mt/ss_msg.x
new file mode 100755 (executable)
index 0000000..69862a0
--- /dev/null
@@ -0,0 +1,116 @@
+/*******************************************************************************
+################################################################################
+#   Copyright (c) [2017-2019] [Radisys]                                        #
+#                                                                              #
+#   Licensed under the Apache License, Version 2.0 (the "License");            #
+#   you may not use this file except in compliance with the License.           #
+#   You may obtain a copy of the License at                                    #
+#                                                                              #
+#       http://www.apache.org/licenses/LICENSE-2.0                             #
+#                                                                              #
+#   Unless required by applicable law or agreed to in writing, software        #
+#   distributed under the License is distributed on an "AS IS" BASIS,          #
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
+#   See the License for the specific language governing permissions and        #
+#   limitations under the License.                                             #
+################################################################################
+*******************************************************************************/
+
+/********************************************************************20**
+     Name:     System Services -- Message manipulation functions
+     Type:     C include file
+     Desc:     Data structure definitions for message related functions.
+     File:     ss_msg.x
+*********************************************************************21*/
+
+#ifndef __SSMSGX__
+#define __SSMSGX__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* pool type -- dynamic or static */
+typedef U8              SsPoolType;
+
+
+
+/* dynamic pool */
+typedef struct ssDPoolEntry
+{
+   SsdDPoolEntry        dep;                    /* implementation specific */
+   Size                 size;                   /* to use for SAlloc() */
+} SsDPoolEntry;
+
+
+/* static pool */
+typedef struct ssSPoolEntry
+{
+   SsdSPoolEntry        dep;                    /* implementation specific */
+} SsSPoolEntry;
+
+
+/* generic pool (includes dynamic and static) */
+typedef struct ssPoolEntry
+{
+   SsdPoolEntry         dep;                    /* implementation specific */
+   SsPoolType           type;                   /* dynamic or static */
+   union 
+   {
+      SsSPoolEntry      spool;                  /* static pool */
+      SsDPoolEntry      dpool;                  /* dynamic pool */
+   } u;
+} SsPoolEntry;
+
+
+/* event information--what kind of message is this */
+typedef struct ssEventInfo
+{
+   U8 event;                                    /* event type */
+   union
+   {
+      struct
+      {
+         SsIdx tmrIdx;                          /* timer index */
+         Bool  inUse;                           /* message in use? */
+         Bool  dynBuf;                          /* dynamic buffer? */
+      } tmr;                                    /* for timer events */
+   } u;
+} SsEventInfo;
+
+
+/* Information stored in the control portion of a message.
+ * The SGETBUFREGION, SGETBUFPOOL, SGetBufRegionPool macros
+ * depend on the order of the first two elements of this
+ * structure. Make sure the macros are consistent with the
+ * definition here.
+ */
+typedef struct ssMsgInfo
+{
+   Region       region;                         /* region id of the msg chain */
+   Pool         pool;                           /* pool id of the msg chain */
+   MsgLen       len;                            /* num of bytes in the msg */
+   Buffer       *endptr;                        /* ptr to last mblk in chain */
+   Buffer       *next;                          /* for SInitNxtDBuf() */
+   Pst          pst;                            /* post for this message */
+   SsEventInfo  eventInfo;                      /* event information */
+} SsMsgInfo;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __SSMSGX__ */
+
+\f
+/********************************************************************30**
+         End of file
+**********************************************************************/