* Universal eXecutable Protocol
-(by [[K]], 2016.09.24)

** これは何?
-[[uxf]]でプログラムを書いていると、デバッグのためにprintfなどを使いたくなることがある。しかしuxfはダイナミックリンクを考慮していないので、基本的にそういうことはできない。
--そもそもuxfでは入出力は一切しないで、メモリ上で簡単な処理を高速に実行することだけを想定している。
-uxfにダイナミックリンクの機構を入れようかとも思ったけど、デバッグのためにそこまでやるのもどうかと思い、以下の代用方法を考えた。

** 書き方
 void (*uxp)(void *uxph, const void **);
 
 int (*upx_printf)(const char *fmt, ...);
 
 void *cmds[] = {
    (void *) 0x0010, &upx_printf, "printf", NULL,
    (void *) 0x0000
 };
 
 void entry(char *bytes, int size, void *uxpp, void *uxph)
 {
     uxp = uxpp;
     uxp(uxph, cmds);
     uxp_printf("hello!\n");
 }


* こめんと欄
-結局、uxfにexternリンクの仕様を入れることにしたので、このアイデアは没の方向で。 -- [[K]] SIZE(10){2016-09-24 (土) 15:25:13}

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS