|
���
brkctl - pa��e�ae� �a���e � y�a�e��o� ce��e��e
���������
#include <sys/brk.h> char far *brkctl (command, increment, ptr) int command; long increment; char far *ptr;
��������
C�c�e���� ���o� brkctl ���e��e� ��� oc�o�o��ae� �a���� �
�o�o����e����x ce��e��ax �a���x � c�y�ae �a�o� ��� cpe��e�
�o�e�� pac�pe�e�e��� �a����. ��� �o�o, ��o�� �o������op C�
�o� �c�o���o�a�� �o��pa�ae��e ��a�e��� � �po�pa��ax �a�o� �
cpe��e� �o�e��, brkctl �o��e� �o��pa�a�� ������� (far)
y�a�a�e��. �p� �c�o���o�a��� o��ca�e�� far � �po�pa��ax
�o�������� �o���a ���o�����c� c ��a�o� -Me �p� �a�o� �o�e��
� c ��a�o� -Mme �p� cpe��e�.
Ap�y�e�� command �o�e� ��e�� o��o �� c�e�y���x ��a�e���: BR_ARGSEG, BR_NEWSEG ��� BR_IMPSEG.
increment ����e�c� ������� ��c�o� co ��a�o�. �p� �o��o��oc�� o� �o��e� ���� �e���e 64K; ec�� o� o�p��a�e�e�, e�o a�co����oe ��a�e��e �o���o ���� �e���e cy��� ���� �cex y�a��e��x ce��e��o� ���c �a����, ���e�e��a� � �����e� ce��e��e �oc�e co��a��� �po�ecca.
ptr �c�o���ye�c� �o���o, ec�� command pa�e� BR_ARGSEG.
Ec�� increment �o�o���e�e�, brkctl �o��pa�ae� ������� y�a�a�e�� �a ���e�e���� y�ac�o� �a����; ���e��e�c�, �o �pa��e� �epe, uncrement �a��o�.
Ec�� ap�y�e�� command pa�e� BR_IMPSEG � o�p��a�e����� increment �����ae� oc�o�o��e��e o��o�o ��� �ec�o����x ce��e��o�, �o��pa�ae�oe ��a�e��e �p��a��e��� �oc�e��e�y �� oc�a���xc� ce��e��o�. BR_IMPSEG ��ee� � ���y �c�o���o�a��e �oc�e��e�o ce��e��a �a���x. He�a��c��o o� �o�o, ��ee� �po�ecc �a�y� ��� cpe���� �o�e�� �a���� � ��ee� � �a���� �o�e�� �o���o o��� ce��e�� �a���x, �o�o���e����� increment, �epe�o������� �oc�e���� ce��e�� �a���x, �����ae� co��a��e �o�o�o ce��e��a.
Ec�� ap�y�e�� command pa�e� BR_ARGSEG, a�co����oe ��a�e��e o�p��a�e���o�o increment �e �o���o �pe���a�� ����� ce��e��a. Ap�y�e�� ptr �o��e� ���� ������� y�a�a�e�e� �e�a��c��o o� �o�e�� �a����.
Ec�� ap�y�e�� command pa�e� BR_NEWSEG, increment �e �o�e� ���� o�p��a�e�����. B��e�e��e �a���� �ce��a �po�cxo��� o� �a�a�a �o�o�o ce��e��a.
Bo��pa�ae�oe ��a�e��e
brkctl �o��� �ce��a �o��pa�ae� ������� y�a�a�e�� � �a�ec��e
a�peca ���e�e��o�o y�ac��a �a����. B c�y�ae o�����
�o��pa�ae�c� (char far *)-1.
Ec�� increment �o���e 0, �o��pa�ae�oe ��a�e��e ����e�c� y�a�a�e�e� �a �a�a�o ���e�e��o�o y�ac��a �a����.
Ec�� increment �e���e ��� pa�e� �y��, �o��pa�ae�oe ��a�e��e ��o y�a�a�e�� �a �ep��� �e �p��a��e�a��� �po�eccy �a�� (o����o ��o a�pec oc�o�o��e��o�o y�ac��a �a����). Ec�� �oc�e���� �� oc�a���xc� ce��e��o� �o�o� (e�o ����a coc�a���e� po��o 64K), �o��pa�ae�oe ��a�e��e �o���o y�a���a�� �a�a�o c�e�y��e�o ce��e��a (�o�op�� �e o���a� cy�ec��o�a��).
B �e�o�, �e�c���� � �o��pa�ae��e ��a�e��� �o�y� ���� c�e�y�����:
brkctl (BR_ARGSEG, 0, ptr) Coo��ae� �oc�e���� a�pec � y�a�a��o� ce��e��e. brkctl (BR_ARGSEG, increment, ptr) ��e�����ae� y�a�a���� ce��e��. brkctl (BR_NEWSEG, 0) Co��ae� �o��� ce��e�� c �y�e�o� ����o�. brkctl (BR_NEWSEG, increment) Co��ae� �o��� ce��e�� c ����o�, pa��o� increment. brkctl (BR_IMPSEG, 0) Coo��ae� �oc�e���� a�pec � �oc�e��e� ce��e��e �e���x. Mo�e� oc�o�o���� �ec�o���o ce��e��o�. brkctl (BR__IMPSEG, increment) ��e�����ae� �oc�e���� ce��e��. B c�y�ae �o���o� �o�e�� �a���� (��� �a�o� � cpe��e� c �ec�o������ ce��e��a�� �a���x) �o�e� co��a�� �o��� ce��e��.
��. �����
cc(1), ld(1), machine(5), malloc(3), sbrk(3)
���������
C�c�e���� ���o� brkctl c�e�ye� �c�o���o�a�� �o���o ���
���a���ec�o�o pac�pe�e�e��� �a���� � �a�o� ��� cpe��e�
�o�e�� �a����. B �py��x c�y�a�x c�e�ye� �p��e���� sbrk(3),
malloc(3) � �py��e c�a��ap���e cpe�c��a UNIX.
�y����o��po�a��e brkctl �o�e� ���e����c� � �oc�e�y���x
pea���a���x c�c�e��.
brkctl � �ac�o��ee �pe�� �oc�y�e� �o���o � pea���a���x XENIX, �o��ep���a���x pe��� �a���� (protected mode).
He�a��c��o o� �o�e�� ce��e�� �a���x, o�pa�e��e � �o�opo�y ocy�ec����e�c� �o �opo��o�y y�a�a�e��, �o��e� ���� �ep��� ce��e��o� �a���x.
B��o� brkctl c BR_IMPSEG � o�p��a�e����� incremet �e �o�e� �p��e����c� � pa��e��e�o�y ce��e��y ��c�py����.
|