_dos_allocmem, _dos_freemem, _dos_setblock - DOS窓メモリ管理

【書式】

#include <dos.h>

unsigned _dos_allocmem(unsigned size, unsigned *seg);

unsigned _dos_freemem(unsigned seg);

unsigned _dos_setblock(unsigned size, unsigned seg, unsigned

*maxsize);

【解説】

_dos_allocmem() はDOS窓システムコール0x48によってsizeパラグラフのメ

モリブロックを割り当てます。成功すると*segにそのセグメントディスクリ

プタをセットします。失敗すると*segには割り当て可能な最大のパラグラフ

数をセットします。

_dos_freemem()は_dos_allocmem()によって割り当てられたsegで示されるメ

モリブロックを解放します。DOS窓システムコール0x49を実行します。

_dos_setblock()はDOS窓システムコール0x4Aを実行し、_dos_allocmem()に

よって割り当てられたseg で示されるメモリブロックのパラグラフサイズを

sizeに変更します。失敗すると*maxsizeに使用可能な最大のパラグラフ数を

セットします。

【リターン値】

それぞれ、成功すると0を返します。失敗するとerrnoをセットし、DOS窓の

エラーコードを返します。

【エラー】

ENOMEM

メモリが不足しました

ENOMEM

MCB が破壊されています

ENOMEM

セグメントディスクリプタが不正です

【可搬性】

DOS窓

【参照】

malloc(3)

【copyright (c) 安江正樹@東海大学理学部物理学科】