---
name: "kobject_add"
section: "9"
platform: "linux"
package: "linux-manual-3.16"
version: "3.16.56-1+deb8u1"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/kobject_add"
---

# kobject\_add(9)

the main kobject add function

## NAME

kobject\_add - the main kobject add function

## SYNOPSIS

**int kobject\_add(struct kobject \*** *kobj***, struct kobject \*** *parent***, const char \*** *fmt***,** *...***);**

## ARGUMENTS

*kobj*

the kobject to add

*parent*

pointer to the parent of the kobject.

*fmt*

format to name the kobject with.

*...*

variable arguments

## DESCRIPTION

The kobject name is set and added to the kobject hierarchy in this function.

If *parent* is set, then the parent of the *kobj* will be set to it. If *parent* is NULL, then the parent of the *kobj* will be set to the kobject associated with the kset assigned to this kobject. If no kset is assigned to the kobject, then the kobject will be located in the root of the sysfs tree.

If this function returns an error, **kobject\_put** must be called to properly clean up the memory associated with the object. Under no instance should the kobject that is passed to this function be directly freed with a call to **kfree**, that can leak memory.

Note, no “add” uevent will be created with this call, the caller should set up all of the necessary sysfs files for the object and then call **kobject\_uevent** with the UEVENT\_ADD parameter to ensure that userspace is properly notified of this kobject's creation.

## COPYRIGHT
