Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
ADDLOSIG(3)		      MBK LOGICAL FUNCTIONS		     ADDLOSIG(3)

NAME
     addlosig - create a logical signal

SYNOPSIS
     #include "mlo.h"
     losig_list *addlosig(ptfig, index, namechain, type)
     lofig_list *ptfig;
     long index;
     chain_list *namechain;
     char type;

PARAMETERS
     ptfig		 Pointer  to  the  figure  in which the signal should be
			 added

     index		 Signal index

     namechain		 List of names of the signal

     type		 Signal type

DESCRIPTION
     addlosig creates a new signal, and adds it to the list of	signals  pointed
     to  by  ptfig->LOSIG. The new signal is added in front of the list, and be-
     comes itself the list head.
     The type parameter can take two values :

	    EXTERNAL		The signal is attached to at least one connector
				of the figure.

	    INTERNAL		The signal is only attached to instance or tran-
				sistor connector.
     The index and type arguments fill the INDEX and TYPE fields of the losig(3)
     structure. The index is the signal identifier, so it should be unique at  a
     given hierarchical level.
     The  namechain  argument  is  a  list of names, given in a chain_list.  See
     chain(3) for details.

RETURN VALUE
     addlosig returns a pointer to the newly created signal.

ERRORS
     "*** mbk error *** addlosig impossible signal index already exist in figure
     ptfig->NAME"
	    The index is already used in an other signal,  and	since  it's  the
	    signal identifier, it can't be.

EXAMPLE
     #include "mlo.h"
     losig_list *merge_and_create(pt, s0, s1) /* merge two signal in a third */
     lofig_list *pt;
     losig_list *s0, *s1;
     {
     chain_list *c;
     losig_list *s;
     long max_index;
	/* merge names */
	for (c = s0->NAMECHAIN; c; c = c->NEXT)
	   s1->NAMECHAIN = addchain(s1->NAMECHAIN, c);
	/* find maximum index */
	for (s = pt->LOSIG; s; s = s->NEXT)
	   if (max_index < s->INDEX)
	      max_index = s->INDEX;
	s = addlosig(pt, ++max_index, s1->NAMECHAIN,
	      s0->TYPE == EXTERNAL || s1->TYPE == EXTERNAL ?
	      EXTERNAL : INTERNAL);
	dellosig(pt, s0);
	dellosig(pt, s1);
	return s;
     }

SEE ALSO
     mbk(1), lofig(3), losig(3), getlosig(3), dellosig(3).

ASIM/LIP6			 October 1, 1997		     ADDLOSIG(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=addlosig&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help