theKernel 10.0
Loading...
Searching...
No Matches
LibMkKernel_rb.c File Reference

tag: nhi1-release-250425 More...

#include "LibMkKernel_private_rb.h"
#include "misc_check_rb.h"
#include <ruby/defines.h>
#include "tmpl/mk_misc_ObjAs_lng.h"
#include "tmpl/mk_misc_check_lng.h"
+ Include dependency graph for LibMkKernel_rb.c:

Go to the source code of this file.

Macros

#define MkSetupTmpl()
 
#define MkCleanupTmpl()
 
#define ErrorE_FromInt_doc   "MkErrorE MkKernel.ErrorE_FromInt(value:int32)"
 
#define IdSE_FromInt_doc   "MkIdSE MkKernel.IdSE_FromInt(value:int32)"
 
#define TimeoutE_FromInt_doc   "MkTimeoutE MkKernel.TimeoutE_FromInt(value:int32)"
 
#define TypeE_FromInt_doc   "MkTypeE MkKernel.TypeE_FromInt(value:int32)"
 
#define ErrorE_ToInt_doc   "int32 MkKernel.ErrorE_ToInt(value:MkErrorE)"
 
#define ErrorE_ToString_doc   "string MkKernel.ErrorE_ToString(value:MkErrorE)"
 
#define IdSE_ToInt_doc   "int32 MkKernel.IdSE_ToInt(value:MkIdSE)"
 
#define IdSE_ToString_doc   "string MkKernel.IdSE_ToString(value:MkIdSE)"
 
#define TimeoutE_ToInt_doc   "int32 MkKernel.TimeoutE_ToInt(value:MkTimeoutE)"
 
#define TimeoutE_ToString_doc   "string MkKernel.TimeoutE_ToString(value:MkTimeoutE)"
 
#define TypeE_ToInt_doc   "int32 MkKernel.TypeE_ToInt(value:MkTypeE)"
 
#define TypeE_ToString_doc   "string MkKernel.TypeE_ToString(value:MkTypeE)"
 
#define Cleanup_doc   "MkKernel.Cleanup()"
 
#define Setup_doc   "MkKernel.Setup()"
 
#define OT_SETUP_hdl_static
 
#define FRAME_init
 
#define USE_SysExit
 

Functions

void rbmkkernel__printObj (MK_RT mkrt, VALUE v, MK_STRN caller)
 
void rbmkkernel_printLNG_STACK (MK_RT mkrt, MK_MNG mng)
 
MK_STRN rbmkkernel_Get_Call_Proc (int skip, VALUE *frameP)
 
MK_STRN rbmkkernel_Get_Call_Script (int skip, VALUE *frameP)
 
MK_I32 rbmkkernel_Get_Call_Line (int skip, VALUE *frameP)
 
void rbmkkernel_Get_Call_All (int skip, MK_STRN *proc, MK_STRN *file, MK_I32 *line)
 
void rbmkkernel_Get_Call_Stack (MK_RT mkrt, MK_ERR const err, int level)
 
enum MkErrorE rbmkkernel_Obj_AsSTRN (OT_Check_ARGS, MK_STRN *retP)
 
enum MkErrorE rbmkkernel_Obj_AsSTR_COPY (OT_Check_ARGS, MK_STR ret, size_t size)
 
static enum MkErrorE rbmkkernel_LngListToMkBufferListS (OT_Prefix_ARGS VALUE argsO, MK_BFL *argsP)
 
enum MkErrorE rbmkkernel_LngTupleToMkBufferListS (SETUP_ARGS, int *origskip, MK_BFL *argsP)
 
static OT_ProcRet rbmkkernel_MkKernel_ErrorE_FromInt (OtClass_ARGS)
  Ruby: (static) MkErrorE MkKernel.ErrorE_FromInt(value:int32) C-API
return the MkErrorE from integer …
 
static OT_ProcRet rbmkkernel_MkKernel_IdSE_FromInt (OtClass_ARGS)
  Ruby: (static) MkIdSE MkKernel.IdSE_FromInt(value:int32) C-API
return the MkIdSE from integer …
 
static OT_ProcRet rbmkkernel_MkKernel_TimeoutE_FromInt (OtClass_ARGS)
  Ruby: (static) MkTimeoutE MkKernel.TimeoutE_FromInt(value:int32) C-API
return the MkTimeoutE from integer …
 
static OT_ProcRet rbmkkernel_MkKernel_TypeE_FromInt (OtClass_ARGS)
  Ruby: (static) MkTypeE MkKernel.TypeE_FromInt(value:int32) C-API
return the MkTypeE from integer …
 
static OT_ProcRet rbmkkernel_MkKernel_ErrorE_ToInt (OtClass_ARGS)
  Ruby: (static) int32 MkKernel.ErrorE_ToInt(value:MkErrorE) C-API
return the MkErrorE as integer …
 
static OT_ProcRet rbmkkernel_MkKernel_ErrorE_ToString (OtClass_ARGS)
  Ruby: (static) string MkKernel.ErrorE_ToString(value:MkErrorE) C-API
return the MkErrorE as string …
 
static OT_ProcRet rbmkkernel_MkKernel_IdSE_ToInt (OtClass_ARGS)
  Ruby: (static) int32 MkKernel.IdSE_ToInt(value:MkIdSE) C-API
return the MkIdSE as integer …
 
static OT_ProcRet rbmkkernel_MkKernel_IdSE_ToString (OtClass_ARGS)
  Ruby: (static) string MkKernel.IdSE_ToString(value:MkIdSE) C-API
return the MkIdSE as string …
 
static OT_ProcRet rbmkkernel_MkKernel_TimeoutE_ToInt (OtClass_ARGS)
  Ruby: (static) int32 MkKernel.TimeoutE_ToInt(value:MkTimeoutE) C-API
return the MkTimeoutE as integer …
 
static OT_ProcRet rbmkkernel_MkKernel_TimeoutE_ToString (OtClass_ARGS)
  Ruby: (static) string MkKernel.TimeoutE_ToString(value:MkTimeoutE) C-API
return the MkTimeoutE as string …
 
static OT_ProcRet rbmkkernel_MkKernel_TypeE_ToInt (OtClass_ARGS)
  Ruby: (static) int32 MkKernel.TypeE_ToInt(value:MkTypeE) C-API
return the MkTypeE as integer …
 
static OT_ProcRet rbmkkernel_MkKernel_TypeE_ToString (OtClass_ARGS)
  Ruby: (static) string MkKernel.TypeE_ToString(value:MkTypeE) C-API
return the MkTypeE as string …
 
static OT_ProcRet rbmkkernel_MkKernel_Cleanup (OtClass_ARGS)
  Ruby: (static) MkKernel.Cleanup() C-API
cleanup rbmkkernel internal memory …
 
static OT_ProcRet rbmkkernel_MkKernel_Setup (OtClass_ARGS)
  Ruby: (static) MkKernel.Setup() C-API
setup rbmkkernel internal memory …
 
static OT_ProcRet rbmkkernel_RubyMsgque_M (OtClass_ARGS)
 
static OT_ProcRet rbmkkernel_RubyMsgque_printObj (OtClass_ARGS)
 
void rbmkkernel_MkKernel_Init (MK_RT mkrt)
 
static VALUE rbmkkernel_SysExit2 (VALUE dummy)
 
static int rbmkkernel_SysExit (MK_RT mkrt, int isThread, int num)
 
MK_RB_EXTERN void LibMkKernel ()
 

Variables

VALUE rbmkkernel_MkKernel = 0
 
VALUE rbmkkernel_globalRef = 0
 
VALUE rbmkkernel_cEnum = 0
 
VALUE rbmkkernel_InitError = 0
 
VALUE rbmkkernel_NULL_STR = 0
 
ID rbmkkernel_id_caller
 
ID rbmkkernel_id_caller_locations
 
ID rbmkkernel_id_label
 
ID rbmkkernel_id_path
 
ID rbmkkernel_id_bn
 
ID rbmkkernel_id_lineno
 
ID rbmkkernel_id_arity
 
ID rbmkkernel_id_clone
 
ID rbmkkernel_id_unbind
 
ID rbmkkernel_id_bind
 
ID rbmkkernel_id_receiver
 
ID rbmkkernel_id_enum_attr
 
ID rbmkkernel_id_to_i
 
ID rbmkkernel_id_full_message
 
VALUE rbmkkernel_MkErrorE
 
VALUE rbmkkernel_MkIdSE
 
VALUE rbmkkernel_MkTimeoutE
 
VALUE rbmkkernel_MkTypeE
 

Detailed Description

tag: nhi1-release-250425

Definition in file LibMkKernel_rb.c.

Macro Definition Documentation

◆ Cleanup_doc

#define Cleanup_doc   "MkKernel.Cleanup()"

Definition at line 182 of file LibMkKernel_rb.c.

◆ ErrorE_FromInt_doc

#define ErrorE_FromInt_doc   "MkErrorE MkKernel.ErrorE_FromInt(value:int32)"

doc definition

Definition at line 166 of file LibMkKernel_rb.c.

◆ ErrorE_ToInt_doc

#define ErrorE_ToInt_doc   "int32 MkKernel.ErrorE_ToInt(value:MkErrorE)"

Definition at line 172 of file LibMkKernel_rb.c.

◆ ErrorE_ToString_doc

#define ErrorE_ToString_doc   "string MkKernel.ErrorE_ToString(value:MkErrorE)"

Definition at line 173 of file LibMkKernel_rb.c.

◆ FRAME_init

#define FRAME_init
Value:
VALUE frame = 0; \
if (frameP == NULL || *frameP == 0) { \
VALUE ary = rb_funcall(rb_mKernel, NS(id_caller_locations), 2, INT2FIX(skip), INT2FIX(1)); \
frame = rb_ary_entry(ary,0); \
if (frameP != NULL) *frameP = frame; \
} else { \
frame = *frameP; \
} \
#define NS(n)

Definition at line 209 of file LibMkKernel_rb.c.

209#define FRAME_init \
210 VALUE frame = 0; \
211 if (frameP == NULL || *frameP == 0) { \
212 VALUE ary = rb_funcall(rb_mKernel, NS(id_caller_locations), 2, INT2FIX(skip), INT2FIX(1)); \
213 frame = rb_ary_entry(ary,0); \
214 if (frameP != NULL) *frameP = frame; \
215 } else { \
216 frame = *frameP; \
217 } \
218

◆ IdSE_FromInt_doc

#define IdSE_FromInt_doc   "MkIdSE MkKernel.IdSE_FromInt(value:int32)"

Definition at line 167 of file LibMkKernel_rb.c.

◆ IdSE_ToInt_doc

#define IdSE_ToInt_doc   "int32 MkKernel.IdSE_ToInt(value:MkIdSE)"

Definition at line 174 of file LibMkKernel_rb.c.

◆ IdSE_ToString_doc

#define IdSE_ToString_doc   "string MkKernel.IdSE_ToString(value:MkIdSE)"

Definition at line 175 of file LibMkKernel_rb.c.

◆ MkCleanupTmpl

#define MkCleanupTmpl ( )

Definition at line 50 of file LibMkKernel_rb.c.

◆ MkSetupTmpl

#define MkSetupTmpl ( )
Value:
void MkSetup(void)
setup rbmkkernel internal memory …

Definition at line 49 of file LibMkKernel_rb.c.

◆ OT_SETUP_hdl_static

#define OT_SETUP_hdl_static
Value:
__attribute__((unused)) MK_ERR hdl = &MkERROR;
#define MkERROR
#define MkRtSetup_NULL
#define MK_RT_UNUSED
The data-type to store and handle the error-condition …

Definition at line 187 of file LibMkKernel_rb.c.

187#define OT_SETUP_hdl_static MK_RT_UNUSED MkRtSetup_NULL; \
188 __attribute__((unused)) MK_ERR hdl = &MkERROR;

◆ Setup_doc

#define Setup_doc   "MkKernel.Setup()"

Definition at line 183 of file LibMkKernel_rb.c.

◆ TimeoutE_FromInt_doc

#define TimeoutE_FromInt_doc   "MkTimeoutE MkKernel.TimeoutE_FromInt(value:int32)"

Definition at line 168 of file LibMkKernel_rb.c.

◆ TimeoutE_ToInt_doc

#define TimeoutE_ToInt_doc   "int32 MkKernel.TimeoutE_ToInt(value:MkTimeoutE)"

Definition at line 176 of file LibMkKernel_rb.c.

◆ TimeoutE_ToString_doc

#define TimeoutE_ToString_doc   "string MkKernel.TimeoutE_ToString(value:MkTimeoutE)"

Definition at line 177 of file LibMkKernel_rb.c.

◆ TypeE_FromInt_doc

#define TypeE_FromInt_doc   "MkTypeE MkKernel.TypeE_FromInt(value:int32)"

Definition at line 169 of file LibMkKernel_rb.c.

◆ TypeE_ToInt_doc

#define TypeE_ToInt_doc   "int32 MkKernel.TypeE_ToInt(value:MkTypeE)"

Definition at line 178 of file LibMkKernel_rb.c.

◆ TypeE_ToString_doc

#define TypeE_ToString_doc   "string MkKernel.TypeE_ToString(value:MkTypeE)"

Definition at line 179 of file LibMkKernel_rb.c.

◆ USE_SysExit

#define USE_SysExit

Definition at line 763 of file LibMkKernel_rb.c.

Function Documentation

◆ LibMkKernel()

MK_RB_EXTERN void LibMkKernel ( )

Definition at line 797 of file LibMkKernel_rb.c.

798{
799
800 // Register system
801#ifdef HAVE_FORK
802// MkInitSysAPI(MK(fork),NULL);
803#endif
804
805 // Initialize libmkkernel
806 MkSetup();
808
809 // Initialize components
810
811 MK(globalRef) = rb_ary_new();
812 rb_gc_register_mark_object(MK(globalRef));
813
814 MK(MkKernel_Init) (MK_RT_CALL_ONLY) ;
815 MK(MkObjectC_Init) (MK_RT_CALL_ONLY) ;
816 MK(MkBufferC_Init) (MK_RT_CALL_ONLY) ;
817 MK(MkBufferStreamC_Init) (MK_RT_CALL_ONLY) ;
818 MK(MkBufferListC_Init) (MK_RT_CALL_ONLY) ;
819 MK(MkLogFileC_Init) (MK_RT_CALL_ONLY) ;
820 MK(MkErrorC_Init) (MK_RT_CALL_ONLY) ;
821 MK(MkExceptionC_Init) (MK_RT_CALL_ONLY) ;
822 MK(MkRuntimeC_Init) (MK_RT_CALL_ONLY) ;
823
824
825 // set global data
826
827 // Get_Call_???
828 NS(id_caller) = rb_intern("caller") ;
829 NS(id_caller_locations) = rb_intern("caller_locations") ;
830 NS(id_label) = rb_intern("label") ;
831 NS(id_path) = rb_intern("path") ;
832 NS(id_bn) = rb_intern("basename") ;
833 NS(id_lineno) = rb_intern("lineno") ;
834
835 // update LAL
836 //MkLal.SysFork = (MkSysForkF) SysFork ;
837
838 //MkLal.SysServerThread = SysServerThread;
839#ifdef USE_SysExit
840 MkLal.MkSysExitCB = MK(SysExit);
841#endif
842 //MkLal.SysWait = SysWait;
843
844 //MkLal.SysSelect = (MkSysSelectF) rb_thread_select;
845 //MkLal.SysSelect = (MkSysSelectF) rb_thread_fd_select;
846
847 /*****************************************************************************/
848 /* */
849 /* enums */
850 /* */
851 /*****************************************************************************/
852
853 NS(cEnum) = rb_eval_string(
854 " \n\
855 class Enum \n\
856 \n\
857 private \n\
858 \n\
859 def self.enum_attr(name, num) \n\
860 name = name.to_s \n\
861 \n\
862 define_method(name + '?') do \n\
863 @attrs & num != 0 \n\
864 end \n\
865 \n\
866 define_method(name + '=') do |set| \n\
867 if set \n\
868 @attrs |= num \n\
869 else \n\
870 @attrs &= ~num \n\
871 end \n\
872 end \n\
873 \n\
874 self.const_set(name,self.new(num)) \n\
875 end \n\
876 \n\
877 public \n\
878 \n\
879 def initialize(attrs = 0) \n\
880 @attrs = attrs \n\
881 end \n\
882 \n\
883 def to_i \n\
884 @attrs \n\
885 end \n\
886 \n\
887 alias_method :to_int, :to_i \n\
888 \n\
889 end \n\
890 Enum \n\
891 "
892 );
893
894 MK(InitError) = rb_define_class_under(MK(MkKernel), "InitError", rb_eStandardError);
895
896 NS(id_enum_attr) = rb_intern("enum_attr");
897
898 // BEGIN-enumF - created by 'rb_MqS.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
899
900 MK(MkErrorE) = rb_define_class_under(MK(MkKernel), "MkErrorE", MK(cEnum));
901 rb_funcall(MK(MkErrorE), MK(id_enum_attr), 2, STRN2VAL("OK"), INT2NUM(0));
902 rb_funcall(MK(MkErrorE), MK(id_enum_attr), 2, STRN2VAL("CONTINUE"), INT2NUM(1));
903 rb_funcall(MK(MkErrorE), MK(id_enum_attr), 2, STRN2VAL("ERROR"), INT2NUM(2));
904
905 MK(MkIdSE) = rb_define_class_under(MK(MkKernel), "MkIdSE", MK(cEnum));
906 rb_funcall(MK(MkIdSE), MK(id_enum_attr), 2, STRN2VAL("UNUSED"), INT2NUM(0));
907 rb_funcall(MK(MkIdSE), MK(id_enum_attr), 2, STRN2VAL("PROCESS"), INT2NUM(1));
908 rb_funcall(MK(MkIdSE), MK(id_enum_attr), 2, STRN2VAL("THREAD"), INT2NUM(2));
909
910 MK(MkTimeoutE) = rb_define_class_under(MK(MkKernel), "MkTimeoutE", MK(cEnum));
911 rb_funcall(MK(MkTimeoutE), MK(id_enum_attr), 2, STRN2VAL("INIT"), INT2NUM(900));
912 rb_funcall(MK(MkTimeoutE), MK(id_enum_attr), 2, STRN2VAL("LONG"), INT2NUM(( 900/5 )));
913 rb_funcall(MK(MkTimeoutE), MK(id_enum_attr), 2, STRN2VAL("NORMAL"), INT2NUM(( 900/10 < 1 ? 1 : 900/10 )));
914 rb_funcall(MK(MkTimeoutE), MK(id_enum_attr), 2, STRN2VAL("SHORT"), INT2NUM(( 900/45 < 1 ? 1 : 900/45 )));
915 rb_funcall(MK(MkTimeoutE), MK(id_enum_attr), 2, STRN2VAL("SOCKET"), INT2NUM(( 900/90 < 1 ? 1 : 900/90 )));
916 rb_funcall(MK(MkTimeoutE), MK(id_enum_attr), 2, STRN2VAL("VERYSHORT"), INT2NUM(( 900/180 < 1 ? 1 : 900/180 )));
917 rb_funcall(MK(MkTimeoutE), MK(id_enum_attr), 2, STRN2VAL("DEFAULT"), INT2NUM(-1));
918 rb_funcall(MK(MkTimeoutE), MK(id_enum_attr), 2, STRN2VAL("USER"), INT2NUM(-2));
919 rb_funcall(MK(MkTimeoutE), MK(id_enum_attr), 2, STRN2VAL("MAX"), INT2NUM(-3));
920
921 MK(MkTypeE) = rb_define_class_under(MK(MkKernel), "MkTypeE", MK(cEnum));
922 rb_funcall(MK(MkTypeE), MK(id_enum_attr), 2, STRN2VAL("I8T"), INT2NUM(( ( 1 << 4 ) | ( 1<<0 ) )));
923 rb_funcall(MK(MkTypeE), MK(id_enum_attr), 2, STRN2VAL("BOLT"), INT2NUM(( ( 2 << 4 ) | ( 1<<0 ) )));
924 rb_funcall(MK(MkTypeE), MK(id_enum_attr), 2, STRN2VAL("I16T"), INT2NUM(( ( 3 << 4 ) | ( 1<<1 ) )));
925 rb_funcall(MK(MkTypeE), MK(id_enum_attr), 2, STRN2VAL("I32T"), INT2NUM(( ( 4 << 4 ) | ( 1<<2 ) )));
926 rb_funcall(MK(MkTypeE), MK(id_enum_attr), 2, STRN2VAL("FLTT"), INT2NUM(( ( 5 << 4 ) | ( 1<<2 ) )));
927 rb_funcall(MK(MkTypeE), MK(id_enum_attr), 2, STRN2VAL("I64T"), INT2NUM(( ( 6 << 4 ) | ( 1<<3 ) )));
928 rb_funcall(MK(MkTypeE), MK(id_enum_attr), 2, STRN2VAL("DBLT"), INT2NUM(( ( 7 << 4 ) | ( 1<<3 ) )));
929 rb_funcall(MK(MkTypeE), MK(id_enum_attr), 2, STRN2VAL("BINT"), INT2NUM(( ( 8 << 4 ) )));
930 rb_funcall(MK(MkTypeE), MK(id_enum_attr), 2, STRN2VAL("STRT"), INT2NUM(( ( 9 << 4 ) )));
931 rb_funcall(MK(MkTypeE), MK(id_enum_attr), 2, STRN2VAL("LSTT"), INT2NUM(( ( 10 << 4 ) )));
932
933 // END-enumF - created by 'rb_MqS.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
934
935 NS(id_arity) = rb_intern("arity");
936 NS(id_clone) = rb_intern("clone");
937 NS(id_unbind) = rb_intern("unbind");
938 NS(id_bind) = rb_intern("bind");
939 NS(id_receiver) = rb_intern("receiver");
940 NS(id_to_i) = rb_intern("to_i");
941 NS(id_full_message) = rb_intern("full_message");
942
943 MK(NULL_STR) = rb_str_new_cstr(MK_NULL_STR);
944 INCR_REG(MK(NULL_STR));
945}
#define MK(n)
#define INCR_REG(val)
#define STRN2VAL(nat)
#define MK_NULL_STR
the string "MK_NULL" value as MK_NULL_STR …
MkTimeoutE
Predefined Timeout values …
MkErrorE
collection for the different error-codes …
MkTypeE
basic data-types supported by Programming-Language-Micro-Kernel (PLMK) …
MkIdSE
signal type of the MkIdS data val …
struct MkLalS MkLal
Language Abstraction Layer in duty.
#define MK_RT_CALL_ONLY
MkSysExitF MkSysExitCB

◆ rbmkkernel__printObj()

void rbmkkernel__printObj ( MK_RT mkrt,
VALUE v,
MK_STRN caller )

Definition at line 196 of file LibMkKernel_rb.c.

196 {
197 MkLogV_4M(MK_ERROR_PRINT,caller,0, "printObj: value<%p> class<%s> %s\n", \
198 (void*) v, OT_LNG_OBJ_CLASSNAME(v), VAL2STRN(rb_inspect(v)));
199}
#define OT_LNG_OBJ_CLASSNAME(obj)
#define VAL2STRN(val)
#define MK_ERROR_PRINT
#define MkLogV_4M(x, callfunc, debug, printfmt,...)

◆ rbmkkernel_Get_Call_All()

void rbmkkernel_Get_Call_All ( int skip,
MK_STRN * proc,
MK_STRN * file,
MK_I32 * line )

Definition at line 238 of file LibMkKernel_rb.c.

238 {
239 VALUE ary = rb_funcall(rb_mKernel, NS(id_caller_locations), 2, INT2FIX(skip), INT2FIX(1));
240 VALUE a0 = rb_ary_entry(ary,0);
241 if (proc) {
242 *proc = VAL2STRN(rb_funcallv(a0, NS(id_label), 0, NULL));
243 }
244 if (file) {
245 VALUE path = rb_funcall(a0, NS(id_path), 0);
246 *file = VAL2STRN(rb_funcall(rb_cFile, NS(id_bn), 1, path));
247 }
248 if (line) {
249 *line = VAL2I32(rb_funcallv(a0, NS(id_lineno), 0, NULL));
250 }
251}
#define VAL2I32(val)

◆ rbmkkernel_Get_Call_Line()

MK_I32 rbmkkernel_Get_Call_Line ( int skip,
VALUE * frameP )

Definition at line 232 of file LibMkKernel_rb.c.

232 {
234 VALUE line = rb_funcallv(frame, NS(id_lineno), 0, NULL);
235 return VAL2I32(line);
236}
#define FRAME_init

◆ rbmkkernel_Get_Call_Proc()

MK_STRN rbmkkernel_Get_Call_Proc ( int skip,
VALUE * frameP )

Definition at line 219 of file LibMkKernel_rb.c.

219 {
221 VALUE label = rb_funcallv(frame, NS(id_label), 0, NULL);
222 return VAL2STRN(label);
223}

◆ rbmkkernel_Get_Call_Script()

MK_STRN rbmkkernel_Get_Call_Script ( int skip,
VALUE * frameP )

Definition at line 225 of file LibMkKernel_rb.c.

225 {
227 VALUE path = rb_funcallv(frame, NS(id_path), 0, NULL);
228 VALUE base = rb_funcall(rb_cFile, NS(id_bn), 1, path);
229 return VAL2STRN(base);
230}

◆ rbmkkernel_Get_Call_Stack()

void rbmkkernel_Get_Call_Stack ( MK_RT mkrt,
MK_ERR const err,
int level )

Definition at line 253 of file LibMkKernel_rb.c.

253 {
254 VALUE ary = rb_funcall(rb_mKernel, NS(id_caller_locations), 2, INT2FIX(level), INT2FIX(1));
255 VALUE a0 = rb_ary_entry(ary,0);
256 VALUE path = rb_funcallv(a0, NS(id_path), 0, NULL);
257
259 VAL2STRN(rb_funcallv(a0, NS(id_label), 0, NULL)),
260 VAL2STRN(rb_funcall(rb_cFile, NS(id_bn), 1, path)),
261 VAL2I32(rb_funcallv(a0, NS(id_lineno), 0, NULL))
262 );
263}
#define MkErrorStackFormat(...)

◆ rbmkkernel_LngListToMkBufferListS()

static enum MkErrorE rbmkkernel_LngListToMkBufferListS ( OT_Prefix_ARGS VALUE argsO,
MK_BFL * argsP )
static

Definition at line 304 of file LibMkKernel_rb.c.

308 {
309 MK_BFL args = *argsP;
310 //MK_BFL orig = args;
311 if (!OT_LNG_ARRAY_IS(argsO)) {
312 return MK_OK;
313 } else {
314 *argsP = NULL;
315 long len = rb_array_len(argsO);
316 if (args == NULL) args = MkBufferListCreate (rb_long2int(len));
317 for (long i=0; i<len; i++) {
318 MkBufferListAppendSTR(args, VAL2STRN(rb_ary_entry(argsO,i)));
319 }
320 }
321 *argsP = args;
322 return MK_OK;
323}
#define OT_LNG_ARRAY_IS(o)
#define MkBufferListAppendSTR(...)
#define MkBufferListCreate(...)
@ MK_OK
(persistent) everything is OK.
The CLASS used to store a list of MkBufferS items into a flat array…

◆ rbmkkernel_LngTupleToMkBufferListS()

enum MkErrorE rbmkkernel_LngTupleToMkBufferListS ( SETUP_ARGS ,
int * origskip,
MK_BFL * argsP )

Definition at line 325 of file LibMkKernel_rb.c.

329 {
330 MK_BFL args = *argsP;
331 int skip = origskip==NULL ? 0 : *origskip;
332 if (objv == NULL) {
333 return MK_OK;
334 } else {
335 *argsP = NULL;
336 if (args == NULL) args = MkBufferListCreate (objc-skip);
337 for (; skip < objc; skip++) {
338 MkBufferListAppendSTR(args, VAL2STRN(objv[skip]));
339 }
340 }
341 *origskip = skip;
342 *argsP = args;
343 return MK_OK;
344}

◆ rbmkkernel_MkKernel_Init()

void rbmkkernel_MkKernel_Init ( MK_RT mkrt)

Definition at line 587 of file LibMkKernel_rb.c.

587 {
588 MK(MkKernel) = rb_define_module("MkKernel");
589
590 OT_METH_S ( MkKernel, M, RubyMsgque_M )
591 OT_METH_O ( MkKernel, M, RubyMsgque_M )
592
593 OT_METH_S ( MkKernel, printObj, RubyMsgque_printObj )
594 OT_METH_O ( MkKernel, printObj, RubyMsgque_printObj )
595
596// BEGIN-CLASS - created by 'rb_MqS.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
597
598// doc-key: MkKernel,EnumFunc,sco
599OT_METH_O ( MkKernel, ErrorE_FromInt, MkKernel_ErrorE_FromInt )
600OT_METH_S ( MkKernel, ErrorE_FromInt, MkKernel_ErrorE_FromInt )
601OT_METH_O ( MkKernel, IdSE_FromInt, MkKernel_IdSE_FromInt )
602OT_METH_S ( MkKernel, IdSE_FromInt, MkKernel_IdSE_FromInt )
603OT_METH_O ( MkKernel, TimeoutE_FromInt, MkKernel_TimeoutE_FromInt )
604OT_METH_S ( MkKernel, TimeoutE_FromInt, MkKernel_TimeoutE_FromInt )
605OT_METH_O ( MkKernel, TypeE_FromInt, MkKernel_TypeE_FromInt )
606OT_METH_S ( MkKernel, TypeE_FromInt, MkKernel_TypeE_FromInt )
607
608// doc-key: MkKernel,EnumFunc,sm_
609OT_METH_O ( MkKernel, ErrorE_ToInt, MkKernel_ErrorE_ToInt )
610OT_METH_S ( MkKernel, ErrorE_ToInt, MkKernel_ErrorE_ToInt )
611OT_METH_O ( MkKernel, ErrorE_ToString, MkKernel_ErrorE_ToString )
612OT_METH_S ( MkKernel, ErrorE_ToString, MkKernel_ErrorE_ToString )
613OT_METH_O ( MkKernel, IdSE_ToInt, MkKernel_IdSE_ToInt )
614OT_METH_S ( MkKernel, IdSE_ToInt, MkKernel_IdSE_ToInt )
615OT_METH_O ( MkKernel, IdSE_ToString, MkKernel_IdSE_ToString )
616OT_METH_S ( MkKernel, IdSE_ToString, MkKernel_IdSE_ToString )
617OT_METH_O ( MkKernel, TimeoutE_ToInt, MkKernel_TimeoutE_ToInt )
618OT_METH_S ( MkKernel, TimeoutE_ToInt, MkKernel_TimeoutE_ToInt )
619OT_METH_O ( MkKernel, TimeoutE_ToString, MkKernel_TimeoutE_ToString )
620OT_METH_S ( MkKernel, TimeoutE_ToString, MkKernel_TimeoutE_ToString )
621OT_METH_O ( MkKernel, TypeE_ToInt, MkKernel_TypeE_ToInt )
622OT_METH_S ( MkKernel, TypeE_ToInt, MkKernel_TypeE_ToInt )
623OT_METH_O ( MkKernel, TypeE_ToString, MkKernel_TypeE_ToString )
624OT_METH_S ( MkKernel, TypeE_ToString, MkKernel_TypeE_ToString )
625
626// doc-key: MkKernel,Setup,sm_
627OT_METH_O ( MkKernel, Cleanup, MkKernel_Cleanup )
628OT_METH_S ( MkKernel, Cleanup, MkKernel_Cleanup )
629OT_METH_O ( MkKernel, Setup, MkKernel_Setup )
630OT_METH_S ( MkKernel, Setup, MkKernel_Setup )
631
632// END-CLASS - created by 'rb_MqS.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
633
634// BEGIN-OBJ - created by 'rb_MqS.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
635
636// → no data
637
638// END-OBJ - created by 'rb_MqS.tcl -i NHI1_HOME/theKernel/c/gen/c_mkkernel.meta' - DO NOT change
639
640}
#define OT_METH_S(c, s, f)
#define OT_METH_O(c, s, f)

◆ rbmkkernel_Obj_AsSTR_COPY()

enum MkErrorE rbmkkernel_Obj_AsSTR_COPY ( OT_Check_ARGS ,
MK_STR ret,
size_t size )

Definition at line 289 of file LibMkKernel_rb.c.

289 {
290 if ((*skipP) >= objc) {
291 return WrongNumArgs(hdl,(*skipP), objc, -999, +999, arg);
292 }
293 VALUE obj = objv[(*skipP)++];
294 strncpy(ret,VAL2STRN(obj),size);
295 return MK_OK;
296}
#define WrongNumArgs(...)

◆ rbmkkernel_Obj_AsSTRN()

enum MkErrorE rbmkkernel_Obj_AsSTRN ( OT_Check_ARGS ,
MK_STRN * retP )

Definition at line 273 of file LibMkKernel_rb.c.

273 {
274 if ((*skipP) >= objc) {
275 return WrongNumArgs(hdl,(*skipP), objc, -999, +999, arg);
276 }
277 VALUE obj = objv[(*skipP)++];
278 VALUE strO = rb_obj_as_string(obj);
279 long len = RSTRING_LEN(strO);
280 MK_STRN ret = RSTRING_PTR(strO);
281 // mark=MK_NULL
282 if (MK_NULL_STR_CHECK(ret,len)) {
283 ret = NULL;
284 }
285 *retP = ret;
286 return MK_OK;
287}
static bool MK_NULL_STR_CHECK(char const *const __str, const long int __len)
check if __str is MK_NULL_STR return true or false …
const MK_STRB * MK_STRN
constant string pointer data-type

◆ rbmkkernel_printLNG_STACK()

void rbmkkernel_printLNG_STACK ( MK_RT mkrt,
MK_MNG mng )

Definition at line 201 of file LibMkKernel_rb.c.

201 {
202 VALUE arg;
203 VALUE ary = rb_funcall(rb_mKernel, NS(id_caller), 0,0);
204 while ((arg = rb_ary_shift(ary)) != Qnil) {
205 printXC2(mng, VAL2STRN(arg));
206 }
207}

◆ rbmkkernel_RubyMsgque_M()

static OT_ProcRet rbmkkernel_RubyMsgque_M ( OtClass_ARGS )
static

Definition at line 554 of file LibMkKernel_rb.c.

554 {
556 OT_SETUP_VARARGS(1,1,"M(repeat*10)")
557 VALUE strO = 0;
562 strO = rb_funcall(rb_obj_as_string(strO), rb_intern("*"), 1, INT2VAL(17));
563 MkLogV_4M(MK_ERROR_PRINT,proc,0, "%s [%s:%d]\n", VAL2STRN(strO), file, line);
565}
#define OT_SETUP_hdl_static
#define OT_SETUP_VARARGS(min, max, d)
#define OT_CHECK_REQUIRED(val)
#define OT_retObj_SET_None
#define INT2VAL(nat)
#define OT_retObj_RETURN
#define OT_GET_CALL_ALL
#define OT_CHECK_NOARGS
#define OT_CHECK_LNG_T(val)

◆ rbmkkernel_RubyMsgque_printObj()

static OT_ProcRet rbmkkernel_RubyMsgque_printObj ( OtClass_ARGS )
static

Definition at line 567 of file LibMkKernel_rb.c.

567 {
569 OT_SETUP_VARARGS(1,2,"printObj object ?caller?")
570 VALUE obj = 0;
572 MK_STRN caller = NULL;
576 if (caller == NULL) caller = OT_GET_CALL_PROC;
577 MK(_printObj)(MK_RT_CALL obj,caller);
579}
#define OT_GET_CALL_PROC
#define OT_CHECK_OPTIONAL(val)
#define OT_CHECK_STRN(val)
#define MK_RT_CALL

◆ rbmkkernel_SysExit()

static int rbmkkernel_SysExit ( MK_RT mkrt,
int isThread,
int num )
static

Definition at line 773 of file LibMkKernel_rb.c.

777 {
778 if (isThread) {
779 rb_protect(MK(SysExit2),Qnil,NULL);
780 } else {
781 if (MkRefCidN_NULL() == 0) {
782 // 0 = toplevel
783 rb_exit(num);
784 }
785 }
786 exit(num);
787 return num;
788}
#define MkRefCidN_NULL()

◆ rbmkkernel_SysExit2()

static VALUE rbmkkernel_SysExit2 ( VALUE dummy)
static

Definition at line 767 of file LibMkKernel_rb.c.

767 {
768 VALUE thread = rb_thread_current();
769 DECR_REG(thread);
770 rb_thread_kill(thread);
771 return Qnil;
772}
#define DECR_REG(val)

Variable Documentation

◆ rbmkkernel_cEnum

VALUE rbmkkernel_cEnum = 0

Definition at line 20 of file LibMkKernel_rb.c.

◆ rbmkkernel_globalRef

VALUE rbmkkernel_globalRef = 0

Definition at line 19 of file LibMkKernel_rb.c.

◆ rbmkkernel_id_arity

ID rbmkkernel_id_arity

Definition at line 31 of file LibMkKernel_rb.c.

◆ rbmkkernel_id_bind

ID rbmkkernel_id_bind

Definition at line 34 of file LibMkKernel_rb.c.

◆ rbmkkernel_id_bn

ID rbmkkernel_id_bn

Definition at line 28 of file LibMkKernel_rb.c.

◆ rbmkkernel_id_caller

ID rbmkkernel_id_caller

Definition at line 24 of file LibMkKernel_rb.c.

◆ rbmkkernel_id_caller_locations

ID rbmkkernel_id_caller_locations

Definition at line 25 of file LibMkKernel_rb.c.

◆ rbmkkernel_id_clone

ID rbmkkernel_id_clone

Definition at line 32 of file LibMkKernel_rb.c.

◆ rbmkkernel_id_enum_attr

ID rbmkkernel_id_enum_attr

Definition at line 36 of file LibMkKernel_rb.c.

◆ rbmkkernel_id_full_message

ID rbmkkernel_id_full_message

Definition at line 38 of file LibMkKernel_rb.c.

◆ rbmkkernel_id_label

ID rbmkkernel_id_label

Definition at line 26 of file LibMkKernel_rb.c.

◆ rbmkkernel_id_lineno

ID rbmkkernel_id_lineno

Definition at line 29 of file LibMkKernel_rb.c.

◆ rbmkkernel_id_path

ID rbmkkernel_id_path

Definition at line 27 of file LibMkKernel_rb.c.

◆ rbmkkernel_id_receiver

ID rbmkkernel_id_receiver

Definition at line 35 of file LibMkKernel_rb.c.

◆ rbmkkernel_id_to_i

ID rbmkkernel_id_to_i

Definition at line 37 of file LibMkKernel_rb.c.

◆ rbmkkernel_id_unbind

ID rbmkkernel_id_unbind

Definition at line 33 of file LibMkKernel_rb.c.

◆ rbmkkernel_InitError

VALUE rbmkkernel_InitError = 0

Definition at line 21 of file LibMkKernel_rb.c.

◆ rbmkkernel_MkErrorE

VALUE rbmkkernel_MkErrorE

Definition at line 42 of file LibMkKernel_rb.c.

◆ rbmkkernel_MkIdSE

VALUE rbmkkernel_MkIdSE

Definition at line 43 of file LibMkKernel_rb.c.

◆ rbmkkernel_MkKernel

VALUE rbmkkernel_MkKernel = 0

Definition at line 18 of file LibMkKernel_rb.c.

◆ rbmkkernel_MkTimeoutE

VALUE rbmkkernel_MkTimeoutE

Definition at line 44 of file LibMkKernel_rb.c.

◆ rbmkkernel_MkTypeE

VALUE rbmkkernel_MkTypeE

Definition at line 45 of file LibMkKernel_rb.c.

◆ rbmkkernel_NULL_STR

VALUE rbmkkernel_NULL_STR = 0

Definition at line 22 of file LibMkKernel_rb.c.