Set Segment Limit
Sets the limit field in the LDT descriptor for the specified
segment.
Call With:
AX = 0008H
BX = selector
CX:DX = 32-bit segment limit
Returns:
if function successful
Carry flag= clear
if function unsuccessful
Carry flag= set
AX = error code
8021H invalid value (CX <> 0 on a 16-bit DPMI
host; or the limit is greater than 1 MB,
but the low twelve bits are not set)
8022H invalid selector
8025H invalid linear address (changing the
limit would cause the descriptor to
reference a linear address range outside
that allowed for DPMI clients.)
Notes:
o The value supplied to the function in CX:DX is the byte
length of the segment-1 (i.e., the value returned by the
LSL instruction).
o Segment limits greater than or equal to 1 MB must be
page-aligned. That is, limits greater than 1 MB must
have the low 12 bits set.
o This function has an implicit effect on the "G"
(granularity) bit in an 80386 descriptor's extended
access rights/type byte; i.e., it is the host's
responsibility to set the "G" bit correctly.
o Client programs must use the LSL instruction to query the
limit for a descriptor. Note that on 80386 machines, the
client must use the 32-bit form of LSL if the segment
size is greater than 64 KB.
o A DPMI 1.0 host will reload any segment registers which
contain the selector specified in register BX. It is
suggested that DPMI 0.9 hosts also implement this.
o Refer to the rules for descriptor usage in Appendix D.