?? EJECT ??
  PROCEDURE [INLINE] rfp$release_wired_buffers(buffer_list: rft$buffer_list;
                                               buffer_count: rft$buffer_count);

{    The purpose of this request is to call the NAM/VE buffer manager to release
{    a list of buffers in the network wired section.
{
{    buffer_list: (input) This parameter specifies the list of buffers to release.
{
{    buffer_count: (input) This parameter specifies the number of buffers to release.

    VAR
        message_id: nlt$bm_message_id,
        descriptor_ptr: ^^nlt$bm_message_descriptor,
        index: rft$buffer_count;

    IF buffer_count <> 0 THEN
      descriptor_ptr := ^message_id.descriptor;
      message_id.sequence_number := buffer_list [1].descriptor^.sequence_number;

      FOR  index := 1  TO  buffer_count  DO
        descriptor_ptr^ := buffer_list[index].descriptor;
        descriptor_ptr := ^descriptor_ptr^^.link;
      FOREND;

      descriptor_ptr^ := NIL;

      nlp$bm_release_message(message_id);
      rfp$lock_table (rfv$network_wired_buffers.lock);
      rfv$network_wired_buffers.current_buffers := rfv$network_wired_buffers.
            current_buffers - buffer_count;
      rfp$unlock_table (rfv$network_wired_buffers.lock);
    IFEND;

  PROCEND rfp$release_wired_buffers;
?? PUSH (LISTEXT := ON) ??
*copyc nlp$bm_release_message
*copyc rft$r1_interface_defs
*copyc rfv$network_wired_buffers
?? POP ??

