Updated: 2021/Apr/14


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 __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.

NetBSD 9.99                    November 10, 2019                   NetBSD 9.99