{
{  The purpose of this request is to unlock a segment that was previously
{ locked via the mmp$lock_segment request. Any tasks that are queued waiting
{ for access to the segment are made 'ready' if no usage conflicts exist with
{ other concurrent users of the segment.
{
{  If the task unlocking the segment had the segment locked for write, the task
{ may cause any of the following operations to be done on each 'modified' page
{ in the segment:
{      . free -  The contents of the page are discarded and not written to disk.
{      . remove_from_working_set - Remove the pages from the working set.
{                Pages are placed in the available queue and may be reclaimed
{                later without having to do IO if the pages have not been reused.
{                (IO MAY be initiated if modified pages are removed.)
{      . write - All modified pages are written to disk.
{      . protected_write - All modified pages are written to disk. In addition,
{                no task will be allowed to modify the pages until the write is
{                completed.
{      . none -  No action is taken with the pages, ie. left in the working set.
{
{  The segment is unlocked immediately as a result of this request without
{ regard to any IO initiated as a result of the <write_option>.  If other tasks
{ attempt to lock the segment while the IO is active, the lock request is
{ accepted unless it conflicts with other concurrent users. If a task attempts
{ to access a page for which IO is still active as a result of a previous
{ 'protected_write', the task is queued until the IO is completed.
{
{        MMP$UNLOCK_SEGMENT (PVA, WRITE_OPTION, WAIT, STATUS)
{
{ PVA: (input) This parameter specifies the segment to be locked.
{
{ WRITE_OPTION: (input) This parameter specifies the disposition of modified
{               pages.  (see above for additional information)
{
{ WAIT: (input) This parameter specifies whether or not to wait for IO
{               completion on any IO requests initiated as a result of the
{               <write_option>.
{
{ STATUS: (output) This parameter specifies the request status.
{               The possible error codes are:
{                     dfe$server_has_terminated
{                     mme$invalid_pva
{                     mme$invalid_request
{                     mme$io_write_error
{                     mme$ref_to_unrecovered_file
{                     mme$segment_not_locked
{                     mme$volume_unavailable
{

