CDEFS(3)

CDEFS(3) | Library Functions Manual | CDEFS(3)

# NAME

`cdefs` —
common definitions and macros

# SYNOPSIS

`#include <sys/cdefs.h>`

# DESCRIPTION

The `<sys/cdefs.h>` header includes some common definitions and macros typical to the C language conventions of NetBSD. Among these are:

- Certain C language properties and definitions that are versioned according to the support in compilers. Examples include the __func__ keyword and the restrict type qualifier from C99.
- Macros and definitions specific to compilers, preprocessors, and linkers; see __CONCAT(3), __UNCONST(3), __USE(3), __insn_barrier(3), and attribute(3).
- Utility macros provided for convenience; see __arraycount(3) and bits(3).

The header also contains the `__RCSID`() and `__KERNEL_RCSID`() macros used for version control system (VCS) identifiers. Thus, all NetBSD source code files typically include `<sys/cdefs.h>`, included as the first thing right after any possible copyright texts;

    /*-
     * Copyright (c) 1984 John Doe
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms,
     * with or without modification, are permitted.
     */

    #include <sys/cdefs.h>
    __RCSID("$NetBSD: cdefs.3,v 1.4 2013/10/27 10:05:15 apb Exp $");

It is possible to identify the RCS keyword strings by using ident(1).

# SEE ALSO

ident(1), param(3), stddef(3), types(3), c(7)

# HISTORY

The `<sys/cdefs.h>` header was originally imported from 386BSD.

April 8, 2011 | NetBSD 9.5