12: 2008-11-21 (金) 17:46:55 [6] | 13: 2008-11-27 (木) 17:45:32 [7] | ||
---|---|---|---|
Line 55: | Line 55: | ||
-[000007] void jg01_tekdecomp(int srcsiz, char *p, char *q, int *retcod) | -[000007] void jg01_tekdecomp(int srcsiz, char *p, char *q, int *retcod) | ||
--tek展開関係。詳細省略。 | --tek展開関係。詳細省略。 | ||
+ | -[000007] void jg01_rjc(int mod, int siz, char *p, int ofs0, int oofs, int oofs1, int *retcod) | ||
+ | --rjc関係。詳細省略。 | ||
-[000008] void jg01_malloc(int bytes, void **p) | -[000008] void jg01_malloc(int bytes, void **p) | ||
--システムからメモリをもらう。これはbss領域の中を切り分けてもらうなどではなく、それとは別に追加でもらうメモリである。失敗する可能性は十分にあり、失敗すると*pに-1が返される。 | --システムからメモリをもらう。これはbss領域の中を切り分けてもらうなどではなく、それとは別に追加でもらうメモリである。失敗する可能性は十分にあり、失敗すると*pに-1が返される。 | ||
Line 63: | Line 65: | ||
--そういう事情により、このAPIを呼んだ場合しばらくアプリに帰ってこられない場合もありうる。それが困る場合は、上記のjg01_malloc()を使用すること。 | --そういう事情により、このAPIを呼んだ場合しばらくアプリに帰ってこられない場合もありうる。それが困る場合は、上記のjg01_malloc()を使用すること。 | ||
--このファンクションでもらったメモリは原則としてデータ用で、ページに実行可能属性を付与されることは保証していない。 | --このファンクションでもらったメモリは原則としてデータ用で、ページに実行可能属性を付与されることは保証していない。 | ||
+ | -[000008] void jg01_malloc_e(int bytes, void **p) | ||
+ | --このファンクションでもらったメモリは読み書きのほかに実行もできる。それ以外はjg01_malloc()と同じ。ちなみに起動時に与えられる.dataセクションや.bssセクションやスタックには実行可能権限の付与が保証されていない。 | ||
+ | -[000008] void jg01_malloc1_e(int bytes, void **p, int i) | ||
+ | --このファンクションでもらったメモリは読み書きのほかに実行もできる。それ以外はjg01_malloc1()と同じ。ちなみに起動時に与えられる.dataセクションや.bssセクションやスタックには実行可能権限の付与が保証されていない。 | ||
-[000009] void jg01_mfree(int bytes, void *p) | -[000009] void jg01_mfree(int bytes, void *p) | ||
- | --jg01_malloc()でもらったメモリを返す。部分的に返すこともできるし、bssの一部などもらってないメモリを返すこともできる。pが-1だと何もしない。アプリの終了時にはメモリは勝手に返されるので、終了処理中にmfreeする必要はない。 | + | --jg01_malloc()類でもらったメモリを返す。部分的に返すこともできるし、bssの一部などもらってないメモリを返すこともできる。pが-1だと何もしない。アプリの終了時にはメモリは勝手に返されるので、終了処理中にmfreeする必要はない。 |
--ちなみにefg01のひどい手抜き実装だと、mfreeが何もしないということもありうる(苦笑)。 | --ちなみにefg01のひどい手抜き実装だと、mfreeが何もしないということもありうる(苦笑)。 |
(This host) = http://osask.net