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

FreeBSD Manual Pages

  
 
  

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 becomes itself	the list head.
       The type	parameter can take two values :

	      EXTERNAL		  The  signal is attached to at	least one con-
				  nector of the	figure.

	      INTERNAL		  The signal is	only attached to  instance  or
				  transistor 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.0>

home | help