---
name: "rtapi_pci"
section: "3rtapi"
platform: "linux"
package: "linuxcnc-uspace-dev"
version: "1:2.9.4-2+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/rtapi_pci"
---

# rtapi\_pci(3rtapi)

RTAPI wrappers for linux kernel functionality

## NAME

rtapi\_pci.h - RTAPI wrappers for linux kernel functionality

## SYNTAX

\#include \<rtapi\_pci.h\>

struct rtapi\_pci\_device\_id { ... };

struct rtapi\_pci\_resource { ... };

struct rtapi\_pci\_dev { ... };

struct rtapi\_pci\_driver { ... };

const char \*rtapi\_pci\_name(const struct rtapi\_pci\_dev \*pdev);

int rtapi\_pci\_enable\_device(struct rtapi\_pci\_dev \*dev);

void rtapi\_\_iomem \*rtapi\_pci\_ioremap\_bar(struct rtapi\_pci\_dev \*pdev, int bar);

int rtapi\_pci\_register\_driver(struct rtapi\_pci\_driver \*driver);

void rtapi\_pci\_unregister\_driver(struct rtapi\_pci\_driver \*driver);

int rtapi\_pci\_enable\_device(struct rtapi\_pci\_dev \*dev);

int rtapi\_pci\_disable\_device(struct rtapi\_pci\_dev \*dev);

\#define rtapi\_pci\_resource\_start(dev, bar) ...

\#define rtapi\_pci\_resource\_end(dev, bar) ...

\#define rtapi\_pci\_resource\_flags(dev, bar) ...

\#define rtapi\_pci\_resource\_len(dev,bar) ....

void rtapi\_pci\_set\_drvdata(struct rtapi\_pci\_dev \*pdev, void \*data)

void rtapi\_pci\_set\_drvdata(struct rtapi\_pci\_dev \*pdev, void \*data)

void rtapi\_iounmap(volatile void \*addr);

struct rtapi\_pci;

## DESCRIPTION

In kernel space, each rtapi\_xxx or RTAPI\_XXX identifier is mapped to the underlying kernel functionality, if available.

In userspace, or in kernels where the underlying functionality is not provided by a kernel, generally another implementation--possibly with reduced functionality--is provided.  (For example, the userspace implementation for rtapi\_pci\_register always succeeds)

## REALTIME CONSIDERATIONS

Typically, these functions may be called from realtime init/cleanup code.

## RETURN VALUE

As in Linux.

## SEE ALSO
