Manual browser: cdefs(3)

CDEFS(3) Library Functions Manual CDEFS(3)


cdefscommon definitions and macros


#include <sys/cdefs.h>


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


The <sys/cdefs.h> header was originally imported from 386BSD.
April 8, 2011 NetBSD 7.0