F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
DpManagerComponentAc.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title DpManagerComponentAc.hpp
3 // \author Generated by fpp-to-cpp
4 // \brief hpp file for DpManager component base class
5 // ======================================================================
6 
7 #ifndef Svc_DpManagerComponentAc_HPP
8 #define Svc_DpManagerComponentAc_HPP
9 
10 #include <atomic>
11 
14 #include "Fw/Cmd/CmdPortAc.hpp"
15 #include "Fw/Cmd/CmdRegPortAc.hpp"
17 #include "Fw/Cmd/CmdString.hpp"
19 #include "Fw/Dp/DpGetPortAc.hpp"
22 #include "Fw/Dp/DpSendPortAc.hpp"
23 #include "Fw/FPrimeBasicTypes.hpp"
24 #include "Fw/Log/LogPortAc.hpp"
25 #include "Fw/Log/LogString.hpp"
26 #if FW_ENABLE_TEXT_LOGGING == 1
27 #include "Fw/Log/LogTextPortAc.hpp"
28 #endif
31 #include "Fw/Time/TimePortAc.hpp"
32 #include "Fw/Tlm/TlmPortAc.hpp"
33 #include "Fw/Tlm/TlmString.hpp"
36 
37 namespace Svc {
38 
45  {
46 
47  // ----------------------------------------------------------------------
48  // Friend classes
49  // ----------------------------------------------------------------------
50 
52  friend class DpManagerTesterBase;
54  friend class DpManagerTester;
55 
56  PROTECTED:
57 
58  // ----------------------------------------------------------------------
59  // Constants
60  // ----------------------------------------------------------------------
61 
63  enum {
65  };
66 
68  enum {
73  };
74 
76  enum {
83  };
84 
86  enum {
90  };
91 
93  enum {
95  };
96 
98  enum {
100  };
101 
103  enum {
105  };
106 
108  enum {
113  };
114 
115  public:
116 
117  // ----------------------------------------------------------------------
118  // Component initialization
119  // ----------------------------------------------------------------------
120 
122  void init(
123  FwSizeType queueDepth,
124  FwEnumStoreType instance = 0
125  );
126 
127  public:
128 
129  // ----------------------------------------------------------------------
130  // Getters for special input ports
131  // ----------------------------------------------------------------------
132 
137  FwIndexType portNum
138  );
139 
140  public:
141 
142  // ----------------------------------------------------------------------
143  // Getters for typed input ports
144  // ----------------------------------------------------------------------
145 
150  FwIndexType portNum
151  );
152 
157  FwIndexType portNum
158  );
159 
164  FwIndexType portNum
165  );
166 
171  FwIndexType portNum
172  );
173 
174  public:
175 
176  // ----------------------------------------------------------------------
177  // Connect input ports to special output ports
178  // ----------------------------------------------------------------------
179 
182  FwIndexType portNum,
183  Fw::InputCmdRegPort* port
184  );
185 
188  FwIndexType portNum,
190  );
191 
194  FwIndexType portNum,
195  Fw::InputLogPort* port
196  );
197 
198 #if FW_ENABLE_TEXT_LOGGING == 1
199 
201  void set_textEventOut_OutputPort(
202  FwIndexType portNum,
203  Fw::InputLogTextPort* port
204  );
205 
206 #endif
207 
210  FwIndexType portNum,
211  Fw::InputTimePort* port
212  );
213 
216  FwIndexType portNum,
217  Fw::InputTlmPort* port
218  );
219 
220  public:
221 
222  // ----------------------------------------------------------------------
223  // Connect typed input ports to typed output ports
224  // ----------------------------------------------------------------------
225 
228  FwIndexType portNum,
230  );
231 
234  FwIndexType portNum,
236  );
237 
240  FwIndexType portNum,
242  );
243 
244 #if FW_PORT_SERIALIZATION
245 
246  public:
247 
248  // ----------------------------------------------------------------------
249  // Connect serial input ports to special output ports
250  // ----------------------------------------------------------------------
251 
254  FwIndexType portNum,
255  Fw::InputSerializePort* port
256  );
257 
260  FwIndexType portNum,
261  Fw::InputSerializePort* port
262  );
263 
266  FwIndexType portNum,
267  Fw::InputSerializePort* port
268  );
269 
270 #if FW_ENABLE_TEXT_LOGGING == 1
271 
273  void set_textEventOut_OutputPort(
274  FwIndexType portNum,
275  Fw::InputSerializePort* port
276  );
277 
278 #endif
279 
282  FwIndexType portNum,
283  Fw::InputSerializePort* port
284  );
285 
288  FwIndexType portNum,
289  Fw::InputSerializePort* port
290  );
291 
292 #endif
293 
294 #if FW_PORT_SERIALIZATION
295 
296  public:
297 
298  // ----------------------------------------------------------------------
299  // Connect serial input ports to typed output ports
300  // ----------------------------------------------------------------------
301 
304  FwIndexType portNum,
305  Fw::InputSerializePort* port
306  );
307 
310  FwIndexType portNum,
311  Fw::InputSerializePort* port
312  );
313 
314 #endif
315 
316  public:
317 
318  // ----------------------------------------------------------------------
319  // Command registration
320  // ----------------------------------------------------------------------
321 
325  void regCommands();
326 
327  PROTECTED:
328 
329  // ----------------------------------------------------------------------
330  // Component construction and destruction
331  // ----------------------------------------------------------------------
332 
335  const char* compName = ""
336  );
337 
339  virtual ~DpManagerComponentBase();
340 
341  PROTECTED:
342 
343  // ----------------------------------------------------------------------
344  // Getters for numbers of special input ports
345  // ----------------------------------------------------------------------
346 
351 
352  PROTECTED:
353 
354  // ----------------------------------------------------------------------
355  // Getters for numbers of typed input ports
356  // ----------------------------------------------------------------------
357 
362 
367 
372 
377 
378  PROTECTED:
379 
380  // ----------------------------------------------------------------------
381  // Getters for numbers of special output ports
382  // ----------------------------------------------------------------------
383 
388 
393 
398 
399 #if FW_ENABLE_TEXT_LOGGING == 1
400 
404  FwIndexType getNum_textEventOut_OutputPorts() const;
405 
406 #endif
407 
412 
417 
418  PROTECTED:
419 
420  // ----------------------------------------------------------------------
421  // Getters for numbers of typed output ports
422  // ----------------------------------------------------------------------
423 
428 
433 
438 
439  PROTECTED:
440 
441  // ----------------------------------------------------------------------
442  // Connection status queries for special output ports
443  // ----------------------------------------------------------------------
444 
449  FwIndexType portNum
450  );
451 
456  FwIndexType portNum
457  );
458 
463  FwIndexType portNum
464  );
465 
466 #if FW_ENABLE_TEXT_LOGGING == 1
467 
471  bool isConnected_textEventOut_OutputPort(
472  FwIndexType portNum
473  );
474 
475 #endif
476 
481  FwIndexType portNum
482  );
483 
488  FwIndexType portNum
489  );
490 
491  PROTECTED:
492 
493  // ----------------------------------------------------------------------
494  // Connection status queries for typed output ports
495  // ----------------------------------------------------------------------
496 
501  FwIndexType portNum
502  );
503 
508  FwIndexType portNum
509  );
510 
515  FwIndexType portNum
516  );
517 
518  PROTECTED:
519 
520  // ----------------------------------------------------------------------
521  // Handlers to implement for typed input ports
522  // ----------------------------------------------------------------------
523 
526  FwIndexType portNum,
527  FwDpIdType id,
528  FwSizeType dataSize,
529  Fw::Buffer& buffer
530  ) = 0;
531 
533  virtual void productRequestIn_handler(
534  FwIndexType portNum,
535  FwDpIdType id,
536  FwSizeType dataSize
537  ) = 0;
538 
540  virtual void productSendIn_handler(
541  FwIndexType portNum,
542  FwDpIdType id,
543  const Fw::Buffer& buffer
544  ) = 0;
545 
547  virtual void schedIn_handler(
548  FwIndexType portNum,
549  U32 context
550  ) = 0;
551 
552  PROTECTED:
553 
554  // ----------------------------------------------------------------------
555  // Port handler base-class functions for typed input ports
556  //
557  // Call these functions directly to bypass the corresponding ports
558  // ----------------------------------------------------------------------
559 
562  FwIndexType portNum,
563  FwDpIdType id,
564  FwSizeType dataSize,
565  Fw::Buffer& buffer
566  );
567 
570  FwIndexType portNum,
571  FwDpIdType id,
572  FwSizeType dataSize
573  );
574 
577  FwIndexType portNum,
578  FwDpIdType id,
579  const Fw::Buffer& buffer
580  );
581 
583  void schedIn_handlerBase(
584  FwIndexType portNum,
585  U32 context
586  );
587 
588  PROTECTED:
589 
590  // ----------------------------------------------------------------------
591  // Pre-message hooks for typed async input ports
592  //
593  // Each of these functions is invoked just before processing a message
594  // on the corresponding port. By default, they do nothing. You can
595  // override them to provide specific pre-message behavior.
596  // ----------------------------------------------------------------------
597 
599  virtual void productRequestIn_preMsgHook(
600  FwIndexType portNum,
601  FwDpIdType id,
602  FwSizeType dataSize
603  );
604 
606  virtual void productSendIn_preMsgHook(
607  FwIndexType portNum,
608  FwDpIdType id,
609  const Fw::Buffer& buffer
610  );
611 
613  virtual void schedIn_preMsgHook(
614  FwIndexType portNum,
615  U32 context
616  );
617 
618  PROTECTED:
619 
620  // ----------------------------------------------------------------------
621  // Invocation functions for typed output ports
622  // ----------------------------------------------------------------------
623 
626  FwIndexType portNum,
627  FwSizeType size
628  );
629 
632  FwIndexType portNum,
633  FwDpIdType id,
634  const Fw::Buffer& buffer,
635  const Fw::Success& status
636  );
637 
639  void productSendOut_out(
640  FwIndexType portNum,
641  Fw::Buffer& fwBuffer
642  );
643 
644  PROTECTED:
645 
646  // ----------------------------------------------------------------------
647  // Command response
648  // ----------------------------------------------------------------------
649 
651  void cmdResponse_out(
652  FwOpcodeType opCode,
653  U32 cmdSeq,
654  Fw::CmdResponse response
655  );
656 
657  PROTECTED:
658 
659  // ----------------------------------------------------------------------
660  // Command handlers to implement
661  // ----------------------------------------------------------------------
662 
666  virtual void CLEAR_EVENT_THROTTLE_cmdHandler(
667  FwOpcodeType opCode,
668  U32 cmdSeq
669  ) = 0;
670 
671  PROTECTED:
672 
673  // ----------------------------------------------------------------------
674  // Command handler base-class functions
675  //
676  // Call these functions directly to bypass the command input port
677  // ----------------------------------------------------------------------
678 
683  FwOpcodeType opCode,
684  U32 cmdSeq,
685  Fw::CmdArgBuffer& args
686  );
687 
688  PROTECTED:
689 
690  // ----------------------------------------------------------------------
691  // Pre-message hooks for async commands
692  //
693  // Each of these functions is invoked just before processing the
694  // corresponding command. By default they do nothing. You can
695  // override them to provide specific pre-command behavior.
696  // ----------------------------------------------------------------------
697 
699  virtual void CLEAR_EVENT_THROTTLE_preMsgHook(
700  FwOpcodeType opCode,
701  U32 cmdSeq
702  );
703 
704  PROTECTED:
705 
706  // ----------------------------------------------------------------------
707  // Event logging functions
708  // ----------------------------------------------------------------------
709 
714  FwDpIdType id
715  );
716 
717  PROTECTED:
718 
719  // ----------------------------------------------------------------------
720  // Event throttle reset functions
721  // ----------------------------------------------------------------------
722 
725 
726  PROTECTED:
727 
728  // ----------------------------------------------------------------------
729  // Telemetry write functions
730  // ----------------------------------------------------------------------
731 
736  U32 arg,
737  Fw::Time _tlmTime = Fw::Time()
738  );
739 
744  U32 arg,
745  Fw::Time _tlmTime = Fw::Time()
746  );
747 
752  U32 arg,
753  Fw::Time _tlmTime = Fw::Time()
754  );
755 
759  void tlmWrite_NumBytes(
760  U64 arg,
761  Fw::Time _tlmTime = Fw::Time()
762  );
763 
764  PROTECTED:
765 
766  // ----------------------------------------------------------------------
767  // Time
768  // ----------------------------------------------------------------------
769 
773  Fw::Time getTime() const;
774 
775  PRIVATE:
776 
777  // ----------------------------------------------------------------------
778  // Message dispatch functions
779  // ----------------------------------------------------------------------
780 
782  virtual MsgDispatchStatus doDispatch();
783 
784  PRIVATE:
785 
786  // ----------------------------------------------------------------------
787  // Calls for messages received on special input ports
788  // ----------------------------------------------------------------------
789 
791  static void m_p_cmdIn_in(
792  Fw::PassiveComponentBase* callComp,
793  FwIndexType portNum,
794  FwOpcodeType opCode,
795  U32 cmdSeq,
796  Fw::CmdArgBuffer& args
797  );
798 
799  PRIVATE:
800 
801  // ----------------------------------------------------------------------
802  // Calls for messages received on typed input ports
803  // ----------------------------------------------------------------------
804 
806  static Fw::Success m_p_productGetIn_in(
807  Fw::PassiveComponentBase* callComp,
808  FwIndexType portNum,
809  FwDpIdType id,
810  FwSizeType dataSize,
811  Fw::Buffer& buffer
812  );
813 
815  static void m_p_productRequestIn_in(
816  Fw::PassiveComponentBase* callComp,
817  FwIndexType portNum,
818  FwDpIdType id,
819  FwSizeType dataSize
820  );
821 
823  static void m_p_productSendIn_in(
824  Fw::PassiveComponentBase* callComp,
825  FwIndexType portNum,
826  FwDpIdType id,
827  const Fw::Buffer& buffer
828  );
829 
831  static void m_p_schedIn_in(
832  Fw::PassiveComponentBase* callComp,
833  FwIndexType portNum,
834  U32 context
835  );
836 
837  PRIVATE:
838 
839  // ----------------------------------------------------------------------
840  // Special input ports
841  // ----------------------------------------------------------------------
842 
844  Fw::InputCmdPort m_cmdIn_InputPort[NUM_CMDIN_INPUT_PORTS];
845 
846  PRIVATE:
847 
848  // ----------------------------------------------------------------------
849  // Typed input ports
850  // ----------------------------------------------------------------------
851 
853  Fw::InputDpGetPort m_productGetIn_InputPort[NUM_PRODUCTGETIN_INPUT_PORTS];
854 
856  Fw::InputDpRequestPort m_productRequestIn_InputPort[NUM_PRODUCTREQUESTIN_INPUT_PORTS];
857 
859  Fw::InputDpSendPort m_productSendIn_InputPort[NUM_PRODUCTSENDIN_INPUT_PORTS];
860 
862  Svc::InputSchedPort m_schedIn_InputPort[NUM_SCHEDIN_INPUT_PORTS];
863 
864  PRIVATE:
865 
866  // ----------------------------------------------------------------------
867  // Special output ports
868  // ----------------------------------------------------------------------
869 
871  Fw::OutputCmdRegPort m_cmdRegIn_OutputPort[NUM_CMDREGIN_OUTPUT_PORTS];
872 
874  Fw::OutputCmdResponsePort m_cmdResponseOut_OutputPort[NUM_CMDRESPONSEOUT_OUTPUT_PORTS];
875 
877  Fw::OutputLogPort m_eventOut_OutputPort[NUM_EVENTOUT_OUTPUT_PORTS];
878 
879 #if FW_ENABLE_TEXT_LOGGING == 1
880 
882  Fw::OutputLogTextPort m_textEventOut_OutputPort[NUM_TEXTEVENTOUT_OUTPUT_PORTS];
883 
884 #endif
885 
887  Fw::OutputTimePort m_timeGetOut_OutputPort[NUM_TIMEGETOUT_OUTPUT_PORTS];
888 
890  Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS];
891 
892  PRIVATE:
893 
894  // ----------------------------------------------------------------------
895  // Typed output ports
896  // ----------------------------------------------------------------------
897 
899  Fw::OutputBufferGetPort m_bufferGetOut_OutputPort[NUM_BUFFERGETOUT_OUTPUT_PORTS];
900 
902  Fw::OutputDpResponsePort m_productResponseOut_OutputPort[NUM_PRODUCTRESPONSEOUT_OUTPUT_PORTS];
903 
905  Fw::OutputBufferSendPort m_productSendOut_OutputPort[NUM_PRODUCTSENDOUT_OUTPUT_PORTS];
906 
907  PRIVATE:
908 
909  // ----------------------------------------------------------------------
910  // Counter values for event throttling
911  // ----------------------------------------------------------------------
912 
914  std::atomic<FwIndexType> m_BufferAllocationFailedThrottle;
915 
916  PRIVATE:
917 
918  // ----------------------------------------------------------------------
919  // First update flags for telemetry channels
920  // ----------------------------------------------------------------------
921 
923  bool m_first_update_NumSuccessfulAllocations;
924 
926  bool m_first_update_NumFailedAllocations;
927 
929  bool m_first_update_NumDataProducts;
930 
932  bool m_first_update_NumBytes;
933 
934  PRIVATE:
935 
936  // ----------------------------------------------------------------------
937  // Last value storage for telemetry channels
938  // ----------------------------------------------------------------------
939 
941  U32 m_last_NumSuccessfulAllocations;
942 
944  U32 m_last_NumFailedAllocations;
945 
947  U32 m_last_NumDataProducts;
948 
950  U64 m_last_NumBytes;
951 
952  };
953 
954 }
955 
956 #endif
Svc::InputSchedPort * get_schedIn_InputPort(FwIndexType portNum)
FwIndexType getNum_productGetIn_InputPorts() const
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
Definition: Time.hpp:9
void set_productSendOut_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to productSendOut[portNum].
FwIdType FwOpcodeType
The type of a command opcode.
void log_WARNING_HI_BufferAllocationFailed_ThrottleClear()
Reset throttle value for BufferAllocationFailed.
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum)
PlatformSizeType FwSizeType
bool isConnected_cmdRegIn_OutputPort(FwIndexType portNum)
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
I32 FwEnumStoreType
void set_timeGetOut_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeGetOut[portNum].
virtual void schedIn_handler(FwIndexType portNum, U32 context)=0
Handler for input port schedIn.
FwIndexType getNum_eventOut_OutputPorts() const
virtual ~DpManagerComponentBase()
Destroy DpManagerComponentBase object.
FwIndexType getNum_timeGetOut_OutputPorts() const
void productRequestIn_handlerBase(FwIndexType portNum, FwDpIdType id, FwSizeType dataSize)
Handler base-class function for input port productRequestIn.
FwIndexType getNum_schedIn_InputPorts() const
Enum representing a command response.
FwIndexType getNum_productRequestIn_InputPorts() const
void tlmWrite_NumSuccessfulAllocations(U32 arg, Fw::Time _tlmTime=Fw::Time())
void tlmWrite_NumFailedAllocations(U32 arg, Fw::Time _tlmTime=Fw::Time())
void productSendIn_handlerBase(FwIndexType portNum, FwDpIdType id, const Fw::Buffer &buffer)
Handler base-class function for input port productSendIn.
void init()
Object initializer.
Definition: ObjBase.cpp:26
Fw::InputDpGetPort * get_productGetIn_InputPort(FwIndexType portNum)
virtual void productSendIn_handler(FwIndexType portNum, FwDpIdType id, const Fw::Buffer &buffer)=0
Handler for input port productSendIn.
FwIndexType getNum_cmdRegIn_OutputPorts() const
virtual Fw::Success productGetIn_handler(FwIndexType portNum, FwDpIdType id, FwSizeType dataSize, Fw::Buffer &buffer)=0
Handler for input port productGetIn.
FwIndexType getNum_bufferGetOut_OutputPorts() const
virtual void productSendIn_preMsgHook(FwIndexType portNum, FwDpIdType id, const Fw::Buffer &buffer)
Pre-message hook for async input port productSendIn.
friend class DpManagerTesterBase
Friend class tester to support autocoded test harness.
Fw::InputDpSendPort * get_productSendIn_InputPort(FwIndexType portNum)
FwIndexType getNum_productSendIn_InputPorts() const
void productResponseOut_out(FwIndexType portNum, FwDpIdType id, const Fw::Buffer &buffer, const Fw::Success &status)
Invoke output port productResponseOut.
void tlmWrite_NumDataProducts(U32 arg, Fw::Time _tlmTime=Fw::Time())
bool isConnected_productResponseOut_OutputPort(FwIndexType portNum)
bool isConnected_bufferGetOut_OutputPort(FwIndexType portNum)
virtual void schedIn_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port schedIn.
FwIndexType getNum_productResponseOut_OutputPorts() const
virtual void CLEAR_EVENT_THROTTLE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
bool isConnected_timeGetOut_OutputPort(FwIndexType portNum)
void CLEAR_EVENT_THROTTLE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
Auto-generated base for DpManager component.
void schedIn_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port schedIn.
void productSendOut_out(FwIndexType portNum, Fw::Buffer &fwBuffer)
Invoke output port productSendOut.
FwIndexType getNum_cmdIn_InputPorts() const
virtual void productRequestIn_handler(FwIndexType portNum, FwDpIdType id, FwSizeType dataSize)=0
Handler for input port productRequestIn.
void log_WARNING_HI_BufferAllocationFailed(FwDpIdType id)
FwIdType FwDpIdType
The type of a data product identifier.
void set_productResponseOut_OutputPort(FwIndexType portNum, Fw::InputDpResponsePort *port)
Connect port to productResponseOut[portNum].
PlatformIndexType FwIndexType
virtual void productRequestIn_preMsgHook(FwIndexType portNum, FwDpIdType id, FwSizeType dataSize)
Pre-message hook for async input port productRequestIn.
DpManagerComponentBase(const char *compName="")
Construct DpManagerComponentBase object.
Fw::InputDpRequestPort * get_productRequestIn_InputPort(FwIndexType portNum)
bool isConnected_productSendOut_OutputPort(FwIndexType portNum)
void regCommands()
Register commands with the Command Dispatcher.
FwIndexType getNum_cmdResponseOut_OutputPorts() const
RateGroupDivider component implementation.
void set_bufferGetOut_OutputPort(FwIndexType portNum, Fw::InputBufferGetPort *port)
Connect port to bufferGetOut[portNum].
FwIndexType getNum_productSendOut_OutputPorts() const
friend class DpManagerTester
Friend class tester implementation to support white-box testing.
bool isConnected_tlmOut_OutputPort(FwIndexType portNum)
FwIndexType getNum_tlmOut_OutputPorts() const
Fw::Success productGetIn_handlerBase(FwIndexType portNum, FwDpIdType id, FwSizeType dataSize, Fw::Buffer &buffer)
Handler base-class function for input port productGetIn.
bool isConnected_eventOut_OutputPort(FwIndexType portNum)
virtual void CLEAR_EVENT_THROTTLE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CLEAR_EVENT_THROTTLE.
void set_eventOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to eventOut[portNum].
void set_cmdRegIn_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegIn[portNum].
void tlmWrite_NumBytes(U64 arg, Fw::Time _tlmTime=Fw::Time())
Fw::Buffer bufferGetOut_out(FwIndexType portNum, FwSizeType size)
Invoke output port bufferGetOut.
Success/Failure.
#define U64(C)
Definition: sha.h:180