> For the complete documentation index, see [llms.txt](https://book.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://book.bsdcn.org/man/man9/bus_add_child.9.md).

# BUS\_ADD\_CHILD.9

`BUS_ADD_CHILD` — 以给定优先级向设备树添加设备节点

## 名称

`BUS_ADD_CHILD`

## 概要

```c
#include <sys/param.h>
#include <sys/bus.h>
```

```c
device_t
BUS_ADD_CHILD(device_t dev, int order, const char *name,
    int unit)
```

## 描述

`BUS_ADD_CHILD` 方法由驱动程序的 identify 例程使用，用于向设备树添加设备。它也可用于在其他上下文中向实现了此例程的总线添加子设备，但其行为因总线而异。详见 [device\_add\_child(9)](/man/man9/device_add_child.9.md)。其接口与 [device\_add\_child(9)](/man/man9/device_add_child.9.md) 相同，但调用的是总线的 `BUS_ADD_CHILD` 方法。

实现 `BUS_ADD_CHILD` 的总线应使用 [device\_add\_child(9)](/man/man9/device_add_child.9.md) 将设备插入设备树，然后再向该设备添加诸如自身的实例变量和资源列表等内容。[device\_add\_child(9)](/man/man9/device_add_child.9.md) 不会调用 `BUS_ADD_CHILD`。相反，`BUS_ADD_CHILD` 会调用 [device\_add\_child(9)](/man/man9/device_add_child.9.md)。

对未实现 `BUS_ADD_CHILD` 的总线调用此方法将导致 panic。某些总线需要调用特定的总线专用例程，而非 `BUS_ADD_CHILD`。

## 返回值

`BUS_ADD_CHILD` 方法返回添加到设备树的 `device_t`，或返回 `NULL` 表示失败。

## 参见

[device(9)](/man/man9/device.9.md), [device\_add\_child(9)](/man/man9/device_add_child.9.md), [driver(9)](/man/man9/driver.9.md)

## 作者

本手册页由 M. Warner Losh 编写。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://book.bsdcn.org/man/man9/bus_add_child.9.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
