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

# locon(3)

mbk logical connector

## NAME

locon - mbk logical connector

## DESCRIPTION

The **locon** is used to describe a connector of the logical view	 of a figure. Connectors are describing the cell interface, and are the link between its physical and logical views, so the names must be the same.

The declarations needed to work on **locon** are available in the header file *"/labo/include/mlo404.h"*, where '*404*' is the actual mbk version.

The following C structure supports the description of the logical connector :

```
typedef struct locon {
	struct locon	∗NEXT;
	char	∗NAME;
	struct losig	∗SIG;
	void	∗ROOT;
	char	DIRECTION;
	char	TYPE;
	struct ptype	∗USER;
} locon_list;
```

- *NEXT*

  Pointer to the next **locon** of the list.

- *NAME*

  Name of the connector. It identifies the connector, so it should unique in a given logical figure. A logical connector with a given name correspond to the physical connector or connectors of this name.

- *SIG*

  Pointer to the signal linked to the connector. This signal is, of course,  unique. See [**losig**(3)](/losig/3.md) for details.

- *ROOT*

  Pointer to the object it belongs to. This object may be either a **lofig**, or a **loins**, depending on the type of the connector. See [**lofig**(3)](/lofig/3.md) and **loins** for details.

- *DIRECTION*

  This indicates the way of the information going through the connector. Six directions are legal :

  - **IN**

    input

  - **OUT**

    output

  - **INOUT**

    input and output

  - **UNKNOWN**

    no information is available

  - **TRISTATE**

    tristate output

  - **TRANSCV**

    tristate output and input

- *TYPE*

  Character indicating if the connector belongs to a model or an instance. It can take two values :

  - **EXTERNAL**

    for figure connectors

  - **INTERNAL**

    for instance connectors

  The *TYPE* is needed to appropriatly cast the *ROOT* field, and must be approriatly filled by the parsers. A misuse of it may cause strange behaviours.

- *USER*

  Pointer to a ptype list, see **ptype** for details, that is a general purpose pointer used to share informations on the connector.

## SEE ALSO

**mbk(1),** **[mbk(3)](/mbk/3.md),** [**addlocon**(3)](/addlocon/3.md), [**getlocon**(3)](/getlocon/3.md), [**dellocon**(3)](/dellocon/3.md), [**losig**(3)](/losig/3.md), [**ptype**(3)](/ptype/3.md), [**loins**(3)](/loins/3.md), [**lofig**(3)](/lofig/3.md).
