
  PROCEDURE [INLINE] nlp$sk_tcp_deactivate_layer
    (    cl_connection: ^nlt$cl_connection;
         tcp_connection: ^nlt$tcp_socket_layer);

?? PUSH (LISTEXT := ON) ??

    VAR
      next_received_data: ^nlt$tcp_received_data,
      next_receiver_task: ^nlt$tcp_receiver_task,
      next_sender_task: ^nlt$tcp_sender_task,
      received_data: ^nlt$tcp_received_data,
      receiver_task: ^nlt$tcp_receiver_task,
      sender_task: ^nlt$tcp_sender_task;

{ Free the pool of received data entries.

    received_data := tcp_connection^.available_data_pool;
    WHILE received_data <> NIL DO
      next_received_data := received_data^.next_entry;
      FREE received_data IN nav$network_paged_heap^;
      received_data := next_received_data;
    WHILEND;

{ Free the pool of receiver task entries.

    receiver_task := tcp_connection^.available_receiver_pool;
    WHILE receiver_task <> NIL DO
      next_receiver_task := receiver_task^.next_entry;
      FREE receiver_task IN nav$network_paged_heap^;
      receiver_task := next_receiver_task;
    WHILEND;

{ Free the pool of sender task entries.

    sender_task := tcp_connection^.available_sender_pool;
    WHILE sender_task <> NIL DO
      next_sender_task := sender_task^.next_entry;
      FREE sender_task IN nav$network_paged_heap^;
      sender_task := next_sender_task;
    WHILEND;

    nlp$cl_deactivate_layer (nlc$tcp_interface, cl_connection);

  PROCEND nlp$sk_tcp_deactivate_layer;

*copy nlh$sk_tcp_deactivate_layer
*copyc nlp$cl_deactivate_layer

*copyc nlt$cl_connection
*copyc nlt$tcp_received_data
*copyc nlt$tcp_receiver_task
*copyc nlt$tcp_sender_task
*copyc nlt$tcp_socket_layer
*copyc nav$network_paged_heap
?? POP ??
