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

# addphvia(3)

create a physical via

## NAME

addphvia - create a physical via

## SYNOPSYS

```
#include "mph.h"
phvia_list ∗addphvia(ptfig, viatype, x, y)
phfig_list ∗ptfig;
char viatype;
long x, y;
```

## PARAMETERS

- *ptfig*

  Pointer to the figure in which the via should be added

- *viatype*

  Contact type

- *x, y*

  Coordinates of the center of the via.

## DESCRIPTION

**addphvia** creates a new via whose center is at the given coordinates, and adds it to the list of vias pointed to by *ptfig-\>PHVIA*. The new via is  added in front of the list, and becomes itself the list head.\
 The parameters *viatype*, *x* and *y* fill respectivly the *TYPE*, *XVIA* and *YVIA* fields of the *phvia* structure.\
 For a list of valid *viatype*s, and details on the structure, see [**phvia**(3)](/phvia/3.md).

## RETURN VALUE

**addphvia** returns a pointer to the newly created via.

## ERRORS

**"∗∗∗ mbk error ∗∗∗ illegal addphvia viatype :** *viatype* **at** *x***,** *y***"**

The via type is not a predefined contact. For a list of legal via types, see [**phvia**(3)](/phvia/3.md).

## EXAMPLE

```
#include "mph.h"
phvia_list ∗via_dup(pfd, pfs) /∗ duplicate vias ∗/
phfig_list ∗pfd, ∗pfs;
{
phvia_list ∗pv;
	for (pv = pfs->phvia; pv != NULL; pv = pv->NEXT)
		addphvia(pfd, pv->TYPE, ps->XVIA, ps->YVIA);
	return pfd->PHVIA;
}
```

## SEE ALSO

**mbk**(1), [**phfig**(3)](/phfig/3.md), [**phvia**(3)](/phvia/3.md), [**delphvia**(3)](/delphvia/3.md).
