---
name: "addlocon"
section: "3"
platform: "linux"
package: "alliance"
version: "5.1.1-3"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/addlocon"
---

# addlocon(3)

create a logical connector

## NAME

addlocon - create a logical connector

## SYNOPSYS

```
#include "mlo.h"
locon_list ∗addlocon(ptfig, name, ptsig, dir)
lofig_list ∗ptfig;
char ∗name;
losig_list ∗ptsig;
char dir;
```

## PARAMETERS

- *ptfig*

  Pointer to the figure in which the connector should be added

- *name*

  Name of the connector

- *ptsig*

  Pointer on the signal linked to the connector

- *dir*

  Connector direction type

## DESCRIPTION

**addlocon** creates a new figure connector called *name* and adds it to the list of connectors pointed to by *ptfig-\>LOCON*. The new connector is added in front of the list, and becomes itself the list head.\
 The parameters *name*, *ptsig*, *dir*,  *width* fill respectivly the *NAME*, *SIG* and *DIR* fields of the *locon* structure. The name should be unique at a given  hierarchical level since it's the connector identifier.\
 The field *TYPE* is set to **EXTERNAL** since a cell connector is beeing created. The instance connectors are builded up by the [**addloins**(3)](/addloins/3.md) call. See [**addloins**(3)](/addloins/3.md) for details. For a list of valid *dir*, see [**locon**(3)](/locon/3.md).

## RETURN VALUE

**addlocon** returns a pointer to the newly created connector.

## ERRORS

**"∗∗∗ mbk error ∗∗∗ addlocon impossible :**  **connector** *name* **already exists in figure** *ptfig-\>NAME***"**

The *name* beeing the logical connector idenfier, two connectors may not have the same name in a given figure.

**"∗∗∗ mbk error ∗∗∗ addlocon impossible :** **bad direction** *dir* **in** *figure ptfig-\>NAME***"**

The *dir* does not have a legal value. For the set of legal values, see [*locon*(3)](/locon/3.md).

## EXAMPLE

```
#include "mlo.h"
locon_list ∗du_con(ptfig, ptcon) /∗ duplicate connector ∗/
lofig_list ∗ptfig;
locon_list ∗ptcon;
{
   return addlocon(ptfig, ptcon->NAME, ptcon->SIG, ptcon->DIR);
}
```

## SEE ALSO

**mbk**(1), [**locon**(3)](/locon/3.md), [**loins**(3)](/loins/3.md), [**lofig**(3)](/lofig/3.md), [**getlocon**(3)](/getlocon/3.md), [**dellocon**(3)](/dellocon/3.md), [**phcon**(3)](/phcon/3.md).
