{
{   The purpose of this request is to create a scratch segment.
{   Scratch segments are temporary segments that have no name and
{   exist only until deleted via the mmp$delete_scratch_segment request,
{   or until the creating task terminates.
{
{      MMP$CREATE_SCRATCH_SEGMENT (POINTER_KIND, ACCESS_SELECTIONS,
{            POINTER, STATUS)
{
{ POINTER_KIND: (input) This parameter specifies the type of pointer
{       to be constructed for the segment.
{
{ ACCESS_SELECTIONS: (input) This parameter specifies the mode of
{       access to the segment (sequential or random).
{
{ POINTER: (output) This parameter specifies the process virtual
{       address assigned to the segment.  The byte offset in the PVA
{       is set to zero.
{
{ STATUS: (output) This parameter specifies the request status.
{       The possible error codes are:
{             dme$unable_to_locate_fde
{             dme$unable_to_get_fd_lock
{             mme$address_not_0_mod_16384
{             mme$asid_specified
{             mme$binding_attribute_invalid
{             mme$contig_mem_seg_violation
{             mme$execute_global_invalid
{             mme$invalid_asid_specified
{             mme$invalid_length_requested
{             mme$invalid_pva
{             mme$invalid_ring_brackets
{             mme$invalid_shadow_segment
{             mme$invalid_shared_taskid
{             mme$length_not_0_mod_16384
{             mme$pages_already_assigned
{             mme$ref_to_unrecovered_file
{             mme$ring_violation
{             mme$segment_number_is_in_use
{             mme$segment_number_not_in_use
{             mme$segment_number_too_big
{             mme$segment_origin_change
{             mme$segment_origin_invalid
{             mme$segment_table_is_full
{             mme$software_attribute_invalid
{             mme$unable_to_assign_contig_mem
{             mme$unsupported_keyword
{

