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 __BIT(3), __BITS(3), __CONCAT(3), __FPTRCAST(3), __SHIFTIN(3), __SHIFTOUT(3), __SHIFTOUT_MASK(3), __UNCONST(3), __UNVOLATILE(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.5 2019/11/10 18:45:09 christos 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.