summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@oarcorp.com>2013-02-02 15:19:01 -0600
committerJoel Sherrill <joel.sherrill@oarcorp.com>2013-02-02 15:19:01 -0600
commitdd7b83550dfb73f5ec1b7dec3b21d730779ddeb2 (patch)
tree3db0eac5b55ed5edcf985baed9f19736c931de47
parentMerge branch 'master' of ssh://git.rtems.org/data/git/rtems (diff)
parentfstests/fsrdwr: Free allocated memory (diff)
downloadrtems-dd7b83550dfb73f5ec1b7dec3b21d730779ddeb2.tar.bz2
Merge branch 'master' of ssh://git.rtems.org/data/git/rtems
-rw-r--r--c/src/lib/libbsp/arm/edb7312/irq/irq.c4
-rw-r--r--c/src/lib/libbsp/arm/gba/start/start.S2
-rw-r--r--c/src/lib/libbsp/arm/gp32/Makefile.am2
-rw-r--r--c/src/lib/libbsp/arm/gp32/include/bsp.h12
-rw-r--r--c/src/lib/libbsp/arm/gp32/startup/bspidle.c23
-rw-r--r--c/src/lib/libbsp/arm/gp32/startup/bspstart.c25
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/configure.ac2
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/include/lpc17xx.h22
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/include/start-config.h4
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/irq/irq-dispatch.c6
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/irq/irq.c3
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/bspreset.c10
-rw-r--r--c/src/lib/libbsp/arm/lpc32xx/configure.ac2
-rw-r--r--c/src/lib/libbsp/arm/lpc32xx/console/console-config.c9
-rw-r--r--c/src/lib/libbsp/arm/lpc32xx/irq/irq.c8
-rw-r--r--c/src/lib/libbsp/arm/shared/lpc/network/lpc-ethernet.c3
-rw-r--r--c/src/lib/libbsp/arm/shared/start/start.S61
-rw-r--r--c/src/lib/libbsp/arm/smdk2410/Makefile.am2
-rw-r--r--c/src/lib/libbsp/m68k/mvme167/include/bsp.h11
-rw-r--r--c/src/lib/libbsp/m68k/mvme167/startup/bspclean.c19
-rw-r--r--c/src/lib/libbsp/m68k/mvme167/startup/bspstart.c54
-rw-r--r--c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/mpisr.c20
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/Makefile.am1
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/configure.ac2
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/i2c/i2c_init.c113
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/include/bsp.h2
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/startup/bsprestart.c46
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/startup/cpuinit.c13
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.br_uid1
-rw-r--r--c/src/lib/libbsp/powerpc/mpc55xxevb/configure.ac5
-rw-r--r--c/src/lib/libbsp/powerpc/mpc55xxevb/i2c/i2c_init.c9
-rw-r--r--c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-mmu.c14
-rw-r--r--c/src/lib/libbsp/powerpc/shared/src/memcpy.c4
-rw-r--r--c/src/lib/libbsp/powerpc/virtex4/include/irq.h2
-rw-r--r--c/src/lib/libbsp/powerpc/virtex4/irq/irq_init.c2
-rw-r--r--c/src/lib/libbsp/powerpc/virtex4/startup/bspstart.c4
-rw-r--r--c/src/lib/libbsp/powerpc/virtex5/include/irq.h7
-rw-r--r--c/src/lib/libbsp/powerpc/virtex5/irq/irq_init.c4
-rw-r--r--c/src/lib/libbsp/powerpc/virtex5/startup/bspstart.c4
-rw-r--r--c/src/lib/libbsp/shared/src/irq-server.c4
-rw-r--r--c/src/lib/libbsp/sparc/leon3/leon_open_eth/leon_open_eth.c2
-rw-r--r--c/src/lib/libbsp/sparc/leon3/shmsupp/getcfg.c48
-rw-r--r--c/src/lib/libbsp/sparc/leon3/shmsupp/lock.c25
-rw-r--r--c/src/lib/libbsp/sparc/leon3/shmsupp/mpisr.c30
-rw-r--r--c/src/lib/libcpu/arm/at91rm9200/irq/irq.c4
-rw-r--r--c/src/lib/libcpu/arm/lpc22xx/irq/irq.c4
-rw-r--r--c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c4
-rw-r--r--c/src/lib/libcpu/arm/pxa255/irq/irq.c4
-rw-r--r--c/src/lib/libcpu/arm/s3c24xx/irq/irq.c4
-rw-r--r--c/src/lib/libcpu/powerpc/mpc55xx/include/regs-mmu.h3
-rw-r--r--c/src/lib/libcpu/powerpc/mpc83xx/i2c/mpc83xx_i2cdrv.c5
-rw-r--r--c/src/lib/libcpu/powerpc/mpc83xx/i2c/mpc83xx_i2cdrv.h1
-rw-r--r--c/src/libchip/Makefile.am2
-rw-r--r--c/src/libchip/i2c/i2c-sc620.c95
-rw-r--r--c/src/libchip/i2c/i2c-sc620.h40
-rw-r--r--c/src/libchip/preinstall.am4
-rw-r--r--cpukit/Makefile.am5
-rw-r--r--cpukit/ftpd/ftpd.c48
-rw-r--r--cpukit/include/memory.h (renamed from cpukit/libnetworking/memory.h)0
-rw-r--r--cpukit/include/rtems/bspIo.h2
-rw-r--r--cpukit/include/rtems/btimer.h4
-rw-r--r--cpukit/include/rtems/fs.h2
-rw-r--r--cpukit/include/rtems/irq-extension.h3
-rw-r--r--cpukit/include/rtems/status-checks.h14
-rw-r--r--cpukit/include/rtems/userenv.h4
-rw-r--r--cpukit/include/sys/_iovec.h58
-rw-r--r--cpukit/include/sys/uio.h (renamed from cpukit/libnetworking/sys/uio.h)59
-rw-r--r--cpukit/libblock/include/rtems/bdbuf.h6
-rw-r--r--cpukit/libblock/include/rtems/bdpart.h8
-rw-r--r--cpukit/libblock/include/rtems/blkdev.h14
-rw-r--r--cpukit/libblock/include/rtems/diskdevs.h20
-rw-r--r--cpukit/libblock/include/rtems/flashdisk.h5
-rw-r--r--cpukit/libblock/include/rtems/ide_part_table.h6
-rw-r--r--cpukit/libblock/include/rtems/media.h14
-rw-r--r--cpukit/libblock/include/rtems/nvdisk.h2
-rw-r--r--cpukit/libblock/include/rtems/ramdisk.h12
-rw-r--r--cpukit/libblock/include/rtems/sparse-disk.h2
-rw-r--r--cpukit/libcsupport/include/clockdrv.h4
-rw-r--r--cpukit/libcsupport/include/console.h104
-rw-r--r--cpukit/libcsupport/include/ringbuf.h6
-rw-r--r--cpukit/libcsupport/include/rtc.h5
-rw-r--r--cpukit/libcsupport/include/rtems/assoc.h6
-rw-r--r--cpukit/libcsupport/include/rtems/deviceio.h25
-rw-r--r--cpukit/libcsupport/include/rtems/error.h30
-rw-r--r--cpukit/libcsupport/include/rtems/framebuffer.h2
-rw-r--r--cpukit/libcsupport/include/rtems/libcsupport.h48
-rw-r--r--cpukit/libcsupport/include/rtems/libio.h35
-rw-r--r--cpukit/libcsupport/include/rtems/libio_.h49
-rw-r--r--cpukit/libcsupport/include/sys/statvfs.h6
-rw-r--r--cpukit/libcsupport/include/sys/termios.h16
-rw-r--r--cpukit/libcsupport/include/sys/utsname.h19
-rw-r--r--cpukit/libcsupport/include/timerdrv.h6
-rw-r--r--cpukit/libcsupport/include/vmeintr.h10
-rw-r--r--cpukit/libcsupport/include/zilog/z8036.h4
-rw-r--r--cpukit/libcsupport/include/zilog/z8530.h6
-rw-r--r--cpukit/libcsupport/include/zilog/z8536.h2
-rw-r--r--cpukit/libcsupport/src/lstat.c2
-rw-r--r--cpukit/libfs/src/defaults/default_are_nodes_equal.c7
-rw-r--r--cpukit/libfs/src/defaults/default_chown.c6
-rw-r--r--cpukit/libfs/src/defaults/default_clone.c7
-rw-r--r--cpukit/libfs/src/defaults/default_close.c6
-rw-r--r--cpukit/libfs/src/defaults/default_eval_path.c7
-rw-r--r--cpukit/libfs/src/defaults/default_fchmod.c6
-rw-r--r--cpukit/libfs/src/defaults/default_fcntl.c7
-rw-r--r--cpukit/libfs/src/defaults/default_freenode.c7
-rw-r--r--cpukit/libfs/src/defaults/default_fsmount.c7
-rw-r--r--cpukit/libfs/src/defaults/default_fstat.c7
-rw-r--r--cpukit/libfs/src/defaults/default_fsunmount.c6
-rw-r--r--cpukit/libfs/src/defaults/default_fsync.c7
-rw-r--r--cpukit/libfs/src/defaults/default_fsync_success.c7
-rw-r--r--cpukit/libfs/src/defaults/default_ftruncate.c7
-rw-r--r--cpukit/libfs/src/defaults/default_ftruncate_directory.c7
-rw-r--r--cpukit/libfs/src/defaults/default_ioctl.c7
-rw-r--r--cpukit/libfs/src/defaults/default_link.c6
-rw-r--r--cpukit/libfs/src/defaults/default_lock_and_unlock.c7
-rw-r--r--cpukit/libfs/src/defaults/default_lseek.c7
-rw-r--r--cpukit/libfs/src/defaults/default_lseek_directory.c7
-rw-r--r--cpukit/libfs/src/defaults/default_lseek_file.c7
-rw-r--r--cpukit/libfs/src/defaults/default_mknod.c7
-rw-r--r--cpukit/libfs/src/defaults/default_mount.c7
-rw-r--r--cpukit/libfs/src/defaults/default_open.c7
-rw-r--r--cpukit/libfs/src/defaults/default_read.c6
-rw-r--r--cpukit/libfs/src/defaults/default_readlink.c7
-rw-r--r--cpukit/libfs/src/defaults/default_rename.c7
-rw-r--r--cpukit/libfs/src/defaults/default_rmnod.c7
-rw-r--r--cpukit/libfs/src/defaults/default_statvfs.c6
-rw-r--r--cpukit/libfs/src/defaults/default_symlink.c7
-rw-r--r--cpukit/libfs/src/defaults/default_unmount.c7
-rw-r--r--cpukit/libfs/src/defaults/default_utime.c7
-rw-r--r--cpukit/libfs/src/defaults/default_write.c7
-rw-r--r--cpukit/libfs/src/devfs/devfs.h122
-rw-r--r--cpukit/libfs/src/dosfs/dosfs.h8
-rw-r--r--cpukit/libfs/src/dosfs/fat.c11
-rw-r--r--cpukit/libfs/src/dosfs/fat.h23
-rw-r--r--cpukit/libfs/src/dosfs/fat_fat_operations.h15
-rw-r--r--cpukit/libfs/src/dosfs/fat_file.c45
-rw-r--r--cpukit/libfs/src/dosfs/fat_file.h41
-rw-r--r--cpukit/libfs/src/dosfs/msdos.h30
-rw-r--r--cpukit/libfs/src/dosfs/msdos_eval.c9
-rw-r--r--cpukit/libfs/src/dosfs/msdos_mknod.c9
-rw-r--r--cpukit/libfs/src/imfs/imfs.h168
-rw-r--r--cpukit/libfs/src/nfsclient/proto/mount_prot.h18
-rw-r--r--cpukit/libfs/src/nfsclient/proto/mount_prot_xdr.c7
-rw-r--r--cpukit/libfs/src/nfsclient/proto/nfs_prot.h9
-rw-r--r--cpukit/libfs/src/nfsclient/proto/nfs_prot_xdr.c7
-rw-r--r--cpukit/libfs/src/nfsclient/src/cexphelp.c7
-rw-r--r--cpukit/libfs/src/nfsclient/src/dirutils.c11
-rw-r--r--cpukit/libfs/src/nfsclient/src/librtemsNfs.h88
-rw-r--r--cpukit/libfs/src/nfsclient/src/nfs.c150
-rw-r--r--cpukit/libfs/src/nfsclient/src/nfs.modini.c7
-rw-r--r--cpukit/libfs/src/nfsclient/src/nfsTest.c17
-rw-r--r--cpukit/libfs/src/nfsclient/src/rpcio.c14
-rw-r--r--cpukit/libfs/src/nfsclient/src/rpcio.h49
-rw-r--r--cpukit/libfs/src/nfsclient/src/rpcio.modini.c7
-rw-r--r--cpukit/libfs/src/nfsclient/src/sock_mbuf.c125
-rw-r--r--cpukit/libfs/src/nfsclient/src/xdr_mbuf.c13
-rw-r--r--cpukit/libfs/src/pipe/pipe.h43
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-bitmaps.c2
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-bitmaps.h91
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-block-pos.h46
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-block.c2
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-block.h108
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-buffer-bdbuf.c18
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-buffer-devio.c15
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-buffer.c15
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-buffer.h76
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-data.h2
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-dir-hash.c2
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-dir-hash.h9
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-dir.c20
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-dir.h103
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-file-system-fwd.h4
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-file-system.c17
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-file-system.h58
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-file.c18
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-file.h102
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-format.c18
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-format.h24
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-group.c21
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-group.h42
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-inode.c2
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-inode.h227
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-link.c2
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-link.h70
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-mutex.c2
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-mutex.h37
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-rtems-dev.c2
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c13
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c20
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-rtems-utils.c14
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-rtems.c2
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-rtems.h72
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-shell.c14
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-shell.h34
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-trace.c13
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-trace.h18
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs.h26
-rw-r--r--cpukit/libi2c/libi2c.h4
-rw-r--r--cpukit/libmisc/bspcmdline/bspcmdline.h123
-rw-r--r--cpukit/libmisc/capture/capture.h3
-rw-r--r--cpukit/libmisc/cpuuse/cpuuse.h15
-rw-r--r--cpukit/libmisc/devnull/devnull.h9
-rw-r--r--cpukit/libmisc/devnull/devzero.h21
-rw-r--r--cpukit/libmisc/dumpbuf/dumpbuf.h16
-rw-r--r--cpukit/libmisc/fb/fb.h15
-rw-r--r--cpukit/libmisc/fb/mw_uid.h55
-rw-r--r--cpukit/libmisc/fsmount/fsmount.h28
-rw-r--r--cpukit/libmisc/monitor/monitor.h2
-rw-r--r--cpukit/libmisc/mouse/mouse_parser.h40
-rw-r--r--cpukit/libmisc/mouse/serial_mouse.h107
-rw-r--r--cpukit/libmisc/serdbg/serdbgcnf.h6
-rw-r--r--cpukit/libmisc/serdbg/termios_printk_cnf.h6
-rw-r--r--cpukit/libmisc/shell/shell.h2
-rw-r--r--cpukit/libmisc/stackchk/internal.h24
-rw-r--r--cpukit/libmisc/stackchk/stackchk.h48
-rw-r--r--cpukit/libmisc/stringto/stringto.h219
-rw-r--r--cpukit/libmisc/untar/untar.h4
-rw-r--r--cpukit/libnetworking/lib/ftpfs.c174
-rw-r--r--cpukit/libnetworking/nfs/bootp_subr.c4
-rw-r--r--cpukit/libnetworking/rtems/ftpfs.h3
-rw-r--r--cpukit/libqos/qreslib.h7
-rw-r--r--cpukit/posix/include/aio.h26
-rw-r--r--cpukit/posix/include/mqueue.h69
-rw-r--r--cpukit/posix/include/rtems/posix/aio_misc.h4
-rw-r--r--cpukit/posix/include/rtems/posix/barrier.h51
-rw-r--r--cpukit/posix/include/rtems/posix/cancel.h24
-rw-r--r--cpukit/posix/include/rtems/posix/cond.h32
-rw-r--r--cpukit/posix/include/rtems/posix/config.h10
-rw-r--r--cpukit/posix/include/rtems/posix/key.h59
-rw-r--r--cpukit/posix/include/rtems/posix/mqueue.h77
-rw-r--r--cpukit/posix/include/rtems/posix/mutex.h42
-rw-r--r--cpukit/posix/include/rtems/posix/posixapi.h42
-rw-r--r--cpukit/posix/include/rtems/posix/priority.h64
-rw-r--r--cpukit/posix/include/rtems/posix/psignal.h4
-rw-r--r--cpukit/posix/include/rtems/posix/psignalimpl.h20
-rw-r--r--cpukit/posix/include/rtems/posix/pthread.h135
-rw-r--r--cpukit/posix/include/rtems/posix/ptimer.h25
-rw-r--r--cpukit/posix/include/rtems/posix/rwlock.h41
-rw-r--r--cpukit/posix/include/rtems/posix/semaphore.h34
-rw-r--r--cpukit/posix/include/rtems/posix/sigset.h4
-rw-r--r--cpukit/posix/include/rtems/posix/spinlock.h36
-rw-r--r--cpukit/posix/include/rtems/posix/threadsup.h47
-rw-r--r--cpukit/posix/include/rtems/posix/time.h42
-rw-r--r--cpukit/posix/include/rtems/posix/timer.h20
-rw-r--r--cpukit/posix/include/semaphore.h32
-rw-r--r--cpukit/posix/inline/rtems/posix/barrier.inl47
-rw-r--r--cpukit/posix/inline/rtems/posix/key.inl46
-rw-r--r--cpukit/posix/inline/rtems/posix/mqueue.inl4
-rw-r--r--cpukit/posix/inline/rtems/posix/mutex.inl4
-rw-r--r--cpukit/posix/inline/rtems/posix/priority.inl4
-rw-r--r--cpukit/posix/inline/rtems/posix/pthread.inl4
-rw-r--r--cpukit/posix/inline/rtems/posix/rwlock.inl43
-rw-r--r--cpukit/posix/inline/rtems/posix/semaphore.inl4
-rw-r--r--cpukit/posix/inline/rtems/posix/spinlock.inl43
-rw-r--r--cpukit/posix/inline/rtems/posix/timer.inl4
-rw-r--r--cpukit/posix/src/_execve.c2
-rw-r--r--cpukit/posix/src/adjtime.c2
-rw-r--r--cpukit/posix/src/aio_error.c2
-rw-r--r--cpukit/posix/src/aio_fsync.c2
-rw-r--r--cpukit/posix/src/aio_misc.c2
-rw-r--r--cpukit/posix/src/aio_read.c2
-rw-r--r--cpukit/posix/src/aio_return.c2
-rw-r--r--cpukit/posix/src/aio_suspend.c2
-rw-r--r--cpukit/posix/src/aio_write.c2
-rw-r--r--cpukit/posix/src/alarm.c2
-rw-r--r--cpukit/posix/src/barrierattrdestroy.c2
-rw-r--r--cpukit/posix/src/barrierattrgetpshared.c2
-rw-r--r--cpukit/posix/src/barrierattrinit.c2
-rw-r--r--cpukit/posix/src/barrierattrsetpshared.c2
-rw-r--r--cpukit/posix/src/cancel.c2
-rw-r--r--cpukit/posix/src/canceleval.c2
-rw-r--r--cpukit/posix/src/cancelrun.c2
-rw-r--r--cpukit/posix/src/cleanuppop.c2
-rw-r--r--cpukit/posix/src/cleanuppush.c2
-rw-r--r--cpukit/posix/src/clockgetcpuclockid.c2
-rw-r--r--cpukit/posix/src/clockgetenableattr.c2
-rw-r--r--cpukit/posix/src/clockgetres.c2
-rw-r--r--cpukit/posix/src/clockgettime.c2
-rw-r--r--cpukit/posix/src/clocksetenableattr.c2
-rw-r--r--cpukit/posix/src/clocksettime.c2
-rw-r--r--cpukit/posix/src/condattrdestroy.c2
-rw-r--r--cpukit/posix/src/condattrgetpshared.c2
-rw-r--r--cpukit/posix/src/condattrinit.c2
-rw-r--r--cpukit/posix/src/condattrsetpshared.c2
-rw-r--r--cpukit/posix/src/condbroadcast.c2
-rw-r--r--cpukit/posix/src/conddefaultattributes.c2
-rw-r--r--cpukit/posix/src/conddestroy.c2
-rw-r--r--cpukit/posix/src/condinit.c2
-rw-r--r--cpukit/posix/src/condsignal.c2
-rw-r--r--cpukit/posix/src/condtimedwait.c2
-rw-r--r--cpukit/posix/src/condwait.c2
-rw-r--r--cpukit/posix/src/execl.c2
-rw-r--r--cpukit/posix/src/execle.c2
-rw-r--r--cpukit/posix/src/execlp.c2
-rw-r--r--cpukit/posix/src/execv.c2
-rw-r--r--cpukit/posix/src/execve.c2
-rw-r--r--cpukit/posix/src/fork.c2
-rw-r--r--cpukit/posix/src/getitimer.c2
-rw-r--r--cpukit/posix/src/keycreate.c2
-rw-r--r--cpukit/posix/src/keydelete.c2
-rw-r--r--cpukit/posix/src/keyfreememory.c2
-rw-r--r--cpukit/posix/src/keygetspecific.c2
-rw-r--r--cpukit/posix/src/keysetspecific.c2
-rw-r--r--cpukit/posix/src/kill.c2
-rw-r--r--cpukit/posix/src/kill_r.c2
-rw-r--r--cpukit/posix/src/killinfo.c2
-rw-r--r--cpukit/posix/src/lio_listio.c2
-rw-r--r--cpukit/posix/src/mprotect.c2
-rw-r--r--cpukit/posix/src/mqueueclose.c2
-rw-r--r--cpukit/posix/src/mqueuegetattr.c2
-rw-r--r--cpukit/posix/src/mqueueopen.c2
-rw-r--r--cpukit/posix/src/mqueuesend.c2
-rw-r--r--cpukit/posix/src/mqueuesendsupp.c2
-rw-r--r--cpukit/posix/src/mqueuetimedreceive.c2
-rw-r--r--cpukit/posix/src/mqueuetranslatereturncode.c2
-rw-r--r--cpukit/posix/src/mutexattrdestroy.c2
-rw-r--r--cpukit/posix/src/mutexattrgetprioceiling.c2
-rw-r--r--cpukit/posix/src/mutexattrgetprotocol.c2
-rw-r--r--cpukit/posix/src/mutexattrgetpshared.c2
-rw-r--r--cpukit/posix/src/mutexattrgettype.c2
-rw-r--r--cpukit/posix/src/mutexattrinit.c2
-rw-r--r--cpukit/posix/src/mutexattrsetprioceiling.c2
-rw-r--r--cpukit/posix/src/mutexattrsetprotocol.c2
-rw-r--r--cpukit/posix/src/mutexattrsetpshared.c2
-rw-r--r--cpukit/posix/src/mutexattrsettype.c2
-rw-r--r--cpukit/posix/src/mutexdestroy.c2
-rw-r--r--cpukit/posix/src/mutexget.c2
-rw-r--r--cpukit/posix/src/mutexgetprioceiling.c2
-rw-r--r--cpukit/posix/src/mutexinit.c2
-rw-r--r--cpukit/posix/src/mutexlock.c2
-rw-r--r--cpukit/posix/src/mutexlocksupp.c2
-rw-r--r--cpukit/posix/src/mutexsetprioceiling.c2
-rw-r--r--cpukit/posix/src/mutextimedlock.c2
-rw-r--r--cpukit/posix/src/mutextrylock.c2
-rw-r--r--cpukit/posix/src/mutexunlock.c2
-rw-r--r--cpukit/posix/src/nanosleep.c2
-rw-r--r--cpukit/posix/src/pause.c2
-rw-r--r--cpukit/posix/src/pbarrierdestroy.c2
-rw-r--r--cpukit/posix/src/pbarrierinit.c2
-rw-r--r--cpukit/posix/src/pbarriertranslatereturncode.c2
-rw-r--r--cpukit/posix/src/pbarrierwait.c2
-rw-r--r--cpukit/posix/src/prwlockdestroy.c2
-rw-r--r--cpukit/posix/src/prwlockinit.c2
-rw-r--r--cpukit/posix/src/prwlockrdlock.c2
-rw-r--r--cpukit/posix/src/prwlocktimedrdlock.c2
-rw-r--r--cpukit/posix/src/prwlocktimedwrlock.c2
-rw-r--r--cpukit/posix/src/prwlocktryrdlock.c2
-rw-r--r--cpukit/posix/src/prwlocktrywrlock.c2
-rw-r--r--cpukit/posix/src/prwlockunlock.c2
-rw-r--r--cpukit/posix/src/prwlockwrlock.c2
-rw-r--r--cpukit/posix/src/psignalclearprocesssignals.c2
-rw-r--r--cpukit/posix/src/pspindestroy.c2
-rw-r--r--cpukit/posix/src/pspininit.c2
-rw-r--r--cpukit/posix/src/pspinlock.c2
-rw-r--r--cpukit/posix/src/pspintrylock.c2
-rw-r--r--cpukit/posix/src/pspinunlock.c2
-rw-r--r--cpukit/posix/src/psxnametoid.c2
-rw-r--r--cpukit/posix/src/pthreadatfork.c2
-rw-r--r--cpukit/posix/src/pthreadattrdestroy.c2
-rw-r--r--cpukit/posix/src/pthreadattrgetdetachstate.c2
-rw-r--r--cpukit/posix/src/pthreadattrgetguardsize.c2
-rw-r--r--cpukit/posix/src/pthreadattrgetinheritsched.c2
-rw-r--r--cpukit/posix/src/pthreadattrgetschedparam.c2
-rw-r--r--cpukit/posix/src/pthreadattrgetschedpolicy.c2
-rw-r--r--cpukit/posix/src/pthreadattrgetscope.c2
-rw-r--r--cpukit/posix/src/pthreadattrgetstack.c2
-rw-r--r--cpukit/posix/src/pthreadattrgetstackaddr.c2
-rw-r--r--cpukit/posix/src/pthreadattrgetstacksize.c2
-rw-r--r--cpukit/posix/src/pthreadattrinit.c2
-rw-r--r--cpukit/posix/src/pthreadattrsetdetachstate.c2
-rw-r--r--cpukit/posix/src/pthreadattrsetguardsize.c2
-rw-r--r--cpukit/posix/src/pthreadattrsetinheritsched.c2
-rw-r--r--cpukit/posix/src/pthreadattrsetschedparam.c2
-rw-r--r--cpukit/posix/src/pthreadattrsetschedpolicy.c2
-rw-r--r--cpukit/posix/src/pthreadattrsetscope.c2
-rw-r--r--cpukit/posix/src/pthreadattrsetstack.c2
-rw-r--r--cpukit/posix/src/pthreadattrsetstackaddr.c2
-rw-r--r--cpukit/posix/src/pthreadattrsetstacksize.c2
-rw-r--r--cpukit/posix/src/pthreadcreate.c2
-rw-r--r--cpukit/posix/src/pthreaddetach.c2
-rw-r--r--cpukit/posix/src/pthreadequal.c2
-rw-r--r--cpukit/posix/src/pthreadgetcpuclockid.c2
-rw-r--r--cpukit/posix/src/pthreadgetschedparam.c2
-rw-r--r--cpukit/posix/src/pthreadjoin.c2
-rw-r--r--cpukit/posix/src/pthreadkill.c2
-rw-r--r--cpukit/posix/src/pthreadonce.c2
-rw-r--r--cpukit/posix/src/pthreadself.c2
-rw-r--r--cpukit/posix/src/pthreadsetschedparam.c2
-rw-r--r--cpukit/posix/src/pthreadsigmask.c2
-rw-r--r--cpukit/posix/src/ptimer.c2
-rw-r--r--cpukit/posix/src/rwlockattrdestroy.c2
-rw-r--r--cpukit/posix/src/rwlockattrgetpshared.c2
-rw-r--r--cpukit/posix/src/rwlockattrinit.c2
-rw-r--r--cpukit/posix/src/rwlockattrsetpshared.c2
-rw-r--r--cpukit/posix/src/sched_getparam.c2
-rw-r--r--cpukit/posix/src/sched_getprioritymax.c2
-rw-r--r--cpukit/posix/src/sched_getprioritymin.c2
-rw-r--r--cpukit/posix/src/sched_getscheduler.c2
-rw-r--r--cpukit/posix/src/sched_rr_get_interval.c2
-rw-r--r--cpukit/posix/src/sched_setparam.c2
-rw-r--r--cpukit/posix/src/sched_setscheduler.c2
-rw-r--r--cpukit/posix/src/sched_yield.c2
-rw-r--r--cpukit/posix/src/semaphore.c2
-rw-r--r--cpukit/posix/src/semaphorecreatesupp.c2
-rw-r--r--cpukit/posix/src/semaphoretranslatereturncode.c2
-rw-r--r--cpukit/posix/src/semaphorewaitsupp.c8
-rw-r--r--cpukit/posix/src/seminit.c2
-rw-r--r--cpukit/posix/src/semopen.c2
-rw-r--r--cpukit/posix/src/setcancelstate.c2
-rw-r--r--cpukit/posix/src/setcanceltype.c2
-rw-r--r--cpukit/posix/src/setitimer.c2
-rw-r--r--cpukit/posix/src/sigaction.c2
-rw-r--r--cpukit/posix/src/sigaddset.c2
-rw-r--r--cpukit/posix/src/sigdelset.c2
-rw-r--r--cpukit/posix/src/sigemptyset.c2
-rw-r--r--cpukit/posix/src/sigfillset.c2
-rw-r--r--cpukit/posix/src/sigismember.c2
-rw-r--r--cpukit/posix/src/signal_2.c2
-rw-r--r--cpukit/posix/src/sigpending.c2
-rw-r--r--cpukit/posix/src/sigprocmask.c2
-rw-r--r--cpukit/posix/src/sigqueue.c2
-rw-r--r--cpukit/posix/src/sigsuspend.c2
-rw-r--r--cpukit/posix/src/sigtimedwait.c2
-rw-r--r--cpukit/posix/src/sigwait.c2
-rw-r--r--cpukit/posix/src/sysconf.c2
-rw-r--r--cpukit/posix/src/testcancel.c2
-rw-r--r--cpukit/posix/src/timerdelete.c2
-rw-r--r--cpukit/posix/src/timergettime.c2
-rw-r--r--cpukit/posix/src/timerinserthelper.c2
-rw-r--r--cpukit/posix/src/timersettime.c2
-rw-r--r--cpukit/posix/src/ualarm.c2
-rw-r--r--cpukit/posix/src/vfork.c2
-rw-r--r--cpukit/posix/src/wait.c2
-rw-r--r--cpukit/posix/src/waitpid.c2
-rw-r--r--cpukit/preinstall.am8
-rw-r--r--cpukit/rtems/include/rtems.h23
-rw-r--r--cpukit/rtems/include/rtems/rtems/asr.h21
-rw-r--r--cpukit/rtems/include/rtems/rtems/attr.h19
-rw-r--r--cpukit/rtems/include/rtems/rtems/barrier.h154
-rw-r--r--cpukit/rtems/include/rtems/rtems/barriermp.h18
-rw-r--r--cpukit/rtems/include/rtems/rtems/cache.h39
-rw-r--r--cpukit/rtems/include/rtems/rtems/clock.h227
-rw-r--r--cpukit/rtems/include/rtems/rtems/config.h19
-rw-r--r--cpukit/rtems/include/rtems/rtems/dpmem.h165
-rw-r--r--cpukit/rtems/include/rtems/rtems/event.h215
-rw-r--r--cpukit/rtems/include/rtems/rtems/eventmp.h19
-rw-r--r--cpukit/rtems/include/rtems/rtems/eventset.h21
-rw-r--r--cpukit/rtems/include/rtems/rtems/intr.h35
-rw-r--r--cpukit/rtems/include/rtems/rtems/message.h223
-rw-r--r--cpukit/rtems/include/rtems/rtems/modes.h43
-rw-r--r--cpukit/rtems/include/rtems/rtems/mp.h19
-rw-r--r--cpukit/rtems/include/rtems/rtems/msgmp.h24
-rw-r--r--cpukit/rtems/include/rtems/rtems/object.h285
-rw-r--r--cpukit/rtems/include/rtems/rtems/options.h27
-rw-r--r--cpukit/rtems/include/rtems/rtems/part.h107
-rw-r--r--cpukit/rtems/include/rtems/rtems/partmp.h18
-rw-r--r--cpukit/rtems/include/rtems/rtems/ratemon.h163
-rw-r--r--cpukit/rtems/include/rtems/rtems/region.h255
-rw-r--r--cpukit/rtems/include/rtems/rtems/regionmp.h19
-rw-r--r--cpukit/rtems/include/rtems/rtems/rtemsapi.h19
-rw-r--r--cpukit/rtems/include/rtems/rtems/sem.h168
-rw-r--r--cpukit/rtems/include/rtems/rtems/semmp.h41
-rw-r--r--cpukit/rtems/include/rtems/rtems/signal.h57
-rw-r--r--cpukit/rtems/include/rtems/rtems/signalmp.h18
-rw-r--r--cpukit/rtems/include/rtems/rtems/smp.h46
-rw-r--r--cpukit/rtems/include/rtems/rtems/status.h19
-rw-r--r--cpukit/rtems/include/rtems/rtems/support.h21
-rw-r--r--cpukit/rtems/include/rtems/rtems/taskmp.h19
-rw-r--r--cpukit/rtems/include/rtems/rtems/tasks.h275
-rw-r--r--cpukit/rtems/include/rtems/rtems/timer.h213
-rw-r--r--cpukit/rtems/include/rtems/rtems/types.h18
-rw-r--r--cpukit/rtems/inline/rtems/rtems/asr.inl19
-rw-r--r--cpukit/rtems/inline/rtems/rtems/attr.inl38
-rw-r--r--cpukit/rtems/inline/rtems/rtems/barrier.inl15
-rw-r--r--cpukit/rtems/inline/rtems/rtems/dpmem.inl10
-rw-r--r--cpukit/rtems/inline/rtems/rtems/eventset.inl8
-rw-r--r--cpukit/rtems/inline/rtems/rtems/message.inl7
-rw-r--r--cpukit/rtems/inline/rtems/rtems/modes.inl15
-rw-r--r--cpukit/rtems/inline/rtems/rtems/options.inl4
-rw-r--r--cpukit/rtems/inline/rtems/rtems/part.inl20
-rw-r--r--cpukit/rtems/inline/rtems/rtems/ratemon.inl16
-rw-r--r--cpukit/rtems/inline/rtems/rtems/region.inl19
-rw-r--r--cpukit/rtems/inline/rtems/rtems/sem.inl12
-rw-r--r--cpukit/rtems/inline/rtems/rtems/status.inl4
-rw-r--r--cpukit/rtems/inline/rtems/rtems/support.inl3
-rw-r--r--cpukit/rtems/inline/rtems/rtems/tasks.inl10
-rw-r--r--cpukit/rtems/inline/rtems/rtems/timer.inl15
-rw-r--r--cpukit/rtems/mainpage.h3
-rw-r--r--cpukit/rtems/src/eventsurrender.c46
-rw-r--r--cpukit/rtems/src/eventtimeout.c19
-rw-r--r--cpukit/rtems/src/msgqcreate.c12
-rw-r--r--cpukit/sapi/Makefile.am2
-rw-r--r--cpukit/sapi/include/confdefs.h451
-rw-r--r--cpukit/sapi/include/rtems/cbs.h9
-rw-r--r--cpukit/sapi/include/rtems/chain.h14
-rw-r--r--cpukit/sapi/include/rtems/config.h85
-rw-r--r--cpukit/sapi/include/rtems/extension.h9
-rw-r--r--cpukit/sapi/include/rtems/fatal.h35
-rw-r--r--cpukit/sapi/include/rtems/init.h76
-rw-r--r--cpukit/sapi/include/rtems/io.h103
-rw-r--r--cpukit/sapi/include/rtems/mptables.h5
-rw-r--r--cpukit/sapi/include/rtems/rbheap.h7
-rw-r--r--cpukit/sapi/include/rtems/rbtree.h19
-rw-r--r--cpukit/sapi/include/rtems/sptables.h8
-rw-r--r--cpukit/sapi/include/rtems/timespec.h15
-rw-r--r--cpukit/sapi/inline/rtems/cbs.inl86
-rw-r--r--cpukit/sapi/inline/rtems/chain.inl346
-rw-r--r--cpukit/sapi/inline/rtems/extension.inl2
-rw-r--r--cpukit/sapi/inline/rtems/rbtree.inl203
-rw-r--r--cpukit/sapi/inline/rtems/timespec.inl169
-rw-r--r--cpukit/sapi/src/fatalsrcdesc.c53
-rw-r--r--cpukit/score/cpu/arm/Makefile.am5
-rw-r--r--cpukit/score/cpu/arm/arm-exception-default.c (renamed from cpukit/score/cpu/arm/armv7m-exception-frame-print.c)11
-rw-r--r--cpukit/score/cpu/arm/arm-exception-frame-print.c46
-rw-r--r--cpukit/score/cpu/arm/arm_exc_abort.S41
-rw-r--r--cpukit/score/cpu/arm/arm_exc_handler_high.c2
-rw-r--r--cpukit/score/cpu/arm/arm_exc_interrupt.S4
-rw-r--r--cpukit/score/cpu/arm/armv4-exception-default.S117
-rw-r--r--cpukit/score/cpu/arm/armv7m-context-initialize.c3
-rw-r--r--cpukit/score/cpu/arm/armv7m-context-restore.c3
-rw-r--r--cpukit/score/cpu/arm/armv7m-context-switch.c3
-rw-r--r--cpukit/score/cpu/arm/armv7m-exception-default.c53
-rw-r--r--cpukit/score/cpu/arm/armv7m-exception-handler-get.c3
-rw-r--r--cpukit/score/cpu/arm/armv7m-exception-handler-set.c4
-rw-r--r--cpukit/score/cpu/arm/armv7m-exception-priority-get.c4
-rw-r--r--cpukit/score/cpu/arm/armv7m-exception-priority-handler.c4
-rw-r--r--cpukit/score/cpu/arm/armv7m-exception-priority-set.c4
-rw-r--r--cpukit/score/cpu/arm/armv7m-initialize.c4
-rw-r--r--cpukit/score/cpu/arm/armv7m-isr-dispatch.c3
-rw-r--r--cpukit/score/cpu/arm/armv7m-isr-enter-leave.c3
-rw-r--r--cpukit/score/cpu/arm/armv7m-isr-level-get.c4
-rw-r--r--cpukit/score/cpu/arm/armv7m-isr-level-set.c4
-rw-r--r--cpukit/score/cpu/arm/armv7m-isr-vector-install.c3
-rw-r--r--cpukit/score/cpu/arm/armv7m-multitasking-start-stop.c4
-rw-r--r--cpukit/score/cpu/arm/preinstall.am4
-rw-r--r--cpukit/score/cpu/arm/rtems/asm.h25
-rw-r--r--cpukit/score/cpu/arm/rtems/score/arm.h7
-rw-r--r--cpukit/score/cpu/arm/rtems/score/armv4.h98
-rw-r--r--cpukit/score/cpu/arm/rtems/score/armv7m.h33
-rw-r--r--cpukit/score/cpu/arm/rtems/score/cpu.h135
-rw-r--r--cpukit/score/cpu/arm/rtems/score/cpu_asm.h2
-rw-r--r--cpukit/score/cpu/arm/rtems/score/types.h7
-rw-r--r--cpukit/score/cpu/avr/avr/boot.h231
-rw-r--r--cpukit/score/cpu/avr/avr/common.h97
-rw-r--r--cpukit/score/cpu/avr/avr/crc16.h74
-rw-r--r--cpukit/score/cpu/avr/avr/delay.h75
-rw-r--r--cpukit/score/cpu/avr/avr/eeprom.h151
-rw-r--r--cpukit/score/cpu/avr/avr/io.h194
-rw-r--r--cpukit/score/cpu/avr/avr/io1200.h79
-rw-r--r--cpukit/score/cpu/avr/avr/io2333.h23
-rw-r--r--cpukit/score/cpu/avr/avr/io2343.h79
-rw-r--r--cpukit/score/cpu/avr/avr/io43u32x.h81
-rw-r--r--cpukit/score/cpu/avr/avr/io43u35x.h27
-rw-r--r--cpukit/score/cpu/avr/avr/io4414.h17
-rw-r--r--cpukit/score/cpu/avr/avr/io4433.h80
-rw-r--r--cpukit/score/cpu/avr/avr/io4434.h80
-rw-r--r--cpukit/score/cpu/avr/avr/io76c711.h19
-rw-r--r--cpukit/score/cpu/avr/avr/io8534.h18
-rw-r--r--cpukit/score/cpu/avr/avr/io8535.h83
-rw-r--r--cpukit/score/cpu/avr/avr/io86r401.h81
-rw-r--r--cpukit/score/cpu/avr/avr/io90pwm1.h17
-rw-r--r--cpukit/score/cpu/avr/avr/io90pwm216.h17
-rw-r--r--cpukit/score/cpu/avr/avr/io90pwm2b.h93
-rw-r--r--cpukit/score/cpu/avr/avr/io90pwm3b.h17
-rw-r--r--cpukit/score/cpu/avr/avr/io90pwm81.h16
-rw-r--r--cpukit/score/cpu/avr/avr/io90pwmx.h17
-rw-r--r--cpukit/score/cpu/avr/avr/io90scr100.h83
-rw-r--r--cpukit/score/cpu/avr/avr/ioa6289.h84
-rw-r--r--cpukit/score/cpu/avr/avr/ioat94k.h121
-rw-r--r--cpukit/score/cpu/avr/avr/iocan32.h82
-rw-r--r--cpukit/score/cpu/avr/avr/iocanxx.h103
-rw-r--r--cpukit/score/cpu/avr/avr/iom103.h83
-rw-r--r--cpukit/score/cpu/avr/avr/iom128.h109
-rw-r--r--cpukit/score/cpu/avr/avr/iom1280.h15
-rw-r--r--cpukit/score/cpu/avr/avr/iom1281.h79
-rw-r--r--cpukit/score/cpu/avr/avr/iom1284p.h2272
-rw-r--r--cpukit/score/cpu/avr/avr/iom16.h90
-rw-r--r--cpukit/score/cpu/avr/avr/iom161.h81
-rw-r--r--cpukit/score/cpu/avr/avr/iom162.h87
-rw-r--r--cpukit/score/cpu/avr/avr/iom163.h81
-rw-r--r--cpukit/score/cpu/avr/avr/iom164.h15
-rw-r--r--cpukit/score/cpu/avr/avr/iom165.h17
-rw-r--r--cpukit/score/cpu/avr/avr/iom168.h78
-rw-r--r--cpukit/score/cpu/avr/avr/iom168p.h90
-rw-r--r--cpukit/score/cpu/avr/avr/iom169.h17
-rw-r--r--cpukit/score/cpu/avr/avr/iom169p.h17
-rw-r--r--cpukit/score/cpu/avr/avr/iom169pa.h84
-rw-r--r--cpukit/score/cpu/avr/avr/iom16a.h74
-rw-r--r--cpukit/score/cpu/avr/avr/iom16hva.h15
-rw-r--r--cpukit/score/cpu/avr/avr/iom16hva2.h85
-rw-r--r--cpukit/score/cpu/avr/avr/iom16hvb.h85
-rw-r--r--cpukit/score/cpu/avr/avr/iom16m1.h84
-rw-r--r--cpukit/score/cpu/avr/avr/iom16u2.h83
-rw-r--r--cpukit/score/cpu/avr/avr/iom16u4.h84
-rw-r--r--cpukit/score/cpu/avr/avr/iom2560.h36
-rw-r--r--cpukit/score/cpu/avr/avr/iom32.h82
-rw-r--r--cpukit/score/cpu/avr/avr/iom323.h82
-rw-r--r--cpukit/score/cpu/avr/avr/iom324.h82
-rw-r--r--cpukit/score/cpu/avr/avr/iom325.h17
-rw-r--r--cpukit/score/cpu/avr/avr/iom3250.h68
-rw-r--r--cpukit/score/cpu/avr/avr/iom328p.h17
-rw-r--r--cpukit/score/cpu/avr/avr/iom329.h70
-rw-r--r--cpukit/score/cpu/avr/avr/iom3290.h84
-rw-r--r--cpukit/score/cpu/avr/avr/iom32c1.h84
-rw-r--r--cpukit/score/cpu/avr/avr/iom32m1.h84
-rw-r--r--cpukit/score/cpu/avr/avr/iom32u2.h80
-rw-r--r--cpukit/score/cpu/avr/avr/iom32u4.h17
-rw-r--r--cpukit/score/cpu/avr/avr/iom32u6.h83
-rw-r--r--cpukit/score/cpu/avr/avr/iom406.h97
-rw-r--r--cpukit/score/cpu/avr/avr/iom48.h76
-rw-r--r--cpukit/score/cpu/avr/avr/iom48p.h88
-rw-r--r--cpukit/score/cpu/avr/avr/iom640.h81
-rw-r--r--cpukit/score/cpu/avr/avr/iom644.h15
-rw-r--r--cpukit/score/cpu/avr/avr/iom644p.h36
-rw-r--r--cpukit/score/cpu/avr/avr/iom644pa.h83
-rw-r--r--cpukit/score/cpu/avr/avr/iom645.h84
-rw-r--r--cpukit/score/cpu/avr/avr/iom6450.h17
-rw-r--r--cpukit/score/cpu/avr/avr/iom649.h85
-rw-r--r--cpukit/score/cpu/avr/avr/iom6490.h84
-rw-r--r--cpukit/score/cpu/avr/avr/iom64c1.h16
-rw-r--r--cpukit/score/cpu/avr/avr/iom64hve.h85
-rw-r--r--cpukit/score/cpu/avr/avr/iom64m1.h79
-rw-r--r--cpukit/score/cpu/avr/avr/iom8.h17
-rw-r--r--cpukit/score/cpu/avr/avr/iom8515.h82
-rw-r--r--cpukit/score/cpu/avr/avr/iom8535.h65
-rw-r--r--cpukit/score/cpu/avr/avr/iom88.h15
-rw-r--r--cpukit/score/cpu/avr/avr/iom88p.h91
-rw-r--r--cpukit/score/cpu/avr/avr/iom8hva.h15
-rw-r--r--cpukit/score/cpu/avr/avr/iom8u2.h19
-rw-r--r--cpukit/score/cpu/avr/avr/iomx8.h47
-rw-r--r--cpukit/score/cpu/avr/avr/iomxx0_1.h90
-rw-r--r--cpukit/score/cpu/avr/avr/iomxx4.h78
-rw-r--r--cpukit/score/cpu/avr/avr/iomxxhva.h84
-rw-r--r--cpukit/score/cpu/avr/avr/iotn11.h79
-rw-r--r--cpukit/score/cpu/avr/avr/iotn12.h80
-rw-r--r--cpukit/score/cpu/avr/avr/iotn13.h85
-rw-r--r--cpukit/score/cpu/avr/avr/iotn13a.h62
-rw-r--r--cpukit/score/cpu/avr/avr/iotn15.h81
-rw-r--r--cpukit/score/cpu/avr/avr/iotn167.h17
-rw-r--r--cpukit/score/cpu/avr/avr/iotn2313.h17
-rw-r--r--cpukit/score/cpu/avr/avr/iotn2313a.h83
-rw-r--r--cpukit/score/cpu/avr/avr/iotn24.h77
-rw-r--r--cpukit/score/cpu/avr/avr/iotn24a.h83
-rw-r--r--cpukit/score/cpu/avr/avr/iotn26.h17
-rw-r--r--cpukit/score/cpu/avr/avr/iotn261.h15
-rw-r--r--cpukit/score/cpu/avr/avr/iotn261a.h83
-rw-r--r--cpukit/score/cpu/avr/avr/iotn28.h17
-rw-r--r--cpukit/score/cpu/avr/avr/iotn4313.h83
-rw-r--r--cpukit/score/cpu/avr/avr/iotn43u.h86
-rw-r--r--cpukit/score/cpu/avr/avr/iotn44.h77
-rw-r--r--cpukit/score/cpu/avr/avr/iotn45.h77
-rw-r--r--cpukit/score/cpu/avr/avr/iotn461.h15
-rw-r--r--cpukit/score/cpu/avr/avr/iotn461a.h83
-rw-r--r--cpukit/score/cpu/avr/avr/iotn48.h87
-rw-r--r--cpukit/score/cpu/avr/avr/iotn85.h79
-rw-r--r--cpukit/score/cpu/avr/avr/iotn861.h35
-rw-r--r--cpukit/score/cpu/avr/avr/iotn861a.h83
-rw-r--r--cpukit/score/cpu/avr/avr/iotn87.h84
-rw-r--r--cpukit/score/cpu/avr/avr/iotn88.h16
-rw-r--r--cpukit/score/cpu/avr/avr/iotnx4.h17
-rw-r--r--cpukit/score/cpu/avr/avr/iotnx5.h85
-rw-r--r--cpukit/score/cpu/avr/avr/iotnx61.h84
-rw-r--r--cpukit/score/cpu/avr/avr/iousb1286.h80
-rw-r--r--cpukit/score/cpu/avr/avr/iousb1287.h79
-rw-r--r--cpukit/score/cpu/avr/avr/iousb162.h32
-rw-r--r--cpukit/score/cpu/avr/avr/iousb646.h79
-rw-r--r--cpukit/score/cpu/avr/avr/iousb647.h15
-rw-r--r--cpukit/score/cpu/avr/avr/iousb82.h15
-rw-r--r--cpukit/score/cpu/avr/avr/iousbxx2.h84
-rw-r--r--cpukit/score/cpu/avr/avr/iousbxx6_7.h84
-rw-r--r--cpukit/score/cpu/avr/avr/iox128a1.h1404
-rw-r--r--cpukit/score/cpu/avr/avr/iox128a3.h95
-rw-r--r--cpukit/score/cpu/avr/avr/iox16a4.h95
-rw-r--r--cpukit/score/cpu/avr/avr/iox16d4.h95
-rw-r--r--cpukit/score/cpu/avr/avr/iox192a3.h95
-rw-r--r--cpukit/score/cpu/avr/avr/iox192d3.h96
-rw-r--r--cpukit/score/cpu/avr/avr/iox256a3b.h95
-rw-r--r--cpukit/score/cpu/avr/avr/iox256d3.h95
-rw-r--r--cpukit/score/cpu/avr/avr/iox32a4.h95
-rw-r--r--cpukit/score/cpu/avr/avr/iox32d4.h18
-rw-r--r--cpukit/score/cpu/avr/avr/iox64a1.h95
-rw-r--r--cpukit/score/cpu/avr/avr/iox64a3.h96
-rw-r--r--cpukit/score/cpu/avr/avr/iox64d3.h96
-rw-r--r--cpukit/score/cpu/avr/avr/lock.h365
-rw-r--r--cpukit/score/cpu/avr/avr/parity.h75
-rw-r--r--cpukit/score/cpu/avr/avr/pgmspace.h192
-rw-r--r--cpukit/score/cpu/avr/avr/portpins.h12
-rw-r--r--cpukit/score/cpu/avr/avr/power.h401
-rw-r--r--cpukit/score/cpu/avr/avr/sfr_defs.h266
-rw-r--r--cpukit/score/cpu/avr/avr/signal.h74
-rw-r--r--cpukit/score/cpu/avr/avr/signature.h75
-rw-r--r--cpukit/score/cpu/avr/avr/sleep.h284
-rw-r--r--cpukit/score/cpu/avr/avr/version.h107
-rw-r--r--cpukit/score/cpu/avr/avr/wdt.h248
-rw-r--r--cpukit/score/cpu/avr/rtems/asm.h23
-rw-r--r--cpukit/score/cpu/avr/rtems/score/avr.h15
-rw-r--r--cpukit/score/cpu/avr/rtems/score/cpu.h10
-rw-r--r--cpukit/score/cpu/avr/rtems/score/cpu_asm.h12
-rw-r--r--cpukit/score/cpu/avr/rtems/score/types.h10
-rw-r--r--cpukit/score/cpu/bfin/rtems/asm.h58
-rw-r--r--cpukit/score/cpu/bfin/rtems/bfin/bf52x.h23
-rw-r--r--cpukit/score/cpu/bfin/rtems/bfin/bf533.h20
-rw-r--r--cpukit/score/cpu/bfin/rtems/bfin/bfin.h10
-rw-r--r--cpukit/score/cpu/bfin/rtems/score/bfin.h16
-rw-r--r--cpukit/score/cpu/bfin/rtems/score/cpu.h1206
-rw-r--r--cpukit/score/cpu/bfin/rtems/score/cpu_asm.h8
-rw-r--r--cpukit/score/cpu/bfin/rtems/score/types.h12
-rw-r--r--cpukit/score/cpu/h8300/rtems/asm.h49
-rw-r--r--cpukit/score/cpu/h8300/rtems/score/cpu.h10
-rw-r--r--cpukit/score/cpu/h8300/rtems/score/h8300.h11
-rw-r--r--cpukit/score/cpu/h8300/rtems/score/types.h10
-rw-r--r--cpukit/score/cpu/i386/rtems/asm.h21
-rw-r--r--cpukit/score/cpu/i386/rtems/score/cpu.h10
-rw-r--r--cpukit/score/cpu/i386/rtems/score/i386.h10
-rw-r--r--cpukit/score/cpu/i386/rtems/score/idtr.h18
-rw-r--r--cpukit/score/cpu/i386/rtems/score/interrupts.h18
-rw-r--r--cpukit/score/cpu/i386/rtems/score/registers.h8
-rw-r--r--cpukit/score/cpu/i386/rtems/score/types.h10
-rw-r--r--cpukit/score/cpu/lm32/rtems/asm.h58
-rw-r--r--cpukit/score/cpu/lm32/rtems/score/cpu.h1225
-rw-r--r--cpukit/score/cpu/lm32/rtems/score/cpu_asm.h12
-rw-r--r--cpukit/score/cpu/lm32/rtems/score/lm32.h15
-rw-r--r--cpukit/score/cpu/lm32/rtems/score/types.h10
-rw-r--r--cpukit/score/cpu/m32c/rtems/asm.h53
-rw-r--r--cpukit/score/cpu/m32c/rtems/score/cpu.h1194
-rw-r--r--cpukit/score/cpu/m32c/rtems/score/cpu_asm.h12
-rw-r--r--cpukit/score/cpu/m32c/rtems/score/m32c.h16
-rw-r--r--cpukit/score/cpu/m32c/rtems/score/types.h10
-rw-r--r--cpukit/score/cpu/m32c/varvects.h70
-rw-r--r--cpukit/score/cpu/m32r/rtems/asm.h58
-rw-r--r--cpukit/score/cpu/m32r/rtems/score/cpu.h1239
-rw-r--r--cpukit/score/cpu/m32r/rtems/score/cpu_asm.h12
-rw-r--r--cpukit/score/cpu/m32r/rtems/score/m32r.h16
-rw-r--r--cpukit/score/cpu/m32r/rtems/score/types.h10
-rw-r--r--cpukit/score/cpu/m68k/rtems/asm.h21
-rw-r--r--cpukit/score/cpu/m68k/rtems/m68k/m68302.h10
-rw-r--r--cpukit/score/cpu/m68k/rtems/m68k/m68360.h17
-rw-r--r--cpukit/score/cpu/m68k/rtems/m68k/qsm.h10
-rw-r--r--cpukit/score/cpu/m68k/rtems/m68k/sim.h10
-rw-r--r--cpukit/score/cpu/m68k/rtems/score/cpu.h10
-rw-r--r--cpukit/score/cpu/m68k/rtems/score/m68k.h10
-rw-r--r--cpukit/score/cpu/m68k/rtems/score/types.h10
-rw-r--r--cpukit/score/cpu/mips/rtems/asm.h21
-rw-r--r--cpukit/score/cpu/mips/rtems/mips/idtcpu.h65
-rw-r--r--cpukit/score/cpu/mips/rtems/mips/iregdef.h79
-rw-r--r--cpukit/score/cpu/mips/rtems/score/cpu.h15
-rw-r--r--cpukit/score/cpu/mips/rtems/score/mips.h18
-rw-r--r--cpukit/score/cpu/mips/rtems/score/types.h17
-rw-r--r--cpukit/score/cpu/nios2/nios2-eic-il-low-level.S6
-rw-r--r--cpukit/score/cpu/nios2/rtems/asm.h21
-rw-r--r--cpukit/score/cpu/nios2/rtems/score/cpu.h19
-rw-r--r--cpukit/score/cpu/nios2/rtems/score/cpu_asm.h12
-rw-r--r--cpukit/score/cpu/nios2/rtems/score/nios2-utility.h10
-rw-r--r--cpukit/score/cpu/nios2/rtems/score/nios2.h17
-rw-r--r--cpukit/score/cpu/nios2/rtems/score/types.h10
-rw-r--r--cpukit/score/cpu/no_cpu/rtems/asm.h16
-rw-r--r--cpukit/score/cpu/no_cpu/rtems/score/cpu.h1355
-rw-r--r--cpukit/score/cpu/no_cpu/rtems/score/cpu_asm.h12
-rw-r--r--cpukit/score/cpu/no_cpu/rtems/score/types.h10
-rw-r--r--cpukit/score/cpu/powerpc/rtems/asm.h21
-rw-r--r--cpukit/score/cpu/powerpc/rtems/powerpc/registers.h10
-rw-r--r--cpukit/score/cpu/powerpc/rtems/score/cpu.h4
-rw-r--r--cpukit/score/cpu/powerpc/rtems/score/powerpc.h10
-rw-r--r--cpukit/score/cpu/powerpc/rtems/score/types.h10
-rw-r--r--cpukit/score/cpu/sh/rtems/asm.h21
-rw-r--r--cpukit/score/cpu/sh/rtems/score/sh.h10
-rw-r--r--cpukit/score/cpu/sh/rtems/score/sh_io.h10
-rw-r--r--cpukit/score/cpu/sh/rtems/score/types.h10
-rw-r--r--cpukit/score/cpu/sparc/rtems/asm.h21
-rw-r--r--cpukit/score/cpu/sparc/rtems/score/cpu.h653
-rw-r--r--cpukit/score/cpu/sparc/rtems/score/sparc.h95
-rw-r--r--cpukit/score/cpu/sparc/rtems/score/types.h14
-rw-r--r--cpukit/score/cpu/sparc64/rtems/asm.h21
-rw-r--r--cpukit/score/cpu/sparc64/rtems/score/cpu.h64
-rw-r--r--cpukit/score/cpu/sparc64/rtems/score/sparc64.h49
-rw-r--r--cpukit/score/cpu/sparc64/rtems/score/types.h10
-rw-r--r--cpukit/score/cpu/v850/rtems/asm.h62
-rw-r--r--cpukit/score/cpu/v850/rtems/score/cpu.h1243
-rw-r--r--cpukit/score/cpu/v850/rtems/score/cpu_asm.h13
-rw-r--r--cpukit/score/cpu/v850/rtems/score/types.h10
-rw-r--r--cpukit/score/cpu/v850/rtems/score/v850.h14
-rw-r--r--cpukit/score/include/rtems/bspsmp.h45
-rw-r--r--cpukit/score/include/rtems/debug.h16
-rw-r--r--cpukit/score/include/rtems/score/address.h2
-rw-r--r--cpukit/score/include/rtems/score/apiext.h10
-rw-r--r--cpukit/score/include/rtems/score/apimutex.h20
-rw-r--r--cpukit/score/include/rtems/score/basedefs.h11
-rw-r--r--cpukit/score/include/rtems/score/bitfield.h8
-rw-r--r--cpukit/score/include/rtems/score/chain.h18
-rw-r--r--cpukit/score/include/rtems/score/context.h22
-rw-r--r--cpukit/score/include/rtems/score/copyrt.h10
-rw-r--r--cpukit/score/include/rtems/score/corebarrier.h15
-rw-r--r--cpukit/score/include/rtems/score/coremsg.h91
-rw-r--r--cpukit/score/include/rtems/score/coremutex.h44
-rw-r--r--cpukit/score/include/rtems/score/corerwlock.h17
-rw-r--r--cpukit/score/include/rtems/score/coresem.h18
-rw-r--r--cpukit/score/include/rtems/score/corespinlock.h13
-rw-r--r--cpukit/score/include/rtems/score/heap.h5
-rw-r--r--cpukit/score/include/rtems/score/interr.h2
-rw-r--r--cpukit/score/include/rtems/score/isr.h64
-rw-r--r--cpukit/score/include/rtems/score/isrlevel.h7
-rw-r--r--cpukit/score/include/rtems/score/mpci.h42
-rw-r--r--cpukit/score/include/rtems/score/mppkt.h2
-rw-r--r--cpukit/score/include/rtems/score/object.h71
-rw-r--r--cpukit/score/include/rtems/score/objectmp.h26
-rw-r--r--cpukit/score/include/rtems/score/priority.h2
-rw-r--r--cpukit/score/include/rtems/score/prioritybitmap.h9
-rw-r--r--cpukit/score/include/rtems/score/protectedheap.h4
-rw-r--r--cpukit/score/include/rtems/score/rbtree.h57
-rw-r--r--cpukit/score/include/rtems/score/scheduler.h4
-rw-r--r--cpukit/score/include/rtems/score/schedulercbs.h65
-rw-r--r--cpukit/score/include/rtems/score/scheduleredf.h37
-rw-r--r--cpukit/score/include/rtems/score/schedulerpriority.h33
-rw-r--r--cpukit/score/include/rtems/score/schedulersimple.h38
-rw-r--r--cpukit/score/include/rtems/score/schedulersimplesmp.h15
-rw-r--r--cpukit/score/include/rtems/score/smp.h16
-rw-r--r--cpukit/score/include/rtems/score/smplock.h20
-rw-r--r--cpukit/score/include/rtems/score/stack.h2
-rw-r--r--cpukit/score/include/rtems/score/states.h6
-rw-r--r--cpukit/score/include/rtems/score/sysstate.h5
-rw-r--r--cpukit/score/include/rtems/score/thread.h83
-rw-r--r--cpukit/score/include/rtems/score/threadmp.h16
-rw-r--r--cpukit/score/include/rtems/score/threadq.h65
-rw-r--r--cpukit/score/include/rtems/score/threadsync.h4
-rw-r--r--cpukit/score/include/rtems/score/timespec.h54
-rw-r--r--cpukit/score/include/rtems/score/timestamp.h58
-rw-r--r--cpukit/score/include/rtems/score/timestamp64.h51
-rw-r--r--cpukit/score/include/rtems/score/tod.h33
-rw-r--r--cpukit/score/include/rtems/score/tqdata.h2
-rw-r--r--cpukit/score/include/rtems/score/userext.h5
-rw-r--r--cpukit/score/include/rtems/score/userextimpl.h15
-rw-r--r--cpukit/score/include/rtems/score/watchdog.h58
-rw-r--r--cpukit/score/include/rtems/score/wkspace.h22
-rw-r--r--cpukit/score/include/rtems/seterr.h11
-rw-r--r--cpukit/score/include/rtems/system.h18
-rw-r--r--cpukit/score/inline/rtems/score/address.inl101
-rw-r--r--cpukit/score/inline/rtems/score/chain.inl388
-rw-r--r--cpukit/score/inline/rtems/score/corebarrier.inl33
-rw-r--r--cpukit/score/inline/rtems/score/coremsg.inl76
-rw-r--r--cpukit/score/inline/rtems/score/coremutex.inl86
-rw-r--r--cpukit/score/inline/rtems/score/corerwlock.inl21
-rw-r--r--cpukit/score/inline/rtems/score/coresem.inl60
-rw-r--r--cpukit/score/inline/rtems/score/corespinlock.inl30
-rw-r--r--cpukit/score/inline/rtems/score/heap.inl10
-rw-r--r--cpukit/score/inline/rtems/score/isr.inl24
-rw-r--r--cpukit/score/inline/rtems/score/mppkt.inl28
-rw-r--r--cpukit/score/inline/rtems/score/object.inl192
-rw-r--r--cpukit/score/inline/rtems/score/objectmp.inl22
-rw-r--r--cpukit/score/inline/rtems/score/priority.inl18
-rw-r--r--cpukit/score/inline/rtems/score/prioritybitmap.inl66
-rw-r--r--cpukit/score/inline/rtems/score/rbtree.inl266
-rw-r--r--cpukit/score/inline/rtems/score/scheduler.inl115
-rw-r--r--cpukit/score/inline/rtems/score/schedulerpriority.inl86
-rw-r--r--cpukit/score/inline/rtems/score/schedulersimple.inl23
-rw-r--r--cpukit/score/inline/rtems/score/stack.inl46
-rw-r--r--cpukit/score/inline/rtems/score/states.inl216
-rw-r--r--cpukit/score/inline/rtems/score/sysstate.inl15
-rw-r--r--cpukit/score/inline/rtems/score/thread.inl149
-rw-r--r--cpukit/score/inline/rtems/score/threadmp.inl28
-rw-r--r--cpukit/score/inline/rtems/score/threadq.inl16
-rw-r--r--cpukit/score/inline/rtems/score/tod.inl22
-rw-r--r--cpukit/score/inline/rtems/score/tqdata.inl34
-rw-r--r--cpukit/score/inline/rtems/score/watchdog.inl90
-rw-r--r--cpukit/score/inline/rtems/score/wkspace.inl15
-rw-r--r--cpukit/score/src/objectshrinkinformation.c36
-rw-r--r--cpukit/score/src/rbtreefind.c28
-rw-r--r--doc/user/fatal.t27
-rw-r--r--testsuites/fstests/fsrdwr/init.c4
-rw-r--r--testsuites/fstests/imfs_fserror/imfs_fserror.scn94
-rw-r--r--testsuites/fstests/imfs_fslink/imfs_fslink.scn15
-rw-r--r--testsuites/fstests/imfs_fspatheval/imfs_fspathenval.scn81
-rw-r--r--testsuites/fstests/imfs_fspermission/imfs_fspermission.scn52
-rw-r--r--testsuites/fstests/imfs_fsrdwr/imfs_fsrdwr.scn22
-rw-r--r--testsuites/fstests/imfs_fstime/imfs_fstime.scn12
-rw-r--r--testsuites/fstests/mdosfs_support/fs_support.c26
-rw-r--r--testsuites/fstests/mimfs_fslink/mimfs_fslink.scn10
-rw-r--r--testsuites/fstests/mimfs_fspatheval/mimfs_fspatheval.scn76
-rw-r--r--testsuites/fstests/mimfs_fspermission/mimfs_fspermission-interupted.scn47
-rw-r--r--testsuites/fstests/mimfs_fsrdwr/mimfs_fsrdwr.scn21
-rw-r--r--testsuites/fstests/mimfs_fssymlink/mimfs_fssymlink.scn31
-rw-r--r--testsuites/fstests/mimfs_fstime/mimfs_fstime.scn7
-rw-r--r--testsuites/fstests/support/fstest_support.c17
-rw-r--r--testsuites/fstests/support/ramdisk_support.c19
-rw-r--r--testsuites/libtests/ftp01/ftp01.scn4
-rw-r--r--testsuites/libtests/ftp01/init.c26
-rw-r--r--testsuites/libtests/stackchk/init.c6
-rw-r--r--testsuites/libtests/stackchk/system.h6
-rw-r--r--testsuites/psxtests/psxbarrier01/psxtmbarrier01.scn5
-rw-r--r--testsuites/psxtests/psxfatal_support/init.c20
-rw-r--r--testsuites/psxtests/psxfatal_support/system.h8
-rw-r--r--testsuites/psxtmtests/Makefile.am8
-rw-r--r--testsuites/psxtmtests/configure.ac8
-rw-r--r--testsuites/psxtmtests/psxtmbarrier02/psxtmbarrier02.scn3
-rw-r--r--testsuites/psxtmtests/psxtmbarrier03/psxtmbarrier03.scn3
-rw-r--r--testsuites/psxtmtests/psxtmcond01/Makefile.am28
-rw-r--r--testsuites/psxtmtests/psxtmcond01/init.c94
-rw-r--r--testsuites/psxtmtests/psxtmcond01/psxtmcond01.doc6
-rw-r--r--testsuites/psxtmtests/psxtmcond02/Makefile.am27
-rw-r--r--testsuites/psxtmtests/psxtmcond02/init.c73
-rw-r--r--testsuites/psxtmtests/psxtmcond02/psxtmcond02.doc11
-rw-r--r--testsuites/psxtmtests/psxtmcond03/Makefile.am27
-rw-r--r--testsuites/psxtmtests/psxtmcond03/init.c104
-rw-r--r--testsuites/psxtmtests/psxtmcond03/psxtmcond03.doc11
-rw-r--r--testsuites/psxtmtests/psxtmcond05/Makefile.am27
-rw-r--r--testsuites/psxtmtests/psxtmcond05/init.c71
-rw-r--r--testsuites/psxtmtests/psxtmcond05/psxtmcond05.doc11
-rw-r--r--testsuites/psxtmtests/psxtmcond08/Makefile.am28
-rw-r--r--testsuites/psxtmtests/psxtmcond08/init.c178
-rw-r--r--testsuites/psxtmtests/psxtmcond08/psxtmcond08.doc11
-rw-r--r--testsuites/psxtmtests/psxtmcond09/Makefile.am28
-rw-r--r--testsuites/psxtmtests/psxtmcond09/psxtmcond09.doc11
-rw-r--r--testsuites/psxtmtests/psxtmcond10/Makefile.am28
-rw-r--r--testsuites/psxtmtests/psxtmcond10/psxtmcond10.doc0
-rw-r--r--testsuites/psxtmtests/psxtmkey01/psxtmkey01.scn4
-rw-r--r--testsuites/psxtmtests/psxtmkey02/psxtmkey02.scn5
-rw-r--r--testsuites/psxtmtests/psxtmmq01/psxtmmq01.scn12
-rw-r--r--testsuites/psxtmtests/psxtmmutex01/psxtmmutex01.scn4
-rw-r--r--testsuites/psxtmtests/psxtmmutex02/psxtmmutex02.scn3
-rw-r--r--testsuites/psxtmtests/psxtmmutex03/psxtmmutex03.scn9
-rw-r--r--testsuites/psxtmtests/psxtmmutex04/psxtmmutex04.scn3
-rw-r--r--testsuites/psxtmtests/psxtmmutex05/psxtmmutex05.scn3
-rw-r--r--testsuites/psxtmtests/psxtmmutex06/psxtmmutex06.scn3
-rw-r--r--testsuites/psxtmtests/psxtmmutex07/psxtmmutex07.scn5
-rw-r--r--testsuites/psxtmtests/psxtmtests_plan.csv6
-rw-r--r--testsuites/psxtmtests/psxtmthread02/Makefile.am27
-rw-r--r--testsuites/psxtmtests/psxtmthread02/init.c80
-rw-r--r--testsuites/psxtmtests/psxtmthread02/psxtmthread02.doc11
-rw-r--r--testsuites/sptests/spfatal_support/init.c21
-rw-r--r--testsuites/sptests/spfatal_support/system.h10
-rw-r--r--testsuites/sptests/spinternalerror02/init.c21
-rw-r--r--testsuites/sptests/spinternalerror02/spinternalerror02.scn13
-rw-r--r--testsuites/sptests/spintrcritical10/init.c307
-rw-r--r--testsuites/sptests/spintrcritical10/spintrcritical10.scn5
-rw-r--r--testsuites/sptests/spintrcritical16/init.c5
-rw-r--r--testsuites/tmtests/tmoverhd/tmoverhd.doc75
935 files changed, 24798 insertions, 18184 deletions
diff --git a/c/src/lib/libbsp/arm/edb7312/irq/irq.c b/c/src/lib/libbsp/arm/edb7312/irq/irq.c
index a345d1b477..85b4e26217 100644
--- a/c/src/lib/libbsp/arm/edb7312/irq/irq.c
+++ b/c/src/lib/libbsp/arm/edb7312/irq/irq.c
@@ -12,6 +12,8 @@
* http://www.rtems.com/license/LICENSE.
*/
+#include <rtems/score/armv4.h>
+
#include <bsp.h>
#include <bsp/irq.h>
#include <bsp/irq-generic.h>
@@ -170,7 +172,7 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
}
int_stat = *EP7312_INTSR3;
- _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, arm_exc_interrupt, NULL);
+ _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL);
return RTEMS_SUCCESSFUL;
}
diff --git a/c/src/lib/libbsp/arm/gba/start/start.S b/c/src/lib/libbsp/arm/gba/start/start.S
index 3827c9d8a4..c391517371 100644
--- a/c/src/lib/libbsp/arm/gba/start/start.S
+++ b/c/src/lib/libbsp/arm/gba/start/start.S
@@ -162,7 +162,7 @@
.align
PUBLIC_ARM_FUNCTION(_gba_ISR_handler)
ldmfd r13!,{r0-r3,r12,r14}
- b arm_exc_interrupt
+ b _ARMV4_Exception_interrupt
LABEL_END(_gba_ISR_handler)
diff --git a/c/src/lib/libbsp/arm/gp32/Makefile.am b/c/src/lib/libbsp/arm/gp32/Makefile.am
index a136ea6983..92dfc72b0c 100644
--- a/c/src/lib/libbsp/arm/gp32/Makefile.am
+++ b/c/src/lib/libbsp/arm/gp32/Makefile.am
@@ -30,7 +30,7 @@ libbsp_a_SOURCES =
# startup
libbsp_a_SOURCES += ../../shared/bsplibc.c ../../shared/bsppost.c \
../../shared/bsppredriverhook.c ../../shared/bspgetworkarea.c \
- ../../shared/bsppretaskinghook.c startup/bspstart.c \
+ ../../shared/bsppretaskinghook.c startup/bspstart.c startup/bspidle.c \
../../shared/bspclean.c startup/bspreset.c \
startup/memmap.c ../../shared/bootcard.c ../../shared/sbrk.c \
../../shared/gnatinstallhandler.c
diff --git a/c/src/lib/libbsp/arm/gp32/include/bsp.h b/c/src/lib/libbsp/arm/gp32/include/bsp.h
index be542e9dbb..a6671a80dc 100644
--- a/c/src/lib/libbsp/arm/gp32/include/bsp.h
+++ b/c/src/lib/libbsp/arm/gp32/include/bsp.h
@@ -1,12 +1,12 @@
/**
* @file
*
- * This include file contains definitions related to the GP32 BSP.
+ * This include file contains definitions related to the GP32 BSP.
*/
/*
- * Copyright (c) Canon Research France SA.]
- * Emmanuel Raguet, mailto:raguet@crf.canon.fr
+ * Copyright (c) Canon Research France SA.]
+ * Emmanuel Raguet, mailto:raguet@crf.canon.fr
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
@@ -59,13 +59,13 @@ void gp32_setPalette( unsigned char pos, uint16_t color);
/*
- * This BSP provides its own IDLE task to override the RTEMS one.
+ * This BSP provides its own IDLE thread to override the RTEMS one.
* So we prototype it and define the constant confdefs.h expects
* to configure a BSP specific one.
*/
-Thread bsp_idle_task(uint32_t);
+void *bsp_idle_thread(uintptr_t ignored);
-#define BSP_IDLE_TASK_BODY bsp_idle_task
+#define BSP_IDLE_TASK_BODY bsp_idle_thread
#ifdef __cplusplus
}
diff --git a/c/src/lib/libbsp/arm/gp32/startup/bspidle.c b/c/src/lib/libbsp/arm/gp32/startup/bspidle.c
new file mode 100644
index 0000000000..bdd8fcccd9
--- /dev/null
+++ b/c/src/lib/libbsp/arm/gp32/startup/bspidle.c
@@ -0,0 +1,23 @@
+/*
+ * BSP specific Idle thread
+ */
+
+/*
+ * Copyright (c) 2000 Canon Research Centre France SA.
+ * Emmanuel Raguet, mailto:raguet@crf.canon.fr
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#include <bsp.h>
+
+void *bsp_idle_thread(uintptr_t ignored)
+{
+ while(1) {
+ __asm__ volatile ("MCR p15,0,r0,c7,c0,4 \n");
+ }
+ return NULL;
+}
+
diff --git a/c/src/lib/libbsp/arm/gp32/startup/bspstart.c b/c/src/lib/libbsp/arm/gp32/startup/bspstart.c
index cfedc24c39..79a97aad13 100644
--- a/c/src/lib/libbsp/arm/gp32/startup/bspstart.c
+++ b/c/src/lib/libbsp/arm/gp32/startup/bspstart.c
@@ -2,14 +2,15 @@
* This file contains the ARM BSP startup package. It includes application,
* board, and monitor specific initialization and configuration. The generic CPU
* dependent initialization has been performed before this routine is invoked.
+ */
+
+/*
+ * Copyright (c) 2000 Canon Research Centre France SA.
+ * Emmanuel Raguet, mailto:raguet@crf.canon.fr
*
- *
- * Copyright (c) 2000 Canon Research Centre France SA.
- * Emmanuel Raguet, mailto:raguet@crf.canon.fr
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#include <bsp.h>
@@ -23,16 +24,6 @@
extern void rtems_exception_init_mngt(void);
/*
- * BSP specific Idle task
- */
-Thread bsp_idle_task(uint32_t ignored)
-{
- while(1) {
- __asm__ volatile ("MCR p15,0,r0,c7,c0,4 \n");
- }
-}
-
-/*
* BSP Specific Initialization in C
*/
void bsp_start_default( void )
diff --git a/c/src/lib/libbsp/arm/lpc24xx/configure.ac b/c/src/lib/libbsp/arm/lpc24xx/configure.ac
index 970eabd2bb..ed96563514 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/configure.ac
+++ b/c/src/lib/libbsp/arm/lpc24xx/configure.ac
@@ -123,7 +123,7 @@ RTEMS_BSPOPTS_HELP([BSP_START_RESET_VECTOR],[reset vector address for BSP start]
RTEMS_BSPOPTS_SET([BSP_USB_OTG_TRANSCEIVER_I2C_ADDR],[lpc17xx_ea*],[(0x2f << 1)])
RTEMS_BSPOPTS_HELP([BSP_USB_OTG_TRANSCEIVER_I2C_ADDR],[USB OTG transceiver I2C address used by USB stack])
-RTEMS_BSP_CLEANUP_OPTIONS(0, 0)
+RTEMS_BSP_CLEANUP_OPTIONS(0, 1)
RTEMS_BSP_LINKCMDS
AC_CONFIG_FILES([Makefile])
diff --git a/c/src/lib/libbsp/arm/lpc24xx/include/lpc17xx.h b/c/src/lib/libbsp/arm/lpc24xx/include/lpc17xx.h
index 6d1dd45a83..b2cd4b062c 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/include/lpc17xx.h
+++ b/c/src/lib/libbsp/arm/lpc24xx/include/lpc17xx.h
@@ -28,6 +28,24 @@
#define LPC17XX_BASE 0x00
typedef struct {
+#define LPC17XX_WWDT_MOD_WDEN BSP_BIT32(0)
+#define LPC17XX_WWDT_MOD_WDRESET BSP_BIT32(1)
+#define LPC17XX_WWDT_MOD_WDTOF BSP_BIT32(2)
+#define LPC17XX_WWDT_MOD_WDINT BSP_BIT32(3)
+#define LPC17XX_WWDT_MOD_WDPROTECT BSP_BIT32(4)
+ uint32_t mod;
+ uint32_t tc;
+ uint32_t feed;
+ uint32_t tv;
+ uint32_t reserved_10;
+ uint32_t warnint;
+ uint32_t window;
+ uint32_t reserved_1c;
+} lpc17xx_wwdt;
+
+#define LPC17XX_WWDT (*(volatile lpc17xx_wwdt *) (LPC17XX_BASE + 0x40000000))
+
+typedef struct {
#define LPC17XX_PLL_CON_PLLE BSP_BIT32(0)
#define LPC17XX_PLL_SEL_MSEL(val) BSP_FLD32(val, 0, 4)
#define LPC17XX_PLL_SEL_MSEL_GET(reg) BSP_FLD32GET(reg, 0, 4)
@@ -176,7 +194,9 @@ typedef struct {
#define LPC17XX_SCB (*(volatile lpc17xx_scb *) (LPC17XX_BASE + 0x400fc000))
typedef struct {
- uint32_t reserved_00 [268693504];
+ uint32_t reserved_00 [268435456];
+ lpc17xx_wwdt wwdt;
+ uint32_t reserved_40000020 [258040];
lpc17xx_scb scb;
} lpc17xx;
diff --git a/c/src/lib/libbsp/arm/lpc24xx/include/start-config.h b/c/src/lib/libbsp/arm/lpc24xx/include/start-config.h
index 9d6173f741..64f653ab5b 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/include/start-config.h
+++ b/c/src/lib/libbsp/arm/lpc24xx/include/start-config.h
@@ -104,12 +104,16 @@ extern BSP_START_DATA_SECTION const lpc24xx_emc_static_chip_config
extern BSP_START_DATA_SECTION const size_t
lpc24xx_start_config_emc_static_chip_count;
+#ifdef ARM_MULTILIB_ARCH_V7M
+
extern BSP_START_DATA_SECTION const ARMV7M_MPU_Region
lpc24xx_start_config_mpu_region [];
extern BSP_START_DATA_SECTION const size_t
lpc24xx_start_config_mpu_region_count;
+#endif /* ARM_MULTILIB_ARCH_V7M */
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/c/src/lib/libbsp/arm/lpc24xx/irq/irq-dispatch.c b/c/src/lib/libbsp/arm/lpc24xx/irq/irq-dispatch.c
index 2f8a23c576..4b84c94bf8 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/irq/irq-dispatch.c
+++ b/c/src/lib/libbsp/arm/lpc24xx/irq/irq-dispatch.c
@@ -20,6 +20,8 @@
* http://www.rtems.com/license/LICENSE.
*/
+#include <rtems/score/armv4.h>
+
#include <bsp.h>
#include <bsp/irq.h>
#include <bsp/irq-generic.h>
@@ -33,13 +35,13 @@ void bsp_interrupt_dispatch(void)
rtems_vector_number vector = VICVectAddr;
/* Enable interrupts in program status register */
- uint32_t psr = arm_status_irq_enable();
+ uint32_t psr = _ARMV4_Status_irq_enable();
/* Dispatch interrupt handlers */
bsp_interrupt_handler_dispatch(vector);
/* Restore program status register */
- arm_status_restore(psr);
+ _ARMV4_Status_restore(psr);
/* Acknowledge interrupt */
VICVectAddr = 0;
diff --git a/c/src/lib/libbsp/arm/lpc24xx/irq/irq.c b/c/src/lib/libbsp/arm/lpc24xx/irq/irq.c
index f99ce46c99..02ddb78942 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/irq/irq.c
+++ b/c/src/lib/libbsp/arm/lpc24xx/irq/irq.c
@@ -20,6 +20,7 @@
* http://www.rtems.com/license/LICENSE.
*/
+#include <rtems/score/armv4.h>
#include <rtems/score/armv7m.h>
#include <bsp.h>
@@ -113,7 +114,7 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
}
/* Install the IRQ exception handler */
- _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, arm_exc_interrupt, NULL);
+ _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL);
return RTEMS_SUCCESSFUL;
}
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/bspreset.c b/c/src/lib/libbsp/arm/lpc24xx/startup/bspreset.c
index d7bbc897c2..ca84e942bc 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/bspreset.c
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/bspreset.c
@@ -7,7 +7,7 @@
*/
/*
- * Copyright (c) 2008-2012 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2008-2013 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Obere Lagerstr. 30
@@ -21,6 +21,7 @@
*/
#include <rtems.h>
+#include <rtems/score/armv7m.h>
#include <bsp/bootcard.h>
#include <bsp/lpc24xx.h>
@@ -32,15 +33,16 @@ BSP_START_TEXT_SECTION __attribute__((flatten)) void bsp_reset(void)
rtems_interrupt_disable(level);
- #ifdef ARM_MULTILIB_ARCH_V4
+ #if defined(ARM_MULTILIB_ARCH_V4)
/* Trigger watchdog reset */
WDCLKSEL = 0;
WDTC = 0xff;
WDMOD = 0x3;
WDFEED = 0xaa;
WDFEED = 0x55;
- #else
- printk("reset\n");
+ #elif defined(ARM_MULTILIB_ARCH_V7M)
+ _ARMV7M_SCB->aircr = ARMV7M_SCB_AIRCR_VECTKEY
+ | ARMV7M_SCB_AIRCR_SYSRESETREQ;
#endif
while (true) {
diff --git a/c/src/lib/libbsp/arm/lpc32xx/configure.ac b/c/src/lib/libbsp/arm/lpc32xx/configure.ac
index 06be1da217..d7967ffb10 100644
--- a/c/src/lib/libbsp/arm/lpc32xx/configure.ac
+++ b/c/src/lib/libbsp/arm/lpc32xx/configure.ac
@@ -106,7 +106,7 @@ RTEMS_BSPOPTS_HELP([BSP_USB_OTG_TRANSCEIVER_I2C_ADDR],[USB OTG transceiver I2C a
RTEMS_BSPOPTS_SET([TESTS_USE_PRINTK],[*],[1])
RTEMS_BSPOPTS_HELP([TESTS_USE_PRINTK],[tests use printk() for output])
-RTEMS_BSP_CLEANUP_OPTIONS(0, 0)
+RTEMS_BSP_CLEANUP_OPTIONS(0, 1)
RTEMS_BSP_LINKCMDS
AC_CONFIG_FILES([Makefile])
diff --git a/c/src/lib/libbsp/arm/lpc32xx/console/console-config.c b/c/src/lib/libbsp/arm/lpc32xx/console/console-config.c
index 738f5d86de..1134bf118b 100644
--- a/c/src/lib/libbsp/arm/lpc32xx/console/console-config.c
+++ b/c/src/lib/libbsp/arm/lpc32xx/console/console-config.c
@@ -45,7 +45,7 @@ static void lpc32xx_uart_set_register(uintptr_t addr, uint8_t i, uint8_t val)
#ifdef LPC32XX_UART_3_BAUD
static bool lpc32xx_uart_probe_3(int minor)
{
- LPC32XX_UARTCLK_CTRL |= 1U << 0;
+ LPC32XX_UARTCLK_CTRL |= BSP_BIT32(0);
LPC32XX_U3CLK = LPC32XX_CONFIG_U3CLK;
LPC32XX_UART_CLKMODE = BSP_FLD32SET(LPC32XX_UART_CLKMODE, 0x2, 4, 5);
@@ -64,7 +64,7 @@ static void lpc32xx_uart_set_register(uintptr_t addr, uint8_t i, uint8_t val)
*/
gpio->p2_mux_set = BSP_BIT32(2);
- LPC32XX_UARTCLK_CTRL |= 1U << 1;
+ LPC32XX_UARTCLK_CTRL |= BSP_BIT32(1);
LPC32XX_U4CLK = LPC32XX_CONFIG_U4CLK;
LPC32XX_UART_CLKMODE = BSP_FLD32SET(LPC32XX_UART_CLKMODE, 0x2, 6, 7);
@@ -75,7 +75,10 @@ static void lpc32xx_uart_set_register(uintptr_t addr, uint8_t i, uint8_t val)
#ifdef LPC32XX_UART_6_BAUD
static bool lpc32xx_uart_probe_6(int minor)
{
- LPC32XX_UARTCLK_CTRL |= 1U << 3;
+ /* Bypass the IrDA modulator/demodulator */
+ LPC32XX_UART_CTRL |= BSP_BIT32(5);
+
+ LPC32XX_UARTCLK_CTRL |= BSP_BIT32(3);
LPC32XX_U6CLK = LPC32XX_CONFIG_U6CLK;
LPC32XX_UART_CLKMODE = BSP_FLD32SET(LPC32XX_UART_CLKMODE, 0x2, 10, 11);
diff --git a/c/src/lib/libbsp/arm/lpc32xx/irq/irq.c b/c/src/lib/libbsp/arm/lpc32xx/irq/irq.c
index b53b9f4bd3..67506ee9f9 100644
--- a/c/src/lib/libbsp/arm/lpc32xx/irq/irq.c
+++ b/c/src/lib/libbsp/arm/lpc32xx/irq/irq.c
@@ -19,6 +19,8 @@
* http://www.rtems.com/license/LICENSE.
*/
+#include <rtems/score/armv4.h>
+
#include <bsp.h>
#include <bsp/irq.h>
#include <bsp/irq-generic.h>
@@ -252,11 +254,11 @@ void bsp_interrupt_dispatch(void)
lpc32xx.sic_1.er = er_sic_1 & masks->field.sic_1;
lpc32xx.sic_2.er = er_sic_2 & masks->field.sic_2;
- psr = arm_status_irq_enable();
+ psr = _ARMV4_Status_irq_enable();
bsp_interrupt_handler_dispatch(vector);
- arm_status_restore(psr);
+ _ARMV4_Status_restore(psr);
lpc32xx.mic.er = er_mic & lpc32xx_irq_enable.field.mic;
lpc32xx.sic_1.er = er_sic_1 & lpc32xx_irq_enable.field.sic_1;
@@ -341,7 +343,7 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
lpc32xx.sic_1.atr = 0x26000;
lpc32xx.sic_2.atr = 0x0;
- lpc32xx_set_exception_handler(ARM_EXCEPTION_IRQ, arm_exc_interrupt);
+ lpc32xx_set_exception_handler(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt);
return RTEMS_SUCCESSFUL;
}
diff --git a/c/src/lib/libbsp/arm/shared/lpc/network/lpc-ethernet.c b/c/src/lib/libbsp/arm/shared/lpc/network/lpc-ethernet.c
index 3b2d5b6fa5..ca4314396a 100644
--- a/c/src/lib/libbsp/arm/shared/lpc/network/lpc-ethernet.c
+++ b/c/src/lib/libbsp/arm/shared/lpc/network/lpc-ethernet.c
@@ -1323,6 +1323,9 @@ static int lpc_eth_up_or_down(lpc_eth_driver_entry *e, bool up)
lpc_eth_config_module_enable();
+ /* Enable RX/TX reset and disable soft reset */
+ lpc_eth->mac1 = 0xf00;
+
/* Initialize PHY */
lpc_eth->mcfg = ETH_MCFG_CLOCK_SELECT(0x7);
eno = lpc_eth_phy_up(e);
diff --git a/c/src/lib/libbsp/arm/shared/start/start.S b/c/src/lib/libbsp/arm/shared/start/start.S
index 2167adc8b5..9954a8717d 100644
--- a/c/src/lib/libbsp/arm/shared/start/start.S
+++ b/c/src/lib/libbsp/arm/shared/start/start.S
@@ -5,7 +5,7 @@
*/
/*
- * Copyright (c) 2008-2011 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2008-2013 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Obere Lagerstr. 30
@@ -31,6 +31,14 @@
.extern boot_card
.extern bsp_start_hook_0
.extern bsp_start_hook_1
+ .extern _ARMV4_Exception_undef_default
+ .extern _ARMV4_Exception_swi_default
+ .extern _ARMV4_Exception_data_abort_default
+ .extern _ARMV4_Exception_pref_abort_default
+ .extern _ARMV4_Exception_reserved_default
+ .extern _ARMV4_Exception_irq_default
+ .extern _ARMV4_Exception_fiq_default
+ .extern _ARMV7M_Exception_default
/* Global symbols */
.globl _start
@@ -74,31 +82,31 @@ handler_addr_reset:
handler_addr_undef:
- .word reset
+ .word _ARMV4_Exception_undef_default
handler_addr_swi:
- .word reset
+ .word _ARMV4_Exception_swi_default
handler_addr_prefetch:
- .word reset
+ .word _ARMV4_Exception_data_abort_default
handler_addr_abort:
- .word reset
+ .word _ARMV4_Exception_pref_abort_default
handler_addr_reserved:
- .word reset
+ .word _ARMV4_Exception_reserved_default
handler_addr_irq:
- .word reset
+ .word _ARMV4_Exception_irq_default
handler_addr_fiq:
- .word reset
+ .word _ARMV4_Exception_fiq_default
bsp_start_vector_table_end:
@@ -199,13 +207,6 @@ twiddle:
b twiddle
-.arm
-
-reset:
-
- SWITCH_FROM_ARM_TO_THUMB r0
- b twiddle
-
#elif defined(ARM_MULTILIB_ARCH_V7M)
.syntax unified
@@ -218,22 +219,22 @@ bsp_start_vector_table_begin:
.word bsp_stack_main_end
.word _start /* Reset */
- .word bsp_reset /* NMI */
- .word bsp_reset /* Hard Fault */
- .word bsp_reset /* MPU Fault */
- .word bsp_reset /* Bus Fault */
- .word bsp_reset /* Usage Fault */
- .word bsp_reset /* Reserved */
- .word bsp_reset /* Reserved */
- .word bsp_reset /* Reserved */
- .word bsp_reset /* Reserved */
- .word bsp_reset /* SVC */
- .word bsp_reset /* Debug Monitor */
- .word bsp_reset /* Reserved */
- .word bsp_reset /* PendSV */
- .word bsp_reset /* SysTick */
+ .word _ARMV7M_Exception_default /* NMI */
+ .word _ARMV7M_Exception_default /* Hard Fault */
+ .word _ARMV7M_Exception_default /* MPU Fault */
+ .word _ARMV7M_Exception_default /* Bus Fault */
+ .word _ARMV7M_Exception_default /* Usage Fault */
+ .word _ARMV7M_Exception_default /* Reserved */
+ .word _ARMV7M_Exception_default /* Reserved */
+ .word _ARMV7M_Exception_default /* Reserved */
+ .word _ARMV7M_Exception_default /* Reserved */
+ .word _ARMV7M_Exception_default /* SVC */
+ .word _ARMV7M_Exception_default /* Debug Monitor */
+ .word _ARMV7M_Exception_default /* Reserved */
+ .word _ARMV7M_Exception_default /* PendSV */
+ .word _ARMV7M_Exception_default /* SysTick */
.rept BSP_INTERRUPT_VECTOR_MAX + 1
- .word bsp_reset /* IRQ */
+ .word _ARMV7M_Exception_default /* IRQ */
.endr
bsp_start_vector_table_end:
diff --git a/c/src/lib/libbsp/arm/smdk2410/Makefile.am b/c/src/lib/libbsp/arm/smdk2410/Makefile.am
index 526c7ab45d..e5dee1a99a 100644
--- a/c/src/lib/libbsp/arm/smdk2410/Makefile.am
+++ b/c/src/lib/libbsp/arm/smdk2410/Makefile.am
@@ -28,7 +28,7 @@ libbsp_a_SOURCES =
# startup
libbsp_a_SOURCES += ../../shared/bsplibc.c ../../shared/bsppost.c \
- ../gp32/startup/bspstart.c ../../shared/bspclean.c \
+ ../gp32/startup/bspstart.c ../gp32/startup/bspidle.c ../../shared/bspclean.c \
startup/bspreset.c startup/memmap.c \
../../shared/bootcard.c ../../shared/sbrk.c \
../../shared/bsppretaskinghook.c \
diff --git a/c/src/lib/libbsp/m68k/mvme167/include/bsp.h b/c/src/lib/libbsp/m68k/mvme167/include/bsp.h
index f2521e9118..305787d800 100644
--- a/c/src/lib/libbsp/m68k/mvme167/include/bsp.h
+++ b/c/src/lib/libbsp/m68k/mvme167/include/bsp.h
@@ -1,11 +1,14 @@
-/* bsp.h
+/**
+ * @file
*
* Following defines must reflect the setup of the particular MVME167.
* All page references are to the MVME166/MVME167/MVME187 Single Board
* Computer Programmer's Reference Guide (MVME187PG/D2) with the April
* 1993 supplements/addenda (MVME187PG/D2A1).
- *
- * COPYRIGHT (c) 1989-2009.
+ */
+
+/*
+ * COPYRIGHT (c) 1989-2012.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -309,7 +312,7 @@ rtems_isr_entry set_vector(
#define EXTERN extern
#endif
-extern rtems_isr_entry M68Kvec[]; /* vector table address */
+extern void *M68Kvec[]; /* vector table address */
#ifdef __cplusplus
}
diff --git a/c/src/lib/libbsp/m68k/mvme167/startup/bspclean.c b/c/src/lib/libbsp/m68k/mvme167/startup/bspclean.c
index 820ffe89ed..4be67fec41 100644
--- a/c/src/lib/libbsp/m68k/mvme167/startup/bspclean.c
+++ b/c/src/lib/libbsp/m68k/mvme167/startup/bspclean.c
@@ -1,9 +1,12 @@
-/* bspclean.c
+/**
+ * @file
*
* These routines return control to 167Bug after a normal exit from the
* application.
- *
- * COPYRIGHT (c) 1989-2010.
+ */
+
+/*
+ * COPYRIGHT (c) 1989-2012.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -21,17 +24,11 @@
extern void start( void );
extern void page_table_teardown( void );
-/*
- * bsp_return_to_monitor_trap
+/**
+ * @brief bsp_return_to_monitor_trap
*
* Switch the VBR back to ROM and make a .RETURN syscall to return control to
* 167 Bug. If 167Bug ever returns, restart the application.
- *
- * Input parameters: NONE
- *
- * Output parameters: NONE
- *
- * Return values: NONE
*/
static void bsp_return_to_monitor_trap( void )
{
diff --git a/c/src/lib/libbsp/m68k/mvme167/startup/bspstart.c b/c/src/lib/libbsp/m68k/mvme167/startup/bspstart.c
index 441c8eb38b..2c7f5ebb21 100644
--- a/c/src/lib/libbsp/m68k/mvme167/startup/bspstart.c
+++ b/c/src/lib/libbsp/m68k/mvme167/startup/bspstart.c
@@ -1,30 +1,5 @@
-/* bspstart.c
- *
- * This set of routines starts the application. It includes application,
- * board, and monitor specific initialization and configuration. The generic
- * CPU dependent initialization has been performed before any of these are
- * invoked.
- *
- * COPYRIGHT (c) 1989-2010.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
- *
- * Modifications of respective RTEMS files:
- * Copyright (c) 1998, National Research Council of Canada
- */
-
-#include <bsp.h>
-#include <page_table.h>
-#include <fatal.h>
-
-void M68KFPSPInstallExceptionHandlers (void);
-extern rtems_isr_entry M68Kvec[];
-
-/*
- * bsp_start()
+/**
+ * @file
*
* Board-specific initialization code. Called from the generic boot_card()
* function defined in rtems/c/src/lib/libbsp/shared/main.c. That function
@@ -43,22 +18,35 @@ extern rtems_isr_entry M68Kvec[];
*
* ASSUMES THAT 167BUG IS PRESENT TO CATCH ANY EXCEPTIONS DURING
* INITIALIZATION.
+ */
+
+/*
+ * COPYRIGHT (c) 1989-2012.
+ * On-Line Applications Research Corporation (OAR).
*
- * Input parameters: NONE
- *
- * Output parameters: NONE
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*
- * Return values: NONE
+ * Modifications of respective RTEMS files:
+ * Copyright (c) 1998, National Research Council of Canada
*/
+
+#include <bsp.h>
+#include <bsp/bootcard.h>
+#include <page_table.h>
+
+void M68KFPSPInstallExceptionHandlers (void);
+
void bsp_start( void )
{
- rtems_isr_entry *rom_monitor_vector_table;
+ void **rom_monitor_vector_table;
int index;
/*
* 167Bug Vectors are at 0xFFE00000
*/
- rom_monitor_vector_table = (rtems_isr_entry *)0xFFE00000;
+ rom_monitor_vector_table = (void **)0xFFE00000;
m68k_set_vbr( rom_monitor_vector_table );
/*
diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/mpisr.c b/c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/mpisr.c
index 7d450d6298..064bad4461 100644
--- a/c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/mpisr.c
+++ b/c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/mpisr.c
@@ -1,6 +1,11 @@
-/* Shm_isr_nobsp()
+/**
+ * @file
*
- * COPYRIGHT (c) 1989-1999.
+ * Template for Shared Memory Driver Interrupt Support
+ */
+
+/*
+ * COPYRIGHT (c) 1989-2012.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -12,7 +17,7 @@
#include <bsp.h>
#include <shm_driver.h>
-rtems_isr Shm_isr_nobsp( void )
+rtems_isr Shm_isr_nobsp(rtems_vector_number ignored)
{
/*
* If this routine has to do anything other than the mpisr.c
@@ -22,20 +27,15 @@ rtems_isr Shm_isr_nobsp( void )
* must be cleared.
*
* If the generic mpisr.c satisifies your requirements, then
- * remove this routine from your target's shmsupp/mpisb.c file.
+ * remove this routine from your target's shmsupp/mpisr.c file.
* Then simply install the generic Shm_isr in the Shm_setvec
* routine below.
*/
}
-/* Shm_setvec
- *
+/*
* This driver routine sets the SHM interrupt vector to point to the
* driver's SHM interrupt service routine.
- *
- * Input parameters: NONE
- *
- * Output parameters: NONE
*/
void Shm_setvec( void )
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/Makefile.am b/c/src/lib/libbsp/powerpc/gen83xx/Makefile.am
index 4ee0d2464e..7d970ae7fa 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/Makefile.am
+++ b/c/src/lib/libbsp/powerpc/gen83xx/Makefile.am
@@ -66,6 +66,7 @@ libbsp_a_SOURCES += ../../shared/bsplibc.c \
startup/bspstart.c \
../../shared/bspclean.c \
startup/bspreset.c \
+ startup/bsprestart.c \
../../shared/bspgetworkarea.c \
../../shared/src/bsp-uboot-board-info.c \
../shared/uboot_getenv.c
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/configure.ac b/c/src/lib/libbsp/powerpc/gen83xx/configure.ac
index 0b2435785f..369899820e 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/configure.ac
+++ b/c/src/lib/libbsp/powerpc/gen83xx/configure.ac
@@ -76,7 +76,7 @@ AM_CONDITIONAL(HAS_NETWORKING,test "$HAS_NETWORKING" = "yes")
AC_CONFIG_FILES([Makefile])
RTEMS_BSP_BOOTCARD_OPTIONS
-RTEMS_BSP_CLEANUP_OPTIONS(0, 0)
+RTEMS_BSP_CLEANUP_OPTIONS(0, 1)
RTEMS_BSP_LINKCMDS
RTEMS_PPC_EXCEPTIONS
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/i2c/i2c_init.c b/c/src/lib/libbsp/powerpc/gen83xx/i2c/i2c_init.c
index 9b30d0fd74..b427da7314 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/i2c/i2c_init.c
+++ b/c/src/lib/libbsp/powerpc/gen83xx/i2c/i2c_init.c
@@ -20,10 +20,31 @@
#include <mpc83xx/mpc83xx_i2cdrv.h>
#include <libchip/i2c-2b-eeprom.h>
+#include <libchip/i2c-sc620.h>
#include <bsp/irq.h>
#include <bsp.h>
-static mpc83xx_i2c_desc_t mpc83xx_i2c_bus_tbl[2] = {
+static void i2c1_probe(mpc83xx_i2c_softc_t *self)
+{
+#if MPC83XX_CHIP_TYPE != 8309
+ if (((mpc83xx.clk.sccr >> (31-1)) & 0x03) > 0) {
+ self->base_frq =
+ (BSP_bus_frequency
+ /((mpc83xx.clk.sccr >> (31-1)) & 0x03));
+ }
+#else /* MPC83XX_CHIP_TYPE != 8309 */
+ self->base_frq = BSP_bus_frequency;
+#endif /* MPC83XX_CHIP_TYPE != 8309 */
+}
+
+#ifndef MPC83XX_BOARD_BR_UID
+static void i2c2_probe(mpc83xx_i2c_softc_t *self)
+{
+ self->base_frq = BSP_bus_frequency;
+}
+#endif /* MPC83XX_BOARD_BR_UID */
+
+static mpc83xx_i2c_desc_t mpc83xx_i2c_bus_tbl[] = {
/* first channel */
{
{/* public fields */
@@ -34,27 +55,26 @@ static mpc83xx_i2c_desc_t mpc83xx_i2c_bus_tbl[2] = {
.reg_ptr = &mpc83xx.i2c[0],
.initialized = FALSE,
.irq_number = BSP_IPIC_IRQ_I2C1,
- .base_frq = 0 /* will be set during initiailization */
+ .base_frq = 0, /* will be set during probe */
+ .probe = i2c1_probe
}
- },
+ }
+#ifndef MPC83XX_BOARD_BR_UID
/* second channel */
- {
+ , {
{ /* public fields */
.ops = &mpc83xx_i2c_ops,
- .size = sizeof(mpc83xx_i2c_bus_tbl[1]),
+ .size = sizeof(mpc83xx_i2c_bus_tbl[0]),
},
{ /* our private fields */
.reg_ptr = &mpc83xx.i2c[1],
.initialized = FALSE,
.irq_number = BSP_IPIC_IRQ_I2C2,
- .base_frq = 0 /* will be set during initiailization */
+ .base_frq = 0, /* will be set during probe */
+ .probe = i2c2_probe
}
}
-};
-
-rtems_libi2c_bus_t *mpc83xx_i2c_bus_descriptor[2] = {
- &mpc83xx_i2c_bus_tbl[0].bus_desc,
- &mpc83xx_i2c_bus_tbl[1].bus_desc
+#endif /* MPC83XX_BOARD_BR_UID */
};
/*=========================================================================*\
@@ -76,8 +96,10 @@ rtems_status_code bsp_register_i2c
\*=========================================================================*/
{
- int ret_code;
- int i2c1_busno,i2c2_busno;
+ char device_path[] = "/dev/i2c?";
+ size_t n = RTEMS_ARRAY_SIZE(mpc83xx_i2c_bus_tbl);
+ size_t i;
+ int i2c_busno[n];
/*
* init I2C library (if not already done)
@@ -85,54 +107,41 @@ rtems_status_code bsp_register_i2c
rtems_libi2c_initialize ();
/*
- * update input frequency of I2c modules into descriptor
- */
- /*
- * I2C1 is clocked with TSEC 1
+ * init I2C buses
*/
- if (((mpc83xx.clk.sccr >> (31-1)) & 0x03) > 0) {
- mpc83xx_i2c_bus_tbl[0].softc.base_frq =
- (BSP_bus_frequency
- /((mpc83xx.clk.sccr >> (31-1)) & 0x03));
- }
+ for (i = 0; i < n; ++i) {
+ mpc83xx_i2c_desc_t *desc = &mpc83xx_i2c_bus_tbl[i];
- mpc83xx_i2c_bus_tbl[1].softc.base_frq = BSP_bus_frequency;
- /*
- * register first I2C bus
- */
- ret_code = rtems_libi2c_register_bus("/dev/i2c1",
- mpc83xx_i2c_bus_descriptor[0]);
- if (ret_code < 0) {
- return -ret_code;
- }
- i2c1_busno = ret_code;
- /*
- * register second I2C bus
- */
- ret_code = rtems_libi2c_register_bus("/dev/i2c2",
- mpc83xx_i2c_bus_descriptor[1]);
- if (ret_code < 0) {
- return -ret_code;
+ (*desc->softc.probe)(&desc->softc);
+ device_path[sizeof(device_path) - 2] = (char) ('1' + i);
+ i2c_busno[i] = rtems_libi2c_register_bus(device_path, &desc->bus_desc);
}
- i2c2_busno = ret_code;
#ifdef RTEMS_BSP_I2C_EEPROM_DEVICE_NAME
-
- /*
- * register EEPROM to bus 1, Address 0x50
- */
- ret_code = rtems_libi2c_register_drv(RTEMS_BSP_I2C_EEPROM_DEVICE_NAME,
- i2c_2b_eeprom_driver_descriptor,
- i2c1_busno,0x50);
-
- if (ret_code < 0) {
- return -ret_code;
+ if (n > 0) {
+ /*
+ * register EEPROM to bus 1, Address 0x50
+ */
+ rtems_libi2c_register_drv(RTEMS_BSP_I2C_EEPROM_DEVICE_NAME,
+ i2c_2b_eeprom_driver_descriptor,
+ i2c_busno[0],0x50);
}
-
#endif /* RTEMS_BSP_I2C_EEPROM_DEVICE_NAME */
+#ifdef MPC83XX_BOARD_BR_UID
+ if (n > 0) {
+ rtems_libi2c_register_drv(
+ "sc620",
+ &i2c_sc620_driver,
+ i2c_busno[0],
+ 0x70
+ );
+ }
+#endif /* MPC83XX_BOARD_BR_UID */
+
/*
* FIXME: register RTC driver, when available
*/
- return 0;
+
+ return RTEMS_SUCCESSFUL;
}
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/include/bsp.h b/c/src/lib/libbsp/powerpc/gen83xx/include/bsp.h
index fcead98b7e..cc97cdc071 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/gen83xx/include/bsp.h
@@ -145,6 +145,8 @@ void mpc83xx_zero_4( void *dest, size_t n);
void cpu_init( void);
+void bsp_restart(void *addr);
+
#ifdef __cplusplus
}
#endif
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/startup/bsprestart.c b/c/src/lib/libbsp/powerpc/gen83xx/startup/bsprestart.c
new file mode 100644
index 0000000000..4e27c4e6c0
--- /dev/null
+++ b/c/src/lib/libbsp/powerpc/gen83xx/startup/bsprestart.c
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2008-2013 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#include <bsp.h>
+#include <bsp/u-boot.h>
+
+#include <libcpu/powerpc-utility.h>
+
+void bsp_restart(void *addr)
+{
+ rtems_interrupt_level level;
+ void (*start)(void) = addr;
+ #ifdef HAS_UBOOT
+ const void *mem_begin = (const void *) bsp_uboot_board_info.bi_memstart;
+ size_t mem_size = bsp_uboot_board_info.bi_memsize;
+ #else /* HAS_UBOOT */
+ const void *mem_begin = bsp_ram_start;
+ size_t mem_size = (size_t) bsp_ram_size;
+ #endif /* HAS_UBOOT */
+ uint32_t hid0;
+
+ rtems_interrupt_disable(level);
+
+ hid0 = PPC_SPECIAL_PURPOSE_REGISTER(HID0);
+
+ if ((hid0 & HID0_DCE) != 0) {
+ rtems_cache_flush_multiple_data_lines(mem_begin, mem_size);
+ }
+
+ hid0 &= ~(HID0_DCE | HID0_ICE);
+
+ PPC_SET_SPECIAL_PURPOSE_REGISTER(HID0, hid0);
+
+ (*start)();
+}
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/startup/cpuinit.c b/c/src/lib/libbsp/powerpc/gen83xx/startup/cpuinit.c
index 0cffc24273..ab409ca7ed 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/startup/cpuinit.c
+++ b/c/src/lib/libbsp/powerpc/gen83xx/startup/cpuinit.c
@@ -141,14 +141,21 @@ void cpu_init( void)
{
BAT dbat, ibat;
uint32_t msr;
+ uint32_t hid0;
/* Clear MMU and segment registers */
clear_mmu_regs();
/* Clear caches */
- PPC_CLEAR_SPECIAL_PURPOSE_REGISTER_BITS( HID0, HID0_ILOCK | HID0_DLOCK | HID0_ICE | HID0_DCE);
- PPC_SET_SPECIAL_PURPOSE_REGISTER_BITS( HID0, HID0_ICFI | HID0_DCI);
- PPC_CLEAR_SPECIAL_PURPOSE_REGISTER_BITS( HID0, HID0_ICFI | HID0_DCI);
+ hid0 = PPC_SPECIAL_PURPOSE_REGISTER(HID0);
+ if ((hid0 & (HID0_ICE | HID0_DCE)) == 0) {
+ hid0 &= ~(HID0_ILOCK | HID0_DLOCK | HID0_ICE | HID0_DCE);
+ PPC_SET_SPECIAL_PURPOSE_REGISTER(HID0, hid0);
+ hid0 |= HID0_ICFI | HID0_DCI;
+ PPC_SET_SPECIAL_PURPOSE_REGISTER(HID0, hid0);
+ hid0 &= ~(HID0_ICFI | HID0_DCI);
+ PPC_SET_SPECIAL_PURPOSE_REGISTER(HID0, hid0);
+ }
/*
* Set up IBAT registers in MMU
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.br_uid b/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.br_uid
index 2764431fac..db004b819f 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.br_uid
+++ b/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.br_uid
@@ -8,7 +8,6 @@ MEMORY {
RAM : ORIGIN = 0x0, LENGTH = 256M
ROM : ORIGIN = 0xfe000000, LENGTH = 2M
MPC83XX_REGS : ORIGIN = 0xe0000000, LENGTH = 256k
- NIRVANA : ORIGIN = 0x0, LENGTH = 0
}
INCLUDE linkcmds.base
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/configure.ac b/c/src/lib/libbsp/powerpc/mpc55xxevb/configure.ac
index e691b364d8..63f6a9187d 100644
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/configure.ac
+++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/configure.ac
@@ -32,6 +32,11 @@ RTEMS_BSPOPTS_SET_INSTRUCTION_CACHE_ENABLED([gwlcfm],[])
RTEMS_BSPOPTS_SET_INSTRUCTION_CACHE_ENABLED([*],[1])
RTEMS_BSPOPTS_HELP_INSTRUCTION_CACHE_ENABLED
+RTEMS_BSPOPTS_SET([BSP_DATA_CACHE_USE_WRITE_THROUGH],[mpc5674f_ecu508*],[1])
+RTEMS_BSPOPTS_SET([BSP_DATA_CACHE_USE_WRITE_THROUGH],[*],[])
+RTEMS_BSPOPTS_HELP([BSP_DATA_CACHE_USE_WRITE_THROUGH],
+[use write-through for data cache])
+
RTEMS_BSPOPTS_SET([PPC_EXC_CONFIG_USE_FIXED_HANDLER],[*],[1])
RTEMS_BSPOPTS_HELP([PPC_EXC_CONFIG_USE_FIXED_HANDLER],
[use fixed high-level exception handler])
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/i2c/i2c_init.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/i2c/i2c_init.c
index 3103531b33..92e830dcbc 100644
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/i2c/i2c_init.c
+++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/i2c/i2c_init.c
@@ -24,6 +24,11 @@
#include <bsp/mpc83xx_i2cdrv.h>
#if MPC55XX_CHIP_FAMILY == 551
+ static void i2c_probe(mpc83xx_i2c_softc_t *self)
+ {
+ self->base_frq = bsp_clock_speed;
+ }
+
static mpc83xx_i2c_desc_t mpc55xx_i2c_bus = {
.bus_desc = {
.ops = &mpc83xx_i2c_ops,
@@ -33,7 +38,8 @@
.reg_ptr = (m83xxI2CRegisters_t *) 0xfff88000,
.initialized = FALSE,
.irq_number = MPC55XX_IRQ_I2C(0),
- .base_frq = 0
+ .base_frq = 0,
+ .probe = i2c_probe
}
};
@@ -44,7 +50,6 @@
rtems_libi2c_initialize ();
- mpc55xx_i2c_bus.softc.base_frq = bsp_clock_speed;
busno = rtems_libi2c_register_bus(
"/dev/i2c1",
&mpc55xx_i2c_bus.bus_desc
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-mmu.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-mmu.c
index f1b321221e..6289530987 100644
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-mmu.c
+++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-mmu.c
@@ -85,7 +85,11 @@ const struct MMU_tag mpc55xx_start_config_mmu [] = {
MPC55XX_MMU_TAG_INITIALIZER(9, 0x00100000, MPC55XX_MMU_1M, 1, 0, 1, 0),
MPC55XX_MMU_TAG_INITIALIZER(10, 0x00200000, MPC55XX_MMU_2M, 1, 0, 1, 0),
/* External SRAM 2M */
- MPC55XX_MMU_TAG_INITIALIZER(2, 0x20000000, MPC55XX_MMU_2M, 0, 1, 1, 0),
+ #ifndef BSP_DATA_CACHE_USE_WRITE_THROUGH
+ MPC55XX_MMU_TAG_INITIALIZER(2, 0x20000000, MPC55XX_MMU_2M, 0, 1, 1, 0),
+ #else
+ MPC55XX_MMU_TAG_INITIALIZER(2, 0x20000000, MPC55XX_MMU_2M, 0, 1, 1, 2),
+ #endif
/* Internal SRAM 256k */
MPC55XX_MMU_TAG_INITIALIZER(3, 0x40000000, MPC55XX_MMU_256K, 0, 1, 1, 0),
MPC55XX_MMU_TAG_INITIALIZER(11, 0x40020000, MPC55XX_MMU_64K, 0, 1, 1, 0),
@@ -118,6 +122,8 @@ const struct MMU_tag mpc55xx_start_config_mmu [] = {
MPC55XX_MMU_TAG_INITIALIZER(8, 0x00080000, MPC55XX_MMU_512K, 1, 0, 1, 0),
MPC55XX_MMU_TAG_INITIALIZER(9, 0x00100000, MPC55XX_MMU_1M, 1, 0, 1, 0),
MPC55XX_MMU_TAG_INITIALIZER(10, 0x00200000, MPC55XX_MMU_2M, 1, 0, 1, 0),
+ /* External MRAM 4M */
+ MPC55XX_MMU_TAG_INITIALIZER(2, 0x20000000, MPC55XX_MMU_4M, 0, 1, 1, 0),
/* Internal SRAM 256k */
MPC55XX_MMU_TAG_INITIALIZER(3, 0x40000000, MPC55XX_MMU_256K, 0, 1, 1, 0),
MPC55XX_MMU_TAG_INITIALIZER(11, 0x40020000, MPC55XX_MMU_64K, 0, 1, 1, 0),
@@ -125,13 +131,11 @@ const struct MMU_tag mpc55xx_start_config_mmu [] = {
MPC55XX_MMU_TAG_INITIALIZER(13, 0x40038000, MPC55XX_MMU_16K, 0, 1, 1, 0),
/* Used as cache-inhibited area (ADC, DSPI queues) */
MPC55XX_MMU_TAG_INITIALIZER(14, 0x4003c000, MPC55XX_MMU_16K, 0, 1, 1, 1),
- /* External MRAM 4M */
- MPC55XX_MMU_TAG_INITIALIZER(15, 0x20000000, MPC55XX_MMU_4M, 0, 1, 1, 0),
/* External FPGA */
- MPC55XX_MMU_TAG_INITIALIZER(16, 0x21000000, MPC55XX_MMU_8M, 0, 1, 1, 1),
+ MPC55XX_MMU_TAG_INITIALIZER(15, 0x21000000, MPC55XX_MMU_8M, 0, 1, 1, 1),
#if defined(MPC55XX_BOARD_MPC5674F_RSM6_KOMA)
/* External Ethernet controller */
- MPC55XX_MMU_TAG_INITIALIZER(18, 0x23000000, MPC55XX_MMU_1K, 0, 1, 1, 1),
+ MPC55XX_MMU_TAG_INITIALIZER(17, 0x23000000, MPC55XX_MMU_1K, 0, 1, 1, 1),
#endif
#else
/* Used as cache-inhibited area (ADC, DSPI queues) */
diff --git a/c/src/lib/libbsp/powerpc/shared/src/memcpy.c b/c/src/lib/libbsp/powerpc/shared/src/memcpy.c
index e4ac29221c..9df0ffecea 100644
--- a/c/src/lib/libbsp/powerpc/shared/src/memcpy.c
+++ b/c/src/lib/libbsp/powerpc/shared/src/memcpy.c
@@ -15,7 +15,9 @@
#include <bspopts.h>
#include <rtems/powerpc/powerpc.h>
-#if BSP_DATA_CACHE_ENABLED && PPC_CACHE_ALIGNMENT == 32
+#if BSP_DATA_CACHE_ENABLED \
+ && PPC_CACHE_ALIGNMENT == 32 \
+ && !defined(BSP_DATA_CACHE_USE_WRITE_THROUGH)
#include <string.h>
#include <stdint.h>
diff --git a/c/src/lib/libbsp/powerpc/virtex4/include/irq.h b/c/src/lib/libbsp/powerpc/virtex4/include/irq.h
index 50d3b4c880..d5c2c5cd5c 100644
--- a/c/src/lib/libbsp/powerpc/virtex4/include/irq.h
+++ b/c/src/lib/libbsp/powerpc/virtex4/include/irq.h
@@ -67,6 +67,8 @@ extern "C" {
} rtems_irq_symbolic_name;
extern rtems_irq_connect_data *BSP_rtems_irq_tbl;
+ void BSP_irqexc_on_fnc(const rtems_irq_connect_data *conn_data);
+ void BSP_irqexc_off_fnc(const rtems_irq_connect_data *unused);
void BSP_rtems_irq_mngt_init(unsigned cpuId);
#ifdef __cplusplus
diff --git a/c/src/lib/libbsp/powerpc/virtex4/irq/irq_init.c b/c/src/lib/libbsp/powerpc/virtex4/irq/irq_init.c
index ba22c0275a..ce20ba9692 100644
--- a/c/src/lib/libbsp/powerpc/virtex4/irq/irq_init.c
+++ b/c/src/lib/libbsp/powerpc/virtex4/irq/irq_init.c
@@ -91,7 +91,7 @@ void BSP_irqexc_off_fnc(const rtems_irq_connect_data *unused)
/***********************************************************
* High level IRQ handler called from shared_raw_irq_code_entry
*/
-int C_dispatch_irq_handler (BSP_Exception_frame *frame, unsigned int excNum)
+static int C_dispatch_irq_handler (BSP_Exception_frame *frame, unsigned int excNum)
{
/*
* Handle interrupt
diff --git a/c/src/lib/libbsp/powerpc/virtex4/startup/bspstart.c b/c/src/lib/libbsp/powerpc/virtex4/startup/bspstart.c
index 73c2f847ed..6469979938 100644
--- a/c/src/lib/libbsp/powerpc/virtex4/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/virtex4/startup/bspstart.c
@@ -139,7 +139,7 @@ void BSP_ask_for_reset(void)
void BSP_panic(char *s)
{
- rtems_interrupt_level level;
+ __attribute__((unused)) rtems_interrupt_level level;
rtems_interrupt_disable(level);
@@ -151,7 +151,7 @@ void BSP_panic(char *s)
void _BSP_Fatal_error(unsigned int v)
{
- rtems_interrupt_level level;
+ __attribute__((unused)) rtems_interrupt_level level;
rtems_interrupt_disable(level);
diff --git a/c/src/lib/libbsp/powerpc/virtex5/include/irq.h b/c/src/lib/libbsp/powerpc/virtex5/include/irq.h
index a87562fdd2..007e414455 100644
--- a/c/src/lib/libbsp/powerpc/virtex5/include/irq.h
+++ b/c/src/lib/libbsp/powerpc/virtex5/include/irq.h
@@ -67,14 +67,15 @@ extern "C" {
} rtems_irq_symbolic_name;
extern rtems_irq_connect_data *BSP_rtems_irq_tbl;
+ void BSP_irqexc_on_fnc(const rtems_irq_connect_data *conn_data);
+ void BSP_irqexc_off_fnc(const rtems_irq_connect_data *unused);
void BSP_rtems_irq_mngt_init(unsigned cpuId);
-#ifdef __cplusplus
-}
-
#define BSP_DEC BSP_PIT
#define BSP_DECREMENTER BSP_PIT
+#ifdef __cplusplus
+}
#endif
#endif /* ASM */
diff --git a/c/src/lib/libbsp/powerpc/virtex5/irq/irq_init.c b/c/src/lib/libbsp/powerpc/virtex5/irq/irq_init.c
index 70965128a6..122a9e2317 100644
--- a/c/src/lib/libbsp/powerpc/virtex5/irq/irq_init.c
+++ b/c/src/lib/libbsp/powerpc/virtex5/irq/irq_init.c
@@ -90,7 +90,7 @@ void BSP_irqexc_off_fnc(const rtems_irq_connect_data *unused)
SPR_RW(BOOKE_TSR)
-int C_dispatch_dec_handler (BSP_Exception_frame *frame, unsigned int excNum)
+static int C_dispatch_dec_handler (BSP_Exception_frame *frame, unsigned int excNum)
{
/* Acknowledge the interrupt */
_write_BOOKE_TSR( BOOKE_TSR_DIS );
@@ -105,7 +105,7 @@ int C_dispatch_dec_handler (BSP_Exception_frame *frame, unsigned int excNum)
/***********************************************************
* High level IRQ handler called from shared_raw_irq_code_entry
*/
-int C_dispatch_irq_handler (BSP_Exception_frame *frame, unsigned int excNum)
+static int C_dispatch_irq_handler (BSP_Exception_frame *frame, unsigned int excNum)
{
/*
* Handle interrupt
diff --git a/c/src/lib/libbsp/powerpc/virtex5/startup/bspstart.c b/c/src/lib/libbsp/powerpc/virtex5/startup/bspstart.c
index 4aa89f7bdf..a05016f0bb 100644
--- a/c/src/lib/libbsp/powerpc/virtex5/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/virtex5/startup/bspstart.c
@@ -152,7 +152,7 @@ void BSP_ask_for_reset(void)
void BSP_panic(char *s)
{
- rtems_interrupt_level level;
+ __attribute__((unused)) rtems_interrupt_level level;
rtems_interrupt_disable(level);
@@ -164,7 +164,7 @@ void BSP_panic(char *s)
void _BSP_Fatal_error(unsigned int v)
{
- rtems_interrupt_level level;
+ __attribute__((unused)) rtems_interrupt_level level;
rtems_interrupt_disable(level);
diff --git a/c/src/lib/libbsp/shared/src/irq-server.c b/c/src/lib/libbsp/shared/src/irq-server.c
index 0026f0f5a6..a6cdf4c0fb 100644
--- a/c/src/lib/libbsp/shared/src/irq-server.c
+++ b/c/src/lib/libbsp/shared/src/irq-server.c
@@ -220,8 +220,8 @@ rtems_status_code rtems_interrupt_server_handler_remove(
sc = rtems_interrupt_handler_remove(
vector,
- ie.entry->handler,
- ie.entry->arg
+ bsp_interrupt_server_trigger,
+ ie.entry
);
if (sc != RTEMS_SUCCESSFUL) {
return sc;
diff --git a/c/src/lib/libbsp/sparc/leon3/leon_open_eth/leon_open_eth.c b/c/src/lib/libbsp/sparc/leon3/leon_open_eth/leon_open_eth.c
index 963264edab..f8e700cf4b 100644
--- a/c/src/lib/libbsp/sparc/leon3/leon_open_eth/leon_open_eth.c
+++ b/c/src/lib/libbsp/sparc/leon3/leon_open_eth/leon_open_eth.c
@@ -54,7 +54,7 @@ int rtems_leon_open_eth_driver_attach(
*(volatile int *) base_addr = 0;
*(volatile int *) base_addr = 0x800;
*(volatile int *) base_addr = 0;
- leon_open_eth_configuration.base_address = base_addr;
+ leon_open_eth_configuration.base_address = (void *) base_addr;
leon_open_eth_configuration.vector = eth_irq + 0x10;
leon_open_eth_configuration.txd_count = TDA_COUNT;
leon_open_eth_configuration.rxd_count = RDA_COUNT;
diff --git a/c/src/lib/libbsp/sparc/leon3/shmsupp/getcfg.c b/c/src/lib/libbsp/sparc/leon3/shmsupp/getcfg.c
index 60b47ca7cf..d70f495a26 100644
--- a/c/src/lib/libbsp/sparc/leon3/shmsupp/getcfg.c
+++ b/c/src/lib/libbsp/sparc/leon3/shmsupp/getcfg.c
@@ -1,27 +1,11 @@
-/* void Shm_Get_configuration( localnode, &shmcfg )
+/**
+ * @file
*
- * This routine initializes, if necessary, and returns a pointer
- * to the Shared Memory Configuration Table for the XXX target.
- *
- * INPUT PARAMETERS:
- * localnode - local node number
- * shmcfg - address of pointer to SHM Config Table
- *
- * OUTPUT PARAMETERS:
- * *shmcfg - pointer to SHM Config Table
- *
-XXX: FIX THE COMMENTS BELOW WHEN THE CPU IS KNOWN
- * NOTES: The XYZ does not have an interprocessor interrupt.
- *
- * The following table illustrates the configuration limitations:
- *
- * BUS MAX
- * MODE ENDIAN NODES
- * ========= ====== =======
- * POLLED BIG 2+
- * INTERRUPT **** NOT SUPPORTED ****
- *
- * COPYRIGHT (c) 1989-1999.
+ * LEON3 Shared Memory Driver Support - Configuration
+ */
+
+/*
+ * COPYRIGHT (c) 1989-2012.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -35,7 +19,6 @@ XXX: FIX THE COMMENTS BELOW WHEN THE CPU IS KNOWN
/* multiprocessor communications interface (MPCI) table */
-
extern rtems_mpci_entry Shm_Get_packet(
rtems_packet_prefix **
);
@@ -56,19 +39,11 @@ extern rtems_mpci_entry Shm_Send_packet(
);
-/* rtems_mpci_table MPCI_table = { */
-/* 100000, /\* default timeout value in ticks *\/ */
-/* MAX_PACKET_SIZE, /\* maximum packet size *\/ */
-/* Shm_Initialization, /\* initialization procedure *\/ */
-/* Shm_Get_packet, /\* get packet procedure *\/ */
-/* Shm_Return_packet, /\* return packet procedure *\/ */
-/* Shm_Send_packet, /\* packet send procedure *\/ */
-/* Shm_Receive_packet /\* packet receive procedure *\/ */
-/* }; */
-
-
/*
- * configured if currently polling of interrupt driven
+ * configured if currently polling or interrupt driven
+ *
+ * NOTE: Code in mpisr.c is commented out. Fix when interrupt mode
+ * is added.
*/
#define INTERRUPT 0 /* XXX: */
@@ -95,7 +70,6 @@ void Shm_Get_configuration(
shm_config_table **shmcfg
)
{
- extern rtems_configuration_table Configuration;
int i;
unsigned int tmp;
diff --git a/c/src/lib/libbsp/sparc/leon3/shmsupp/lock.c b/c/src/lib/libbsp/sparc/leon3/shmsupp/lock.c
index be3f64dbd9..91e0b6de98 100644
--- a/c/src/lib/libbsp/sparc/leon3/shmsupp/lock.c
+++ b/c/src/lib/libbsp/sparc/leon3/shmsupp/lock.c
@@ -1,12 +1,17 @@
-/* Shared Memory Lock Routines
+/**
+ * @file
+ *
+ * LEON3 Shared Memory Lock Routines
*
* This shared memory locked queue support routine need to be
* able to lock the specified locked queue. Interrupts are
* disabled while the queue is locked to prevent preemption
* and deadlock when two tasks poll for the same lock.
* previous level.
- *
- * COPYRIGHT (c) 1989-1999.
+ */
+
+/*
+ * COPYRIGHT (c) 1989-2012.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -20,11 +25,8 @@
/*
- * Shm_Initialize_lock
- *
* Initialize the lock for the specified locked queue.
*/
-
void Shm_Initialize_lock(
Shm_Locked_queue_Control *lq_cb
)
@@ -32,12 +34,12 @@ void Shm_Initialize_lock(
lq_cb->lock = LQ_UNLOCKED;
}
-/* void _Shm_Lock( &lq_cb )
- *
+/*
* This shared memory locked queue support routine locks the
* specified locked queue. It disables interrupts to prevent
* a deadlock condition.
*/
+extern unsigned int LEON3_Atomic_Swap(uint32_t value, uint32_t *address);
__asm__ (
".text\n"
@@ -63,16 +65,9 @@ void Shm_Lock(
Shm_isrstat = isr_level;
while ( lock_value ) {
lock_value = LEON3_Atomic_Swap(lock_value, lockptr);
-/* __asm__ volatile( "" */
-/* : "=r" (lockptr), "=r" (lock_value) */
-/* : "0" (lockptr), "1" (lock_value) */
-/* ); */
/*
* If not available, then may want to delay to reduce load on lock.
*/
-
-/* if ( lock_value ) */
-/* rtems_bsp_delay( 10 ); /\* approximately 10 microseconds *\/ */
}
}
diff --git a/c/src/lib/libbsp/sparc/leon3/shmsupp/mpisr.c b/c/src/lib/libbsp/sparc/leon3/shmsupp/mpisr.c
index 6a05dd6197..560828f748 100644
--- a/c/src/lib/libbsp/sparc/leon3/shmsupp/mpisr.c
+++ b/c/src/lib/libbsp/sparc/leon3/shmsupp/mpisr.c
@@ -1,6 +1,11 @@
-/* Shm_isr_nobsp()
+/**
+ * @file
*
- * COPYRIGHT (c) 1989-1999.
+ * LEON3 Shared Memory Driver Interrupt Support
+ */
+
+/*
+ * COPYRIGHT (c) 1989-2012.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -12,7 +17,8 @@
#include <bsp.h>
#include <shm_driver.h>
-rtems_isr Shm_isr_nobsp( void )
+#if 0
+void Shm_isr(void)
{
/*
* If this routine has to do anything other than the mpisr.c
@@ -22,25 +28,23 @@ rtems_isr Shm_isr_nobsp( void )
* must be cleared.
*
* If the generic mpisr.c satisifies your requirements, then
- * remove this routine from your target's shmsupp/mpisb.c file.
+ * remove this routine from your target's shmsupp/mpisr.c file.
* Then simply install the generic Shm_isr in the Shm_setvec
* routine below.
*/
}
+#endif
-/* Shm_setvec
- *
+/*
* This driver routine sets the SHM interrupt vector to point to the
* driver's SHM interrupt service routine.
- *
- * Input parameters: NONE
- *
- * Output parameters: NONE
*/
-
-
void Shm_setvec( void )
{
+ /*
+ * Interrupt driven mode is not currently supported.
+ * This is thought to be the interrupt to use.
+ */
LEON_Unmask_interrupt(LEON3_MP_IRQ);
- set_vector(Shm_isr, LEON_TRAP_TYPE(LEON3_MP_IRQ), 1);
+ set_vector((rtems_isr_entry) Shm_isr, LEON_TRAP_TYPE(LEON3_MP_IRQ), 1);
}
diff --git a/c/src/lib/libcpu/arm/at91rm9200/irq/irq.c b/c/src/lib/libcpu/arm/at91rm9200/irq/irq.c
index 8ef677529c..77b40697e1 100644
--- a/c/src/lib/libcpu/arm/at91rm9200/irq/irq.c
+++ b/c/src/lib/libcpu/arm/at91rm9200/irq/irq.c
@@ -10,6 +10,8 @@
* http://www.rtems.com/license/LICENSE.
*/
+#include <rtems/score/armv4.h>
+
#include <bsp.h>
#include <bsp/irq.h>
#include <bsp/irq-generic.h>
@@ -50,7 +52,7 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
/* disable all interrupts */
AIC_CTL_REG(AIC_IDCR) = 0xffffffff;
- _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, arm_exc_interrupt, NULL);
+ _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL);
return RTEMS_SUCCESSFUL;
}
diff --git a/c/src/lib/libcpu/arm/lpc22xx/irq/irq.c b/c/src/lib/libcpu/arm/lpc22xx/irq/irq.c
index acb25dce81..440c481b62 100644
--- a/c/src/lib/libcpu/arm/lpc22xx/irq/irq.c
+++ b/c/src/lib/libcpu/arm/lpc22xx/irq/irq.c
@@ -9,6 +9,8 @@
* http://www.rtems.com/license/LICENSE.
*/
+#include <rtems/score/armv4.h>
+
#include <bsp.h>
#include <bsp/irq.h>
#include <bsp/irq-generic.h>
@@ -64,7 +66,7 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
VICVectAddr = 0;
/* Install the IRQ exception handler */
- _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, arm_exc_interrupt, NULL);
+ _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL);
return RTEMS_SUCCESSFUL;
}
diff --git a/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c b/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c
index a7e5b670d2..447dedfc8c 100644
--- a/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c
+++ b/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c
@@ -10,6 +10,8 @@
* http://www.rtems.com/license/LICENSE.
*/
+#include <rtems/score/armv4.h>
+
#include <bsp.h>
#include <bsp/irq.h>
#include <bsp/irq-generic.h>
@@ -36,7 +38,7 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
rtems_status_code bsp_interrupt_facility_initialize(void)
{
- _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, arm_exc_interrupt, NULL);
+ _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL);
return RTEMS_SUCCESSFUL;
}
diff --git a/c/src/lib/libcpu/arm/pxa255/irq/irq.c b/c/src/lib/libcpu/arm/pxa255/irq/irq.c
index 214fb3c745..e65af93936 100644
--- a/c/src/lib/libcpu/arm/pxa255/irq/irq.c
+++ b/c/src/lib/libcpu/arm/pxa255/irq/irq.c
@@ -9,6 +9,8 @@
* http://www.rtems.com/license/LICENSE.
*/
+#include <rtems/score/armv4.h>
+
#include <bsp.h>
#include <bsp/irq.h>
#include <bsp/irq-generic.h>
@@ -45,7 +47,7 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
XSCALE_INT_ICLR = 0x0;
/* Install the IRQ exception handler */
- _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, arm_exc_interrupt, NULL);
+ _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL);
return RTEMS_SUCCESSFUL;
}
diff --git a/c/src/lib/libcpu/arm/s3c24xx/irq/irq.c b/c/src/lib/libcpu/arm/s3c24xx/irq/irq.c
index 9aa97935cc..7758b77591 100644
--- a/c/src/lib/libcpu/arm/s3c24xx/irq/irq.c
+++ b/c/src/lib/libcpu/arm/s3c24xx/irq/irq.c
@@ -12,6 +12,8 @@
* http://www.rtems.com/license/LICENSE.
*/
+#include <rtems/score/armv4.h>
+
#include <bsp.h>
#include <bsp/irq.h>
#include <bsp/irq-generic.h>
@@ -37,7 +39,7 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
rtems_status_code bsp_interrupt_facility_initialize(void)
{
- _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, arm_exc_interrupt, NULL);
+ _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL);
return RTEMS_SUCCESSFUL;
}
diff --git a/c/src/lib/libcpu/powerpc/mpc55xx/include/regs-mmu.h b/c/src/lib/libcpu/powerpc/mpc55xx/include/regs-mmu.h
index 16612e670b..aaddeec228 100644
--- a/c/src/lib/libcpu/powerpc/mpc55xx/include/regs-mmu.h
+++ b/c/src/lib/libcpu/powerpc/mpc55xx/include/regs-mmu.h
@@ -157,7 +157,8 @@ extern "C" {
.VALID = 1, .IPROT = 1, .TID = 0, .TS = 0, .TSIZE = (size) } \
}, \
.MAS2 = { .B = { \
- .EPN = (addr) >> 10, .VLE = 0, .W = 0, .I = (io), .M = 0, .G = (io), .E = 0 } \
+ .EPN = (addr) >> 10, .VLE = 0, \
+ .W = (io) == 2, .I = (io) == 1, .M = 0, .G = (io) == 1, .E = 0 } \
}, \
.MAS3 = { .B = { \
.RPN = (addr) >> 10, .U0 = 0, .U1 = 0, .U2 = 0, .U3 = 0, .UX = 0, \
diff --git a/c/src/lib/libcpu/powerpc/mpc83xx/i2c/mpc83xx_i2cdrv.c b/c/src/lib/libcpu/powerpc/mpc83xx/i2c/mpc83xx_i2cdrv.c
index 97396434a3..ce4182327b 100644
--- a/c/src/lib/libcpu/powerpc/mpc83xx/i2c/mpc83xx_i2cdrv.c
+++ b/c/src/lib/libcpu/powerpc/mpc83xx/i2c/mpc83xx_i2cdrv.c
@@ -493,7 +493,6 @@ static rtems_status_code mpc83xx_i2c_send_addr
\*=========================================================================*/
{
mpc83xx_i2c_softc_t *softc_ptr = &(((mpc83xx_i2c_desc_t *)(bh))->softc);
- bool long_addr = false;
uint8_t addr_byte;
rtems_status_code rc;
@@ -505,7 +504,6 @@ static rtems_status_code mpc83xx_i2c_send_addr
* determine, whether short or long address is needed, determine rd/wr
*/
if (addr > 0x7f) {
- long_addr = true;
addr_byte = (0xf0
| ((addr >> 7) & 0x06)
| ((rw) ? 1 : 0));
@@ -565,7 +563,6 @@ static int mpc83xx_i2c_read_bytes
mpc83xx_i2c_softc_t *softc_ptr = &(((mpc83xx_i2c_desc_t *)(bh))->softc);
rtems_status_code rc;
unsigned char *p = buf;
- unsigned char dummy;
#if defined(DEBUG)
printk("mpc83xx_i2c_read_bytes called... ");
@@ -579,7 +576,7 @@ static int mpc83xx_i2c_read_bytes
/*
* we need a dummy transfer here to start the first read
*/
- dummy = softc_ptr->reg_ptr->i2cdr;
+ softc_ptr->reg_ptr->i2cdr;
while (len-- > 0) {
if (len == 0) {
diff --git a/c/src/lib/libcpu/powerpc/mpc83xx/i2c/mpc83xx_i2cdrv.h b/c/src/lib/libcpu/powerpc/mpc83xx/i2c/mpc83xx_i2cdrv.h
index 0353f62138..bb3547ece8 100644
--- a/c/src/lib/libcpu/powerpc/mpc83xx/i2c/mpc83xx_i2cdrv.h
+++ b/c/src/lib/libcpu/powerpc/mpc83xx/i2c/mpc83xx_i2cdrv.h
@@ -49,6 +49,7 @@ typedef struct mpc83xx_i2c_softc {
rtems_irq_number irq_number; /* IRQ number used for this module */
uint32_t base_frq; /* input frq for baud rate divider */
rtems_id irq_sema_id; /* SEMA used for IRQ signalling */
+ void (*probe)(struct mpc83xx_i2c_softc *self);
} mpc83xx_i2c_softc_t ;
typedef struct {
diff --git a/c/src/libchip/Makefile.am b/c/src/libchip/Makefile.am
index 46c06b47cc..5e4ffabca9 100644
--- a/c/src/libchip/Makefile.am
+++ b/c/src/libchip/Makefile.am
@@ -67,6 +67,7 @@ EXTRA_DIST += rtc/README.ds1643 rtc/README.icm7170 rtc/README.m48t08 \
# i2c
include_libchip_HEADERS += i2c/i2c-ds1621.h \
i2c/i2c-2b-eeprom.h \
+ i2c/i2c-sc620.h \
i2c/spi-memdrv.h \
i2c/spi-flash-m25p40.h \
i2c/spi-fram-fm25l256.h \
@@ -82,6 +83,7 @@ libi2cio_a_SOURCES = i2c/i2c-ds1621.h \
i2c/spi-fram-fm25l256.h \
i2c/i2c-ds1621.c \
i2c/i2c-2b-eeprom.c \
+ i2c/i2c-sc620.c \
i2c/spi-memdrv.c \
i2c/spi-flash-m25p40.c \
i2c/spi-fram-fm25l256.c \
diff --git a/c/src/libchip/i2c/i2c-sc620.c b/c/src/libchip/i2c/i2c-sc620.c
new file mode 100644
index 0000000000..105d35d7cb
--- /dev/null
+++ b/c/src/libchip/i2c/i2c-sc620.c
@@ -0,0 +1,95 @@
+/**
+ * @file
+ *
+ * @brief I2C Driver for SEMTECH SC620 Octal LED Driver
+ */
+
+/*
+ * Copyright (c) 2013 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#ifdef HAVE_CONFIG_H
+ #include "config.h"
+#endif
+
+#include <libchip/i2c-sc620.h>
+
+#include <rtems/libio.h>
+
+#define SC620_REG_COUNT 10
+
+static rtems_status_code i2c_sc620_write(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *arg
+)
+{
+ rtems_status_code sc = RTEMS_IO_ERROR;
+ rtems_libio_rw_args_t *rw = arg;
+ unsigned char *buf = (unsigned char *) &rw->buffer[0];
+
+ if (rw->count == 2 && buf[0] < SC620_REG_COUNT) {
+ int rv;
+
+ rv = rtems_libi2c_start_write_bytes(
+ minor, buf, 2
+ );
+ if (rv == 2) {
+ sc = rtems_libi2c_send_stop(minor);
+ }
+ }
+
+ rw->bytes_moved = sc == RTEMS_SUCCESSFUL ? 2 : 0;
+
+ return sc;
+}
+
+static rtems_status_code i2c_sc620_read(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *arg
+)
+{
+ rtems_status_code sc = RTEMS_IO_ERROR;
+ rtems_libio_rw_args_t *rw = arg;
+ unsigned char *buf = (unsigned char *) &rw->buffer[0];
+
+ if (rw->count == 1 && buf[0] < SC620_REG_COUNT) {
+ int rv;
+
+ rv = rtems_libi2c_start_write_bytes(minor, buf, 1);
+ if (rv == 1) {
+ sc = rtems_libi2c_send_addr(minor, 0);
+ if (sc == RTEMS_SUCCESSFUL) {
+ rv = rtems_libi2c_read_bytes(minor, buf, 1);
+ if (rv == 1) {
+ sc = rtems_libi2c_send_stop(minor);
+ }
+ }
+ }
+ }
+
+ rw->bytes_moved = sc == RTEMS_SUCCESSFUL ? 1 : 0;
+
+ return sc;
+}
+
+static rtems_driver_address_table i2c_sc620_ops = {
+ .read_entry = i2c_sc620_read,
+ .write_entry = i2c_sc620_write
+};
+
+rtems_libi2c_drv_t i2c_sc620_driver = {
+ .ops = &i2c_sc620_ops,
+ .size = sizeof(i2c_sc620_driver)
+};
diff --git a/c/src/libchip/i2c/i2c-sc620.h b/c/src/libchip/i2c/i2c-sc620.h
new file mode 100644
index 0000000000..119cd3d559
--- /dev/null
+++ b/c/src/libchip/i2c/i2c-sc620.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2013 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Dornierstr. 4
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#ifndef I2C_SC620_H
+#define I2C_SC620_H
+
+#include <rtems/libi2c.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/**
+ * @brief I2C driver for SEMTECH SC620 octal LED driver.
+ *
+ * A write() must use two character buffer. The buffer[0] value specifies the
+ * register and the buffer[1] value specifies the register data.
+ *
+ * A read() must use a one character buffer. The buffer[0] value specifies the
+ * register on function entry. The buffer[0] value contains the register value
+ * after a successful operation.
+ */
+extern rtems_libi2c_drv_t i2c_sc620_driver;
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* I2C_SC620_H */
diff --git a/c/src/libchip/preinstall.am b/c/src/libchip/preinstall.am
index 51c9a4d5aa..7e80d6d598 100644
--- a/c/src/libchip/preinstall.am
+++ b/c/src/libchip/preinstall.am
@@ -126,6 +126,10 @@ $(PROJECT_INCLUDE)/libchip/i2c-2b-eeprom.h: i2c/i2c-2b-eeprom.h $(PROJECT_INCLUD
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/libchip/i2c-2b-eeprom.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/libchip/i2c-2b-eeprom.h
+$(PROJECT_INCLUDE)/libchip/i2c-sc620.h: i2c/i2c-sc620.h $(PROJECT_INCLUDE)/libchip/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/libchip/i2c-sc620.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/libchip/i2c-sc620.h
+
$(PROJECT_INCLUDE)/libchip/spi-memdrv.h: i2c/spi-memdrv.h $(PROJECT_INCLUDE)/libchip/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/libchip/spi-memdrv.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/libchip/spi-memdrv.h
diff --git a/cpukit/Makefile.am b/cpukit/Makefile.am
index 5b11e7e6f6..fb8cd53f78 100644
--- a/cpukit/Makefile.am
+++ b/cpukit/Makefile.am
@@ -42,7 +42,7 @@ if NEWLIB
include_sysdir = $(includedir)/sys
include_sys_HEADERS =
-include_HEADERS += libnetworking/memory.h
+include_HEADERS += include/memory.h
include_HEADERS += libmd/md4.h
include_HEADERS += libmd/md5.h
@@ -55,7 +55,8 @@ include_sys_HEADERS += libcsupport/include/sys/ttycom.h
include_sys_HEADERS += libcsupport/include/sys/termios.h
include_sys_HEADERS += libcsupport/include/sys/utsname.h
-include_sys_HEADERS += libnetworking/sys/uio.h
+include_sys_HEADERS += include/sys/uio.h
+include_sys_HEADERS += include/sys/_iovec.h
include_sys_HEADERS += include/sys/priority.h
if LIBNETWORKING
diff --git a/cpukit/ftpd/ftpd.c b/cpukit/ftpd/ftpd.c
index 8ffd878d2d..3b77b3bf33 100644
--- a/cpukit/ftpd/ftpd.c
+++ b/cpukit/ftpd/ftpd.c
@@ -1914,39 +1914,49 @@ session(rtems_task_argument arg)
while(1)
{
rtems_event_set set;
+ int rv;
rtems_event_receive(FTPD_RTEMS_EVENT, RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT,
&set);
chroot_made = chroot_made || chroot(ftpd_root) == 0;
- errno = 0;
+ rv = chroot_made ? chdir("/") : -1;
- send_reply(info, 220, FTPD_SERVER_MESSAGE);
+ errno = 0;
- while (1)
+ if (rv == 0)
{
- char buf[FTPD_BUFSIZE];
- char *cmd, *opts, *args;
+ send_reply(info, 220, FTPD_SERVER_MESSAGE);
- if (fgets(buf, FTPD_BUFSIZE, info->ctrl_fp) == NULL)
+ while (1)
{
- syslog(LOG_INFO, "ftpd: Connection aborted.");
- break;
- }
+ char buf[FTPD_BUFSIZE];
+ char *cmd, *opts, *args;
- split_command(buf, &cmd, &opts, &args);
+ if (fgets(buf, FTPD_BUFSIZE, info->ctrl_fp) == NULL)
+ {
+ syslog(LOG_INFO, "ftpd: Connection aborted.");
+ break;
+ }
- if (!strcmp("QUIT", cmd))
- {
- send_reply(info, 221, "Goodbye.");
- break;
- }
- else
- {
- exec_command(info, cmd, args);
+ split_command(buf, &cmd, &opts, &args);
+
+ if (!strcmp("QUIT", cmd))
+ {
+ send_reply(info, 221, "Goodbye.");
+ break;
+ }
+ else
+ {
+ exec_command(info, cmd, args);
+ }
}
}
+ else
+ {
+ send_reply(info, 421, "Service not available, closing control connection.");
+ }
/* Close connection and put ourselves back into the task pool. */
close_data_socket(info);
@@ -1954,8 +1964,6 @@ session(rtems_task_argument arg)
free(info->user);
free(info->pass);
task_pool_release(info);
-
- chdir("/");
}
}
diff --git a/cpukit/libnetworking/memory.h b/cpukit/include/memory.h
index 99fdb5e1e4..99fdb5e1e4 100644
--- a/cpukit/libnetworking/memory.h
+++ b/cpukit/include/memory.h
diff --git a/cpukit/include/rtems/bspIo.h b/cpukit/include/rtems/bspIo.h
index dc5f304821..db9ac038c1 100644
--- a/cpukit/include/rtems/bspIo.h
+++ b/cpukit/include/rtems/bspIo.h
@@ -1,6 +1,8 @@
/**
* @file rtems/bspIo.h
*
+ * @brief Interface to Kernel Print Methods
+ *
* This include file defines the interface to kernel print methods.
*/
diff --git a/cpukit/include/rtems/btimer.h b/cpukit/include/rtems/btimer.h
index 0e02799734..fb38fd68b2 100644
--- a/cpukit/include/rtems/btimer.h
+++ b/cpukit/include/rtems/btimer.h
@@ -1,7 +1,7 @@
/**
* @file rtems/btimer.h
*
- * RTEMS benchmark timer API for all boards.
+ * @brief RTEMS Benchmark Timer API for all Boards
*/
/*
@@ -16,7 +16,7 @@
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*/
-
+
/*
* All the functions declared as extern after this comment
* MUST be implemented in each BSP.
diff --git a/cpukit/include/rtems/fs.h b/cpukit/include/rtems/fs.h
index 6270877ee5..a403e66f3c 100644
--- a/cpukit/include/rtems/fs.h
+++ b/cpukit/include/rtems/fs.h
@@ -1,6 +1,8 @@
/**
* @file rtems/fs.h
*
+ * @brief Basic Filesystem Types
+ *
* This file defines basic filesystem types
*/
diff --git a/cpukit/include/rtems/irq-extension.h b/cpukit/include/rtems/irq-extension.h
index 644091bb37..ff2c6daff4 100644
--- a/cpukit/include/rtems/irq-extension.h
+++ b/cpukit/include/rtems/irq-extension.h
@@ -38,9 +38,8 @@ extern "C" {
* In addition to the Classic API interrupt handler with a handle are
* supported. You can also install multiple shared handler for one interrupt
* vector.
- *
- * @{
*/
+/**@{**/
/**
* @brief Makes the interrupt handler unique. Prevents other handler from
diff --git a/cpukit/include/rtems/status-checks.h b/cpukit/include/rtems/status-checks.h
index ce23e25c14..a1e2698e14 100644
--- a/cpukit/include/rtems/status-checks.h
+++ b/cpukit/include/rtems/status-checks.h
@@ -1,7 +1,7 @@
/**
* @file
*
- * @brief Header file for status checks.
+ * @brief Header File for Status Checks
*
* @warning Do not include this file in other header files. Use it only in
* source files.
@@ -29,15 +29,13 @@ extern "C" {
/**
* @defgroup rtems_status_checks Status Checks
- *
- * @{
*/
+/**@{**/
/**
* @name Print Macros
- *
- * @{
*/
+/**@{**/
/**
* @brief General purpose debug print macro.
@@ -142,9 +140,8 @@ extern "C" {
/**
* @name Check Macros
- *
- * @{
*/
+/**@{**/
/**
* @brief Prints message @a msg and returns with status code @a sc if the status
@@ -248,9 +245,8 @@ extern "C" {
/**
* @name Cleanup Macros
- *
- * @{
*/
+/**@{**/
/**
* @brief Prints message @a msg and jumps to @a label if the status code @a sc
diff --git a/cpukit/include/rtems/userenv.h b/cpukit/include/rtems/userenv.h
index 8cc7a7c39f..edbef204bd 100644
--- a/cpukit/include/rtems/userenv.h
+++ b/cpukit/include/rtems/userenv.h
@@ -2,6 +2,7 @@
* @file
*
* @ingroup LibIOEnv
+ * @brief User Environment Support
*/
/*
@@ -39,9 +40,8 @@ extern "C" {
* @ingroup LibIO
*
* @brief Provides a POSIX like user environment for tasks.
- *
- * @{
*/
+/**@{**/
#ifndef LOGIN_NAME_MAX
#ifdef _POSIX_LOGIN_NAME_MAX
diff --git a/cpukit/include/sys/_iovec.h b/cpukit/include/sys/_iovec.h
new file mode 100644
index 0000000000..a6ca68361b
--- /dev/null
+++ b/cpukit/include/sys/_iovec.h
@@ -0,0 +1,58 @@
+/*-
+ * Copyright (c) 1982, 1986, 1993, 1994
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)uio.h 8.5 (Berkeley) 2/22/94
+ * $FreeBSD$
+ */
+
+#ifndef _SYS__IOVEC_HH_
+#define _SYS__IOVEC_HH_
+
+#include <sys/_types.h>
+
+#ifndef _SIZE_T_DECLARED
+typedef __size_t size_t;
+#define _SIZE_T_DECLARED
+#endif
+
+#ifdef __rtems__
+#ifndef __IOVEC_DEFINED
+#define __IOVEC_DEFINED
+struct iovec {
+ void *iov_base; /* Base address. */
+ size_t iov_len; /* Length. */
+};
+#endif /* __IOVEC_DEFINED */
+#else
+struct iovec {
+ void *iov_base; /* Base address. */
+ size_t iov_len; /* Length. */
+};
+#endif /* rtems */
+
+#endif /* !_SYS__IOVEC_HH_ */
diff --git a/cpukit/libnetworking/sys/uio.h b/cpukit/include/sys/uio.h
index 71e09a2792..56956f0150 100644
--- a/cpukit/libnetworking/sys/uio.h
+++ b/cpukit/include/sys/uio.h
@@ -1,4 +1,4 @@
-/*
+/*-
* Copyright (c) 1982, 1986, 1993, 1994
* The Regents of the University of California. All rights reserved.
*
@@ -27,23 +27,30 @@
* SUCH DAMAGE.
*
* @(#)uio.h 8.5 (Berkeley) 2/22/94
- * $FreeBSD: src/sys/sys/uio.h,v 1.40 2006/11/29 19:08:45 alfred Exp $
+ * $FreeBSD$
*/
-
-#ifndef _SYS_UIO_H_
-#define _SYS_UIO_H_
+#ifndef _SYS_UIO_HH_
+#define _SYS_UIO_HH_
#include <sys/cdefs.h>
+#ifdef __rtems__
#include <sys/types.h>
+#endif /* __rtems__ */
+#include <sys/_types.h>
+#include <sys/_iovec.h>
-/*
- * POSIX compliant iovec definition
- */
-struct iovec {
- void *iov_base; /* pointer to data to be written */
- size_t iov_len; /* length of this data block */
-};
+#ifndef __rtems__
+#ifndef _SSIZE_T_DECLARED
+typedef __ssize_t ssize_t;
+#define _SSIZE_T_DECLARED
+#endif
+
+#ifndef _OFF_T_DECLARED
+typedef __off_t off_t;
+#define _OFF_T_DECLARED
+#endif
+#endif /* !__rtems__ */
#if __BSD_VISIBLE
enum uio_rw { UIO_READ, UIO_WRITE };
@@ -65,11 +72,7 @@ struct uio {
ssize_t uio_resid; /* remaining bytes to process */
enum uio_seg uio_segflg; /* address space */
enum uio_rw uio_rw; /* operation */
-#if !defined(__rtems__)
struct thread *uio_td; /* owner */
-#else
- struct proc *uio_procp;
-#endif /* !__rtems__ */
};
/*
@@ -85,15 +88,37 @@ struct uio {
*/
#define UIO_MAXIOV 1024 /* max 1K of iov's */
+struct vm_object;
+struct vm_page;
+
+struct uio *cloneuio(struct uio *uiop);
+int copyinfrom(const void * __restrict src, void * __restrict dst,
+ size_t len, int seg);
+int copyiniov(struct iovec *iovp, u_int iovcnt, struct iovec **iov,
+ int error);
+int copyinstrfrom(const void * __restrict src, void * __restrict dst,
+ size_t len, size_t * __restrict copied, int seg);
+int copyinuio(struct iovec *iovp, u_int iovcnt, struct uio **uiop);
+void uio_yield(void);
int uiomove(void *cp, int n, struct uio *uio);
+int uiomove_frombuf(void *buf, int buflen, struct uio *uio);
+#ifndef __rtems__
+int uiomove_fromphys(struct vm_page *ma[], vm_offset_t offset, int n,
+ struct uio *uio);
+#endif /* !__rtems__ */
+int uiomoveco(void *cp, int n, struct uio *uio, int disposable);
#else /* !_KERNEL */
__BEGIN_DECLS
ssize_t readv(int, const struct iovec *, int);
ssize_t writev(int, const struct iovec *, int);
+#if __BSD_VISIBLE
+ssize_t preadv(int, const struct iovec *, int, off_t);
+ssize_t pwritev(int, const struct iovec *, int, off_t);
+#endif
__END_DECLS
#endif /* _KERNEL */
-#endif /* !_SYS_UIO_H_ */
+#endif /* !_SYS_UIO_HH_ */
diff --git a/cpukit/libblock/include/rtems/bdbuf.h b/cpukit/libblock/include/rtems/bdbuf.h
index 7f1c13d7b0..cde32d7c4c 100644
--- a/cpukit/libblock/include/rtems/bdbuf.h
+++ b/cpukit/libblock/include/rtems/bdbuf.h
@@ -2,8 +2,7 @@
* @file
*
* @ingroup rtems_bdbuf
- *
- * Block device buffer management.
+ * @brief Block Device Buffer Management
*/
/*
@@ -172,9 +171,8 @@ extern "C" {
* issue with this design. The reallocation of a group may forced recently
* accessed buffers out of the cache when they should not. The design should be
* change to have groups on a LRU list if they have no buffers in use.
- *
- * @{
*/
+/**@{**/
/**
* @brief State of a buffer of the cache.
diff --git a/cpukit/libblock/include/rtems/bdpart.h b/cpukit/libblock/include/rtems/bdpart.h
index 27daae0046..c3141e6eda 100644
--- a/cpukit/libblock/include/rtems/bdpart.h
+++ b/cpukit/libblock/include/rtems/bdpart.h
@@ -3,7 +3,7 @@
*
* @ingroup rtems_bdpart
*
- * Block device partition management.
+ * @brief Block Device Partition Management
*/
/*
@@ -79,15 +79,13 @@ extern "C" {
* - <a href="http://en.wikipedia.org/wiki/Extended_boot_record">Extended Boot Record</a>
* - <a href="http://en.wikipedia.org/wiki/Cylinder-head-sector">Cylinder Head Sector</a>
* - <a href="http://www.win.tue.nl/~aeb/partitions/partition_types-1.html">Partition Types</a>
- *
- * @{
*/
+/**@{**/
/**
* @name MBR Partition Types and Flags
- *
- * @{
*/
+/**@{**/
#define RTEMS_BDPART_MBR_EMPTY 0x0U
diff --git a/cpukit/libblock/include/rtems/blkdev.h b/cpukit/libblock/include/rtems/blkdev.h
index f29a34987f..f934871412 100644
--- a/cpukit/libblock/include/rtems/blkdev.h
+++ b/cpukit/libblock/include/rtems/blkdev.h
@@ -3,7 +3,7 @@
*
* @ingroup rtems_blkdev
*
- * Block device management.
+ * @brief Block Device Management
*/
/*
@@ -36,9 +36,8 @@ extern "C" {
* control. This call puts IO @ref rtems_blkdev_request "requests" to the block
* device for asynchronous processing. When a driver executes a request, it
* invokes the request done callback function to finish the request.
- *
- * @{
*/
+/**@{**/
/**
* @brief Block device request type.
@@ -175,9 +174,8 @@ static inline void rtems_blkdev_request_done(
/**
* @name IO Control Request Codes
- *
- * @{
*/
+/**@{**/
#define RTEMS_BLKIO_REQUEST _IOWR('B', 1, rtems_blkdev_request)
#define RTEMS_BLKIO_GETMEDIABLKSIZE _IOR('B', 2, uint32_t)
@@ -253,9 +251,8 @@ static inline int rtems_disk_fd_reset_device_stats(int fd)
/**
* @name Block Device Driver Capabilities
- *
- * @{
*/
+/**@{**/
/**
* @brief Only consecutive multi-sector buffer requests are supported.
@@ -369,9 +366,8 @@ void rtems_blkstats(
* @ingroup rtems_blkdev
*
* Generic disk device operations for standard RTEMS IO drivers.
- *
- * @{
*/
+/**@{**/
/**
* The device driver interface conventions suppose that a driver may contain an
diff --git a/cpukit/libblock/include/rtems/diskdevs.h b/cpukit/libblock/include/rtems/diskdevs.h
index 3a9967ecb2..3940c5710d 100644
--- a/cpukit/libblock/include/rtems/diskdevs.h
+++ b/cpukit/libblock/include/rtems/diskdevs.h
@@ -1,9 +1,9 @@
/**
* @file
*
- * @ingroup rtems_disk
+ * @brief Block Device Disk Management API
*
- * @brief Block device disk management API.
+ * @ingroup rtems_disk
*/
/*
@@ -37,9 +37,8 @@ typedef struct rtems_disk_device rtems_disk_device;
* contain a subset of consecutive disk blocks. The logical disks are used to
* represent the partitions of a disk. The disk devices are accessed via the
* @ref rtems_bdbuf "block device buffer module".
- *
- * @{
*/
+/**@{**/
/**
* @brief Block device block index type.
@@ -94,7 +93,7 @@ typedef struct {
typedef struct {
/**
* @brief Read hit count.
- *
+ *
* A read hit occurs in the rtems_bdbuf_read() function in case the block is
* in the cached or modified state.
*/
@@ -102,7 +101,7 @@ typedef struct {
/**
* @brief Read miss count.
- *
+ *
* A read miss occurs in the rtems_bdbuf_read() function in case the block is
* in the empty state and a read transfer must be initiated to read the data
* from the device.
@@ -276,9 +275,8 @@ struct rtems_disk_device {
/**
* @name Disk Device Data
- *
- * @{
*/
+/**@{**/
static inline dev_t rtems_disk_get_device_identifier(
const rtems_disk_device *dd
@@ -340,9 +338,8 @@ static inline rtems_blkdev_bnum rtems_disk_get_block_count(
/**
* @name Disk Device Maintainance
- *
- * @{
*/
+/**@{**/
/**
* @brief Creates a physical disk with device identifier @a dev.
@@ -443,9 +440,8 @@ rtems_status_code rtems_disk_release(rtems_disk_device *dd);
/**
* @name Disk Management
- *
- * @{
*/
+/**@{**/
/**
* @brief Initializes the disk device management.
diff --git a/cpukit/libblock/include/rtems/flashdisk.h b/cpukit/libblock/include/rtems/flashdisk.h
index c9f8fd433b..5e4f6a8169 100644
--- a/cpukit/libblock/include/rtems/flashdisk.h
+++ b/cpukit/libblock/include/rtems/flashdisk.h
@@ -3,6 +3,8 @@
*
* @ingroup RTEMSFDisk
*
+ * @brief Interface to a Flash Disk Block Device
+ *
* This file defines the interface to a flash disk block device.
*/
@@ -116,9 +118,8 @@
* }
* close (fd);
* @endcode
- *
- * @{
*/
+/**@{**/
/**
* @brief The base name of the flash disks.
diff --git a/cpukit/libblock/include/rtems/ide_part_table.h b/cpukit/libblock/include/rtems/ide_part_table.h
index ea3dcb331d..3868a3dea7 100644
--- a/cpukit/libblock/include/rtems/ide_part_table.h
+++ b/cpukit/libblock/include/rtems/ide_part_table.h
@@ -1,7 +1,7 @@
/**
- * @file rtems/ide_part_table.h
- *
- * Support for "MS-DOS-style" partition tables
+ * @file
+ *
+ * @brief "MS-DOS-style" Partition Tables Support
*/
/*
diff --git a/cpukit/libblock/include/rtems/media.h b/cpukit/libblock/include/rtems/media.h
index 038357c16d..d1132224f7 100644
--- a/cpukit/libblock/include/rtems/media.h
+++ b/cpukit/libblock/include/rtems/media.h
@@ -40,8 +40,8 @@ extern "C" {
* actions. For example a disk attach will lead to inspection of the partition
* table and mounted file systems. Clients can register listeners to react to
* events.
- * @{
*/
+/**@{**/
#define RTEMS_MEDIA_MOUNT_BASE "/media"
@@ -312,9 +312,8 @@ typedef rtems_status_code (*rtems_media_worker)(
/**
* @name Base
- *
- * @{
*/
+/**@{**/
/**
* @brief Initializes the media manager.
@@ -377,9 +376,8 @@ rtems_status_code rtems_media_post_event(
/**
* @name Server
- *
- * @{
*/
+/**@{**/
/**
* @brief Initializes the media manager and media server.
@@ -452,9 +450,8 @@ static inline rtems_status_code rtems_media_server_disk_detach(
/**
* @name Path Construction
- *
- * @{
*/
+/**@{**/
/**
* @brief Creates a new path as "prefix/name-major".
@@ -490,9 +487,8 @@ char *rtems_media_append_minor(
/**
* @name Support
- *
- * @{
*/
+/**@{**/
/**
* @brief Returns the device identifier for the device located at
diff --git a/cpukit/libblock/include/rtems/nvdisk.h b/cpukit/libblock/include/rtems/nvdisk.h
index c7693fb6fb..0f9cc8fe9d 100644
--- a/cpukit/libblock/include/rtems/nvdisk.h
+++ b/cpukit/libblock/include/rtems/nvdisk.h
@@ -1,7 +1,7 @@
/**
* @file rtems/nvdisk.h
*
- * Non-volatile disk block device implementation
+ * @brief Non-volatile Disk Block Device Implementation
*/
/*
diff --git a/cpukit/libblock/include/rtems/ramdisk.h b/cpukit/libblock/include/rtems/ramdisk.h
index 690864ceea..727efddbe8 100644
--- a/cpukit/libblock/include/rtems/ramdisk.h
+++ b/cpukit/libblock/include/rtems/ramdisk.h
@@ -1,9 +1,7 @@
/**
* @file
*
- * @ingroup rtems_ramdisk
- *
- * @brief RAM disk block device API.
+ * @brief RAM Disk Block Device API
*/
/*
@@ -27,14 +25,13 @@ extern "C" {
*
* @ingroup rtems_blkdev
*
- * @{
*/
+/**@{**/
/**
* @name Static Configuration
- *
- * @{
*/
+/**@{**/
/**
* @brief RAM disk configuration table entry.
@@ -97,9 +94,8 @@ rtems_device_driver ramdisk_initialize(
/**
* @name Runtime Configuration
- *
- * @{
*/
+/**@{**/
/**
* @brief RAM disk descriptor.
diff --git a/cpukit/libblock/include/rtems/sparse-disk.h b/cpukit/libblock/include/rtems/sparse-disk.h
index 3dc806b407..3f2e41c01a 100644
--- a/cpukit/libblock/include/rtems/sparse-disk.h
+++ b/cpukit/libblock/include/rtems/sparse-disk.h
@@ -37,8 +37,8 @@ extern "C" {
*
* @ingroup rtems_blkdev
*
- * @{
*/
+/**@{**/
typedef struct {
rtems_blkdev_bnum block;
diff --git a/cpukit/libcsupport/include/clockdrv.h b/cpukit/libcsupport/include/clockdrv.h
index fc85c7abf6..999af92d9c 100644
--- a/cpukit/libcsupport/include/clockdrv.h
+++ b/cpukit/libcsupport/include/clockdrv.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/clockdrv.h
+ * @file
+ *
+ * @brief Clock Driver for all Boards
*
* This file describes the Clock Driver for all boards.
*/
diff --git a/cpukit/libcsupport/include/console.h b/cpukit/libcsupport/include/console.h
index 137959a915..6b8b8c9455 100644
--- a/cpukit/libcsupport/include/console.h
+++ b/cpukit/libcsupport/include/console.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/console.h
+ * @file
+ *
+ * @brief Console Driver for all Boards
*
* This file describes the Console Device Driver for all boards.
* This driver provides support for the standard C Library.
@@ -24,30 +26,29 @@ extern "C" {
#endif
/**
- * This macro defines the standard name for the console device
- * that is available to applications.
+ * This macro defines the standard name for the console device
+ * that is available to applications.
*/
#define CONSOLE_DEVICE_NAME "/dev/console"
/**
- * This macro defines the standard device driver table entry for
- * a console device driver.
+ * This macro defines the standard device driver table entry for
+ * a console device driver.
*/
#define CONSOLE_DRIVER_TABLE_ENTRY \
{ console_initialize, console_open, console_close, \
console_read, console_write, console_control }
/**
- * @brief Console Initialization Entry Point
+ * @brief Console initialization entry point.
*
- * This method initializes the console device driver.
+ * This method initializes the console device driver.
*
- * @param[in] major is the device driver major number
- * @param[in] minor is the device driver minor number
- * @param[in] arg is the parameters to this call
+ * @param[in] major is the device driver major number.
+ * @param[in] minor is the device driver minor number.
+ * @param[in] arg is the parameters to this call.
*
- * @return This method returns RTEMS_SUCCESSFUL when
- * the device driver is successfully initialized.
+ * @retval RTEMS_SUCCESSFUL The device driver is successfully initialized.
*/
rtems_device_driver console_initialize(
rtems_device_major_number major,
@@ -56,17 +57,16 @@ rtems_device_driver console_initialize(
);
/**
- * @brief Console Open Entry Point
+ * @brief Console open entry point.
*
- * This method opens a specific device supported by the
- * console device driver.
+ * This method opens a specific device supported by the
+ * console device driver.
*
- * @param[in] major is the device driver major number
- * @param[in] minor is the device driver minor number
- * @param[in] arg is the parameters to this call
+ * @param[in] major is the device driver major number
+ * @param[in] minor is the device driver minor number
+ * @param[in] arg is the parameters to this call
*
- * @return This method returns RTEMS_SUCCESSFUL when
- * the device driver is successfully opened.
+ * @retval RTEMS_SUCCESSFUL The device driver is successfully opened.
*/
rtems_device_driver console_open(
rtems_device_major_number major,
@@ -75,17 +75,16 @@ rtems_device_driver console_open(
);
/**
- * @brief Console Close Entry Point
+ * @brief Console close entry point.
*
- * This method closes a specific device supported by the
- * console device driver.
+ * This method closes a specific device supported by the
+ * console device driver.
*
- * @param[in] major is the device driver major number
- * @param[in] minor is the device driver minor number
- * @param[in] arg is the parameters to this call
+ * @param[in] major is the device driver major number
+ * @param[in] minor is the device driver minor number
+ * @param[in] arg is the parameters to this call
*
- * @return This method returns RTEMS_SUCCESSFUL when
- * the device is successfully closed.
+ * @retval RTEMS_SUCCESSFUL The device driver is successfully closed.
*/
rtems_device_driver console_close(
rtems_device_major_number major,
@@ -94,17 +93,16 @@ rtems_device_driver console_close(
);
/**
- * @brief Console Read Entry Point
+ * @brief Console read entry point.
*
- * This method reads from a specific device supported by the
- * console device driver.
+ * This method reads from a specific device supported by the
+ * console device driver.
*
- * @param[in] major is the device driver major number
- * @param[in] minor is the device driver minor number
- * @param[in] arg is the parameters to this call
+ * @param[in] major is the device driver major number
+ * @param[in] minor is the device driver minor number
+ * @param[in] arg is the parameters to this call
*
- * @return This method returns RTEMS_SUCCESSFUL when
- * the device is successfully read from.
+ * @retval RTEMS_SUCCESSFUL The device is successfully read from.
*/
rtems_device_driver console_read(
rtems_device_major_number major,
@@ -113,17 +111,16 @@ rtems_device_driver console_read(
);
/**
- * @brief Console Write Entry Point
+ * @brief Console write entry point.
*
- * This method writes to a specific device supported by the
- * console device driver.
+ * This method writes to a specific device supported by the
+ * console device driver.
*
- * @param[in] major is the device driver major number
- * @param[in] minor is the device driver minor number
- * @param[in] arg is the parameters to this call
+ * @param[in] major is the device driver major number
+ * @param[in] minor is the device driver minor number
+ * @param[in] arg is the parameters to this call
*
- * @return This method returns RTEMS_SUCCESSFUL when
- * the device is successfully written.
+ * @retval RTEMS_SUCCESSFUL The device is successfully written.
*/
rtems_device_driver console_write(
rtems_device_major_number major,
@@ -132,18 +129,17 @@ rtems_device_driver console_write(
);
/**
- * @brief Console IO Control Entry Point
+ * @brief Console IO control entry point.
*
- * This method performs an IO Control operation on a
- * specific device supported by the console device driver.
+ * This method performs an IO Control operation on a
+ * specific device supported by the console device driver.
*
- * @param[in] major is the device driver major number
- * @param[in] minor is the device driver minor number
- * @param[in] arg is the parameters to this call
- *
- * @return This method returns RTEMS_SUCCESSFUL when
- * the device driver IO control operation is
- * successfully performed.
+ * @param[in] major is the device driver major number
+ * @param[in] minor is the device driver minor number
+ * @param[in] arg is the parameters to this call
+ *
+ * @retval RTEMS_SUCCESSFUL the device driver IO control operation is
+ * successfully performed.
*/
rtems_device_driver console_control(
rtems_device_major_number major,
diff --git a/cpukit/libcsupport/include/ringbuf.h b/cpukit/libcsupport/include/ringbuf.h
index 71b0532f41..99e72a5bb3 100644
--- a/cpukit/libcsupport/include/ringbuf.h
+++ b/cpukit/libcsupport/include/ringbuf.h
@@ -1,7 +1,9 @@
/**
- * @file rtems/ringbuf.h
+ * @file
*
- * This file provides simple ring buffer functionality.
+ * @brief Simple Ring Buffer Functionality
+ *
+ * This file provides simple ring buffer functionality.
*/
diff --git a/cpukit/libcsupport/include/rtc.h b/cpukit/libcsupport/include/rtc.h
index 4b8e601940..36965ce194 100644
--- a/cpukit/libcsupport/include/rtc.h
+++ b/cpukit/libcsupport/include/rtc.h
@@ -1,6 +1,8 @@
/**
* @file
*
+ * @brief Real-Time Clock Driver Interface
+ *
* Real-time clock driver interface.
*/
@@ -27,9 +29,8 @@ extern "C" {
*
* This driver interface provides support to read and set the real-time clock
* and to initialize the time of day for the system.
- *
- * @{
*/
+/**@{**/
/**
* Device file name path.
diff --git a/cpukit/libcsupport/include/rtems/assoc.h b/cpukit/libcsupport/include/rtems/assoc.h
index 06a74849ef..c4933159e0 100644
--- a/cpukit/libcsupport/include/rtems/assoc.h
+++ b/cpukit/libcsupport/include/rtems/assoc.h
@@ -1,6 +1,8 @@
/**
* @file rtems/assoc.h
*
+ * @brief RTEMS Associativity Routines
+ *
* RTEMS associativity routines. Mainly used to convert a value from
* one space to another (eg: our errno's to host errno's and vice-versa)
*/
@@ -10,7 +12,7 @@
#define _RTEMS_RTEMS_ASSOC_H
/**
- * @defgroup Associativity Routines
+ * @defgroup Associativity Associativity Routines
*/
/**@{*/
@@ -139,7 +141,7 @@ const rtems_assoc_t *rtems_assoc_ptr_by_local(
/**
* @brief RTEMS Associate Bad Name
- *
+ *
* what to return if a value is not found
* this is not reentrant, but it really shouldn't be invoked anyway
*/
diff --git a/cpukit/libcsupport/include/rtems/deviceio.h b/cpukit/libcsupport/include/rtems/deviceio.h
index b832942750..571b3e14ec 100644
--- a/cpukit/libcsupport/include/rtems/deviceio.h
+++ b/cpukit/libcsupport/include/rtems/deviceio.h
@@ -1,7 +1,7 @@
/**
- * @file rtems/deviceio.h
+ * @file
*
- * @brief Map Operations on IMFS Device Nodes to the RTEMS Classic API IO Manager
+ * @brief Operations on IMFS Device Nodes
*/
/*
@@ -16,24 +16,28 @@
#ifndef _RTEMS_DEVICEIO_H
#define _RTEMS_DEVICEIO_H
+#include <rtems/libio.h>
+
/**
- * @defgroup Device IO Handler
+ * @defgroup IMFSDevices IMFS Device IO Handler
+ *
+ * @ingroup IMFS
+ *
+ * This contains the interface to device drivers using the RTEMS Classic API.
*/
/**@{*/
-#include <rtems/libio.h>
-
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/**
- * @brief IMFS Device Node Handlers
+ * @brief IMFS device node handlers.
*
- * IMFS Device Node Handlers
+ * IMFS Device Node Handlers
*
- * This file contains the set of handlers used to map operations on
- * IMFS device nodes onto calls to the RTEMS Classic API IO Manager.
+ * This file contains the set of handlers used to map operations on
+ * IMFS device nodes onto calls to the RTEMS Classic API IO Manager.
*/
int rtems_deviceio_errno( rtems_status_code status );
@@ -79,7 +83,8 @@ int rtems_deviceio_control(
#ifdef __cplusplus
}
#endif
-/**@}*/
/* __cplusplus */
+/**@}*/
+
#endif /* _RTEMS_DEVICEIO_H */
diff --git a/cpukit/libcsupport/include/rtems/error.h b/cpukit/libcsupport/include/rtems/error.h
index 056fb8f9c0..4eae14f912 100644
--- a/cpukit/libcsupport/include/rtems/error.h
+++ b/cpukit/libcsupport/include/rtems/error.h
@@ -1,10 +1,12 @@
/**
* @file rtems/error.h
*
+ * @brief RTEMS Error Reporting
+ *
* Defines and externs for rtems error reporting
- *
+ *
* Currently just used by RTEMS monitor.
- *
+ *
* These routines provide general purpose error reporting.
* rtems_error reports an error to stderr and allows use of
* printf style formatting. A newline is appended to all messages.
@@ -18,27 +20,32 @@
* It can also include a rtems_status value which can be OR'd
* with the above flags. *
*
- * EXAMPLE
+ * Example 1:
+ * @code
* #include <rtems.h>
* #include <rtems/error.h>
* rtems_error(0, "stray interrupt %d", intr);
+ * @endcode
*
- * EXAMPLE
+ * Example 2:
+ * @code
* if ((status = rtems_task_create(...)) != RTEMS_SUCCCESSFUL)
* {
* rtems_error(status | RTEMS_ERROR_ABORT,
* "could not create task");
* }
+ * @endcode
*
- * EXAMPLE
+ * Example 3:
+ * @code
* if ((fd = open(pathname, O_RDNLY)) < 0)
* {
* rtems_error(RTEMS_ERROR_ERRNO, "open of '%s' failed", pathname);
* goto failed;
* }
+ * @endcode
*/
-
#ifndef _RTEMS_RTEMS_ERROR_H
#define _RTEMS_RTEMS_ERROR_H
@@ -53,11 +60,10 @@ extern "C" {
* @defgroup ErrorPanicSupport Error And Panic Support
*
* @ingroup libcsupport
- *
+ *
* @brief Defines and externs for rtems error reporting
- *
+ *
*/
-
typedef Internal_errors_t rtems_error_code_t;
/*
@@ -82,13 +88,13 @@ const char *rtems_status_text(rtems_status_code sc);
/**
* @brief Report an Error
- *
+ *
* @param[in] error_code can be specified as any of the following:
* RTEMS_ERROR_ERRNO -- include errno text in output
* RTEMS_ERROR_PANIC -- halts local system after output
* RTEMS_ERROR_ABORT -- abort after output
- *
- * @param[in] printf_format is a normal printf(3) format string,
+ *
+ * @param[in] printf_format is a normal printf(3) format string,
* with its concommitant arguments
*
* @return the number of characters written.
diff --git a/cpukit/libcsupport/include/rtems/framebuffer.h b/cpukit/libcsupport/include/rtems/framebuffer.h
index 8a05f5ac75..a0548d3499 100644
--- a/cpukit/libcsupport/include/rtems/framebuffer.h
+++ b/cpukit/libcsupport/include/rtems/framebuffer.h
@@ -1,6 +1,8 @@
/**
* @file rtems/framebuffer.h
*
+ * @brief Frame Buffer Device Driver for all Boards
+ *
* This file describes the Frame Buffer Device Driver for all boards.
*/
diff --git a/cpukit/libcsupport/include/rtems/libcsupport.h b/cpukit/libcsupport/include/rtems/libcsupport.h
index 2c498848b5..582e16b4bc 100644
--- a/cpukit/libcsupport/include/rtems/libcsupport.h
+++ b/cpukit/libcsupport/include/rtems/libcsupport.h
@@ -1,6 +1,8 @@
/**
- * @file rtems/libcsupport.h
- *
+ * @file
+ *
+ * @brief Standard C Library Support
+ *
* This include file contains the information regarding the
* RTEMS specific support for the standard C library.
*/
@@ -28,29 +30,31 @@ extern "C" {
#endif
/**
- * @defgroup libcsupport Standard C Library Support
+ * @defgroup libcsupport Standard C Library Support
+ *
+ * @brief RTEMS Specific Support for the Standard C Library
*
- * @brief RTEMS Specific Support for the Standard C Library
*/
+/**@{**/
extern void malloc_dump(void);
/**
- * @brief Malloc Walk
+ * @brief Malloc walk.
*/
extern bool malloc_walk(int source, bool printf_enabled);
/**
- * @brief RTEMS Malloc Set Heap Pointer
+ * @brief Set malloc heap pointer.
*
- * This routine is primarily used for debugging.
+ * This routine is primarily used for debugging.
*/
void malloc_set_heap_pointer(Heap_Control *new_heap);
/**
- * @brief RTEMS Malloc Get Heap Pointer
+ * @brief Get malloc heap pointer.
*
- * This routine is primarily used for debugging.
+ * This routine is primarily used for debugging.
*/
Heap_Control *malloc_get_heap_pointer( void );
extern void libc_init(void);
@@ -58,17 +62,17 @@ extern int host_errno(void);
extern void fix_syscall_errno(void);
/**
- * @brief RTEMS Malloc Get Free Information
+ * @brief Get free malloc information.
*
- * Find amount of free heap remaining
+ * Find amount of free heap remaining
*/
extern size_t malloc_free_space(void);
extern void open_dev_console(void);
/**
- * @brief RTEMS Malloc Get Status Information
+ * @brief Get malloc status information.
*
- * Find amount of free heap remaining.
+ * Find amount of free heap remaining.
*/
extern int malloc_info(Heap_Information_block *the_info);
@@ -163,8 +167,11 @@ void rtems_resource_snapshot_take(rtems_resource_snapshot *snapshot);
/**
* @brief Compares two resource snapshots for equality.
*
- * @return Returns true if the resource snapshots are equal, and false
- * otherwise.
+ * @param[in] a One resource snapshot.
+ * @param[in] b Another resource snapshot.
+ *
+ * @retval true The resource snapshots are equal.
+ * @retval false Otherwise.
*
* @see rtems_resource_snapshot_take().
*/
@@ -175,17 +182,20 @@ bool rtems_resource_snapshot_equal(
/**
* @brief Takes a new resource snapshot and checks that it is equal to the
- * given snapshot.
+ * given resource snapshot.
*
- * @param[in] snapshot The snapshot used for comparison with the new snapshot.
+ * @param[in] snapshot The resource snapshot used for comparison with the new
+ * resource snapshot.
*
- * @return Returns true if the resource snapshots are equal, and false
- * otherwise.
+ * @retval true The resource snapshots are equal.
+ * @retval false Otherwise.
*
* @see rtems_resource_snapshot_take().
*/
bool rtems_resource_snapshot_check(const rtems_resource_snapshot *snapshot);
+/** @} */
+
#ifdef __cplusplus
}
#endif
diff --git a/cpukit/libcsupport/include/rtems/libio.h b/cpukit/libcsupport/include/rtems/libio.h
index 84f3dc7451..51e25c98c7 100644
--- a/cpukit/libcsupport/include/rtems/libio.h
+++ b/cpukit/libcsupport/include/rtems/libio.h
@@ -3,8 +3,8 @@
*
* @ingroup LibIO
*
- * @brief Basic IO API.
- *
+ * @brief Basic IO API
+ *
* This file contains the support infrastructure used to manage the
* table of integer style file descriptors used by the low level
* POSIX system calls like open(), read, fstat(), etc.
@@ -47,9 +47,8 @@ extern "C" {
* @ingroup LibIO
*
* @brief File system operations.
- *
- * @{
*/
+/**@{**/
/**
* @brief File system node types.
@@ -749,9 +748,8 @@ int rtems_filesystem_default_statvfs(
* @ingroup LibIO
*
* @brief File system node handler.
- *
- * @{
*/
+/**@{**/
/**
* @brief Opens a node.
@@ -1143,9 +1141,8 @@ int rtems_filesystem_default_fcntl(
* system call behavior under RTEMS. Initially this supported only
* IO to devices but has since been enhanced to support networking
* and support for mounted file systems.
- *
- * @{
*/
+/**@{**/
typedef off_t rtems_off64_t __attribute__((deprecated));
@@ -1240,9 +1237,8 @@ typedef struct {
/**
* @name Flag Values
- *
- * @{
*/
+/**@{**/
#define LIBIO_FLAGS_NO_DELAY 0x0001U /* return immediately if no data */
#define LIBIO_FLAGS_READ 0x0002U /* reading */
@@ -1257,16 +1253,15 @@ typedef struct {
/**
* @brief RTEMS LibIO Initialization
- *
+ *
* Called by BSP startup code to initialize the libio subsystem.
*/
void rtems_libio_init(void);
/**
* @name External I/O Handlers
- *
- * @{
*/
+/**@{**/
typedef int (*rtems_libio_open_t)(
const char *pathname,
@@ -1306,9 +1301,8 @@ typedef off_t (*rtems_libio_lseek_t)(
/**
* @name Permission Macros
- *
- * @{
*/
+/**@{**/
/*
* The following macros are used to build up the permissions sets
@@ -1384,7 +1378,7 @@ static inline rtems_device_minor_number rtems_filesystem_dev_minor_t(
/**
* @brief Base File System Initialization
- *
+ *
* Initialize the foundation of the file system. This is specified
* by the structure rtems_filesystem_mount_table. The usual
* configuration is a single instantiation of the IMFS or miniIMFS with
@@ -1422,15 +1416,13 @@ extern int rtems_mkdir(const char *path, mode_t mode);
* @ingroup LibIO
*
* @brief File system types and mount.
- *
- * @{
*/
+/**@{**/
/**
* @name File System Types
- *
- * @{
*/
+/**@{**/
#define RTEMS_FILESYSTEM_TYPE_IMFS "imfs"
#define RTEMS_FILESYSTEM_TYPE_MINIIMFS "mimfs"
@@ -1701,9 +1693,8 @@ extern const rtems_filesystem_mount_configuration
* @ingroup LibIO
*
* @brief Termios
- *
- * @{
*/
+/**@{**/
typedef struct rtems_termios_callbacks {
int (*firstOpen)(int major, int minor, void *arg);
diff --git a/cpukit/libcsupport/include/rtems/libio_.h b/cpukit/libcsupport/include/rtems/libio_.h
index 6ef4b6ccb6..1f7f654da4 100644
--- a/cpukit/libcsupport/include/rtems/libio_.h
+++ b/cpukit/libcsupport/include/rtems/libio_.h
@@ -1,6 +1,8 @@
/**
- * @file rtems/libio_.h
+ * @file
*
+ * @brief LibIO Internal Interface
+ *
* This file is the libio internal interface.
*/
@@ -30,12 +32,12 @@ extern "C" {
#endif
/**
- * @defgroup LibIOInternal IO Internal Library
+ * @defgroup LibIOInternal IO Internal Library
*
- * @brief Internal IO library API and implementation.
+ * @brief Internal IO library API and implementation.
*
- * @{
*/
+/**@{**/
#define RTEMS_FILESYSTEM_SYMLOOP_MAX 32
@@ -69,8 +71,8 @@ extern rtems_filesystem_mount_table_entry_t rtems_filesystem_null_mt_entry;
* The purpose of this location is to deliver the error return status for a
* previous error condition which must set the errno accordingly.
*
- * The usage of this null location instead of the NULL pointer eliminates a lot
- * of branches.
+ * The usage of this null location instead of the NULL pointer eliminates
+ * a lot of branches.
*
* The user environment root and current directory are statically initialized
* with the null location. Due to that all file system services are in a
@@ -200,7 +202,7 @@ void rtems_filesystem_location_clone(
*
* @param[in] loc The location of the node.
*
- * @return The node type.
+ * @retval type The node type.
*
* @see rtems_filesystem_instance_lock().
*/
@@ -215,8 +217,8 @@ rtems_filesystem_node_types_t rtems_filesystem_node_type(
*
* @param[in] loc The location to free.
*
- * @note The file system root location is released by the file system instance
- * destruction handler (see @ref rtems_filesystem_fsunmount_me_t).
+ * @note The file system root location is released by the file system
+ * instance destruction handler (see @ref rtems_filesystem_fsunmount_me_t).
*
* @see rtems_filesystem_freenode_t.
*/
@@ -277,24 +279,24 @@ static inline void rtems_filesystem_instance_unlock(
*/
/**
- * This routine searches the IOP Table for an unused entry. If it
- * finds one, it returns it. Otherwise, it returns NULL.
+ * This routine searches the IOP Table for an unused entry. If it
+ * finds one, it returns it. Otherwise, it returns NULL.
*/
rtems_libio_t *rtems_libio_allocate(void);
/**
- * Convert UNIX fnctl(2) flags to ones that RTEMS drivers understand
+ * Convert UNIX fnctl(2) flags to ones that RTEMS drivers understand
*/
uint32_t rtems_libio_fcntl_flags( int fcntl_flags );
/**
- * Convert RTEMS internal flags to UNIX fnctl(2) flags
+ * Convert RTEMS internal flags to UNIX fnctl(2) flags
*/
int rtems_libio_to_fcntl_flags( uint32_t flags );
/**
- * This routine frees the resources associated with an IOP (file descriptor)
- * and clears the slot in the IOP Table.
+ * This routine frees the resources associated with an IOP (file descriptor)
+ * and clears the slot in the IOP Table.
*/
void rtems_libio_free(
rtems_libio_t *iop
@@ -359,7 +361,7 @@ void rtems_filesystem_eval_path_cleanup_with_parent(
* current location. The previous start and current locations are released.
*
* @param[in, out] ctx The path evaluation context.
- * @param[in, out] newstartloc_ptr Pointer to new start location.
+ * @param[in, out] newstartloc_ptr Pointer to the new start location.
*/
void rtems_filesystem_eval_path_restart(
rtems_filesystem_eval_path_context_t *ctx,
@@ -413,9 +415,6 @@ typedef struct {
rtems_filesystem_eval_path_eval_token eval_token;
} rtems_filesystem_eval_path_generic_config;
-/**
- * @brief RTEMS File System Eval Generic Path
- */
void rtems_filesystem_eval_path_generic(
rtems_filesystem_eval_path_context_t *ctx,
void *arg,
@@ -431,7 +430,7 @@ void rtems_filesystem_initialize(void);
* corresponding mount entry.
*
* @param[out] dst The destination location.
- * @param[in] src The source location.
+ * @param[in] src The source location.
*
* @retval dst The destination location.
*
@@ -552,9 +551,7 @@ static inline void rtems_filesystem_location_error(
errno = eno;
}
}
-/**
- * @brief RTEMS File System Mknod
- */
+
int rtems_filesystem_mknod(
const rtems_filesystem_location_info_t *parentloc,
const char *name,
@@ -565,9 +562,6 @@ int rtems_filesystem_mknod(
int rtems_filesystem_chdir( rtems_filesystem_location_info_t *loc );
-/**
- * @brief Change Owner and Group of a File
- */
int rtems_filesystem_chown(
const char *path,
uid_t owner,
@@ -697,9 +691,6 @@ static inline void rtems_filesystem_eval_path_put_back_token(
ctx->tokenlen = 0;
}
-/**
- * @brief RTEMS File System Eval Eat Delimiter Path
- */
void rtems_filesystem_eval_path_eat_delimiter(
rtems_filesystem_eval_path_context_t *ctx
);
diff --git a/cpukit/libcsupport/include/sys/statvfs.h b/cpukit/libcsupport/include/sys/statvfs.h
index 13185e7e2e..eccc7d2881 100644
--- a/cpukit/libcsupport/include/sys/statvfs.h
+++ b/cpukit/libcsupport/include/sys/statvfs.h
@@ -1,10 +1,12 @@
/**
- * @file sys/statvfs.h
+ * @file
+ *
+ * @brief Interface to the statvfs() Set of API Methods
*
* This include file defines the interface to the statvfs() set of
* API methods. The statvfs as defined by the SUS:
*
- * - http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/statvfs.h.html
+ * - http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/statvfs.h.html
*/
/*
diff --git a/cpukit/libcsupport/include/sys/termios.h b/cpukit/libcsupport/include/sys/termios.h
index 1046eb8c87..93c3a25ad7 100644
--- a/cpukit/libcsupport/include/sys/termios.h
+++ b/cpukit/libcsupport/include/sys/termios.h
@@ -1,7 +1,7 @@
/**
- * @file sys/termios.h
+ * @file
*
- * @brief POSIX termios implementation for RTEMS console device driver.
+ * @brief POSIX Termios Implementation for RTEMS Console Device Driver
*
* The Open Group Base Specifications Issue 6
* IEEE Std 1003.1, 2004 Edition
@@ -27,10 +27,12 @@ extern "C" {
#endif
/**
- * @ingroup Termios
+ * @ingroup Termios
*
- * @brief POSIX Termios Implementation
+ * @brief POSIX Termios Implementation
+ *
*/
+/**@{**/
typedef unsigned char cc_t;
typedef unsigned int speed_t;
@@ -47,8 +49,8 @@ struct termios {
};
/**
- * This value is used to disable processing of a member of c_cc
- * in the struct termios.
+ * This value is used to disable processing of a member of c_cc
+ * in the struct termios.
*/
#define _POSIX_VDISABLE 0
@@ -208,6 +210,8 @@ int cfsetospeed(struct termios *tp, speed_t speed);
speed_t cfgetispeed(const struct termios *tp);
int cfsetispeed(struct termios *tp, speed_t speed);
+/** @} */
+
#ifdef __cplusplus
}
#endif
diff --git a/cpukit/libcsupport/include/sys/utsname.h b/cpukit/libcsupport/include/sys/utsname.h
index a56d74abfd..2bad0e2572 100644
--- a/cpukit/libcsupport/include/sys/utsname.h
+++ b/cpukit/libcsupport/include/sys/utsname.h
@@ -1,5 +1,7 @@
/**
- * @file sys/utsname.h
+ * @file
+ *
+ * @brief Interface to the POSIX utsname() Service
*
* This include file defines the interface to the POSIX utsname() service.
*/
@@ -17,7 +19,9 @@
#define __POSIX_SYS_UTSNAME_h
/**
- * @defgroup utsname Service
+ * @defgroup UTSNAME utsname Service
+ *
+ * @ingroup POSIXAPI
*/
/**@{*/
@@ -43,7 +47,8 @@ extern "C" {
#endif
struct utsname {
- char sysname[SYS_NMLN]; /* Name of this implementation of the operating system */
+ char sysname[SYS_NMLN]; /* Name of this implementation of the */
+ /* operating system */
char nodename[SYS_NMLN]; /* Name of this node within an implementation */
/* specified communication network */
char release[SYS_NMLN]; /* Current release level of this implementation */
@@ -53,15 +58,19 @@ struct utsname {
};
/**
- * @brief 4.4.1 Get System Name, P1003.1b-1993, p. 90
+ * @brief Get system name.
+ *
+ * 4.4.1 Get System Name, P1003.1b-1993, p. 90
*/
int uname(
struct utsname *name
);
+/** @} */
+
#ifdef __cplusplus
}
#endif
-/**@}*/
+
#endif
/* end of include file */
diff --git a/cpukit/libcsupport/include/timerdrv.h b/cpukit/libcsupport/include/timerdrv.h
index c51768bb4b..ad74bc6ccc 100644
--- a/cpukit/libcsupport/include/timerdrv.h
+++ b/cpukit/libcsupport/include/timerdrv.h
@@ -1,7 +1,9 @@
/**
- * @file rtems/timerdrv.h
+ * @file
*
- * This file describes the Timer Driver for all boards.
+ * @brief Timer Driver for all Boards
+ *
+ * This file describes the Timer Driver for all boards.
*/
/*
diff --git a/cpukit/libcsupport/include/vmeintr.h b/cpukit/libcsupport/include/vmeintr.h
index 7e88bd0965..db1bf4d625 100644
--- a/cpukit/libcsupport/include/vmeintr.h
+++ b/cpukit/libcsupport/include/vmeintr.h
@@ -1,9 +1,11 @@
/**
- * @file rtems/vmeintr.h
+ * @file
+ *
+ * @brief VMEbus Interface Library
*
- * This file is the specification for the VMEbus interface library
- * which should be provided by all BSPs for VMEbus Single Board
- * Computers but currently only a few do so.
+ * This file is the specification for the VMEbus interface library
+ * which should be provided by all BSPs for VMEbus Single Board
+ * Computers but currently only a few do so.
*/
/*
diff --git a/cpukit/libcsupport/include/zilog/z8036.h b/cpukit/libcsupport/include/zilog/z8036.h
index 260003646d..686787d8ca 100644
--- a/cpukit/libcsupport/include/zilog/z8036.h
+++ b/cpukit/libcsupport/include/zilog/z8036.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/zilog/z8036.h
+ * @file
+ *
+ * @brief Zilog Z8036 Counter/Timer/IO Chip
*
* This include file defines information related to a Zilog Z8036
* Counter/Timer/IO Chip. It is a memory mapped part.
diff --git a/cpukit/libcsupport/include/zilog/z8530.h b/cpukit/libcsupport/include/zilog/z8530.h
index d11698de50..8fd9f399c3 100644
--- a/cpukit/libcsupport/include/zilog/z8530.h
+++ b/cpukit/libcsupport/include/zilog/z8530.h
@@ -1,10 +1,10 @@
/**
- * @file rtems/zilog/z8530.h
+ * @file
*
* @brief Information Related to a Zilog Z8530 SCC Chip
*
- * This include file defines information related to a Zilog Z8530
- * SCC Chip. It is a IO mapped part.
+ * This include file defines information related to a Zilog Z8530
+ * SCC Chip. It is a IO mapped part.
*/
/*
diff --git a/cpukit/libcsupport/include/zilog/z8536.h b/cpukit/libcsupport/include/zilog/z8536.h
index 326e75531e..1970fb1af9 100644
--- a/cpukit/libcsupport/include/zilog/z8536.h
+++ b/cpukit/libcsupport/include/zilog/z8536.h
@@ -1,5 +1,5 @@
/**
- * @file rtems/zilog/z8536.h
+ * @file
*
* @brief Information Related to a Zilog Z8536 Counter/Timer/IO Chip
*
diff --git a/cpukit/libcsupport/src/lstat.c b/cpukit/libcsupport/src/lstat.c
index abdc0465cd..66a333d294 100644
--- a/cpukit/libcsupport/src/lstat.c
+++ b/cpukit/libcsupport/src/lstat.c
@@ -26,4 +26,4 @@
/**
* BSD 4.3 and SVR4 - Get File Status
- */ \ No newline at end of file
+ */
diff --git a/cpukit/libfs/src/defaults/default_are_nodes_equal.c b/cpukit/libfs/src/defaults/default_are_nodes_equal.c
index c1e7777c40..b20da2de23 100644
--- a/cpukit/libfs/src/defaults/default_are_nodes_equal.c
+++ b/cpukit/libfs/src/defaults/default_are_nodes_equal.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System has nodes equal
+ * @ingroup LibIOFSOps File System Operations
+ */
+
/*
* Copyright (c) 2012 embedded brains GmbH. All rights reserved.
*
diff --git a/cpukit/libfs/src/defaults/default_chown.c b/cpukit/libfs/src/defaults/default_chown.c
index dc457d2838..2880f8e04a 100644
--- a/cpukit/libfs/src/defaults/default_chown.c
+++ b/cpukit/libfs/src/defaults/default_chown.c
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System Change Owner
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_clone.c b/cpukit/libfs/src/defaults/default_clone.c
index 5224b01d19..576a07ce03 100644
--- a/cpukit/libfs/src/defaults/default_clone.c
+++ b/cpukit/libfs/src/defaults/default_clone.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System creates a child process
+ * @ingroup LibIOFSOps File System Operations
+ */
+
/*
* Copyright (c) 2012 embedded brains GmbH. All rights reserved.
*
diff --git a/cpukit/libfs/src/defaults/default_close.c b/cpukit/libfs/src/defaults/default_close.c
index 3f650b99fb..5cf35e1c48 100644
--- a/cpukit/libfs/src/defaults/default_close.c
+++ b/cpukit/libfs/src/defaults/default_close.c
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System Close
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_eval_path.c b/cpukit/libfs/src/defaults/default_eval_path.c
index e639f9985c..868d2e5769 100644
--- a/cpukit/libfs/src/defaults/default_eval_path.c
+++ b/cpukit/libfs/src/defaults/default_eval_path.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System evaluates relative pathname to absolute
+ * @ingroup LibIOFSOps File System Operations
+ */
+
/*
* Copyright (c) 2012 embedded brains GmbH. All rights reserved.
*
diff --git a/cpukit/libfs/src/defaults/default_fchmod.c b/cpukit/libfs/src/defaults/default_fchmod.c
index 5e4b6059dc..0004279130 100644
--- a/cpukit/libfs/src/defaults/default_fchmod.c
+++ b/cpukit/libfs/src/defaults/default_fchmod.c
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System Change File Mode
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_fcntl.c b/cpukit/libfs/src/defaults/default_fcntl.c
index f05cce2614..bd4a08042c 100644
--- a/cpukit/libfs/src/defaults/default_fcntl.c
+++ b/cpukit/libfs/src/defaults/default_fcntl.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default Filesystem - Default FCNTL
+ * @ingroup libfs
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_freenode.c b/cpukit/libfs/src/defaults/default_freenode.c
index f128fb3124..16c111679d 100644
--- a/cpukit/libfs/src/defaults/default_freenode.c
+++ b/cpukit/libfs/src/defaults/default_freenode.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default Filesystem - Default Freenode
+ * @ingroup libfs
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_fsmount.c b/cpukit/libfs/src/defaults/default_fsmount.c
index 924ba313fc..b505142746 100644
--- a/cpukit/libfs/src/defaults/default_fsmount.c
+++ b/cpukit/libfs/src/defaults/default_fsmount.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System Mounts
+ * @ingroup LibIOFSOps File System Operations
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_fstat.c b/cpukit/libfs/src/defaults/default_fstat.c
index 42b7339e0b..e12d8c0fe0 100644
--- a/cpukit/libfs/src/defaults/default_fstat.c
+++ b/cpukit/libfs/src/defaults/default_fstat.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System gets file status
+ * @ingroup LibIOFSOps File System Operations
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_fsunmount.c b/cpukit/libfs/src/defaults/default_fsunmount.c
index 54dd80eafd..b5e1fd1391 100644
--- a/cpukit/libfs/src/defaults/default_fsunmount.c
+++ b/cpukit/libfs/src/defaults/default_fsunmount.c
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System Unmount
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_fsync.c b/cpukit/libfs/src/defaults/default_fsync.c
index 276c059bb5..53dce0c260 100644
--- a/cpukit/libfs/src/defaults/default_fsync.c
+++ b/cpukit/libfs/src/defaults/default_fsync.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System Synchronises changes to a file
+ * @ingroup LibIOFSOps File System Operations
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_fsync_success.c b/cpukit/libfs/src/defaults/default_fsync_success.c
index 591527e3e8..1d02e82b29 100644
--- a/cpukit/libfs/src/defaults/default_fsync_success.c
+++ b/cpukit/libfs/src/defaults/default_fsync_success.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default Filesystem succeeds synchronizing file's in-core state
+ * @ingroup LibIOFSOps File System Operations
+ */
+
/*
* Copyright (c) 2012 embedded brains GmbH. All rights reserved.
*
diff --git a/cpukit/libfs/src/defaults/default_ftruncate.c b/cpukit/libfs/src/defaults/default_ftruncate.c
index 2455a7b9f2..8016956ecb 100644
--- a/cpukit/libfs/src/defaults/default_ftruncate.c
+++ b/cpukit/libfs/src/defaults/default_ftruncate.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System Truncates a file to indicated length
+ * @ingroup LibIOFSOps File System Operations
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_ftruncate_directory.c b/cpukit/libfs/src/defaults/default_ftruncate_directory.c
index e438154d77..ad6af022d3 100644
--- a/cpukit/libfs/src/defaults/default_ftruncate_directory.c
+++ b/cpukit/libfs/src/defaults/default_ftruncate_directory.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default Filesystem - Default Ftruncate Directory
+ * @ingroup libfs
+ */
+
/*
* Copyright (c) 2012 embedded brains GmbH. All rights reserved.
*
diff --git a/cpukit/libfs/src/defaults/default_ioctl.c b/cpukit/libfs/src/defaults/default_ioctl.c
index edd1c622ba..f9e9a9cf29 100644
--- a/cpukit/libfs/src/defaults/default_ioctl.c
+++ b/cpukit/libfs/src/defaults/default_ioctl.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System controls a STREAMS device
+ * @ingroup LibIOFSOps File System Operations
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_link.c b/cpukit/libfs/src/defaults/default_link.c
index d4b30143c7..ab58c9b6fe 100644
--- a/cpukit/libfs/src/defaults/default_link.c
+++ b/cpukit/libfs/src/defaults/default_link.c
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System Link
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_lock_and_unlock.c b/cpukit/libfs/src/defaults/default_lock_and_unlock.c
index a88a99d4a5..2efcdba6e5 100644
--- a/cpukit/libfs/src/defaults/default_lock_and_unlock.c
+++ b/cpukit/libfs/src/defaults/default_lock_and_unlock.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System locks and unlocks rtems filesystem
+ * @ingroup LibIOFSOps File System Operations
+ */
+
/*
* Copyright (c) 2012 embedded brains GmbH. All rights reserved.
*
diff --git a/cpukit/libfs/src/defaults/default_lseek.c b/cpukit/libfs/src/defaults/default_lseek.c
index 5af355513e..2dc2e654ac 100644
--- a/cpukit/libfs/src/defaults/default_lseek.c
+++ b/cpukit/libfs/src/defaults/default_lseek.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System reposits the read/write file offset
+ * @ingroup LibIOFSOps File System Operations
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_lseek_directory.c b/cpukit/libfs/src/defaults/default_lseek_directory.c
index e50eefd667..15ac19a5a3 100644
--- a/cpukit/libfs/src/defaults/default_lseek_directory.c
+++ b/cpukit/libfs/src/defaults/default_lseek_directory.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System reposits read/write file offset directory
+ * @ingroup LibIOFSOps File System Operations
+ */
+
/*
* Copyright (c) 2012 embedded brains GmbH. All rights reserved.
*
diff --git a/cpukit/libfs/src/defaults/default_lseek_file.c b/cpukit/libfs/src/defaults/default_lseek_file.c
index 9d80b2a176..cafc4dcf76 100644
--- a/cpukit/libfs/src/defaults/default_lseek_file.c
+++ b/cpukit/libfs/src/defaults/default_lseek_file.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System reposits the offset of the open file fd
+ * @ingroup LibIOFSOps File System Operations
+ */
+
/*
* Copyright (c) 2012 embedded brains GmbH. All rights reserved.
*
diff --git a/cpukit/libfs/src/defaults/default_mknod.c b/cpukit/libfs/src/defaults/default_mknod.c
index 2527cc89b8..9a6ce7cc16 100644
--- a/cpukit/libfs/src/defaults/default_mknod.c
+++ b/cpukit/libfs/src/defaults/default_mknod.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System creates a special or ordinary file
+ * @ingroup LibIOFSOps File System Operations
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_mount.c b/cpukit/libfs/src/defaults/default_mount.c
index 24c164dd8e..902f1182b3 100644
--- a/cpukit/libfs/src/defaults/default_mount.c
+++ b/cpukit/libfs/src/defaults/default_mount.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System mounts a filesystem
+ * @ingroup LibIOFSOps File System Operations
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_open.c b/cpukit/libfs/src/defaults/default_open.c
index a0e9d00c08..00f03b5231 100644
--- a/cpukit/libfs/src/defaults/default_open.c
+++ b/cpukit/libfs/src/defaults/default_open.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default Filesystem - Default Open
+ * @ingroup libfs
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_read.c b/cpukit/libfs/src/defaults/default_read.c
index 8a463e7452..729b3613f0 100644
--- a/cpukit/libfs/src/defaults/default_read.c
+++ b/cpukit/libfs/src/defaults/default_read.c
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System Read
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_readlink.c b/cpukit/libfs/src/defaults/default_readlink.c
index a4132639e0..516f5278a8 100644
--- a/cpukit/libfs/src/defaults/default_readlink.c
+++ b/cpukit/libfs/src/defaults/default_readlink.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default Filesystem - Default Readlink
+ * @ingroup libfs
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_rename.c b/cpukit/libfs/src/defaults/default_rename.c
index c3b1a5a0d3..5b5bafaf08 100644
--- a/cpukit/libfs/src/defaults/default_rename.c
+++ b/cpukit/libfs/src/defaults/default_rename.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTESM Default File System Rename Files
+ * @ingroup LibIOFSOps File System Operations
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_rmnod.c b/cpukit/libfs/src/defaults/default_rmnod.c
index 3bb6ccfeb8..edb21e7b7d 100644
--- a/cpukit/libfs/src/defaults/default_rmnod.c
+++ b/cpukit/libfs/src/defaults/default_rmnod.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default Filesystem - Default Remove Node
+ * @ingroup libfs
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_statvfs.c b/cpukit/libfs/src/defaults/default_statvfs.c
index ed30ff51b2..139d0b0742 100644
--- a/cpukit/libfs/src/defaults/default_statvfs.c
+++ b/cpukit/libfs/src/defaults/default_statvfs.c
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System Get Statistics
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_symlink.c b/cpukit/libfs/src/defaults/default_symlink.c
index 0652fc03a1..55852abb05 100644
--- a/cpukit/libfs/src/defaults/default_symlink.c
+++ b/cpukit/libfs/src/defaults/default_symlink.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System creates a symbolic link to a file
+ * @ingroup LibIOFSOps File System Operations
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_unmount.c b/cpukit/libfs/src/defaults/default_unmount.c
index b4820b9410..de520c1033 100644
--- a/cpukit/libfs/src/defaults/default_unmount.c
+++ b/cpukit/libfs/src/defaults/default_unmount.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System Unmounts
+ * @ingroup LibIOFSOps File System Operations
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_utime.c b/cpukit/libfs/src/defaults/default_utime.c
index 5d1dd82a04..f9ec57c41a 100644
--- a/cpukit/libfs/src/defaults/default_utime.c
+++ b/cpukit/libfs/src/defaults/default_utime.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System sets file access and modification times
+ * @ingroup LibIOFSOps File System Operations
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/defaults/default_write.c b/cpukit/libfs/src/defaults/default_write.c
index 7328c81eb7..c5aff4b534 100644
--- a/cpukit/libfs/src/defaults/default_write.c
+++ b/cpukit/libfs/src/defaults/default_write.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS Default File System sends a message to another user
+ * @ingroup LibIOFSOps File System Operations
+ */
+
/*
* COPYRIGHT (c) 2010.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/libfs/src/devfs/devfs.h b/cpukit/libfs/src/devfs/devfs.h
index 2317b10852..0213e072f9 100644
--- a/cpukit/libfs/src/devfs/devfs.h
+++ b/cpukit/libfs/src/devfs/devfs.h
@@ -1,8 +1,10 @@
/**
-* @file libfs/devfs/devfs.h
-*
-* This include file contains all constants and structures associated
-* with the 'device-only' filesystem.
+* @file
+*
+* @brief Device Only File System
+*
+* This include file contains all constants and structures associated
+* with the 'device-only' filesystem.
*/
#ifndef _RTEMS_DEVFS_H
@@ -10,19 +12,25 @@
#include <rtems/libio_.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
/**
- * @defgroup DevFsDeviceTable Define Device Table Type
+ * @defgroup DevFsDeviceTable Device Only File System
*
- * @ingroup DevFs
+ * @ingroup FileSystemTypesAndMount
*
* @brief This structure defines the type of device table
- *
- * @{
*/
+/**@{*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/**
+ * @brief Per Device Node Control Structure
+ *
+ * This structure is instanced per device node and contains all information
+ * used by this file system implementation to manage that device node.
+ */
typedef struct {
/** This member points to device name which is not a null-terminated string */
const char *name;
@@ -38,23 +46,27 @@ typedef struct {
typedef struct {
devFS_node *nodes;
- size_t count;
+ size_t count;
} devFS_data;
/**
* The following defines the device-only filesystem operating
* operations.
*/
-
extern const rtems_filesystem_operations_table devFS_ops;
/**
* The following defines the device-only filesystem operating
* handlers.
*/
-
extern const rtems_filesystem_file_handlers_r devFS_file_handlers;
+/**
+ * @brief Obtain Immutable Pointer to Immutable File System Data
+ *
+ * This methods returns the immutable file system specific information
+ * associated with this file.
+ */
static inline const devFS_data *devFS_get_data(
const rtems_filesystem_location_info_t *loc
)
@@ -63,7 +75,7 @@ static inline const devFS_data *devFS_get_data(
}
/**
- * @brief Evaluate Patch
+ * @brief Evaluate Path
*/
extern void devFS_eval_path(
rtems_filesystem_eval_path_context_t *ctx
@@ -71,14 +83,16 @@ extern void devFS_eval_path(
/**
* @brief Maps Open Operation to rtems_io_open
+ *
* This handler maps open operation to rtems_io_open.
+ *
* @param iop This is the RTEMS's internal representation of file.
* @param pathname a null-terminated string that starts with /dev.
- * @param flag access flags
+ * @param oflag access flags
* @param mode access mode
+ *
* @retval the same as open
*/
-
extern int devFS_open(
rtems_libio_t *iop,
const char *pathname,
@@ -91,107 +105,110 @@ extern int devFS_open(
* @brief Maps Close Operation to rtems_io_close
*
* This handler maps close operation to rtems_io_close.
+ *
* @param iop This is the RTEMS's internal representation of file
+ *
* @retval the same as close
*/
-
-
extern int devFS_close(
rtems_libio_t *iop
);
-
/**
* @brief Maps Read Operation to rtems_io_read
+ *
* This handler maps read operation to rtems_io_read.
+ *
* @param iop This is the RTEMS's internal representation of file
* @param buffer memory location to store read data
* @param count how many bytes to read
+ *
* @retval On successful, this routine returns total bytes read. On error
* it returns -1 and errno is set to proper value.
*/
-
extern ssize_t devFS_read(
rtems_libio_t *iop,
void *buffer,
size_t count
);
-
/**
* @brief Writes Operation to rtems_io_write
+ *
* This handler maps write operation to rtems_io_write.
+ *
* @param iop This is the RTEMS's internal representation of file
* @param buffer data to be written
* @param count how many bytes to write
+ *
* @retval On successful, this routine returns total bytes written. On error
* it returns -1 and errno is set to proper value.
*/
-
extern ssize_t devFS_write(
rtems_libio_t *iop,
const void *buffer,
size_t count
);
-
/**
* @brief Maps ioctl Operation to rtems_io_ioctl
+ *
* This handler maps ioctl operation to rtems_io_ioctl.
+ *
* @param iop This is the RTEMS's internal representation of file
* @param command io control command
* @param buffer io control parameters
+ *
* @retval On successful, this routine returns total bytes written. On error
* it returns -1 and errno is set to proper value.
*/
-
extern int devFS_ioctl(
rtems_libio_t *iop,
ioctl_command_t command,
void *buffer
);
-
-
-
/**
* @brief Gets the Device File Information
*
- * This handler gets the device file information. This routine only set the following member of struct stat:
- * st_dev : device number
- * st_mode: device file creation mode, only two mode are accepted:
- * S_IFCHR: character device file
- * S_IFBLK: block device file
+ * This handler gets the device file information. This routine only
+ * set the following member of struct stat:
+ *
+ * - st_dev: device number
+ * - st_mode: device file creation mode, only two mode are accepted:
+ * + S_IFCHR: character device file
+ * + S_IFBLK: block device file
+ *
* @param loc contains filesystem access information
* @param buf buffer to hold the device file's information
+ *
* @retval On successful, this routine returns 0. On error
* it returns -1 and errno is set to proper value.
*/
-
extern int devFS_stat(
const rtems_filesystem_location_info_t *loc,
- struct stat *buf
+ struct stat *buf
);
-
-
/**
* @brief Invoked upon Determination of a Node Type
+ *
* This routine is invoked upon determination of a node type.
* Since this is a device-only filesystem, so there is only
* one node type in the system.
*
* @param loc contains filesytem access information, this
* parameter is ignored
+ *
* @retval always returns RTEMS_FILESYSTEM_DEVICE
*/
-
extern rtems_filesystem_node_types_t devFS_node_type(
const rtems_filesystem_location_info_t*loc
);
/**
* @brief Creates an item in the main device table.
+ *
* This routine is invoked upon registration of a new device
* file. It is responsible for creating a item in the main
* device table. This routine searches the device table in
@@ -200,18 +217,17 @@ extern rtems_filesystem_node_types_t devFS_node_type(
*
* @see rtems_filesystem_mknod_t.
*/
-
extern int devFS_mknod(
const rtems_filesystem_location_info_t *parentloc,
- const char *name,
- size_t namelen,
- mode_t mode,
- dev_t dev
+ const char *name,
+ size_t namelen,
+ mode_t mode,
+ dev_t dev
);
-
/**
* @brief Creates the Main Device Table
+ *
* This routine is invoked upon rtems filesystem initialization.
* It is responsible for creating the main device table,
* initializing it to a known state, and set device file operation
@@ -219,17 +235,16 @@ extern int devFS_mknod(
*
* @param mt_entry The filesystem mount table entry.
* @param data Filesystem specific data.
+ *
* @retval upon success, this routine returns 0; otherwise it returns
* -1 and errno is set to proper value. The only error is when malloc
* failed, and errno is set to NOMEM.
*/
-
extern int devFS_initialize(
rtems_filesystem_mount_table_entry_t *mt_entry,
const void *data
);
-
/**
* @brief Retrieves and Prints all the Device Registered in System
*
@@ -237,20 +252,21 @@ extern int devFS_initialize(
* prints out their detail information. For example, on one system,
* devFS_show will print out following message:
*
- * /dev/console 0 0
- * /dev/clock 1 0
- * /dev/tty0 0 0
- * /flash 2 0
+ * @code
+ * /dev/console 0 0
+ * /dev/clock 1 0
+ * /dev/tty0 0 0
+ * /flash 2 0
+ * @end code
*
* This routine is intended for debugging, and can be used by shell
* program to provide user with the system information.
*/
-
extern void devFS_Show(void);
-/** @} */
+
#ifdef __cplusplus
}
#endif
-
+/** @} */
#endif
diff --git a/cpukit/libfs/src/dosfs/dosfs.h b/cpukit/libfs/src/dosfs/dosfs.h
index 2374e63f2b..211fc2d3f2 100644
--- a/cpukit/libfs/src/dosfs/dosfs.h
+++ b/cpukit/libfs/src/dosfs/dosfs.h
@@ -1,7 +1,9 @@
/**
- * @file rtems/dosfs.h
+ * @file rtems/dosfs.h
*
- * Application interface to MSDOS filesystem.
+ * @brief Application Interface to MSDOS Filesystem
+ *
+ * @ingroup rtems_msdos_format
*/
/*
@@ -31,8 +33,8 @@ int rtems_dosfs_initialize(rtems_filesystem_mount_table_entry_t *mt_entry,
*
* @ingroup FileSystemTypesAndMount
*
- * @{
*/
+/**@{**/
#define MSDOS_FMT_INFO_LEVEL_NONE (0)
#define MSDOS_FMT_INFO_LEVEL_INFO (1)
diff --git a/cpukit/libfs/src/dosfs/fat.c b/cpukit/libfs/src/dosfs/fat.c
index a672f42c7a..8e9da218ed 100644
--- a/cpukit/libfs/src/dosfs/fat.c
+++ b/cpukit/libfs/src/dosfs/fat.c
@@ -1,8 +1,11 @@
-/*
- * fat.c
- *
- * Low-level operations on a volume with FAT filesystem
+/**
+ * @file
*
+ * @brief Low-level Operations on a Volume with a DOSFS FAT filesystem
+ * @ingroup libfs
+ */
+
+/*
* Copyright (C) 2001 OKTET Ltd., St.-Petersburg, Russia
* Author: Eugeny S. Mints <Eugeny.Mints@oktet.ru>
*/
diff --git a/cpukit/libfs/src/dosfs/fat.h b/cpukit/libfs/src/dosfs/fat.h
index 5d36fb45c0..0219075594 100644
--- a/cpukit/libfs/src/dosfs/fat.h
+++ b/cpukit/libfs/src/dosfs/fat.h
@@ -1,8 +1,15 @@
-/*
- * fat.h
+/**
+ * @file
+ *
+ * @brief Constants/Data Structures/Prototypes on a Volume with FAT Filesystem
*
- * Constants/data structures/prototypes for low-level operations on a volume
- * with FAT filesystem
+ * @ingroup libfs_dosfs
+ *
+ * Constants/Data Structures/Prototypes for Low-Level
+ * Operations on a Volume with FAT Filesystem
+ */
+
+/*
*
* Copyright (C) 2001 OKTET Ltd., St.-Petersburg, Russia
* Author: Eugeny S. Mints <Eugeny.Mints@oktet.ru>
@@ -23,6 +30,12 @@
#include <errno.h>
#include <rtems/bdbuf.h>
+/**
+ * @defgroup libfs_dosfs FAT FileSystem
+ *
+ * @ingroup libfs
+ */
+/**@{*/
#ifdef __cplusplus
extern "C" {
#endif
@@ -545,5 +558,5 @@ fat_sync(fat_fs_info_t *fs_info);
#ifdef __cplusplus
}
#endif
-
+/**@}*/
#endif /* __DOSFS_FAT_H__ */
diff --git a/cpukit/libfs/src/dosfs/fat_fat_operations.h b/cpukit/libfs/src/dosfs/fat_fat_operations.h
index 278947ffca..69589153d2 100644
--- a/cpukit/libfs/src/dosfs/fat_fat_operations.h
+++ b/cpukit/libfs/src/dosfs/fat_fat_operations.h
@@ -1,9 +1,15 @@
-/*
- * fat_fat_operations.h
+/**
+ * @file
*
- * Constants/data structures/prototypes for operations on Files Allocation
- * Table
+ * @brief Constants/Data Structures/Prototypes for Files Allocation Table
*
+ * @ingroup libfs_ffo
+ *
+ * Constants/Data Structures/Prototypes for
+ * Operations on Files Allocation Table
+ */
+
+/*
* Copyright (C) 2001 OKTET Ltd., St.-Petersburg, Russia
* Author: Eugeny S. Mints <Eugeny.Mints@oktet.ru>
*
@@ -11,6 +17,7 @@
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*/
+
#ifndef __DOSFS_FAT_FAT_OPERATIONS_H__
#define __DOSFS_FAT_FAT_OPERATIONS_H__
diff --git a/cpukit/libfs/src/dosfs/fat_file.c b/cpukit/libfs/src/dosfs/fat_file.c
index 3e2d60967c..7f05447187 100644
--- a/cpukit/libfs/src/dosfs/fat_file.c
+++ b/cpukit/libfs/src/dosfs/fat_file.c
@@ -191,45 +191,46 @@ fat_file_close(
)
{
int rc = RC_OK;
- uint32_t key = 0;
/*
* if links_num field of fat-file descriptor is greater than 1
- * decrement the count of links and return
+ * decrement only the count of links
*/
if (fat_fd->links_num > 1)
{
fat_fd->links_num--;
- return rc;
}
-
- key = fat_construct_key(fs_info, &fat_fd->dir_pos.sname);
-
- if (fat_fd->flags & FAT_FILE_REMOVED)
+ else
{
- rc = fat_file_truncate(fs_info, fat_fd, 0);
- if ( rc != RC_OK )
- return rc;
+ uint32_t key = fat_construct_key(fs_info, &fat_fd->dir_pos.sname);
- _hash_delete(fs_info->rhash, key, fat_fd->ino, fat_fd);
+ if (fat_fd->flags & FAT_FILE_REMOVED)
+ {
+ rc = fat_file_truncate(fs_info, fat_fd, 0);
+ if (rc == RC_OK)
+ {
+ _hash_delete(fs_info->rhash, key, fat_fd->ino, fat_fd);
- if ( fat_ino_is_unique(fs_info, fat_fd->ino) )
- fat_free_unique_ino(fs_info, fat_fd->ino);
+ if (fat_ino_is_unique(fs_info, fat_fd->ino))
+ fat_free_unique_ino(fs_info, fat_fd->ino);
- free(fat_fd);
- }
- else
- {
- if (fat_ino_is_unique(fs_info, fat_fd->ino))
- {
- fat_fd->links_num = 0;
+ free(fat_fd);
+ }
}
else
{
- _hash_delete(fs_info->vhash, key, fat_fd->ino, fat_fd);
- free(fat_fd);
+ if (fat_ino_is_unique(fs_info, fat_fd->ino))
+ {
+ fat_fd->links_num = 0;
+ }
+ else
+ {
+ _hash_delete(fs_info->vhash, key, fat_fd->ino, fat_fd);
+ free(fat_fd);
+ }
}
}
+
/*
* flush any modified "cached" buffer back to disk
*/
diff --git a/cpukit/libfs/src/dosfs/fat_file.h b/cpukit/libfs/src/dosfs/fat_file.h
index 0e22c90e60..46bf07fca5 100644
--- a/cpukit/libfs/src/dosfs/fat_file.h
+++ b/cpukit/libfs/src/dosfs/fat_file.h
@@ -1,7 +1,12 @@
-/*
- * fat_file.h
+/**
+ * @file
*
- * Constants/data structures/prototypes for operations on "fat-file"
+ * @brief Constants/Data Structures/Prototypes for Operations on "fat-file"
+ *
+ * @ingroup libfs_ff
+ */
+
+/*
*
* Copyright (C) 2001 OKTET Ltd., St.-Petersburg, Russia
* Author: Eugeny S. Mints <Eugeny.Mints@oktet.ru>
@@ -10,6 +15,7 @@
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*/
+
#ifndef __DOSFS_FAT_FILE_H__
#define __DOSFS_FAT_FILE_H__
@@ -26,11 +32,13 @@
* @ingroup libfs
*/
/**@{*/
+
#ifdef __cplusplus
extern "C" {
#endif
-/* "fat-file" representation
+/**
+ * @brief The "fat-file" representation.
*
* the idea is: fat-file is nothing but a cluster chain, any open fat-file is
* represented in system by fat-file descriptor and has well-known
@@ -44,7 +52,6 @@ extern "C" {
* Such interface hides the architecture of fat-file and represents it like
* linear file
*/
-
typedef rtems_filesystem_node_types_t fat_file_type_t;
#define FAT_DIRECTORY RTEMS_FILESYSTEM_DIRECTORY
@@ -56,8 +63,9 @@ typedef struct fat_file_map_s
uint32_t disk_cln;
uint32_t last_cln;
} fat_file_map_t;
-/*
- * descriptor of a fat-file
+
+/**
+ * @brief Descriptor of a fat-file.
*
* To each particular clusters chain
*/
@@ -109,18 +117,17 @@ typedef struct fat_file_fd_s
#define FAT_EOF 0x00
-/* fat_construct_key --
- * Construct key for hash access: convert (cluster num, offset) to
- * (sector512 num, new offset) and than construct key as
- * key = (sector512 num) << 4 | (new offset)
+/* @brief Construct key for hash access.
+ *
+ * Construct key for hash access: convert (cluster num, offset) to
+ * (sector512 num, new offset) and than construct key as
+ * key = (sector512 num) << 4 | (new offset)
*
- * PARAMETERS:
- * cl - cluster number
- * ofs - offset inside cluster 'cl'
- * fs_info - FS info
+ * @param[in] cl - cluster number
+ * @param[in] ofs - offset inside cluster 'cl'
+ * @param[in] fs_info - FS info
*
- * RETURNS:
- * constructed key
+ * @retval constructed key
*/
static inline uint32_t
fat_construct_key(
diff --git a/cpukit/libfs/src/dosfs/msdos.h b/cpukit/libfs/src/dosfs/msdos.h
index ad0841297c..9465d268d7 100644
--- a/cpukit/libfs/src/dosfs/msdos.h
+++ b/cpukit/libfs/src/dosfs/msdos.h
@@ -1,8 +1,12 @@
-/*
- * msdos.h
+/**
+ * @file
*
- * The MSDOS filesystem constants/data structures/prototypes
+ * @brief The MSDOS Filesystem Constants/Data Structures/Prototypes
*
+ * @ingroup libfs_msdos
+ */
+
+/*
* Copyright (C) 2001 OKTET Ltd., St.-Petersburg, Russia
* Author: Eugeny S. Mints <Eugeny.Mints@oktet.ru>
*
@@ -10,6 +14,7 @@
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*/
+
#ifndef __DOSFS_MSDOS_H__
#define __DOSFS_MSDOS_H__
@@ -80,7 +85,7 @@ extern const rtems_filesystem_file_handlers_r msdos_file_handlers;
#define MSDOS_HARD_LINK RTEMS_FILESYSTEM_HARD_LINK /* pseudo type */
/**
- * @brief Type of Node that Loc Refers To
+ * @brief Type of node that loc refers to.
*
* The following returns the type of node that the loc refers to.
*
@@ -233,7 +238,7 @@ typedef enum msdos_token_types_e
#define MSDOS_DPS512_NUM 16
/**
- * @brief Shut Down MSDOS FileSystem
+ * @brief Shut down the MSDOS filesystem.
*
* MSDOS shut down handler implementation
*/
@@ -242,7 +247,7 @@ void msdos_shut_down(rtems_filesystem_mount_table_entry_t *temp_mt_entry);
void msdos_eval_path(rtems_filesystem_eval_path_context_t *ctx);
/**
- * @brief Call Fat-File Close Routine
+ * @brief Call the Fat-File close routine.
*
* Free node handler implementation for the filesystem operations table.
*/
@@ -252,6 +257,11 @@ rtems_filesystem_node_types_t msdos_node_type(
const rtems_filesystem_location_info_t *loc
);
+/**
+ * @brief Routine for node creation in a MSDOS filesystem.
+ *
+ * MSDOS Directory Handlers Implementation
+ */
int msdos_mknod(
const rtems_filesystem_location_info_t *loc,
const char *name,
@@ -261,7 +271,7 @@ int msdos_mknod(
);
/**
- * @brief Remove Node from MSDOS Directory
+ * @brief Remove node from MSDOS directory.
*
* MSDOS Directory Handlers Implementation
*/
@@ -271,7 +281,7 @@ int msdos_rmnod(
);
/**
- * @brief Rename a MSDOS FileSystem Node
+ * @brief Rename a MSDOS filesystem node.
*
* Routine to rename a MSDOS filesystem node
*/
@@ -288,7 +298,7 @@ void msdos_lock(const rtems_filesystem_mount_table_entry_t *mt_entry);
void msdos_unlock(const rtems_filesystem_mount_table_entry_t *mt_entry);
/**
- * @brief MSDOS Filesystem Initialization
+ * @brief MSDOS filesystem initialization routine.
*
* MSDOS Initialization support routine implementation
*/
@@ -342,7 +352,7 @@ int msdos_dir_stat(
);
/**
- * @brief Implements wake up version of the "signal" operation
+ * @brief Implements wake up version of the "signal" operation.
*
* Routine to create a new MSDOS filesystem node
*
diff --git a/cpukit/libfs/src/dosfs/msdos_eval.c b/cpukit/libfs/src/dosfs/msdos_eval.c
index 19e7406e89..d009f440f9 100644
--- a/cpukit/libfs/src/dosfs/msdos_eval.c
+++ b/cpukit/libfs/src/dosfs/msdos_eval.c
@@ -1,6 +1,11 @@
-/*
- * MSDOS evaluation routines
+/**
+ * @file
*
+ * @brief MSDOS Evaluation Routines
+ * @ingroup libfs
+ */
+
+/*
* Copyright (C) 2001 OKTET Ltd., St.-Petersburg, Russia
* Author: Eugeny S. Mints <Eugeny.Mints@oktet.ru>
*
diff --git a/cpukit/libfs/src/dosfs/msdos_mknod.c b/cpukit/libfs/src/dosfs/msdos_mknod.c
index 4cf41089fd..0c247e92fd 100644
--- a/cpukit/libfs/src/dosfs/msdos_mknod.c
+++ b/cpukit/libfs/src/dosfs/msdos_mknod.c
@@ -1,6 +1,11 @@
-/*
- * Routine for node creation in MSDOS filesystem.
+/**
+ * @file
*
+ * @brief Routine for Node Creation in MSDOS Filesystem
+ * @ingroup libfs_msdos MSDOS FileSystem
+ */
+
+/*
* Copyright (C) 2001 OKTET Ltd., St.-Petersburg, Russia
* Author: Eugeny S. Mints <Eugeny.Mints@oktet.ru>
*
diff --git a/cpukit/libfs/src/imfs/imfs.h b/cpukit/libfs/src/imfs/imfs.h
index 46fee024c3..6874523154 100644
--- a/cpukit/libfs/src/imfs/imfs.h
+++ b/cpukit/libfs/src/imfs/imfs.h
@@ -1,7 +1,7 @@
/**
- * @file rtems/imfs.h
+ * @file
*
- * @brief Header file for the In-Memory File System
+ * @brief Header File for the In-Memory File System
*/
/*
@@ -22,10 +22,13 @@
#include <rtems/pipe.h>
/**
- * @defgroup IMFS POSIX In-Memory File System Support
+ * @brief In-Memory File System Support.
*
- * @brief In-Memory File System Support
+ * @defgroup IMFS In-Memory File System Support
+ *
+ * @ingroup FileSystemTypesAndMount
*/
+/**@{*/
#ifdef __cplusplus
extern "C" {
@@ -64,7 +67,7 @@ typedef struct {
void *context;
} IMFS_generic_t;
-/*
+/**
* IMFS "memfile" information
*
* The data structure for the in-memory "memfiles" is based on classic UNIX.
@@ -77,14 +80,15 @@ typedef struct {
* memory wasted due to internal file fragmentation. The following
* is a list of maximum file sizes based on various settings
*
+ * @code
* max_filesize with blocks of 16 is 1,328
* max_filesize with blocks of 32 is 18,656
* max_filesize with blocks of 64 is 279,488
* max_filesize with blocks of 128 is 4,329,344
* max_filesize with blocks of 256 is 68,173,568
* max_filesize with blocks of 512 is 1,082,195,456
+ * @endcode
*/
-
#define IMFS_MEMFILE_DEFAULT_BYTES_PER_BLOCK 128
extern int imfs_rq_memfile_bytes_per_block;
extern int imfs_memfile_bytes_per_block;
@@ -111,7 +115,6 @@ typedef struct {
/*
* Important block numbers for "memfiles"
*/
-
#define FIRST_INDIRECT (0)
#define LAST_INDIRECT (IMFS_MEMFILE_BLOCK_SLOTS - 1)
@@ -132,7 +135,6 @@ typedef struct {
/*
* What types of IMFS file systems entities there can be.
*/
-
typedef enum {
IMFS_DIRECTORY = RTEMS_FILESYSTEM_DIRECTORY,
IMFS_DEVICE = RTEMS_FILESYSTEM_DEVICE,
@@ -159,11 +161,12 @@ typedef union {
IMFS_generic_t generic;
} IMFS_types_union;
+/** @} */
+
/**
* @addtogroup IMFSGenericNodes
- *
- * @{
*/
+/**@{*/
/**
* @brief Initializes an IMFS node.
@@ -276,6 +279,11 @@ typedef struct {
/** @} */
+/**
+ * @addtogroup IMFS
+ */
+/**@{*/
+
/*
* Major device number for the IMFS. This is not a real device number because
* the IMFS is just a file system and does not have a driver.
@@ -392,7 +400,7 @@ extern int miniIMFS_initialize(
);
/**
- * @brief IMFS Initialization Support
+ * @brief IMFS initialization support.
*/
extern int IMFS_initialize_support(
rtems_filesystem_mount_table_entry_t *mt_entry,
@@ -400,14 +408,14 @@ extern int IMFS_initialize_support(
const IMFS_node_control *const node_controls [IMFS_TYPE_COUNT]
);
/**
- * @brief Unmount this Instance of IMFS
+ * @brief Unmount this instance of IMFS.
*/
extern void IMFS_fsunmount(
rtems_filesystem_mount_table_entry_t *mt_entry
);
/**
- * @brief RTEMS Load Tarfs
+ * @brief RTEMS load tarfs.
*
* This file implements the "mount" procedure for tar-based IMFS
* extensions. The TAR is not actually mounted under the IMFS.
@@ -425,32 +433,37 @@ extern void IMFS_fsunmount(
*
* TAR file format:
*
- * Offset Length Contents
- * 0 100 bytes File name ('\0' terminated, 99 maxmum length)
- * 100 8 bytes File mode (in octal ascii)
- * 108 8 bytes User ID (in octal ascii)
- * 116 8 bytes Group ID (in octal ascii)
- * 124 12 bytes File size (s) (in octal ascii)
- * 136 12 bytes Modify time (in octal ascii)
- * 148 8 bytes Header checksum (in octal ascii)
- * 156 1 bytes Link flag
- * 157 100 bytes Linkname ('\0' terminated, 99 maxmum length)
- * 257 8 bytes Magic PAX ("ustar\0" + 2 bytes padding)
- * 257 8 bytes Magic GNU tar ("ustar \0")
- * 265 32 bytes User name ('\0' terminated, 31 maxmum length)
- * 297 32 bytes Group name ('\0' terminated, 31 maxmum length)
- * 329 8 bytes Major device ID (in octal ascii)
- * 337 8 bytes Minor device ID (in octal ascii)
- * 345 167 bytes Padding
- * 512 (s+p)bytes File contents (s+p) := (((s) + 511) & ~511),
- * round up to 512 bytes
+ * @code
+ * Offset Length Contents
+ * 0 100 bytes File name ('\0' terminated, 99 maxmum length)
+ * 100 8 bytes File mode (in octal ascii)
+ * 108 8 bytes User ID (in octal ascii)
+ * 116 8 bytes Group ID (in octal ascii)
+ * 124 12 bytes File size (s) (in octal ascii)
+ * 136 12 bytes Modify time (in octal ascii)
+ * 148 8 bytes Header checksum (in octal ascii)
+ * 156 1 bytes Link flag
+ * 157 100 bytes Linkname ('\0' terminated, 99 maxmum length)
+ * 257 8 bytes Magic PAX ("ustar\0" + 2 bytes padding)
+ * 257 8 bytes Magic GNU tar ("ustar \0")
+ * 265 32 bytes User name ('\0' terminated, 31 maxmum length)
+ * 297 32 bytes Group name ('\0' terminated, 31 maxmum length)
+ * 329 8 bytes Major device ID (in octal ascii)
+ * 337 8 bytes Minor device ID (in octal ascii)
+ * 345 167 bytes Padding
+ * 512 (s+p) bytes File contents (s+p) := (((s) + 511) & ~511),
+ * round up to 512 bytes
+ * @endcode
*
* Checksum:
- * int i, sum;
- * char* header = tar_header_pointer;
- * sum = 0;
- * for(i = 0; i < 512; i++)
- * sum += 0xFF & header[i];
+ * @code
+ * int i, sum;
+ * char *header = tar_header_pointer;
+ *
+ * sum = 0;
+ * for (i = 0; i < 512; i++)
+ * sum += 0xFF & header[i];
+ * @endcode
*/
extern int rtems_tarfs_load(
const char *mountpoint,
@@ -459,7 +472,7 @@ extern int rtems_tarfs_load(
);
/**
- * @brief IMFS Dump
+ * @brief Dump the entire IMFS.
*
* This routine dumps the entire IMFS that is mounted at the root
* directory.
@@ -470,7 +483,8 @@ extern int rtems_tarfs_load(
extern void IMFS_dump( void );
/**
- * @brief IMFS Memory File Maximum Size
+ * @brief Get the size of the largest file which can be created
+ * using the IMFS memory file type.
*
* Return the size of the largest file which can be created
* using the IMFS memory file type.
@@ -478,22 +492,22 @@ extern void IMFS_dump( void );
extern int IMFS_memfile_maximum_size( void );
/**
- * @brief Destroy IMFS Node
+ * @brief Destroy an IMFS node.
*/
extern void IMFS_node_destroy( IMFS_jnode_t *node );
/**
- * @brief Clone IMFS Node
+ * @brief Clone an IMFS node.
*/
extern int IMFS_node_clone( rtems_filesystem_location_info_t *loc );
/**
- * @brief Free IMFS Node
+ * @brief Free an IMFS node.
*/
extern void IMFS_node_free( const rtems_filesystem_location_info_t *loc );
/**
- * @brief IMFS Node Type
+ * @brief IMFS Node Type Get the type of an IMFS node.
*
* The following verifies that returns the type of node that the
* loc refers to.
@@ -503,7 +517,7 @@ extern rtems_filesystem_node_types_t IMFS_node_type(
);
/**
- * @brief IMFS Stat
+ * @brief Perform a status processing for the IMFS.
*
* This routine provides a stat for the IMFS file system.
*/
@@ -513,14 +527,14 @@ extern int IMFS_stat(
);
/**
- * @brief Evaluation IMFS Node Support
+ * @brief IMFS evaluation node support.
*/
extern void IMFS_eval_path(
rtems_filesystem_eval_path_context_t *ctx
);
/**
- * @brief IMFS Create a New Link Node
+ * @brief Create a new IMFS link node.
*
* The following rouine creates a new link node under parent with the
* name given in name. The link node is set to point to the node at
@@ -534,7 +548,7 @@ extern int IMFS_link(
);
/**
- * @brief IMFS Change Owner
+ * @brief Change the owner of IMFS.
*
* This routine is the implementation of the chown() system
* call for the IMFS.
@@ -546,7 +560,7 @@ extern int IMFS_chown(
);
/**
- * @brief Create a IMFS Node
+ * @brief Create an IMFS node.
*
* Routine to create a node in the IMFS file system.
*/
@@ -559,7 +573,7 @@ extern int IMFS_mknod(
);
/**
- * @brief Create a New IMFS Node
+ * @brief Create a new IMFS node.
*
* Routine to create a new in memory file system node.
*/
@@ -573,7 +587,7 @@ extern IMFS_jnode_t *IMFS_allocate_node(
);
/**
- * @brief Create an IMFS Node
+ * @brief Create an IMFS node.
*
* Create an IMFS filesystem node of an arbitrary type that is NOT
* the root directory node.
@@ -591,6 +605,7 @@ extern bool IMFS_is_imfs_instance(
const rtems_filesystem_location_info_t *loc
);
+/** @} */
/**
* @defgroup IMFSGenericNodes IMFS Generic Nodes
@@ -604,9 +619,8 @@ extern bool IMFS_is_imfs_instance(
* more features like support for fsync() and fdatasync(). The generic nodes
* use the reference counting of the IMFS. This provides automatic node
* destruction when the last reference vanishes.
- *
- * @{
*/
+/**@{*/
/**
* @brief Makes a generic IMFS node.
@@ -658,14 +672,19 @@ extern int IMFS_make_generic_node(
/** @} */
/**
- * @brief Mount an IMFS
+ * @addtogroup IMFS
+ */
+/**@{*/
+
+/**
+ * @brief Mount an IMFS.
*/
extern int IMFS_mount(
rtems_filesystem_mount_table_entry_t *mt_entry /* IN */
);
/**
- * @brief Unmount an IMFS
+ * @brief Unmount an IMFS.
*/
extern int IMFS_unmount(
rtems_filesystem_mount_table_entry_t *mt_entry /* IN */
@@ -676,7 +695,7 @@ extern IMFS_jnode_t *IMFS_memfile_remove(
);
/**
- * @brief Truncate a Memory File
+ * @brief Truncate a memory file.
*
* This routine processes the ftruncate() system call.
*/
@@ -686,7 +705,7 @@ extern int memfile_ftruncate(
);
/**
- * @brief IMFS Read Next Directory
+ * @brief Read the next directory of the IMFS.
*
* This routine will read the next directory entry based on the directory
* offset. The offset should be equal to -n- time the size of an individual
@@ -713,12 +732,11 @@ extern ssize_t imfs_dir_read(
* malloc'ed memory. Thus any data stored in one of these files is lost
* at system shutdown unless special arrangements to copy the data to
* some type of non-volailte storage are made by the application.
- *
- * @{
*/
+/**@{*/
/**
- * @brief Open a Memory File
+ * @brief Open a memory file.
*
* This routine processes the open() system call. Note that there is
* nothing special to be done at open() time.
@@ -731,7 +749,7 @@ extern int memfile_open(
);
/**
- * @brief Read a Memory File
+ * @brief Read a memory file.
*
* This routine processes the read() system call.
*/
@@ -742,7 +760,7 @@ extern ssize_t memfile_read(
);
/**
- * @brief Write a Memory File
+ * @brief Write a memory file.
*
* This routine processes the write() system call.
*/
@@ -754,16 +772,13 @@ extern ssize_t memfile_write(
/** @} */
-
/**
* @name IMFS Device Node Handlers
*
* This section contains the set of handlers used to map operations on
* IMFS device nodes onto calls to the RTEMS Classic API IO Manager.
- *
- * @{
*/
-
+/**@{*/
extern int device_open(
rtems_libio_t *iop, /* IN */
@@ -802,7 +817,7 @@ extern int device_ftruncate(
/** @} */
/**
- * @brief Set IMFS File Access and Modification Times
+ * @brief Set IMFS file access and modification times.
*
*
* This routine is the implementation of the utime() system
@@ -815,7 +830,7 @@ extern int IMFS_utime(
);
/**
- * @brief Change IMFS File Mode
+ * @brief Change the IMFS file mode.
*/
extern int IMFS_fchmod(
const rtems_filesystem_location_info_t *loc,
@@ -823,7 +838,7 @@ extern int IMFS_fchmod(
);
/**
- * @brief IMFS Create a New Symbolic Link Node
+ * @brief Create a new IMFS symbolic link node.
*
* The following rouine creates a new symbolic link node under parent
* with the name given in name. The node is set to point to the node at
@@ -837,9 +852,9 @@ extern int IMFS_symlink(
);
/**
- * @brief IMFS Put Symbolic Link into Buffer
+ * @brief Put IMFS symbolic link into buffer.
*
- * The following rouine puts the symblic links destination name into
+ * The following rouine puts the symbolic links destination name into
* buff.
*
*/
@@ -850,7 +865,7 @@ extern ssize_t IMFS_readlink(
);
/**
- * @brief IMFS Rename
+ * @brief Rename the IMFS.
*
* The following rouine creates a new link node under parent with the
* name given in name and removes the old.
@@ -863,7 +878,7 @@ extern int IMFS_rename(
size_t namelen
);
/**
- * @brief IMFS Node Removal Handler
+ * @brief IMFS node removal handler.
*
* This file contains the handler used to remove a node when a file type
* does not require special actions.
@@ -939,11 +954,12 @@ static inline IMFS_jnode_t *IMFS_create_node(
);
}
+/** @} */
+
/**
* @addtogroup IMFSGenericNodes
- *
- * @{
*/
+/**@{*/
static inline void *IMFS_generic_get_context_by_node(
const IMFS_jnode_t *node
@@ -978,11 +994,9 @@ static inline dev_t IMFS_generic_get_device_identifier_by_node(
);
}
-/** @} */
-
#ifdef __cplusplus
}
#endif
-
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/libfs/src/nfsclient/proto/mount_prot.h b/cpukit/libfs/src/nfsclient/proto/mount_prot.h
index 1cde517aea..a5cac29217 100644
--- a/cpukit/libfs/src/nfsclient/proto/mount_prot.h
+++ b/cpukit/libfs/src/nfsclient/proto/mount_prot.h
@@ -1,6 +1,9 @@
-/*
- * Please do not edit this file.
- * It was generated using rpcgen.
+/**
+ * @file
+ *
+ * @brief Nfsclient Mount Prot
+ *
+ * @ingroup rtems-nfsclient
*/
#ifndef _MOUNT_PROT_H_RPCGEN
@@ -8,7 +11,12 @@
#include <rpc/rpc.h>
-
+/**
+ * @defgroup libfs_nfsclient_mount_prot Mount Prot
+ *
+ * @ingroup libfs
+ */
+/**@{*/
#ifdef __cplusplus
extern "C" {
#endif
@@ -140,5 +148,5 @@ extern bool_t xdr_exportnode ();
#ifdef __cplusplus
}
#endif
-
+/**@}*/
#endif /* !_MOUNT_PROT_H_RPCGEN */
diff --git a/cpukit/libfs/src/nfsclient/proto/mount_prot_xdr.c b/cpukit/libfs/src/nfsclient/proto/mount_prot_xdr.c
index b439ef341f..a7950c1b39 100644
--- a/cpukit/libfs/src/nfsclient/proto/mount_prot_xdr.c
+++ b/cpukit/libfs/src/nfsclient/proto/mount_prot_xdr.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief Mount Prot XDR
+ * @ingroup libfs_nfsclient_mount_prot Mount Prot
+ */
+
/*
* Please do not edit this file.
* It was generated using rpcgen.
diff --git a/cpukit/libfs/src/nfsclient/proto/nfs_prot.h b/cpukit/libfs/src/nfsclient/proto/nfs_prot.h
index 45fddf3ee0..80fd2db9d7 100644
--- a/cpukit/libfs/src/nfsclient/proto/nfs_prot.h
+++ b/cpukit/libfs/src/nfsclient/proto/nfs_prot.h
@@ -8,7 +8,12 @@
#include <rpc/rpc.h>
-
+/**
+ * @defgroup libfs_nfsclient_nfs_prot NFS Prot
+ *
+ * @ingroup libfs
+ */
+/**@{*/
#ifdef __cplusplus
extern "C" {
#endif
@@ -451,5 +456,5 @@ extern bool_t xdr_statfsres ();
#ifdef __cplusplus
}
#endif
-
+/**@}*/
#endif /* !_NFS_PROT_H_RPCGEN */
diff --git a/cpukit/libfs/src/nfsclient/proto/nfs_prot_xdr.c b/cpukit/libfs/src/nfsclient/proto/nfs_prot_xdr.c
index cde005e2b4..40496a72ff 100644
--- a/cpukit/libfs/src/nfsclient/proto/nfs_prot_xdr.c
+++ b/cpukit/libfs/src/nfsclient/proto/nfs_prot_xdr.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief NFS Prot XDR
+ * @ingroup libfs_nfsclient_nfs_prot NFS Prot
+ */
+
/*
* Please do not edit this file.
* It was generated using rpcgen.
diff --git a/cpukit/libfs/src/nfsclient/src/cexphelp.c b/cpukit/libfs/src/nfsclient/src/cexphelp.c
index d0406ad33a..09c73774f6 100644
--- a/cpukit/libfs/src/nfsclient/src/cexphelp.c
+++ b/cpukit/libfs/src/nfsclient/src/cexphelp.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief CEXP Help Information
+ * @ingroup libfs
+ */
+
#if HAVE_CONFIG_H
#include "config.h"
#endif
diff --git a/cpukit/libfs/src/nfsclient/src/dirutils.c b/cpukit/libfs/src/nfsclient/src/dirutils.c
index 357aab96df..65e2053ddc 100644
--- a/cpukit/libfs/src/nfsclient/src/dirutils.c
+++ b/cpukit/libfs/src/nfsclient/src/dirutils.c
@@ -1,8 +1,13 @@
-/* very crude and basic fs utilities for testing the NFS */
-
-/* Till Straumann, <strauman@slac.stanford.edu>, 10/2002 */
+/**
+ * @file
+ *
+ * @brief Basic NFS Filesystem Utilities for Testing the NFS
+ * @ingroup libfs
+ */
/*
+ * Author: Till Straumann, <strauman@slac.stanford.edu>, 10/2002
+ *
* Authorship
* ----------
* This software (NFS-2 client implementation for RTEMS) was created by
diff --git a/cpukit/libfs/src/nfsclient/src/librtemsNfs.h b/cpukit/libfs/src/nfsclient/src/librtemsNfs.h
index fc4802874a..f1b2b4f50c 100644
--- a/cpukit/libfs/src/nfsclient/src/librtemsNfs.h
+++ b/cpukit/libfs/src/nfsclient/src/librtemsNfs.h
@@ -1,11 +1,14 @@
-#ifndef LIB_RTEMS_NFS_CLIENT_H
-#define LIB_RTEMS_NFS_CLIENT_H
-
-/* public interface to the NFS client library for RTEMS */
-
-/* Author: Till Straumann <strauman@slac.stanford.edu> 2002-2003 */
+/**
+ * @file
+ *
+ * @brief Public Interface to the NFS Client Library for RTEMS
+ *
+ * @ingroup rtems-nfsclient
+ */
/*
+ * Author: Till Straumann <strauman@slac.stanford.edu> 2002-2003
+ *
* Authorship
* ----------
* This software (NFS-2 client implementation for RTEMS) was created by
@@ -50,6 +53,16 @@
* ------------------ SLAC Software Notices, Set 4 OTT.002a, 2004 FEB 03
*/
+#ifndef LIB_RTEMS_NFS_CLIENT_H
+#define LIB_RTEMS_NFS_CLIENT_H
+
+/**
+ * @defgroup rtems-nfsclient NFS Client Library
+ *
+ * @ingroup nfsclient
+ * @{
+ */
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -73,40 +86,41 @@
extern "C" {
#endif
-/* RPCIO driver interface.
+/** RPCIO driver interface.
* If you need RPCIO for other purposes than NFS
* you may want to include <rpcio.h>
#include "rpcio.h"
*/
-/* Priority of daemon; may be setup prior to calling rpcUdpInit();
+/** Priority of daemon; may be setup prior to calling rpcUdpInit();
* otherwise the network task priority from the rtems_bsdnet_config
* is used...
*/
extern rtems_task_priority rpciodPriority;
-/* Initialize the driver.
+/** Initialize the driver.
*
* Note, called in nfsfs initialise when mount is called.
*
- * RETURNS: 0 on success, -1 on failure
+ * @retval 0 on success, -1 on failure
*/
int
rpcUdpInit(void);
-/* Cleanup/Stop
+/**
+ * @brief RPC cleanup and stop.
*
- * RETURNS: 0 on success, nonzero if still in use
+ * @retval 0 on success, nonzero if still in use
*/
int
rpcUdpCleanup(void);
-/* NFS driver interface */
+/** NFS driver interface */
-/* Initialize the NFS driver.
+/**
+ * @brief Initialize the NFS driver.
*
- * NOTE: The RPCIO driver must have been initialized prior to
- * calling this.
+ * The RPCIO driver must have been initialized prior to calling this.
*
* Note, called in nfsfs initialise when mount is called with defaults.
*
@@ -121,54 +135,67 @@ rpcUdpCleanup(void);
*
* Supply zero values to have the
* driver chose reasonable defaults.
+ *
+ * @retval 0 Successful operation.
+ * @retval -1 An error occurred. The errno is set to indicate the error.
*/
-void
+int
nfsInit(int smallPoolDepth, int bigPoolDepth);
-/* Driver cleanup code
+/**
+ * @brief Driver cleanup code.
*
- * RETURNS: 0 on success, nonzero if still in use
+ * @retval 0 on success, nonzero if still in use
*/
int
nfsCleanup(void);
-/* Dump a list of the currently mounted NFS to a file
+/**
+ * @brief Dump a list of the currently mounted NFS to a file.
+ *
+ * Dump a list of the currently mounted NFS to a file
* (stdout is used in case f==NULL)
*/
int
nfsMountsShow(FILE *f);
-/*
+/**
+ * @brief Filesystem mount table mount handler.
+ *
* Filesystem mount table mount handler. Do not call, use the mount call.
*/
-int
+int
rtems_nfs_initialize(rtems_filesystem_mount_table_entry_t *mt_entry,
const void *data);
-/* A utility routine to find the path leading to a
+/**
+ * @brief A utility routine to find the path leading to a
* rtems_filesystem_location_info_t node.
*
* This should really be present in libcsupport...
*
- * INPUT: 'loc' and a buffer 'buf' (length 'len') to hold the
- * path.
- * OUTPUT: path copied into 'buf'
+ * @param[in] 'loc' and a buffer 'buf' (length 'len') to hold the path.
*
- * RETURNS: 0 on success, RTEMS error code on error.
+ * @param[out] path copied into 'buf'
+ *
+ * @retval 0 on success, RTEMS error code on error.
*/
rtems_status_code
rtems_filesystem_resolve_location(char *buf, int len, rtems_filesystem_location_info_t *loc);
-/* Set the timeout (initial default: 10s) for NFS and mount calls.
+/**
+ * @brief Set the timeout (initial default: 10s) for NFS and mount calls.
+ *
+ * Set the timeout (initial default: 10s) for NFS and mount calls.
*
- * RETURNS 0 on success, nonzero if the requested timeout is less than
+ * @retval 0 on success, nonzero if the requested timeout is less than
* a clock tick or if the system clock rate cannot be determined.
*/
int
nfsSetTimeout(uint32_t timeout_ms);
-/* Read current timeout (in milliseconds) */
+/** Read current timeout (in milliseconds) */
uint32_t
nfsGetTimeout(void);
@@ -176,4 +203,5 @@ nfsGetTimeout(void);
}
#endif
+/** @} */
#endif
diff --git a/cpukit/libfs/src/nfsclient/src/nfs.c b/cpukit/libfs/src/nfsclient/src/nfs.c
index 2627726dc0..99e34d5ac7 100644
--- a/cpukit/libfs/src/nfsclient/src/nfs.c
+++ b/cpukit/libfs/src/nfsclient/src/nfs.c
@@ -1,15 +1,20 @@
-/* NFS client implementation for RTEMS; hooks into the RTEMS filesystem */
-
-/* Author: Till Straumann <strauman@slac.stanford.edu> 2002 */
+/**
+ * @file
+ *
+ * @brief NFS Client Implementation for RTEMS
+ * @ingroup libfs
+ *
+ * Hooks Into the RTEMS NFS Filesystem
+ */
/*
+ * Author: Till Straumann <strauman@slac.stanford.edu>, 2002
+ *
* Hacked on by others.
*
* Modifications to support reference counting in the file system are
* Copyright (c) 2012 embedded brains GmbH.
- */
-
-/*
+ *
* Authorship
* ----------
* This software (NFS-2 client implementation for RTEMS) was created by
@@ -674,7 +679,19 @@ static struct nfsstats {
* during the system lifetime
*/
u_short fs_ids;
-} nfsGlob = {0, 0, 0, 0, 0, 0};
+
+ /* Two pools of RPC transactions;
+ * One with small send buffers
+ * the other with a big one.
+ * The actual size of the small
+ * buffer is configurable (see top).
+ *
+ * Note: The RX buffers are always
+ * big
+ */
+ RpcUdpXactPool smallPool;
+ RpcUdpXactPool bigPool;
+} nfsGlob = {0, 0, 0xffffffff, 0, 0, 0, NULL, NULL};
/*
* Global variable to tune the 'st_blksize' (stat(2)) value this nfs
@@ -686,18 +703,6 @@ static struct nfsstats {
#endif
int nfsStBlksize = DEFAULT_NFS_ST_BLKSIZE;
-/* Two pools of RPC transactions;
- * One with small send buffers
- * the other with a big one.
- * The actual size of the small
- * buffer is configurable (see top).
- *
- * Note: The RX buffers are always
- * big
- */
-static RpcUdpXactPool smallPool = 0;
-static RpcUdpXactPool bigPool = 0;
-
/*****************************************
Implementation
@@ -992,7 +997,7 @@ NfsNode rval = nfsNodeCreate(node->nfs, 0);
* they are created and destroyed
* on the fly).
*/
-void
+int
nfsInit(int smallPoolDepth, int bigPoolDepth)
{
static int initialised = 0;
@@ -1000,7 +1005,7 @@ entry dummy;
rtems_status_code status;
if (initialised)
- return;
+ return 0;
initialised = 1;
@@ -1013,7 +1018,8 @@ rtems_status_code status;
if (RTEMS_SUCCESSFUL != rtems_io_register_driver(0, &drvNfs, &nfsGlob.nfs_major)) {
fprintf(stderr,"Registering NFS driver failed - %s\n", strerror(errno));
- return;
+ errno = ENOMEM;
+ return -1;
}
if (0==smallPoolDepth)
@@ -1034,19 +1040,23 @@ rtems_status_code status;
dummy.name = "somename"; /* guess average length of a filename */
dirres_entry_size = xdr_sizeof((xdrproc_t)xdr_entry, &dummy);
- smallPool = rpcUdpXactPoolCreate(
+ nfsGlob.smallPool = rpcUdpXactPoolCreate(
NFS_PROGRAM,
NFS_VERSION_2,
CONFIG_NFS_SMALL_XACT_SIZE,
smallPoolDepth);
- assert( smallPool );
+ if (nfsGlob.smallPool == NULL) {
+ goto cleanup;
+ }
- bigPool = rpcUdpXactPoolCreate(
+ nfsGlob.bigPool = rpcUdpXactPoolCreate(
NFS_PROGRAM,
NFS_VERSION_2,
CONFIG_NFS_BIG_XACT_SIZE,
bigPoolDepth);
- assert( bigPool );
+ if (nfsGlob.bigPool == NULL) {
+ goto cleanup;
+ }
status = rtems_semaphore_create(
rtems_build_name('N','F','S','l'),
@@ -1054,14 +1064,19 @@ rtems_status_code status;
MUTEX_ATTRIBUTES,
0,
&nfsGlob.llock);
- assert( status == RTEMS_SUCCESSFUL );
+ if (status != RTEMS_SUCCESSFUL) {
+ goto cleanup;
+ }
+
status = rtems_semaphore_create(
rtems_build_name('N','F','S','m'),
1,
MUTEX_ATTRIBUTES,
0,
&nfsGlob.lock);
- assert( status == RTEMS_SUCCESSFUL );
+ if (status != RTEMS_SUCCESSFUL) {
+ goto cleanup;
+ }
if (sizeof(ino_t) < sizeof(u_int)) {
fprintf(stderr,
@@ -1070,6 +1085,15 @@ rtems_status_code status;
"you should fix newlib's sys/stat.h - for now I'll enable a hack...\n");
}
+
+ return 0;
+
+cleanup:
+
+ nfsCleanup();
+ initialised = 0;
+
+ return -1;
}
/* Driver cleanup code
@@ -1077,38 +1101,47 @@ rtems_status_code status;
int
nfsCleanup(void)
{
-rtems_id l;
int refuse;
- if (!nfsGlob.llock) {
- /* registering the driver failed - let them still cleanup */
- return 0;
+ if (nfsGlob.llock != 0) {
+ LOCK(nfsGlob.llock);
+ if ( (refuse = nfsGlob.num_mounted_fs) ) {
+ fprintf(stderr,"Refuse to unload NFS; %i filesystems still mounted.\n",
+ refuse);
+ nfsMountsShow(stderr);
+ /* yes, printing is slow - but since you try to unload the driver,
+ * you assume nobody is using NFS, so what if they have to wait?
+ */
+ UNLOCK(nfsGlob.llock);
+ return -1;
+ }
}
- LOCK(nfsGlob.llock);
- if ( (refuse = nfsGlob.num_mounted_fs) ) {
- fprintf(stderr,"Refuse to unload NFS; %i filesystems still mounted.\n",
- refuse);
- nfsMountsShow(stderr);
- /* yes, printing is slow - but since you try to unload the driver,
- * you assume nobody is using NFS, so what if they have to wait?
- */
- UNLOCK(nfsGlob.llock);
- return -1;
+ if (nfsGlob.lock != 0) {
+ rtems_semaphore_delete(nfsGlob.lock);
+ nfsGlob.lock = 0;
}
- rtems_semaphore_delete(nfsGlob.lock);
- nfsGlob.lock = 0;
+ if (nfsGlob.smallPool != NULL) {
+ rpcUdpXactPoolDestroy(nfsGlob.smallPool);
+ nfsGlob.smallPool = NULL;
+ }
+
+ if (nfsGlob.bigPool != NULL) {
+ rpcUdpXactPoolDestroy(nfsGlob.bigPool);
+ nfsGlob.bigPool = NULL;
+ }
- /* hold the lock while cleaning up... */
+ if (nfsGlob.nfs_major != 0xffffffff) {
+ rtems_io_unregister_driver(nfsGlob.nfs_major);
+ nfsGlob.nfs_major = 0xffffffff;
+ }
- rpcUdpXactPoolDestroy(smallPool);
- rpcUdpXactPoolDestroy(bigPool);
- l = nfsGlob.llock;
- rtems_io_unregister_driver(nfsGlob.nfs_major);
+ if (nfsGlob.llock != 0) {
+ rtems_semaphore_delete(nfsGlob.llock);
+ nfsGlob.llock = 0;
+ }
- rtems_semaphore_delete(l);
- nfsGlob.llock = 0;
return 0;
}
@@ -1148,8 +1181,8 @@ int rval = -1;
switch (proc) {
case NFSPROC_SYMLINK:
case NFSPROC_WRITE:
- pool = bigPool; break;
- default: pool = smallPool; break;
+ pool = nfsGlob.bigPool; break;
+ default: pool = nfsGlob.smallPool; break;
}
xact = rpcUdpXactPoolGet(pool, XactGetCreate);
@@ -1313,7 +1346,7 @@ int len;
}
memcpy(&psa->sin_addr, h->h_addr, sizeof (struct in_addr));
-
+
/* END OF NON-THREAD SAFE REGION */
psa->sin_family = AF_INET;
@@ -1770,13 +1803,16 @@ char *path = mt_entry->dev;
fprintf (stderr, "error: initialising RPC\n");
return -1;
}
-
- nfsInit(0, 0);
+
+ if (nfsInit(0, 0) != 0) {
+ fprintf (stderr, "error: initialising NFS\n");
+ return -1;
+ };
#if 0
printf("Trying to mount %s on %s\n",path,mntpoint);
#endif
-
+
if ( buildIpAddr(&uid, &gid, &host, &saddr, &path) )
return -1;
diff --git a/cpukit/libfs/src/nfsclient/src/nfs.modini.c b/cpukit/libfs/src/nfsclient/src/nfs.modini.c
index 22095cf53f..57adf23aa1 100644
--- a/cpukit/libfs/src/nfsclient/src/nfs.modini.c
+++ b/cpukit/libfs/src/nfsclient/src/nfs.modini.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief NFS Module Initialize
+ * @ingroup libfs
+ */
+
#if HAVE_CONFIG_H
#include "config.h"
#endif
diff --git a/cpukit/libfs/src/nfsclient/src/nfsTest.c b/cpukit/libfs/src/nfsclient/src/nfsTest.c
index 18bd0a3cb4..5b6951af58 100644
--- a/cpukit/libfs/src/nfsclient/src/nfsTest.c
+++ b/cpukit/libfs/src/nfsclient/src/nfsTest.c
@@ -1,8 +1,10 @@
-/* Test program for evaluating NFS read throughput */
-
-/* Author: Till Straumann <strauman@slac.stanford.edu>, 2006 */
-
-/* This test code allows for evaluating NFS read performance
+/**
+ * @file
+ *
+ * @brief Test Program for Evaluating NFS Read Throughput
+ * @ingroup libfs
+ *
+ * This test code allows for evaluating NFS read performance
* under various scenarios:
* - synchronous reads with various buffer sizes (select
* 'num_readers' == 0, see below).
@@ -48,7 +50,12 @@
* performed at 'big block' boundaries (num_readers * chunk_size).
*/
+
+
+
/*
+ * Author: Till Straumann <strauman@slac.stanford.edu>, 2006
+ *
* Authorship
* ----------
* This software (NFS-2 client implementation for RTEMS) was created by
diff --git a/cpukit/libfs/src/nfsclient/src/rpcio.c b/cpukit/libfs/src/nfsclient/src/rpcio.c
index eeadd53f58..e1bc4c59ba 100644
--- a/cpukit/libfs/src/nfsclient/src/rpcio.c
+++ b/cpukit/libfs/src/nfsclient/src/rpcio.c
@@ -1,8 +1,10 @@
-/* RPC multiplexor for a multitasking environment */
-
-/* Author: Till Straumann <strauman@slac.stanford.edu>, 2002 */
-
-/* This code funnels arbitrary task's UDP/RPC requests
+/**
+ * @file
+ *
+ * @brief RPC Multiplexor for a Multitasking Environment
+ * @ingroup libfs
+ *
+ * This code funnels arbitrary task's UDP/RPC requests
* through one socket to arbitrary servers.
* The replies are gathered and dispatched to the
* requestors.
@@ -15,6 +17,8 @@
*/
/*
+ * Author: Till Straumann <strauman@slac.stanford.edu>, 2002
+ *
* Authorship
* ----------
* This software (NFS-2 client implementation for RTEMS) was created by
diff --git a/cpukit/libfs/src/nfsclient/src/rpcio.h b/cpukit/libfs/src/nfsclient/src/rpcio.h
index 8078209610..02cd34ffe7 100644
--- a/cpukit/libfs/src/nfsclient/src/rpcio.h
+++ b/cpukit/libfs/src/nfsclient/src/rpcio.h
@@ -1,11 +1,14 @@
-#ifndef RPCIO_H
-#define RPCIO_H
-
-/* A multihreaded RPC/UDP multiplexor */
-
-/* Author: Till Straumann, <strauman@slac.stanford.edu>, 2002 */
+/**
+ * @file
+ *
+ * @brief A Multithreaded RPC/UDP Multiplexor
+ *
+ * @ingroup rtems-nfsclient
+ */
/*
+ * Author: Till Straumann, <strauman@slac.stanford.edu>, 2002
+ *
* Authorship
* ----------
* This software (NFS-2 client implementation for RTEMS) was created by
@@ -50,6 +53,16 @@
* ------------------ SLAC Software Notices, Set 4 OTT.002a, 2004 FEB 03
*/
+#ifndef RPCIO_H
+#define RPCIO_H
+
+/**
+ * @defgroup rtems-nfsclient RPC/UDP Multiplexor
+ *
+ * @ingroup nfsclient
+ * @{
+ */
+
#ifdef __rtems
#include <rtems.h>
#endif
@@ -84,8 +97,9 @@ rpcUdpServerCreate(
void
rpcUdpServerDestroy(RpcUdpServer s);
-/* Dump statistics to a file (stdout if NULL);
- * returns 0 for convenience
+/**
+ * @brief Dump statistics to a file (stdout if NULL);
+ * @retval 0 for convenience
*/
int
rpcUdpStats(FILE *f);
@@ -103,7 +117,9 @@ rpcUdpClntCreate(
void
RpcUdpClntDestroy(RpcUdpClnt clnt);
-/* mute compiler warnings */
+/**
+ * @brief Mute compiler warnings.
+ */
typedef void *XdrProcT;
typedef void *CaddrT;
@@ -130,7 +146,9 @@ rpcUdpXactDestroy(
RpcUdpXact xact
);
-/* send a transaction */
+/**
+ * Send a transaction.
+ */
enum clnt_stat
rpcUdpSend(
RpcUdpXact xact,
@@ -144,7 +162,9 @@ rpcUdpSend(
... /* 0 terminated xdrproc/pobj additional argument list */
);
-/* wait for a transaction to complete */
+/**
+ * @brief Wait for a transaction to complete.
+ */
enum clnt_stat
rpcUdpRcv(RpcUdpXact xact);
@@ -165,9 +185,11 @@ rpcUdpCallRp(
);
-/* manage pools of transactions */
-/* A pool of transactions. The idea is not to malloc/free them
+/*
+ * @brief Manage pools of transactions.
+ *
+ * A pool of transactions. The idea is not to malloc/free them
* all the time but keep a limited number around in a 'pool'.
* Users who need a XACT may get it from the pool and put it back
* when done.
@@ -205,4 +227,5 @@ rpcUdpXactPoolGet(RpcUdpXactPool pool, XactPoolGetMode mode);
void
rpcUdpXactPoolPut(RpcUdpXact xact);
+/** @} */
#endif
diff --git a/cpukit/libfs/src/nfsclient/src/rpcio.modini.c b/cpukit/libfs/src/nfsclient/src/rpcio.modini.c
index 7aa802fe51..f0359974de 100644
--- a/cpukit/libfs/src/nfsclient/src/rpcio.modini.c
+++ b/cpukit/libfs/src/nfsclient/src/rpcio.modini.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RPCIO Module Initialize
+ * @ingroup libfs
+ */
+
#if HAVE_CONFIG_H
#include "config.h"
#endif
diff --git a/cpukit/libfs/src/nfsclient/src/sock_mbuf.c b/cpukit/libfs/src/nfsclient/src/sock_mbuf.c
index e07c63bcf2..3f07b757b5 100644
--- a/cpukit/libfs/src/nfsclient/src/sock_mbuf.c
+++ b/cpukit/libfs/src/nfsclient/src/sock_mbuf.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief Sock Mbuf
+ * @ingroup libfs
+ */
+
/*
* NOTE:
* This is derived from libnetworking/rtems/rtems_syscall.c
@@ -9,70 +16,64 @@
* Till Straumann, <strauman@slac.stanford.edu>
* Licensing: 'LICENSE.NET' file in the RTEMS top source directory
* for more information.
+ *
+ * The RTEMS TCP/IP stack is a port of the FreeBSD TCP/IP stack. The following
+ * copyright and licensing information applies to this code.
+ *
+ * This code is found under the c/src/libnetworking directory but does not
+ * constitute the entire contents of that subdirectory.
+ *
+ *
+ * Copyright (c) 1980, 1983, 1988, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgment:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+
+ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
+
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies, and that
+ * the name of Digital Equipment Corporation not be used in advertising or
+ * publicity pertaining to distribution of the document or software without
+ * specific, written prior permission.
+
+ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
+ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
*/
-/*
-The RTEMS TCP/IP stack is a port of the FreeBSD TCP/IP stack. The following
-copyright and licensing information applies to this code.
-
-This code is found under the c/src/libnetworking directory but does not
-constitute the entire contents of that subdirectory.
-
-=============================================================================
-
-Copyright (c) 1980, 1983, 1988, 1993
- The Regents of the University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-3. All advertising materials mentioning features or use of this software
- must display the following acknowledgment:
- This product includes software developed by the University of
- California, Berkeley and its contributors.
-4. Neither the name of the University nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--
-Portions Copyright (c) 1993 by Digital Equipment Corporation.
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies, and that
-the name of Digital Equipment Corporation not be used in advertising or
-publicity pertaining to distribution of the document or software without
-specific, written prior permission.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
-WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
-CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
-ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-=============================================================================
-*/
-
#if HAVE_CONFIG_H
#include "config.h"
#endif
diff --git a/cpukit/libfs/src/nfsclient/src/xdr_mbuf.c b/cpukit/libfs/src/nfsclient/src/xdr_mbuf.c
index 3c73639750..0f71538419 100644
--- a/cpukit/libfs/src/nfsclient/src/xdr_mbuf.c
+++ b/cpukit/libfs/src/nfsclient/src/xdr_mbuf.c
@@ -1,8 +1,15 @@
-/* xdr_mbuf is derived from xdr_mem */
-
-/* Author (mbuf specifica): Till Straumann <strauman@slac.stanford.edu>, 10/2002 */
+/**
+ * @file
+ *
+ * @brief XDR Implementation Using mbuf Buffers
+ * @ingroup libfs
+ *
+ * xdr_mbuf is derived from xdr_mem
+ */
/*
+ * Author (mbuf specifica): Till Straumann <strauman@slac.stanford.edu>, 10/2002
+ *
* Sun RPC is a product of Sun Microsystems, Inc. and is provided for
* unrestricted use provided that this legend is included on all tape
* media and as a part of the software program in whole or part. Users
diff --git a/cpukit/libfs/src/pipe/pipe.h b/cpukit/libfs/src/pipe/pipe.h
index 6ba3c5ef42..e9b9117f54 100644
--- a/cpukit/libfs/src/pipe/pipe.h
+++ b/cpukit/libfs/src/pipe/pipe.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/pipe.h
+ * @file
+ *
+ * @brief POSIX FIFO/pipe File System Support
*
* This include file defines the interface to the POSIX FIFO/pipe file system
* support.
@@ -18,16 +20,19 @@
#include <rtems/libio.h>
+/**
+ * @defgroup FIFO_PIPE FIFO/Pipe File System Support
+ *
+ * @ingroup FileSystemTypesAndMount
+ *
+ * @brief Interface to the POSIX FIFO/Pipe File System
+ */
+/**@{*/
+
#ifdef __cplusplus
extern "C" {
#endif
-/**
- * @defgroup FIFO_PIPE FIFO/pipe File System Support
- *
- * @brief Interface to the POSIX FIFO/pipe File System
- */
-
/* Control block to manage each pipe */
typedef struct pipe_control {
char *Buffer;
@@ -49,8 +54,8 @@ typedef struct pipe_control {
} pipe_control_t;
/**
- * @brief Create an Anonymous Pipe
- *
+ * @brief Create an anonymous pipe.
+ *
* Called by pipe() to create an anonymous pipe.
*/
extern int pipe_create(
@@ -58,8 +63,8 @@ extern int pipe_create(
);
/**
- * @brief Release a Pipe
- *
+ * @brief Release a pipe.
+ *
* Interface to file system close.
*
* *pipep points to pipe control structure. When the last user releases pipe,
@@ -71,7 +76,7 @@ extern void pipe_release(
);
/**
- * @brief FIFO Open
+ * @brief File system open.
* Interface to file system open.
*
* *pipep points to pipe control structure. If called with *pipep = NULL,
@@ -84,8 +89,8 @@ extern int fifo_open(
);
/**
- * @brief Pipe Read
- *
+ * @brief File system read.
+ *
* Interface to file system read.
*/
extern ssize_t pipe_read(
@@ -96,8 +101,8 @@ extern ssize_t pipe_read(
);
/**
- * @brief Pipe Write
- *
+ * @brief File system write.
+ *
* Interface to file system write.
*/
extern ssize_t pipe_write(
@@ -108,8 +113,8 @@ extern ssize_t pipe_write(
);
/**
- * @brief Pipe IO Control
- *
+ * @brief File system Input/Output control.
+ *
* Interface to file system ioctl.
*/
extern int pipe_ioctl(
@@ -119,6 +124,8 @@ extern int pipe_ioctl(
rtems_libio_t *iop
);
+/** @} */
+
#ifdef __cplusplus
}
#endif
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-bitmaps.c b/cpukit/libfs/src/rfs/rtems-rfs-bitmaps.c
index c14c69d1fe..c4050b2da8 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-bitmaps.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-bitmaps.c
@@ -2,7 +2,7 @@
* @file
*
* @brief RTEMS File Systems Bitmap Routines
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* These functions manage bit maps. A bit map consists of the map of bit
* allocated in a block and a search map where a bit represents 32 actual
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-bitmaps.h b/cpukit/libfs/src/rfs/rtems-rfs-bitmaps.h
index 01d4f0f28c..b8ed9c8d54 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-bitmaps.h
+++ b/cpukit/libfs/src/rfs/rtems-rfs-bitmaps.h
@@ -3,7 +3,7 @@
*
* @brief RTEMS File Systems Bitmap Routines
*
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* RTEMS File Systems Bitmap Routines.
*
@@ -186,7 +186,8 @@ typedef struct rtems_rfs_bitmap_control_s
* Create a bit mask with the specified number of bits up to an element's
* size. The mask is aligned to bit 0 of the element.
*
- * @param size The number of bits in the mask.
+ * @param[in] size is the number of bits in the mask.
+ *
* @return The mask of the argument size number of bits.
*/
rtems_rfs_bitmap_element rtems_rfs_bitmap_mask (unsigned int size);
@@ -195,8 +196,9 @@ rtems_rfs_bitmap_element rtems_rfs_bitmap_mask (unsigned int size);
* Create a bit mask section. A mask section is a mask that is not aligned to
* an end of the element.
*
- * @param start The first bit of the mask numbered from 0.
- * @param end The end bit of the mask numbered from 0.
+ * @param[in] start is the first bit of the mask numbered from 0.
+ * @param[in] end is the end bit of the mask numbered from 0.
+ *
* @return Mask section as defined by the start and end arguments.
*/
rtems_rfs_bitmap_element rtems_rfs_bitmap_mask_section (unsigned int start,
@@ -206,9 +208,11 @@ rtems_rfs_bitmap_element rtems_rfs_bitmap_mask_section (unsigned int start,
* Set a bit in a map and if all the bits are set, set the search map bit as
* well.
*
- * @param control The control for the map.
- * @param bit The bit in the map to set.
- * @return int The error number (errno). No error if 0.
+ * @param[in] control is the control for the map.
+ * @param[in] bit is the bit in the map to set.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_bitmap_map_set (rtems_rfs_bitmap_control* control,
rtems_rfs_bitmap_bit bit);
@@ -217,9 +221,11 @@ int rtems_rfs_bitmap_map_set (rtems_rfs_bitmap_control* control,
* Clear a bit in a map and make sure the search map bit is clear so a search
* will find this bit available.
*
- * @param control The control for the map.
- * @param bit The bit in the map to clear.
- * @return int The error number (errno). No error if 0.
+ * @param[in] control is the control for the map.
+ * @param[in] bit is the bit in the map to clear.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_bitmap_map_clear (rtems_rfs_bitmap_control* control,
rtems_rfs_bitmap_bit bit);
@@ -227,10 +233,12 @@ int rtems_rfs_bitmap_map_clear (rtems_rfs_bitmap_control* control,
/**
* Test a bit in the map.
*
- * @param control The bitmap control.
- * @param bit The bit to test.
- * @param state The state of the bit if no error is returned.
- * @return int The error number (errno). No error if 0.
+ * @param[in] control is the bitmap control.
+ * @param[in] bit is the bit to test.
+ * @param[in] state is the state of the bit if no error is returned.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int
rtems_rfs_bitmap_map_test (rtems_rfs_bitmap_control* control,
@@ -240,31 +248,37 @@ rtems_rfs_bitmap_map_test (rtems_rfs_bitmap_control* control,
/**
* Set all bits in the bitmap and set the dirty bit.
*
- * @param control The bitmap control.
- * @return int The error number (errno). No error if 0.
+ * @param[in] control is the bitmap control.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_bitmap_map_set_all (rtems_rfs_bitmap_control* control);
/**
* Clear all bits in the bitmap and set the dirty bit.
*
- * @param control The bitmap control.
- * @return int The error number (errno). No error if 0.
+ * @param[in] control is the bitmap control.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_bitmap_map_clear_all (rtems_rfs_bitmap_control* control);
/**
* Find a free bit searching from the seed up and down until found. The search
* is performing by moving up from the seed for the window distance then to
- * search down from the seed for the window distance. This is repeated out from
- * the seed for each window until a free bit is found. The search is performed
- * by checking the search map to see if the map has a free bit.
+ * search down from the seed for the window distance. This is repeated out
+ * from the seed for each window until a free bit is found. The search is
+ * performed by checking the search map to see if the map has a free bit.
+ *
+ * @param[in] control is the map control.
+ * @param[in] seed is the bit to search out from.
+ * @param[out] allocate A bit was allocated.
+ * @param[out] bit will contain the bit found free if true is returned.
*
- * @param control The map control.
- * @param seed The bit to search out from.
- * @param allocate A bit was allocated.
- * @param bit Returns the bit found free if true is returned.
- * @return int The error number (errno). No error if 0.
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_bitmap_map_alloc (rtems_rfs_bitmap_control* control,
rtems_rfs_bitmap_bit seed,
@@ -274,19 +288,24 @@ int rtems_rfs_bitmap_map_alloc (rtems_rfs_bitmap_control* control,
/**
* Create a search bit map from the actual bit map.
*
- * @param control The map control.
- * @return int The error number (errno). No error if 0.
+ * @param[in] control is the map control.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_bitmap_create_search (rtems_rfs_bitmap_control* control);
/**
* Open a bitmap control with a map and search map.
*
- * @param control The map control.
- * @param fs The file system data.
- * @param buffer The buffer handle the map is stored in.
- * @param size The number of bits in the map.
- * @return int The error number (errno). No error if 0.
+ * @param[in] control is the map control.
+ * @param[in] fs is the file system data.
+ * @param[in] buffer is a pointer to the buffer handle the map is
+ * stored in.
+ * @param[in] size is the number of bits in the map.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_bitmap_open (rtems_rfs_bitmap_control* control,
rtems_rfs_file_system* fs,
@@ -297,8 +316,10 @@ int rtems_rfs_bitmap_open (rtems_rfs_bitmap_control* control,
/**
* Close a bitmap.
*
- * @param control The bit map control.
- * @return int The error number (errno). No error if 0.
+ * @param[in] control is the bit map control.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_bitmap_close (rtems_rfs_bitmap_control* control);
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-block-pos.h b/cpukit/libfs/src/rfs/rtems-rfs-block-pos.h
index b0de7c1846..3a3aab6b97 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-block-pos.h
+++ b/cpukit/libfs/src/rfs/rtems-rfs-block-pos.h
@@ -3,7 +3,7 @@
*
* @brief RTEMS File Systems Block Position and Size Management
*
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* RTEMS File Systems Block Position and Size Management.
*
@@ -72,8 +72,8 @@ typedef struct rtems_rfs_block_pos_s
/**
* Copy a block position.
*
- * @param _lhs The left hand side.
- * @param _rhs The right hand side.
+ * @param[in] _lhs is the left hand side.
+ * @param[in] _rhs is the right hand side.
*/
#define rtems_rfs_block_copy_bpos(_lhs, _rhs) \
do { (_lhs)->bno = (_rhs)->bno; \
@@ -83,7 +83,7 @@ typedef struct rtems_rfs_block_pos_s
/**
* Zero a block position.
*
- * @param bpos A pointer to the block position.
+ * @param[in] bpos is a pointer to the block position.
*/
static inline void
rtems_rfs_block_set_bpos_zero (rtems_rfs_block_pos* bpos)
@@ -96,9 +96,9 @@ rtems_rfs_block_set_bpos_zero (rtems_rfs_block_pos* bpos)
/**
* Given a position compute the block number and block offset.
*
- * @param fs The file system data.
- * @param pos The position as an absolute offset from the start.
- * @param bpos Pointer to the block position to fill in.
+ * @param[in] fs is the file system data.
+ * @param[in] pos is the position as an absolute offset from the start.
+ * @param[out] bpos is a pointer to the block position to fill in.
*/
void rtems_rfs_block_get_bpos (rtems_rfs_file_system* fs,
rtems_rfs_pos pos,
@@ -107,9 +107,10 @@ void rtems_rfs_block_get_bpos (rtems_rfs_file_system* fs,
/**
* Given a block position compute the absolute offset.
*
- * @param fs The file system data.
- * @param bpos Pointer to the block position to fill in.
- * @return rtems_rfs_pos The absolute offset.
+ * @param[in] fs is the file system data.
+ * @param[out] bpos is a pointer to the block position to fill in.
+ *
+ * @retval offset The absolute offset.
*/
rtems_rfs_pos rtems_rfs_block_get_pos (rtems_rfs_file_system* fs,
rtems_rfs_block_pos* bpos);
@@ -118,9 +119,9 @@ rtems_rfs_pos rtems_rfs_block_get_pos (rtems_rfs_file_system* fs,
* Add the relative position to the block position. The relative position is
* signed.
*
- * @param fs The file system data.
- * @param offset The relative offset add to the block position.
- * @param bpos Pointer to the block position to fill in.
+ * @param[in] fs is the file system data.
+ * @param[in] offset is the relative offset add to the block position.
+ * @param[out] bpos is a pointer to the block position to fill in.
*/
static inline void
rtems_rfs_block_add_pos (rtems_rfs_file_system* fs,
@@ -156,8 +157,8 @@ typedef struct rtems_rfs_block_size_s
/**
* Copy a block size.
*
- * @param _lhs The left hand side.
- * @param _rhs The right hand side.
+ * @param[in] _lhs is the left hand side.
+ * @param[in] _rhs is the right hand side.
*/
#define rtems_rfs_block_copy_size(_lhs, _rhs) \
do { (_lhs)->count = (_rhs)->count; \
@@ -202,7 +203,7 @@ typedef struct rtems_rfs_block_size_s
/**
* Zero a block size.
*
- * @param size A pointer to the block size.
+ * @param[in] size is a pointer to the block size.
*/
static inline void
rtems_rfs_block_set_size_zero (rtems_rfs_block_size* size)
@@ -214,9 +215,9 @@ rtems_rfs_block_set_size_zero (rtems_rfs_block_size* size)
/**
* Set the size given a position.
*
- * @param fs The file system data.
- * @param pos The position as an absolute offset from the start.
- * @param size Pointer to the block size to fill in.
+ * @param[in] fs is the file system data.
+ * @param[in] pos is the position as an absolute offset from the start.
+ * @param[out] size is a pointer to the block size to fill in.
*/
void rtems_rfs_block_get_block_size (rtems_rfs_file_system* fs,
rtems_rfs_pos pos,
@@ -230,9 +231,10 @@ void rtems_rfs_block_get_block_size (rtems_rfs_file_system* fs,
* blocks is 1 and offset is 0 the size is the block size. If the block count
* is 1 and size is 100 the size is 100.
*
- * @param fs The file system data.
- * @param size The size in blocks and offset.
- * @return rtems_rfs_pos The size in bytes.
+ * @param[in] fs is the file system data.
+ * @param[in] size The size in blocks and offset.
+ *
+ * @retval size The size in bytes.
*/
rtems_rfs_pos rtems_rfs_block_get_size (rtems_rfs_file_system* fs,
rtems_rfs_block_size* size);
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-block.c b/cpukit/libfs/src/rfs/rtems-rfs-block.c
index 4ad73b2ee3..1c6329a10a 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-block.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-block.c
@@ -2,7 +2,7 @@
* @file
*
* @brief RTEMS File Systems Block Routines
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* These functions manage blocks in the RFS file system. A block is an area of
* the media and its size is set for a each specific media. The block size is
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-block.h b/cpukit/libfs/src/rfs/rtems-rfs-block.h
index c93cb20b24..ee758bafb3 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-block.h
+++ b/cpukit/libfs/src/rfs/rtems-rfs-block.h
@@ -3,7 +3,7 @@
*
* @brief RTEMS File Systems Block Management
*
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* RTEMS File Systems Block Management.
*
@@ -30,9 +30,10 @@
/**
* Get a block number in the media format and return it in the host format.
*
- * @param _h The buffer handle of the block.
- * @param _b The block number index.
- * @return uint32_t The block number.
+ * @param[in] _h is the buffer handle of the block.
+ * @param[in] _b is the block number index.
+ *
+ * @retval block The block number.
*/
#define rtems_rfs_block_get_number(_h, _b) \
((rtems_rfs_block_no) \
@@ -42,10 +43,10 @@
/**
* Set a block number in the media format given a number in the host format.
*
- * @param _h The buffer handle of the block.
- * @param _b The block number index, ie the number of block number not the
+ * @param[in] _h is the buffer handle of the block.
+ * @param[in] _b is the block number index, ie the number of block number not the
* buffer offset.
- * @param _n The block number.
+ * @param[in] _n is the block number.
*/
#define rtems_rfs_block_set_number(_h, _b, _n) \
do { \
@@ -195,8 +196,8 @@ typedef struct rtems_rfs_block_map_s
/**
* Set the size offset for the map. The map is tagged as dirty.
*
- * @param map Pointer to the open map to set the offset in.
- * @param offset The offset to set in the map's size.
+ * @param[in] map is a pointer to the open map to set the offset in.
+ * @param[in] offset is the offset to set in the map's size.
*/
static inline void
rtems_rfs_block_map_set_size_offset (rtems_rfs_block_map* map,
@@ -209,8 +210,8 @@ rtems_rfs_block_map_set_size_offset (rtems_rfs_block_map* map,
/**
* Set the map's size. The map is tagged as dirty.
*
- * @param map Pointer to the open map to set the offset in.
- * @param size The size to set in the map's size.
+ * @param[in] map is a pointer to the open map to set the offset in.
+ * @param[in] size is the size to set in the map's size.
*/
static inline void
rtems_rfs_block_map_set_size (rtems_rfs_block_map* map,
@@ -224,10 +225,12 @@ rtems_rfs_block_map_set_size (rtems_rfs_block_map* map,
* map. The buffer handles are opened. The block position is set to the start
* so a seek of offset 0 will return the first block.
*
- * @param fs The file system data.
- * @param inode The inode the map belongs to.
- * @param map The map that is opened.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ * @param[in] inode is a pointer to the inode the map belongs to.
+ * @param[in] map is a pointer to the map that is opened.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_block_map_open (rtems_rfs_file_system* fs,
rtems_rfs_inode_handle* inode,
@@ -237,9 +240,11 @@ int rtems_rfs_block_map_open (rtems_rfs_file_system* fs,
* Close the map. The buffer handles are closed and any help buffers are
* released.
*
- * @param fs The file system data.
- * @param map The map that is opened.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ * @param[in] map is a pointer to the map that is opened.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_block_map_close (rtems_rfs_file_system* fs,
rtems_rfs_block_map* map);
@@ -247,11 +252,13 @@ int rtems_rfs_block_map_close (rtems_rfs_file_system* fs,
/**
* Find a block number in the map from the position provided.
*
- * @param fs The file system data.
- * @param map The map to search.
- * @param bpos The block position to find.
- * @param block Pointer to place the block in when found.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ * @param[in] map is a pointer to the map to search.
+ * @param[in] bpos is a pointer to the block position to find.
+ * @param[out] block will contain the block in when found.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_block_map_find (rtems_rfs_file_system* fs,
rtems_rfs_block_map* map,
@@ -261,12 +268,14 @@ int rtems_rfs_block_map_find (rtems_rfs_file_system* fs,
/**
* Seek around the map.
*
- * @param fs The file system data.
- * @param map The map to search.
- * @param offset The distance to seek. It is signed.
- * @param block Pointer to place the block in when found.
+ * @param[in] fs is the file system data.
+ * @param[in] map is a pointer to the map to search.
+ * @param[in] offset is the distance to seek. It is signed.
+ * @param[out] block will contain the block in when found.
+ *
+ * @retval 0 Successful operation.
* @retval ENXIO Failed to seek because it is outside the block map.
- * @return int The error number (errno). No error if 0.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_block_map_seek (rtems_rfs_file_system* fs,
rtems_rfs_block_map* map,
@@ -276,11 +285,13 @@ int rtems_rfs_block_map_seek (rtems_rfs_file_system* fs,
/**
* Seek to the next block.
*
- * @param fs The file system data.
- * @param map The map to search.
- * @param block Pointer to place the block in when found.
+ * @param[in] fs is the file system data.
+ * @param[in] map is a pointer to the map to search.
+ * @param[out] block will contain the block in when found.
+ *
+ * @retval 0 Successful operation.
* @retval ENXIO Failed to seek because it is outside the block map.
- * @return int The error number (errno). No error if 0.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_block_map_next_block (rtems_rfs_file_system* fs,
rtems_rfs_block_map* map,
@@ -289,11 +300,14 @@ int rtems_rfs_block_map_next_block (rtems_rfs_file_system* fs,
/**
* Grow the block map by the specified number of blocks.
*
- * @param fs The file system data.
- * @param map Pointer to the open map to grow.
- * @param blocks The number of blocks to grow the map by.
- * @param new_block The first of the blocks allocated to the map.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ * @param[in] map is a pointer to the open map to grow.
+ * @param[in] blocks is the number of blocks to grow the map by.
+ * @param[out] new_block will contain first of the blocks allocated
+ * to the map.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_block_map_grow (rtems_rfs_file_system* fs,
rtems_rfs_block_map* map,
@@ -303,11 +317,13 @@ int rtems_rfs_block_map_grow (rtems_rfs_file_system* fs,
/**
* Grow the block map by the specified number of blocks.
*
- * @param fs The file system data.
- * @param map Pointer to the open map to shrink.
- * @param blocks The number of blocks to shrink the map by. If more than the
- * number of blocks the map is emptied.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ * @param[in] map is a pointer to the open map to shrink.
+ * @param[in] blocks is the number of blocks to shrink the map by. If more
+ * than the number of blocks the map is emptied.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_block_map_shrink (rtems_rfs_file_system* fs,
rtems_rfs_block_map* map,
@@ -316,9 +332,11 @@ int rtems_rfs_block_map_shrink (rtems_rfs_file_system* fs,
/**
* Free all blocks in the map.
*
- * @param fs The file system data.
- * @param map Pointer to the open map to free all blocks from.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ * @param[in] map is a pointer to the open map to free all blocks from.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_block_map_free_all (rtems_rfs_file_system* fs,
rtems_rfs_block_map* map);
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-buffer-bdbuf.c b/cpukit/libfs/src/rfs/rtems-rfs-buffer-bdbuf.c
index ef382aeecc..57e0664046 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-buffer-bdbuf.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-buffer-bdbuf.c
@@ -1,19 +1,21 @@
-/*
- * COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
- */
/**
* @file
*
- * @ingroup rtems-rfs
+ * @brief RTEMS File Systems Buffer Routines
+ * @ingroup rtems_rfs
*
* RTEMS File Systems Buffer Routines for the RTEMS libblock BD buffer cache.
*
*/
+/*
+ * COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
#if HAVE_CONFIG_H
#include "config.h"
#endif
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-buffer-devio.c b/cpukit/libfs/src/rfs/rtems-rfs-buffer-devio.c
index a855b8f846..2911ca9c9c 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-buffer-devio.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-buffer-devio.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS File Systems Buffer Routines
+ * @ingroup rtems_rfs
+ */
+
/*
* COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
*
@@ -5,14 +12,6 @@
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*/
-/**
- * @file
- *
- * @ingroup rtems-rfs
- *
- * RTEMS File Systems Buffer Routines.
- *
- */
#if HAVE_CONFIG_H
#include "config.h"
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-buffer.c b/cpukit/libfs/src/rfs/rtems-rfs-buffer.c
index 5ab86177b3..7904f74297 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-buffer.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-buffer.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS File Systems Buffer Routines
+ * @ingroup rtems_rfs
+ */
+
/*
* COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
*
@@ -5,14 +12,6 @@
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*/
-/**
- * @file
- *
- * @ingroup rtems-rfs
- *
- * RTEMS File Systems Buffer Routines.
- *
- */
#if HAVE_CONFIG_H
#include "config.h"
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-buffer.h b/cpukit/libfs/src/rfs/rtems-rfs-buffer.h
index c6b1f05c53..40b5891a2f 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-buffer.h
+++ b/cpukit/libfs/src/rfs/rtems-rfs-buffer.h
@@ -1,7 +1,7 @@
/**
* @file
*
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* @brief Maps Blocks to the Media Interface Layers
*
@@ -159,14 +159,16 @@ typedef struct rtems_rfs_buffer_handle_t
#define rtems_rfs_buffer_refs_down(_h) ((_h)->buffer->references -= 1)
/**
- * Request a buffer. The buffer can be filled with data from the media (read ==
- * true) or you can request a buffer to fill with data.
+ * Request a buffer. The buffer can be filled with data from the media
+ * (read == true) or you can request a buffer to fill with data.
*
- * @param fs The file system data.
- * @param handle The handle the requested buffer is attached to.
- * @param block The block number.
- * @param read Read the data from the disk.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ * @param[in] handle is the handle the requested buffer is attached to.
+ * @param[in] block is the block number.
+ * @param[in] read Read the data from the disk.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_buffer_handle_request (rtems_rfs_file_system* fs,
rtems_rfs_buffer_handle* handle,
@@ -178,9 +180,11 @@ int rtems_rfs_buffer_handle_request (rtems_rfs_file_system* fs,
* result does not indicate if the data was successfully written to the disk as
* this operation may be performed in asynchronously to this release.
*
- * @param fs The file system data.
- * @param handle The handle the requested buffer is attached to.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ * @param[in] handle is the handle the requested buffer is attached to.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_buffer_handle_release (rtems_rfs_file_system* fs,
rtems_rfs_buffer_handle* handle);
@@ -188,9 +192,11 @@ int rtems_rfs_buffer_handle_release (rtems_rfs_file_system* fs,
/**
* Open a handle.
*
- * @param fs The file system data.
- * @param handle The buffer handle to open.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs i the file system data.
+ * @param[in] handle i the buffer handle to open.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
static inline int
rtems_rfs_buffer_handle_open (rtems_rfs_file_system* fs,
@@ -205,9 +211,11 @@ rtems_rfs_buffer_handle_open (rtems_rfs_file_system* fs,
/**
* Close a handle.
*
- * @param fs The file system data.
- * @param handle The buffer handle to close.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ * @param[in] handle is the buffer handle to close.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
static inline int
rtems_rfs_buffer_handle_close (rtems_rfs_file_system* fs,
@@ -223,42 +231,52 @@ rtems_rfs_buffer_handle_close (rtems_rfs_file_system* fs,
/**
* Open the buffer interface.
*
- * @param name The device name to the media.
- * @param fs Pointer to the file system data.
- * @return int The error number (errno). No error if 0.
+ * @param[in] name is a pointer to the device name to the media.
+ * @param[in] fs is the file system data.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_buffer_open (const char* name, rtems_rfs_file_system* fs);
/**
* Close the buffer interface.
*
- * @param fs Pointer to the file system data.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_buffer_close (rtems_rfs_file_system* fs);
/**
* Sync all buffers to the media.
*
- * @param fs Pointer to the file system data.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_buffer_sync (rtems_rfs_file_system* fs);
/**
* Set the block size of the device.
*
- * @param fs Pointer to the file system data.
- * @param size The new block size.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ * @param[in] size is the new block size.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_buffer_setblksize (rtems_rfs_file_system* fs, size_t size);
/**
* Release any chained buffers.
*
- * @param fs The file system data.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_buffers_release (rtems_rfs_file_system* fs);
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-data.h b/cpukit/libfs/src/rfs/rtems-rfs-data.h
index 0e20423adc..954f4bc697 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-data.h
+++ b/cpukit/libfs/src/rfs/rtems-rfs-data.h
@@ -3,7 +3,7 @@
*
* @brief RTEMS File System Data
*
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* RTEMS File System Data.
*
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-dir-hash.c b/cpukit/libfs/src/rfs/rtems-rfs-dir-hash.c
index db8f21a8b0..a0669992d3 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-dir-hash.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-dir-hash.c
@@ -2,7 +2,7 @@
* @file
*
* @brief RTEMS File Systems Directory Hash function
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*/
#if HAVE_CONFIG_H
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-dir-hash.h b/cpukit/libfs/src/rfs/rtems-rfs-dir-hash.h
index f7908d8716..0b2d7a40b6 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-dir-hash.h
+++ b/cpukit/libfs/src/rfs/rtems-rfs-dir-hash.h
@@ -3,7 +3,7 @@
*
* @brief Provides a 32bit Hash of a String used to Search a Directory
*
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* RTEMS File Systems Directory Hash provides a 32bit hash of a string. This is
* used to search a directory.
@@ -26,9 +26,10 @@
/**
* Compute a hash of the key over the length of string.
*
- * @param key The key to calculate the hash of.
- * @param length The length of the key in bytes.
- * @return uint32_t The hash.
+ * @param[in] key is a pointer to the key to calculate the hash of.
+ * @param[in] length is the length of the key in bytes.
+ *
+ * @retval hash The computed uint32_t hash.
*/
uint32_t rtems_rfs_dir_hash (const void *key, size_t length);
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-dir.c b/cpukit/libfs/src/rfs/rtems-rfs-dir.c
index 677bdc8571..d52bf24159 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-dir.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-dir.c
@@ -1,16 +1,8 @@
-/*
- * COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
- */
/**
* @file
*
- * @ingroup rtems-rfs
- *
- * RTEMS File Systems Directory Routines.
+ * @brief RTEMS File Systems Directory Routines
+ * @ingroup rtems_rfs
*
* These functions manage blocks in the directory format. A directory entry is
* a variable length record in the block. The entry consists of a length, hash
@@ -23,6 +15,14 @@
* superblock.
*/
+/*
+ * COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
#if HAVE_CONFIG_H
#include "config.h"
#endif
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-dir.h b/cpukit/libfs/src/rfs/rtems-rfs-dir.h
index 50c89eccc5..91ea713710 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-dir.h
+++ b/cpukit/libfs/src/rfs/rtems-rfs-dir.h
@@ -3,7 +3,7 @@
*
* @brief RTEMS File System Directory Support
*
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* RTEMS File System Directory Support
*
@@ -55,8 +55,9 @@
/**
* Return the hash of the entry.
*
- * @param _e Pointer to the directory entry.
- * @return uint32_t The hash.
+ * @param[in] _e is a pointer to the directory entry.
+ *
+ * @retval hash The uint32_t hash of the entry.
*/
#define rtems_rfs_dir_entry_hash(_e) \
rtems_rfs_read_u32 (_e + RTEMS_RFS_DIR_ENTRY_HASH)
@@ -64,8 +65,9 @@
/**
* Set the hash of the entry.
*
- * @param _e Pointer to the directory entry.
- * @param _h The hash.
+ * @param[in] _e is a pointer to the directory entry.
+ *
+ * @param[in] _h is the hash of the entry.
*/
#define rtems_rfs_dir_set_entry_hash(_e, _h) \
rtems_rfs_write_u32 (_e + RTEMS_RFS_DIR_ENTRY_HASH, _h)
@@ -73,8 +75,9 @@
/**
* Return the ino of the entry.
*
- * @param _e Pointer to the directory entry.
- * @return uint32_t The ino.
+ * @param[in] _e is a pointer to the directory entry.
+ *
+ * @retval ino The ino of the entry.
*/
#define rtems_rfs_dir_entry_ino(_e) \
rtems_rfs_read_u32 (_e + RTEMS_RFS_DIR_ENTRY_INO)
@@ -82,8 +85,9 @@
/**
* Set the ino of the entry.
*
- * @param _e Pointer to the directory entry.
- * @param _i The ino.
+ * @param[in] _e is a pointer to the directory entry.
+ *
+ * @param[in] _i is the ino of the entry.
*/
#define rtems_rfs_dir_set_entry_ino(_e, _i) \
rtems_rfs_write_u32 (_e + RTEMS_RFS_DIR_ENTRY_INO, _i)
@@ -91,8 +95,9 @@
/**
* Return the length of the entry.
*
- * @param _e Pointer to the directory entry.
- * @return uint16_t The length.
+ * @param[in] _e Pointer to the directory entry.
+ *
+ * @retval length The length of the entry.
*/
#define rtems_rfs_dir_entry_length(_e) \
rtems_rfs_read_u16 (_e + RTEMS_RFS_DIR_ENTRY_LEN)
@@ -100,8 +105,8 @@
/**
* Set the length of the entry.
*
- * @param _e Pointer to the directory entry.
- * @param _l The length.
+ * @param[in] _e is a pointer to the directory entry.
+ * @param[in] _l is the length.
*/
#define rtems_rfs_dir_set_entry_length(_e, _l) \
rtems_rfs_write_u16 (_e + RTEMS_RFS_DIR_ENTRY_LEN, _l)
@@ -110,13 +115,17 @@
* Look up a directory entry in the directory pointed to by the inode. The look
* up is local to this directory. No need to decend.
*
- * @param fs The file system.
- * @param inode The inode of the directory to search.
- * @param name The name to look up. The name may not be nul terminated.
- * @param length The length of the name.
- * @param ino The return inode number if there is no error.
- * @param offset The offset in the directory for the entry.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system.
+ * @param[in] inode is a pointer to the inode of the directory to search.
+ * @param[in] name is a pointer to the name to look up. The name may not be
+ * nul terminated.
+ * @param[in] length is the length of the name.
+ * @param[out] ino will be filled in with the inode number
+ * if there is no error.
+ * @param[in] offset is the offset in the directory for the entry.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_dir_lookup_ino (rtems_rfs_file_system* fs,
rtems_rfs_inode_handle* inode,
@@ -129,12 +138,15 @@ int rtems_rfs_dir_lookup_ino (rtems_rfs_file_system* fs,
* Add an entry to the directory returing the inode number allocated to the
* entry.
*
- * @param fs The file system data.
- * @param dir Pointer to the directory inode the entry is to be added too.
- * @param name The name of the entry to be added.
- * @param length The length of the name excluding a terminating 0.
- * @param ino The ino of the entry.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ * @param[in] dir is a pointer to the directory inode the
+ * entry is to be added too.
+ * @param[in] name is a pointer to the name of the entry to be added.
+ * @param[in] length is the length of the name excluding a terminating 0.
+ * @param[in] ino is the ino of the entry.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_dir_add_entry (rtems_rfs_file_system* fs,
rtems_rfs_inode_handle* dir,
@@ -145,12 +157,15 @@ int rtems_rfs_dir_add_entry (rtems_rfs_file_system* fs,
/**
* Del an entry from the directory using an inode number as a key.
*
- * @param fs The file system data.
- * @param dir Pointer to the directory inode the entry is to be deleted from.
- * @param ino The ino of the entry.
- * @param offset The offset in the directory of the entry to delete. If 0
- * search from the start for the ino.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ * @param[in] dir is a pointer to the directory inode the
+ * entry is to be deleted from.
+ * @param[in] ino is the ino of the entry.
+ * @param[in] offset is the offset in the directory of the entry
+ * to delete. If 0 search from the start for the ino.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_dir_del_entry (rtems_rfs_file_system* fs,
rtems_rfs_inode_handle* dir,
@@ -161,12 +176,16 @@ int rtems_rfs_dir_del_entry (rtems_rfs_file_system* fs,
* Read the directory entry from offset into the directory entry buffer and
* return the length of space this entry uses in the directory table.
*
- * @param fs The file system data.
- * @param dir The direct inode handler.
- * @param offset The offset in the directory to read from.
- * @param dirent Pointer to the dirent structure the entry is written into.
- * @param length Set the length this entry takes in the directory.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ * @param[in] dir is a pointer to the direct inode handler.
+ * @param[in] offset is the offset in the directory to read from.
+ * @param[in] dirent is a ointer to the dirent structure the entry
+ * is written into.
+ * @param[out] length will contain the length this entry
+ * takes in the directory.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_dir_read (rtems_rfs_file_system* fs,
rtems_rfs_inode_handle* dir,
@@ -178,9 +197,11 @@ int rtems_rfs_dir_read (rtems_rfs_file_system* fs,
* Check if the directory is empty. The current and parent directory entries
* are ignored.
*
- * @param fs The file system data
- * @param dir The directory inode to check.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data
+ * @param[in] dir is a pointer to the directory inode to check.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_dir_empty (rtems_rfs_file_system* fs,
rtems_rfs_inode_handle* dir);
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-file-system-fwd.h b/cpukit/libfs/src/rfs/rtems-rfs-file-system-fwd.h
index ae45acf55e..8010c40a16 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-file-system-fwd.h
+++ b/cpukit/libfs/src/rfs/rtems-rfs-file-system-fwd.h
@@ -1,9 +1,9 @@
/**
* @file
*
- * @brief RTEMS File Systems Data forward decl
+ * @brief RTEMS File Systems Data Forward Declaration
*
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* RTEMS File Systems Data forward decl.
*/
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-file-system.c b/cpukit/libfs/src/rfs/rtems-rfs-file-system.c
index bceb08d5df..5ab671bcc2 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-file-system.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-file-system.c
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief RTEMS File Systems Open
+ * @ingroup rtems_rfs
+ *
+ * Open the file system by reading the superblock and then the group data.
+ */
/*
* COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
*
@@ -5,15 +13,6 @@
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*/
-/**
- * @file
- *
- * @ingroup rtems-rfs
- *
- * RTEMS File Systems Open
- *
- * Open the file system by reading the superblock and then the group data.
- */
#if HAVE_CONFIG_H
#include "config.h"
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-file-system.h b/cpukit/libfs/src/rfs/rtems-rfs-file-system.h
index c1f3dd7465..7c80aed5da 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-file-system.h
+++ b/cpukit/libfs/src/rfs/rtems-rfs-file-system.h
@@ -3,7 +3,7 @@
*
* @brief RTEMS File System Data
*
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* RTEMS File System Data
*
@@ -50,8 +50,8 @@
#define RTEMS_RFS_VERSION_MASK INT32_C(0x00000000)
/**
- * The root inode number. Do not use 0 as this has special meaning in some Unix
- * operating systems.
+ * The root inode number. Do not use 0 as this has special meaning in some
+ * Unix operating systems.
*/
#define RTEMS_RFS_ROOT_INO (1)
@@ -61,8 +61,8 @@
#define RTEMS_RFS_EMPTY_INO (0)
/**
- * The number of blocks in the inode. This number effects the size of the inode
- * and that effects the overhead of the inode tables in a group.
+ * The number of blocks in the inode. This number effects the size of the
+ * inode and that effects the overhead of the inode tables in a group.
*/
#define RTEMS_RFS_INODE_BLOCKS (5)
@@ -262,27 +262,27 @@ struct _rtems_rfs_file_system
/**
* Return the flags.
*
- * @param _fs Pointer to the file system.
+ * @param[in] _fs is a pointer to the file system.
*/
#define rtems_rfs_fs_flags(_f) ((_f)->flags)
/**
* Should bitmap buffers be released when finished ?
*
- * @param _fs Pointer to the file system.
+ * @param[in] _fs is a pointer to the file system.
*/
#define rtems_rfs_fs_release_bitmaps(_f) (!((_f)->flags & RTEMS_RFS_FS_BITMAPS_HOLD))
/**
* Are the buffers locally cache or released back to the buffering layer ?
*
- * @param _fs Pointer to the file system.
+ * @param[in] _fs is a pointer to the file system.
*/
#define rtems_rfs_fs_no_local_cache(_f) ((_f)->flags & RTEMS_RFS_FS_NO_LOCAL_CACHE)
/**
* The disk device number.
*
- * @param _fs Pointer to the file system.
+ * @param[in] _fs is a pointer to the file system.
*/
#if RTEMS_RFS_USE_LIBBLOCK
#define rtems_rfs_fs_device(_fs) ((_fs)->disk)
@@ -293,21 +293,21 @@ struct _rtems_rfs_file_system
/**
* The size of the disk in blocks.
*
- * @param _fs Pointer to the file system.
+ * @param[in] _fs is a pointer to the file system.
*/
#define rtems_rfs_fs_blocks(_fs) ((_fs)->blocks)
/**
* The block size.
*
- * @param _fs Pointer to the file system.
+ * @param[in] _fs is a pointer to the file system.
*/
#define rtems_rfs_fs_block_size(_fs) ((_fs)->block_size)
/**
* The number of inodes.
*
- * @param _fs Pointer to the file system.
+ * @param[in] _fs is a pointer to the file system.
*/
#define rtems_rfs_fs_inodes(_fs) ((_fs)->inodes)
@@ -315,9 +315,9 @@ struct _rtems_rfs_file_system
* Calculate a block in the file system given the group and the block within
* the group.
*
- * @param _fs Pointer to the file system.
- * @param _grp The group.
- * @param _blk The block within the group.
+ * @param[in] _fs is a pointer to the file system.
+ * @param[in] _grp is the group.
+ * @param[in] _blk is the block within the group.
* @return The absolute block number.
*/
#define rtems_rfs_fs_block(_fs, _grp, _blk) \
@@ -326,7 +326,7 @@ struct _rtems_rfs_file_system
/**
* The media size of the disk in media size blocks.
*
- * @param _fs Pointer to the file system.
+ * @param[in] _fs is a pointer to the file system.
*/
#if RTEMS_RFS_USE_LIBBLOCK
#define rtems_rfs_fs_media_blocks(_fs) ((_fs)->disk->size)
@@ -338,7 +338,7 @@ struct _rtems_rfs_file_system
* The media block size. This is the size of a block on disk. For a device I/O
* this value is 1.
*
- * @param _fs Pointer to the file system.
+ * @param[in] _fs is a pointer to the file system.
*/
#if RTEMS_RFS_USE_LIBBLOCK
#define rtems_rfs_fs_media_block_size(_fs) ((_fs)->disk->media_block_size)
@@ -366,7 +366,7 @@ struct _rtems_rfs_file_system
/**
* Return the size of the disk in bytes.
*
- * @param fs Pointer to the file system.
+ * @param[in] fs is a pointer to the file system.
* @return uint64_t The size of the disk in bytes.
*/
uint64_t rtems_rfs_fs_size(rtems_rfs_file_system* fs);
@@ -374,7 +374,7 @@ uint64_t rtems_rfs_fs_size(rtems_rfs_file_system* fs);
/**
* The size of the disk in bytes calculated from the media parameters..
*
- * @param fs Pointer to the file system.
+ * @param[in] fs is a pointer to the file system.
* @return uint64_t The size of the disk in bytes.
*/
uint64_t rtems_rfs_fs_media_size (rtems_rfs_file_system* fs);
@@ -382,12 +382,14 @@ uint64_t rtems_rfs_fs_media_size (rtems_rfs_file_system* fs);
/**
* Open the file system given a file path.
*
- * @param name The device to open.
- * @param fs The file system data filled in by this call.
- * @param user A pointer to user data.
- * @param flags The initial set of user flags for the file system.
- * @param max_held_buffers The maximum number of buffers the RFS holds.
- * @return int The error number (errno). No error if 0.
+ * @param[in] name is a pointer to the device to open.
+ * @param[in] fs is the file system data filled in by this call.
+ * @param[in] user is a pointer to the user data.
+ * @param[in] flags is a initial set of user flags for the file system.
+ * @param[in] max_held_buffers is the maximum number of buffers the RFS holds.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_fs_open (const char* name,
void* user,
@@ -398,8 +400,10 @@ int rtems_rfs_fs_open (const char* name,
/**
* Close the file system.
*
- * @param fs The file system data.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_fs_close (rtems_rfs_file_system* fs);
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-file.c b/cpukit/libfs/src/rfs/rtems-rfs-file.c
index 0cf38c628d..5d623dda26 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-file.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-file.c
@@ -1,3 +1,12 @@
+/**
+ * @file
+ *
+ * @brief RTEMS File Systems File Routines
+ * @ingroup rtems_rfs
+ *
+ * These functions manage files.
+ */
+
/*
* COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
*
@@ -5,15 +14,6 @@
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*/
-/**
- * @file
- *
- * @ingroup rtems-rfs
- *
- * RTEMS File Systems File Routines.
- *
- * These functions manage files.
- */
#if HAVE_CONFIG_H
#include "config.h"
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-file.h b/cpukit/libfs/src/rfs/rtems-rfs-file.h
index f39f02a985..efafb88e56 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-file.h
+++ b/cpukit/libfs/src/rfs/rtems-rfs-file.h
@@ -3,7 +3,7 @@
*
* @brief RTEMS File System File Support
*
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* RTEMS File System File Support
*
@@ -89,8 +89,9 @@ typedef struct _rtems_rfs_file_shared
/**
* Get the atime.
*
- * @param shared The shared file data.
- * @return rtems_rfs_time The atime.
+ * @param[in] shared is a pointer to the shared file data.
+ *
+ * @retval atime The atime.
*/
static inline rtems_rfs_time
rtems_rfs_file_shared_get_atime (rtems_rfs_file_shared* shared)
@@ -101,8 +102,9 @@ rtems_rfs_file_shared_get_atime (rtems_rfs_file_shared* shared)
/**
* Get the mtime.
*
- * @param shared The shared file data.
- * @return rtems_rfs_time The mtime.
+ * @param[in] shared is a pointer to the shared file data.
+ *
+ * @retval mtime The mtime.
*/
static inline rtems_rfs_time
rtems_rfs_file_shared_get_mtime (rtems_rfs_file_shared* shared)
@@ -113,8 +115,9 @@ rtems_rfs_file_shared_get_mtime (rtems_rfs_file_shared* shared)
/**
* Get the ctime.
*
- * @param shared The shared file data.
- * @return rtems_rfs_time The ctime.
+ * @param[in] shared is a pointer to the shared file data.
+ *
+ * @retval ctime The ctime.
*/
static inline rtems_rfs_time
rtems_rfs_file_shared_get_ctime (rtems_rfs_file_shared* shared)
@@ -125,8 +128,9 @@ rtems_rfs_file_shared_get_ctime (rtems_rfs_file_shared* shared)
/**
* Get the block count.
*
- * @param shared The shared file data.
- * @return uint32_t The block count.
+ * @param[in] shared is a pointer to the shared file data.
+ *
+ * @retval count The block count.
*/
static inline uint32_t
rtems_rfs_file_shared_get_block_count (rtems_rfs_file_shared* shared)
@@ -137,8 +141,9 @@ rtems_rfs_file_shared_get_block_count (rtems_rfs_file_shared* shared)
/**
* Get the block offset.
*
- * @param shared The shared file data.
- * @return uint16_t The block offset.
+ * @param shared is a pointer to the shared file data.
+ *
+ * @retval offset The block offset.
*/
static inline uint16_t
rtems_rfs_file_shared_get_block_offset (rtems_rfs_file_shared* shared)
@@ -149,9 +154,10 @@ rtems_rfs_file_shared_get_block_offset (rtems_rfs_file_shared* shared)
/**
* Calculate the size of data.
*
- * @param fs The file system data.
- * @oaram shared The shared file data.
- * @return rtems_rfs_pos The data size in bytes.
+ * @param[in] fs is the file system data.
+ * @param[in] shared is a pointer to the shared file data.
+ *
+ * @retval data The data size in bytes.
*/
static inline rtems_rfs_pos
rtems_rfs_file_shared_get_size (rtems_rfs_file_system* fs,
@@ -292,10 +298,12 @@ typedef struct _rtems_rfs_file_handle
/**
* Open a file handle.
*
- * @param fs The file system.
- * @param ino The inode number of the file to be opened.
- * @param handle Return the handle pointer in this handle.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system.
+ * @param[in] ino is the inode number of the file to be opened.
+ * @param[out] handle will be filled in with the handle pointer.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_file_open (rtems_rfs_file_system* fs,
rtems_rfs_ino ino,
@@ -305,9 +313,11 @@ int rtems_rfs_file_open (rtems_rfs_file_system* fs,
/**
* Close an open file handle.
*
- * @param fs The file system.
- * @param handle The open file handle.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system.
+ * @param[in] handle is the open file handle.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_file_close (rtems_rfs_file_system* fs,
rtems_rfs_file_handle* handle);
@@ -321,10 +331,12 @@ int rtems_rfs_file_close (rtems_rfs_file_system* fs,
* I/O past the end of a block so the call returns the amount of data
* available.
*
- * @param handle The file handle.
- * @param available The amount of data available for I/O.
- * @param read The I/O operation is a read so the block is read from the media.
- * @return int The error number (errno). No error if 0.
+ * @param[in] handle is the file handle.
+ * @param[in] available is the amount of data available for I/O.
+ * @param[in] read is the I/O operation is a read so the block is read from the media.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_file_io_start (rtems_rfs_file_handle* handle,
size_t* available,
@@ -337,10 +349,12 @@ int rtems_rfs_file_io_start (rtems_rfs_file_handle* handle,
*
* If the file's position is updated by the size amount.
*
- * @param handle The file handle.
- * @param size The amount of data read or written.
- * @param read The I/O was a read if true else it was a write.
- * @return int The error number (errno). No error if 0.
+ * @param[in] handle is the file handle.
+ * @param[in] size is the amount of data read or written.
+ * @param[in] read is the I/O was a read if true else it was a write.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_file_io_end (rtems_rfs_file_handle* handle,
size_t size,
@@ -351,8 +365,10 @@ int rtems_rfs_file_io_end (rtems_rfs_file_handle* handle,
* buffer and the buffer was not already released as modified the data will be
* lost.
*
- * @param handle The file handle.
- * @return int The error number (errno). No error if 0.
+ * @param[in] handle is the file handle.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_file_io_release (rtems_rfs_file_handle* handle);
@@ -360,10 +376,12 @@ int rtems_rfs_file_io_release (rtems_rfs_file_handle* handle);
* The file to the position returning the old position. The position is
* abolute.
*
- * @param handle The file handle.
- * @param pos The position to seek to.
- * @param new_pos The actual position.
- * @return int The error number (errno). No error if 0.
+ * @param[in] handle The file handle.
+ * @param[in] pos is the position to seek to.
+ * @param[out] new_pos will contain the actual position.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_file_seek (rtems_rfs_file_handle* handle,
rtems_rfs_pos pos,
@@ -373,9 +391,10 @@ int rtems_rfs_file_seek (rtems_rfs_file_handle* handle,
* Set the size of the file to the new size. This can extend the file to a new
* size.
*
- * @param handle The file handle.
- * @param size The new size of the file.
- * @return int The error number (errno). No error if 0.
+ * @param[in] handle is the file handle.
+ * @param[in] size is the new size of the file.
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_file_set_size (rtems_rfs_file_handle* handle,
rtems_rfs_pos size);
@@ -383,9 +402,12 @@ int rtems_rfs_file_set_size (rtems_rfs_file_handle* handle,
/**
* Return the shared file data for an ino.
*
- * @param fs The file system data.
- * @param ino The inode number to locate the data for.
+ * @param[in] fs is the file system data.
+ * @param[in] ino is the inode number to locate the data for.
* @return rtems_rfs_file_shared* The shared data or NULL is not located.
+ *
+ * @retval shared The shared data.
+ * @retval NULL No shared file data is located.
*/
rtems_rfs_file_shared* rtems_rfs_file_get_shared (rtems_rfs_file_system* fs,
rtems_rfs_ino ino);
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-format.c b/cpukit/libfs/src/rfs/rtems-rfs-format.c
index 6c20218531..d445e3d7f1 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-format.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-format.c
@@ -1,3 +1,12 @@
+/**
+ * @file
+ *
+ * @brief RTEMS File Systems Format
+ * @ingroup rtems_rfs
+ *
+ * Format the file system ready for use.
+ */
+
/*
* COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
*
@@ -5,15 +14,6 @@
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*/
-/**
- * @file
- *
- * @ingroup rtems-rfs
- *
- * RTEMS File Systems Format
- *
- * Format the file system ready for use.
- */
#if HAVE_CONFIG_H
#include "config.h"
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-format.h b/cpukit/libfs/src/rfs/rtems-rfs-format.h
index b9774264f7..dd2b08d2a2 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-format.h
+++ b/cpukit/libfs/src/rfs/rtems-rfs-format.h
@@ -1,20 +1,21 @@
-/*
- * COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
- */
/**
* @file
*
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
- * RTEMS File System Format.
+ * @brief RTEMS File System Format
*
* This function lets you format a disk in the RFS format.
*/
+/*
+ * COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
#if !defined (_RTEMS_RFS_FORMAT_H_)
#define _RTEMS_RFS_FORMAT_H_
@@ -74,8 +75,9 @@ typedef struct _rtems_rfs_format_config
/**
* RFS Format command.
*
- * @param name The device name to format.
- * @param config Pointer to a configuration table.
+ * @param[in] name is the device name to format.
+ * @param[in] config is a pointer to the configuration table.
+ *
* @retval -1 Error. See errno.
* @retval 0 No error. Format successful.
*/
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-group.c b/cpukit/libfs/src/rfs/rtems-rfs-group.c
index 0edf83d838..1722c76cfc 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-group.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-group.c
@@ -1,21 +1,22 @@
-/*
- * COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
- */
/**
* @file
*
- * @ingroup rtems-rfs
- *
- * RTEMS File Systems Group Routines.
+ * @brief RTEMS File Systems Group Routines
+ * @ingroup rtems_rfs
*
* These functions open and close a group as well as manage bit allocations
* within a group.
*/
+/*
+ * COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+
#if HAVE_CONFIG_H
#include "config.h"
#endif
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-group.h b/cpukit/libfs/src/rfs/rtems-rfs-group.h
index 257eb49f34..595a3c0886 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-group.h
+++ b/cpukit/libfs/src/rfs/rtems-rfs-group.h
@@ -3,7 +3,7 @@
*
* @brief RTEMS File Systems Group Management
*
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* RTEMS File Systems Group Management.
*
@@ -22,6 +22,13 @@
#if !defined (_RTEMS_RFS_GROUP_H_)
#define _RTEMS_RFS_GROUP_H_
+/**
+ * @ingroup rtems_rfs
+ *
+ * RTEMS File System Group Management
+ */
+/**@{*/
+
#include <rtems/rfs/rtems-rfs-trace.h>
#include <rtems/rfs/rtems-rfs-bitmaps.h>
#include <rtems/rfs/rtems-rfs-buffer.h>
@@ -34,6 +41,8 @@
#define RTEMS_RFS_GROUP_INODE_BLOCK (2)
/**
+ * @brief Creates bit allocator for blocks in the group simpler.
+ *
* A group is a selection of blocks on the disk. Typically the number of blocks
* in a group is determined by the number of bits a block holds. This makes the
* bit allocator for blocks in the group simpler plus is allows a simple way to
@@ -85,13 +94,15 @@ typedef struct _rtems_rfs_group
(((_f)->group_inodes * (_g)) + (_i) + RTEMS_RFS_ROOT_INO)
/**
- * Open a group. Allocate all the resources including the bitmaps.
+ * @brief Open a group.
+ *
+ * Allocate all the resources including the bitmaps.
*
* @param fs The file system.
* @param base The base block number.
* @param size The number of blocks in the group.
* @param group Reference to the group to open.
- * @return int The error number (errno). No error if 0.
+ * @retval int The error number (errno). No error if 0.
*/
int rtems_rfs_group_open (rtems_rfs_file_system* fs,
rtems_rfs_buffer_block base,
@@ -100,24 +111,28 @@ int rtems_rfs_group_open (rtems_rfs_file_system* fs,
rtems_rfs_group* group);
/**
- * Close a group. Release all resources the group holds.
+ * @brief Close a group.
+ *
+ * Release all resources the group holds.
*
* @param fs The file system.
* @param group The group to close.
- * @return int The error number (errno). No error if 0.
+ * @retval int The error number (errno). No error if 0.
*/
int rtems_rfs_group_close (rtems_rfs_file_system* fs,
rtems_rfs_group* group);
/**
- * Allocate an inode or block. The groups are searched to find the next
+ * @brief Allocate an inode or block.
+ *
+ * The groups are searched to find the next
* available inode or block.
*
* @param fs The file system data.
* @param goal The goal to seed the bitmap search.
* @param inode If true allocate an inode else allocate a block.
* @param result The allocated bit in the bitmap.
- * @return int The error number (errno). No error if 0.
+ * @retval int The error number (errno). No error if 0.
*/
int rtems_rfs_group_bitmap_alloc (rtems_rfs_file_system* fs,
rtems_rfs_bitmap_bit goal,
@@ -125,25 +140,25 @@ int rtems_rfs_group_bitmap_alloc (rtems_rfs_file_system* fs,
rtems_rfs_bitmap_bit* result);
/**
- * Free the group allocated bit.
+ * @brief Free the group allocated bit.
*
* @param fs The file system data.
* @param inode If true the number to free is an inode else it is a block.
* @param block The inode or block number to free.
- * @return int The error number (errno). No error if 0.
+ * @retval int The error number (errno). No error if 0.
*/
int rtems_rfs_group_bitmap_free (rtems_rfs_file_system* fs,
bool inode,
rtems_rfs_bitmap_bit no);
/**
- * Test the group allocated bit.
+ * @brief Test the group allocated bit.
*
* @param fs The file system data.
* @param inode If true the number to free is an inode else it is a block.
* @param block The inode or block number to free.
* @param state Return the state of the bit.
- * @return int The error number (errno). No error if 0.
+ * @retval int The error number (errno). No error if 0.
*/
int rtems_rfs_group_bitmap_test (rtems_rfs_file_system* fs,
bool inode,
@@ -151,15 +166,16 @@ int rtems_rfs_group_bitmap_test (rtems_rfs_file_system* fs,
bool* state);
/**
- * Determine the number of blocks and inodes used.
+ * @brief Determine the number of blocks and inodes used.
*
* @param fs The file system data.
* @param blocks The number of blocks used.
* @param inodes The number of inodes used.
- * @return int The error number (errno). No error if 0.
+ * @retval int The error number (errno). No error if 0.
*/
int rtems_rfs_group_usage (rtems_rfs_file_system* fs,
size_t* blocks,
size_t* inodes);
+/** @} */
#endif
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-inode.c b/cpukit/libfs/src/rfs/rtems-rfs-inode.c
index 51129e9378..35313674da 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-inode.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-inode.c
@@ -2,7 +2,7 @@
* @file
*
* @brief RTEMS File Systems Inode Routines
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* These functions manage inodes in the RFS file system. An inode is part of a
* block that reside after the bitmaps in the group.
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-inode.h b/cpukit/libfs/src/rfs/rtems-rfs-inode.h
index a26232fdc3..773db4751d 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-inode.h
+++ b/cpukit/libfs/src/rfs/rtems-rfs-inode.h
@@ -3,7 +3,7 @@
*
* @brief RTEMS File System Information Node
*
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* RTEMS File System Information Node.
*
@@ -230,8 +230,9 @@ typedef struct _rtems_rfs_inode_handle
/**
* Get the link count.
*
- * @param handle The inode handle.
- * @return uint16_t The link count.
+ * @param[in] handle is the inode handle.
+ *
+ * @retval links The link count.
*/
static inline uint16_t
rtems_rfs_inode_get_links (rtems_rfs_inode_handle* handle)
@@ -246,8 +247,8 @@ rtems_rfs_inode_get_links (rtems_rfs_inode_handle* handle)
/**
* Set the link count.
*
- * @param handle The inode handle.
- * @prarm links The links.
+ * @param[in] handle is the inode handle.
+ * @param[in] links are the links.
*/
static inline void
rtems_rfs_inode_set_links (rtems_rfs_inode_handle* handle, uint16_t links)
@@ -259,8 +260,9 @@ rtems_rfs_inode_set_links (rtems_rfs_inode_handle* handle, uint16_t links)
/**
* Get the flags.
*
- * @param handle The inode handle.
- * @return uint16_t The flags.
+ * @param[in] handle is the inode handle.
+ *
+ * @retval flags The flags.
*/
static inline uint16_t
rtems_rfs_inode_get_flags (rtems_rfs_inode_handle* handle)
@@ -271,8 +273,8 @@ rtems_rfs_inode_get_flags (rtems_rfs_inode_handle* handle)
/**
* Set the flags.
*
- * @param handle The inode handle.
- * @prarm flags The flags.
+ * @param[in] handle is the inode handle.
+ * @param[in] flags are the flags.
*/
static inline void
rtems_rfs_inode_set_flags (rtems_rfs_inode_handle* handle, uint16_t flags)
@@ -284,8 +286,9 @@ rtems_rfs_inode_set_flags (rtems_rfs_inode_handle* handle, uint16_t flags)
/**
* Get the mode.
*
- * @param handle The inode handle.
- * @return uint16_t The mode.
+ * @param[in] handle is the inode handle.
+ *
+ * @retval mode The mode.
*/
static inline uint16_t
rtems_rfs_inode_get_mode (rtems_rfs_inode_handle* handle)
@@ -296,8 +299,8 @@ rtems_rfs_inode_get_mode (rtems_rfs_inode_handle* handle)
/**
* Set the mode.
*
- * @param handle The inode handle.
- * @prarm mode The mode.
+ * @param[in] handle is the inode handle.
+ * @param[in] mode is the mode.
*/
static inline void
rtems_rfs_inode_set_mode (rtems_rfs_inode_handle* handle, uint16_t mode)
@@ -309,8 +312,9 @@ rtems_rfs_inode_set_mode (rtems_rfs_inode_handle* handle, uint16_t mode)
/**
* Get the user id.
*
- * @param handle The inode handle.
- * @return uint16_t The user id (uid).
+ * @param[in] handle is the inode handle.
+ *
+ * @retval uid The used id.
*/
static inline uint16_t
rtems_rfs_inode_get_uid (rtems_rfs_inode_handle* handle)
@@ -321,8 +325,9 @@ rtems_rfs_inode_get_uid (rtems_rfs_inode_handle* handle)
/**
* Get the group id.
*
- * @param handle The inode handle.
- * @return uint16_t The group id (gid).
+ * @param[in] handle is the inode handle.
+ *
+ * @retval gid The grpup id.
*/
static inline uint16_t
rtems_rfs_inode_get_gid (rtems_rfs_inode_handle* handle)
@@ -333,9 +338,9 @@ rtems_rfs_inode_get_gid (rtems_rfs_inode_handle* handle)
/**
* Set the user id and group id.
*
- * @param handle The inode handle.
- * @param uid The user id (uid).
- * @param gid The group id (gid).
+ * @param[in] handle is the inode handle.
+ * @param[in] uid is the user id (uid).
+ * @param[in] gid is the group id (gid).
*/
static inline void
rtems_rfs_inode_set_uid_gid (rtems_rfs_inode_handle* handle,
@@ -348,8 +353,9 @@ rtems_rfs_inode_set_uid_gid (rtems_rfs_inode_handle* handle,
/**
* Get the block offset.
*
- * @param handle The inode handle.
- * @return uint32_t The block offset.
+ * @param[in] handle is the inode handle.
+ *
+ * @retval offset The block offset.
*/
static inline uint16_t
rtems_rfs_inode_get_block_offset (rtems_rfs_inode_handle* handle)
@@ -360,8 +366,8 @@ rtems_rfs_inode_get_block_offset (rtems_rfs_inode_handle* handle)
/**
* Set the block offset.
*
- * @param handle The inode handle.
- * @param block_count The block offset.
+ * @param[in] handle is the inode handle.
+ * @param[in] block_count is the block offset.
*/
static inline void
rtems_rfs_inode_set_block_offset (rtems_rfs_inode_handle* handle,
@@ -374,8 +380,9 @@ rtems_rfs_inode_set_block_offset (rtems_rfs_inode_handle* handle,
/**
* Get the block count.
*
- * @param handle The inode handle.
- * @return uint32_t The block count.
+ * @param[in] handle is the inode handle.
+ *
+ * @retval count The block count.
*/
static inline uint32_t
rtems_rfs_inode_get_block_count (rtems_rfs_inode_handle* handle)
@@ -386,8 +393,8 @@ rtems_rfs_inode_get_block_count (rtems_rfs_inode_handle* handle)
/**
* Set the block count.
*
- * @param handle The inode handle.
- * @param block_count The block count.
+ * @param[in] handle is the inode handle.
+ * @param[in] block_count is the block count.
*/
static inline void
rtems_rfs_inode_set_block_count (rtems_rfs_inode_handle* handle, uint32_t block_count)
@@ -399,8 +406,9 @@ rtems_rfs_inode_set_block_count (rtems_rfs_inode_handle* handle, uint32_t block_
/**
* Get the atime.
*
- * @param handle The inode handle.
- * @return rtems_rfs_time The atime.
+ * @param[in] handle is the inode handle.
+ *
+ * @retval atime The atime.
*/
static inline rtems_rfs_time
rtems_rfs_inode_get_atime (rtems_rfs_inode_handle* handle)
@@ -411,8 +419,8 @@ rtems_rfs_inode_get_atime (rtems_rfs_inode_handle* handle)
/**
* Set the atime.
*
- * @param handle The inode handle.
- * @prarm atime The atime.
+ * @param[in] handle is the inode handle.
+ * @param[in] atime The atime.
*/
static inline void
rtems_rfs_inode_set_atime (rtems_rfs_inode_handle* handle,
@@ -425,8 +433,9 @@ rtems_rfs_inode_set_atime (rtems_rfs_inode_handle* handle,
/**
* Get the mtime.
*
- * @param handle The inode handle.
- * @return rtems_rfs_time The mtime.
+ * @param[in] handle is the inode handle.
+ *
+ * @retval mtime The mtime.
*/
static inline rtems_rfs_time
rtems_rfs_inode_get_mtime (rtems_rfs_inode_handle* handle)
@@ -437,8 +446,8 @@ rtems_rfs_inode_get_mtime (rtems_rfs_inode_handle* handle)
/**
* Set the mtime.
*
- * @param handle The inode handle.
- * @prarm atime The mtime.
+ * @param[in] handle is the inode handle.
+ * @param[in] mtime The mtime.
*/
static inline void
rtems_rfs_inode_set_mtime (rtems_rfs_inode_handle* handle,
@@ -451,8 +460,9 @@ rtems_rfs_inode_set_mtime (rtems_rfs_inode_handle* handle,
/**
* Get the ctime.
*
- * @param handle The inode handle.
- * @return rtems_rfs_time The ctime.
+ * @param[in] handle is the inode handle.
+ *
+ * @retval ctime The ctime.
*/
static inline rtems_rfs_time
rtems_rfs_inode_get_ctime (rtems_rfs_inode_handle* handle)
@@ -463,8 +473,8 @@ rtems_rfs_inode_get_ctime (rtems_rfs_inode_handle* handle)
/**
* Set the ctime.
*
- * @param handle The inode handle.
- * @prarm atime The ctime.
+ * @param[in] handle is the inode handle.
+ * @param[in] ctime The ctime.
*/
static inline void
rtems_rfs_inode_set_ctime (rtems_rfs_inode_handle* handle,
@@ -477,9 +487,10 @@ rtems_rfs_inode_set_ctime (rtems_rfs_inode_handle* handle,
/**
* Get the block number.
*
- * @param handle The inode handle.
- * @param block The block number to return.
- * @return uint32_t The block number.
+ * @param[in] handle is the inode handle.
+ * @param[in] block is the block number to return.
+ *
+ * @retval block The block number.
*/
static inline uint32_t
rtems_rfs_inode_get_block (rtems_rfs_inode_handle* handle, int block)
@@ -490,9 +501,9 @@ rtems_rfs_inode_get_block (rtems_rfs_inode_handle* handle, int block)
/**
* Set the block number for a given block index.
*
- * @param handle The inode handle.
- * @param block The block index.
- * @param bno The block number.
+ * @param[in] handle is the inode handle.
+ * @param[in] block is the block index.
+ * @param[in] bno is the block number.
*/
static inline void
rtems_rfs_inode_set_block (rtems_rfs_inode_handle* handle, int block, uint32_t bno)
@@ -504,8 +515,9 @@ rtems_rfs_inode_set_block (rtems_rfs_inode_handle* handle, int block, uint32_t b
/**
* Get the last map block from the inode.
*
- * @param handle The inode handle.
- * @return uint32_t The last map block number.
+ * @param[in] handle is the inode handle.
+ *
+ * @retval block The last map block number.
*/
static inline uint32_t
rtems_rfs_inode_get_last_map_block (rtems_rfs_inode_handle* handle)
@@ -516,8 +528,8 @@ rtems_rfs_inode_get_last_map_block (rtems_rfs_inode_handle* handle)
/**
* Set the last map block.
*
- * @param handle The inode handle.
- * @param block_count The last map block number.
+ * @param[in] handle is the inode handle.
+ * @param[in] block_count is last map block number.
*/
static inline void
rtems_rfs_inode_set_last_map_block (rtems_rfs_inode_handle* handle, uint32_t last_map_block)
@@ -529,8 +541,10 @@ rtems_rfs_inode_set_last_map_block (rtems_rfs_inode_handle* handle, uint32_t las
/**
* Get the last data block from the inode.
*
- * @param handle The inode handle.
- * @return uint32_t The last data block number.
+ * @param[in] handle is the inode handle.
+ *
+ * @retval block The last data block number.
+ *
*/
static inline uint32_t
rtems_rfs_inode_get_last_data_block (rtems_rfs_inode_handle* handle)
@@ -541,8 +555,8 @@ rtems_rfs_inode_get_last_data_block (rtems_rfs_inode_handle* handle)
/**
* Set the last data block.
*
- * @param handle The inode handle.
- * @param block_count The last data block number.
+ * @param[in] handle is the inode handle.
+ * @param[in] block_count is the last data block number.
*/
static inline void
rtems_rfs_inode_set_last_data_block (rtems_rfs_inode_handle* handle, uint32_t last_data_block)
@@ -554,20 +568,24 @@ rtems_rfs_inode_set_last_data_block (rtems_rfs_inode_handle* handle, uint32_t la
/**
* Allocate an inode number and return it.
*
- * @param fs The file system data.
- * @param ino Return the ino.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ * @param[out] ino will contain the ino.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_inode_alloc (rtems_rfs_file_system* fs,
rtems_rfs_bitmap_bit goal,
rtems_rfs_ino* ino);
/**
- * Allocate an inode number and return it.
+ * Free an inode.
*
- * @param fs The file system data.
- * @param ino The ino too free.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ * @param[in] ino is the ino too free.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_inode_free (rtems_rfs_file_system* fs,
rtems_rfs_ino ino);
@@ -577,11 +595,13 @@ int rtems_rfs_inode_free (rtems_rfs_file_system* fs,
* data pointer. All data is in media byte order and needs to be accessed via
* the supporting calls.
*
- * @param fs The file system.
- * @param ino The inode number.
- * @param handle The handle to the inode we are opening.
- * @param load If true load the inode into memory from the media.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system.
+ * @param[in] ino is the inode number.
+ * @param[in] handle is the handle to the inode we are opening.
+ * @param[in] load If true load the inode into memory from the media.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_inode_open (rtems_rfs_file_system* fs,
rtems_rfs_ino ino,
@@ -591,9 +611,11 @@ int rtems_rfs_inode_open (rtems_rfs_file_system* fs,
/**
* The close inode handle. All opened inodes need to be closed.
*
- * @param fs The file system.
- * @param handle The handle to close.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system.
+ * @param[in] handle is the handle to close.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_inode_close (rtems_rfs_file_system* fs,
rtems_rfs_inode_handle* handle);
@@ -601,9 +623,11 @@ int rtems_rfs_inode_close (rtems_rfs_file_system* fs,
/**
* Load the inode into memory.
*
- * @param fs The file system.
- * @param handle The inode handle to load.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system.
+ * @param[in] handle is the inode handle to load.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_inode_load (rtems_rfs_file_system* fs,
rtems_rfs_inode_handle* handle);
@@ -611,10 +635,12 @@ int rtems_rfs_inode_load (rtems_rfs_file_system* fs,
/**
* Unload the inode from memory.
*
- * @param fs The file system.
- * @param handle The inode handle to unload.
- * @param update_ctime Update the ctime field of the inode.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system.
+ * @param[in] handle is the inode handle to unload.
+ * @param[in] update_ctime Update the ctime field of the inode.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_inode_unload (rtems_rfs_file_system* fs,
rtems_rfs_inode_handle* handle,
@@ -624,9 +650,10 @@ int rtems_rfs_inode_unload (rtems_rfs_file_system* fs,
* Create an inode allocating, initialising and adding an entry to the parent
* directory.
*
- * @param fs The file system data.
- * @param parent The parent inode number to add the directory entry to.
- * @param name The name of the directory entryinode to create.
+ * @param[in] fs is the file system data.
+ * @param[in] parent is the parent inode number to add the directory entry to.
+ * @param[in] name is a pointer to the name of the directory entryinode
+ * to create.
*
*/
int rtems_rfs_inode_create (rtems_rfs_file_system* fs,
@@ -643,9 +670,11 @@ int rtems_rfs_inode_create (rtems_rfs_file_system* fs,
* Delete the inode eraseing it and release the buffer to commit the write. You
* need to load the inode again if you wish to use it again.
*
- * @param fs The file system.
- * @param handle The inode handle to erase.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system.
+ * @param[in] handle is the inode handle to erase.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_inode_delete (rtems_rfs_file_system* fs,
rtems_rfs_inode_handle* handle);
@@ -653,12 +682,14 @@ int rtems_rfs_inode_delete (rtems_rfs_file_system* fs,
/**
* Initialise a new inode.
*
- * @param handle The inode handle to initialise.
- * @param links The number of links to the inode.
- * @param mode The inode mode.
- * @param uid The user id.
- * @param gid The group id.
- * @return int The error number (errno). No error if 0.
+ * @param[in] handle is the inode handle to initialise.
+ * @param[in] links are the number of links to the inode.
+ * @param[in] mode is the inode mode.
+ * @param[in] uid is the user id.
+ * @param[in] gid is the group id.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_inode_initialise (rtems_rfs_inode_handle* handle,
uint16_t links,
@@ -670,11 +701,13 @@ int rtems_rfs_inode_initialise (rtems_rfs_inode_handle* handle,
* Time stamp the inode with the current time. The ctime field is hanlded
* automatically.
*
- * @param handle The inode handle.
- * @param atime Update the atime field.
- * @param mtime UPdate the mtime field.
- * @return int The error number (errno). No error if 0 and ENXIO if no inode
- * loaded.
+ * @param[in] handle is the inode handle.
+ * @param[in] atime Update the atime field.
+ * @param[in] mtime UPdate the mtime field.
+ *
+ * @retval 0 Successful operation.
+ * @retval ENXIO No inode is loaded.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_inode_time_stamp_now (rtems_rfs_inode_handle* handle,
bool atime,
@@ -683,10 +716,10 @@ int rtems_rfs_inode_time_stamp_now (rtems_rfs_inode_handle* handle,
/**
* Calculate the size of data attached to the inode.
*
- * @param fs The file system data.
- * @param handle The inode handle.
- * @return rtems_rfs_pos The data size in bytes in the block map attched to the
- * inode.
+ * @param[in] fs is the file system data.
+ * @param[in] handle is the inode handle.
+ *
+ * @retval size The data size in bytes in the block map attched to the inode.
*/
rtems_rfs_pos rtems_rfs_inode_get_size (rtems_rfs_file_system* fs,
rtems_rfs_inode_handle* handle);
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-link.c b/cpukit/libfs/src/rfs/rtems-rfs-link.c
index 225a37fac9..7cfb60acbb 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-link.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-link.c
@@ -2,7 +2,7 @@
* @file
*
* @brief RTEMS File Systems Link Routines
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* These functions manage links. A link is the addition of a directory entry
* in a parent directory and incrementing the links count in the inode.
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-link.h b/cpukit/libfs/src/rfs/rtems-rfs-link.h
index 0f473f2200..c10e336d49 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-link.h
+++ b/cpukit/libfs/src/rfs/rtems-rfs-link.h
@@ -3,7 +3,7 @@
*
* @brief RTEMS File System Link Support
*
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* RTEMS File System Link Support
*
@@ -41,13 +41,16 @@ typedef enum rtems_rfs_unlink_dir_e
* Create a link. Do not link directories unless renaming or you will create
* loops in the file system.
*
- * @param fs The file system.
- * @param name The name of the link.
- * @param length The length of the name.
- * @param parent The inode number of the parent directory.
- * @param target The inode of the target.
- * @param link_dir If true directories can be linked. Useful when renaming.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system.
+ * @param[in] name is a pointer to the name of the link.
+ * @param[in] length is the length of the name.
+ * @param[in] parent is the inode number of the parent directory.
+ * @param[in] target is the inode of the target.
+ * @param[in] link_dir If true directories can be linked. Useful when
+ * renaming.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_link (rtems_rfs_file_system* fs,
const char* name,
@@ -57,16 +60,18 @@ int rtems_rfs_link (rtems_rfs_file_system* fs,
bool link_dir);
/**
- * Unlink the node from the parent directory. A directory offset for the target
- * entry is required because links cause a number of inode numbers to appear in
- * a single directory so scanning does not work.
+ * Unlink the node from the parent directory. A directory offset for the
+ * target entry is required because links cause a number of inode numbers to
+ * appear in a single directory so scanning does not work.
+ *
+ * @param[in] fs is the file system.
+ * @param[in] parent is the inode number of the parent directory.
+ * @param[in] target is the inode of the target.
+ * @param[in] doff is the parent directory entry offset for the target entry.
+ * @param[in] dir_mode is the directory unlink mode.
*
- * @param fs The file system.
- * @param parent The inode number of the parent directory.
- * @param target The inode of the target.
- * @param doff Parent directory entry offset for the target entry.
- * @param dir_mode Directory unlink mode.
- * @return int The error number (errno). No error if 0.
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_unlink (rtems_rfs_file_system* fs,
rtems_rfs_ino parent,
@@ -77,13 +82,16 @@ int rtems_rfs_unlink (rtems_rfs_file_system* fs,
/**
* Symbolic link is an inode that has a path attached.
*
- * @param fs The file system data.
- * @param name The name of the node.
- * @param length The length of the name of the node.
- * @param link The link path attached to the symlink inode.
- * @param link_length The length of the link path.
- * @param parent The parent inode number.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ * @param[in] name is a pointer to the name of the node.
+ * @param[in] length is the length of the name of the node.
+ * @param[in] link is a pointer to the link path attached to the
+ * symlink inode.
+ * @param[in] link_length is the length of the link path.
+ * @param[in] parent is the parent inode number.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_symlink (rtems_rfs_file_system* fs,
const char* name,
@@ -98,12 +106,14 @@ int rtems_rfs_symlink (rtems_rfs_file_system* fs,
* Read a symbolic link into the provided buffer returning the link of link
* name.
*
- * @param fs The file system data.
- * @param link The link inode number to read.
- * @param path The buffer to write the link path into.
- * @param size The size of the buffer.
- * @param length Set to the length of the link path.
- * @return int The error number (errno). No error if 0.
+ * @param[in] fs is the file system data.
+ * @param[in] link is the link inode number to read.
+ * @param[in] path is a pointer to the buffer to write the link path into.
+ * @param[in] size is the size of the buffer.
+ * @param[out] length will contain the length of the link path.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_rfs_symlink_read (rtems_rfs_file_system* fs,
rtems_rfs_ino link,
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-mutex.c b/cpukit/libfs/src/rfs/rtems-rfs-mutex.c
index 7bf92f7cd5..27f36bf09f 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-mutex.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-mutex.c
@@ -2,7 +2,7 @@
* @file
*
* @brief RTEMS File System Mutex
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*/
/*
* COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-mutex.h b/cpukit/libfs/src/rfs/rtems-rfs-mutex.h
index ac04aeea1a..a37d9fee72 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-mutex.h
+++ b/cpukit/libfs/src/rfs/rtems-rfs-mutex.h
@@ -3,7 +3,7 @@
*
* @brief RTEMS File System Mutex
*
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* RTEMS File System Mutex.
*
@@ -41,27 +41,33 @@ typedef uint32_t rtems_rfs_mutex; /* place holder */
#endif
/**
- * Create the mutex.
+ * @brief Create the mutex.
+ *
+ * @param [in] mutex is pointer to the mutex handle returned to the caller.
+ *
+ * @retval 0 Successful operation.
+ * @retval EIO An error occurred.
*
- * @param mutex Reference to the mutex handle returned to the caller.
- * @return int The error number (errno). No error if 0.
*/
int rtems_rfs_mutex_create (rtems_rfs_mutex* mutex);
/**
- * Create the mutex.
+ * @brief Destroy the mutex.
+ *
+ * @param[in] mutex Reference to the mutex handle returned to the caller.
*
- * @param mutex Reference to the mutex handle returned to the caller.
- * @return int The error number (errno). No error if 0.
+ * @retval 0 Successful operation.
+ * @retval EIO An error occurred.
*/
int rtems_rfs_mutex_destroy (rtems_rfs_mutex* mutex);
/**
- * Lock the mutex.
+ * @brief Lock the mutex.
*
- * @param mutex The mutex to lock.
- * @retval true The mutex is locked.
- * @retval false The mutex could not be locked.
+ * @param[in] mutex is a pointer to the mutex to lock.
+ *
+ * @retval 0 Successful operation.
+ * @retval EIO An error occurred.
*/
static inline int
rtems_rfs_mutex_lock (rtems_rfs_mutex* mutex)
@@ -82,11 +88,12 @@ rtems_rfs_mutex_lock (rtems_rfs_mutex* mutex)
}
/**
- * Unlock the mutex.
+ * @brief Unlock the mutex.
+ *
+ * @param[in] mutex is a pointer to the mutex to unlock.
*
- * @param mutex The mutex to unlock.
- * @retval true The mutex is unlocked.
- * @retval false The mutex could not be unlocked.
+ * @retval 0 Successful operation.
+ * @retval EIO An error occurred.
*/
static inline int
rtems_rfs_mutex_unlock (rtems_rfs_mutex* mutex)
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-rtems-dev.c b/cpukit/libfs/src/rfs/rtems-rfs-rtems-dev.c
index 97d0104cdd..dbf9c165dd 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-rtems-dev.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-rtems-dev.c
@@ -2,7 +2,7 @@
* @file
*
* @brief RTEMS RFS Device Interface
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* This file contains the set of handlers used to map operations on RFS device
* nodes onto calls to the RTEMS Classic API IO Manager.
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c b/cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c
index c04bbea03b..baf71555e5 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief RTEMS RFS Directory Access Routines
+ * @ingroup rtems_rfs
+ */
/*
* COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
*
@@ -5,13 +11,6 @@
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*/
-/**
- * @file
- *
- * @ingroup rtems-rfs
- *
- * RTEMS RFS Directory Access Routines
- */
#if HAVE_CONFIG_H
#include "config.h"
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c b/cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c
index 7de04038e7..b3ec0ed755 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c
@@ -1,3 +1,13 @@
+/**
+ * @file
+ *
+ * @brief RTEMS RFS File Handlers
+ * @ingroup rtems_rfs
+ *
+ * This file contains the set of handlers used to process operations on
+ * RFS file nodes.
+ */
+
/*
* COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
*
@@ -5,16 +15,6 @@
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*/
-/**
- * @file
- *
- * @ingroup rtems-rfs
- *
- * RTEMS RFS File Handlers
- *
- * This file contains the set of handlers used to process operations on
- * RFS file nodes.
- */
#if HAVE_CONFIG_H
#include "config.h"
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-rtems-utils.c b/cpukit/libfs/src/rfs/rtems-rfs-rtems-utils.c
index 76d0392605..d23dbf2203 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-rtems-utils.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-rtems-utils.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief Set of Utility Functions to Support RTEMS RFS on RTEMS
+ * @ingroup rtems_rfs
+ */
+
/*
* COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
*
@@ -5,13 +12,6 @@
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*/
-/**
- * @file
- *
- * @ingroup rtems-rfs
- *
- * Set of utility functions to support RTEMS RFS on RTEMS.
- */
#if HAVE_CONFIG_H
#include "config.h"
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-rtems.c b/cpukit/libfs/src/rfs/rtems-rfs-rtems.c
index d2aac56429..fad2993f9b 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-rtems.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-rtems.c
@@ -2,7 +2,7 @@
* @file
*
* @brief RTEMS File System Interface for RTEMS
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*/
/*
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-rtems.h b/cpukit/libfs/src/rfs/rtems-rfs-rtems.h
index 00fcb27143..d923999f62 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-rtems.h
+++ b/cpukit/libfs/src/rfs/rtems-rfs-rtems.h
@@ -1,20 +1,21 @@
-/*
- * COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
- */
/**
* @file
*
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* RTEMS File System RTEMS Header file.
*
* This file is not to be installed. It binds the RFS file system to RTEMS.
*/
+/*
+ * COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
#if !defined(RTEMS_RFS_RTEMS_DEFINED)
#define RTEMS_RFS_RTEMS_DEFINED
@@ -44,10 +45,12 @@
* Take the result code and set errno with it and if non-zero return -1 else
* return 0.
*
- * @param what The message to print is the error is not zero.
- * @param error The error code.
- * @retval -1 An error has occurred.
- * @retval 0 No error.
+ * @param[in] what is a pointer to the message to print if the error
+ * is not zero.
+ * @param[in] error is the error code.
+ *
+ * @retval 0 Successful operation.
+ * @retval -1 An error occurred.
*/
int rtems_rfs_rtems_error (const char* mesg, int error);
#endif
@@ -84,7 +87,8 @@ int rtems_rfs_rtems_error (const char* mesg, int error);
* defined to 0 the code is dead code elminiated when built with -Os, -O2, or
* higher.
*
- * @param mask The part of the API to trace.
+ * @param[in] mask is the part of the API to trace.
+ *
* @retval true Tracing is active for the mask.
* @retval false Do not trace.
*/
@@ -97,8 +101,9 @@ bool rtems_rfs_rtems_trace (uint32_t mask);
/**
* Set the mask.
*
- * @param mask The mask bits to set.
- * @return The previous mask.
+ * @param[in] mask is the mask bits to set.
+ *
+ * @retval mask The previous mask.
*/
#if RTEMS_RFS_RTEMS_TRACE
void rtems_rfs_rtems_trace_set_mask (uint32_t mask);
@@ -109,8 +114,9 @@ void rtems_rfs_rtems_trace_set_mask (uint32_t mask);
/**
* Clear the mask.
*
- * @param mask The mask bits to clear.
- * @return The previous mask.
+ * @param[in] mask is the mask bits to clear.
+ *
+ * @retval mask The previous mask.
*/
#if RTEMS_RFS_RTEMS_TRACE
void rtems_rfs_rtems_trace_clear_mask (uint32_t mask);
@@ -144,7 +150,7 @@ typedef struct rtems_rfs_rtems_private
/**
* Return the file system structure given a path location.
*
- * @param _loc Pointer to the path location.
+ * @param[in] _loc is a pointer to the path location.
* @return rtems_rfs_file_system*
*/
#define rtems_rfs_rtems_pathloc_dev(_loc) \
@@ -153,8 +159,8 @@ typedef struct rtems_rfs_rtems_private
/**
* Set the inode number (ino) into the path location.
*
- * @param _loc Pointer to the path location.
- * @param _ino The ino to set in the path location.
+ * @param[in] _loc is a pointer to the path location.
+ * @param[in] _ino is the ino to set in the path location.
*/
#define rtems_rfs_rtems_set_pathloc_ino(_loc, _ino) \
(_loc)->node_access = (void*)((intptr_t)(_ino))
@@ -162,7 +168,7 @@ typedef struct rtems_rfs_rtems_private
/**
* Get the inode number (ino) given a path location.
*
- * @param _loc Pointer to the path location.
+ * @param[in] _loc is a pointer to the path location.
* @return rtems_rfs_ino The inode number in the path location.
*/
#define rtems_rfs_rtems_get_pathloc_ino(_loc) \
@@ -171,8 +177,8 @@ typedef struct rtems_rfs_rtems_private
/**
* Set the directory offset (doff) into the path location.
*
- * @param _loc Pointer to the path location.
- * @param _doff The doff to set in the path location.
+ * @param[in] _loc is a pointer to the path location.
+ * @param[in] _doff is the doff to set in the path location.
*/
#define rtems_rfs_rtems_set_pathloc_doff(_loc, _doff) \
(_loc)->node_access_2 = (void*)((intptr_t)(_doff))
@@ -180,7 +186,7 @@ typedef struct rtems_rfs_rtems_private
/**
* Get the directory offset (doff) given a path location.
*
- * @param _loc Pointer to the path location.
+ * @param[in] _loc is a pointer to the path location.
* @return uin32_t The doff in the path location.
*/
#define rtems_rfs_rtems_get_pathloc_doff(_loc) \
@@ -189,7 +195,7 @@ typedef struct rtems_rfs_rtems_private
/**
* Get the ino from the I/O pointer.
*
- * @param _iop The I/O pointer.
+ * @param[in] _iop is the I/O pointer.
* @return ino
*/
#define rtems_rfs_rtems_get_iop_ino(_iop) \
@@ -207,8 +213,8 @@ typedef struct rtems_rfs_rtems_private
/**
* Set the file handle in the I/O pointer.
*
- * @param _iop The I/O pointer.
- * @param _fh The file handle.
+ * @param[in] _iop is the I/O pointer.
+ * @param[in] _fh is the file handle.
*/
#define rtems_rfs_rtems_set_iop_file_handle(_iop, _fh) \
(_iop)->pathinfo.node_access_2 = (_fh)
@@ -216,7 +222,7 @@ typedef struct rtems_rfs_rtems_private
/**
* Create the name of the handler's table given the type of handlers.
*
- * @param _h The name of the handlers.
+ * @param[in] _h is the name of the handlers.
* @return label The name of the handler's table.
*/
#define rtems_rfs_rtems_handlers(_h) \
@@ -225,8 +231,10 @@ typedef struct rtems_rfs_rtems_private
/**
* Set the handlers in the path location based on the mode of the inode.
*
- * @param loc Pointer to the path location to set the handlers in.
- * @param inode The inode handle to check the mode of for the type of handlers.
+ * @param[in] loc is a pointer to the path location to set the handlers in.
+ * @param[in] inode is the inode handle to check the mode of for the
+ * type of handlers.
+ *
* @retval true The handlers have been set.
* @retval false There are no handlers for the mode.
*/
@@ -236,7 +244,7 @@ bool rtems_rfs_rtems_set_handlers (rtems_filesystem_location_info_t* pathloc,
/**
* Convert the system mode flags to inode mode flags.
*
- * @param mode The system mode flags.
+ * @param[in] mode is the system mode flags.
* @return uint16_t The inode mode flags.
*/
uint16_t rtems_rfs_rtems_imode (mode_t mode);
@@ -244,7 +252,7 @@ uint16_t rtems_rfs_rtems_imode (mode_t mode);
/**
* Convert the inode mode flags to system mode flags.
*
- * @param imode The inode mode flags
+ * @param[in] imode is the inode mode flags
* @return mode_t The system mode flags.
*/
mode_t rtems_rfs_rtems_mode (int imode);
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-shell.c b/cpukit/libfs/src/rfs/rtems-rfs-shell.c
index a1ed928885..96c0c17890 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-shell.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-shell.c
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief RTEMS File Systems Shell Commands Support
+ * @ingroup rtems_rfs
+ */
+
/*
* COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
*
@@ -5,13 +12,6 @@
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*/
-/**
- * @file
- *
- * @ingroup rtems-rfs
- *
- * RTEMS File Systems Shell Commands Support
- */
#if HAVE_CONFIG_H
#include "config.h"
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-shell.h b/cpukit/libfs/src/rfs/rtems-rfs-shell.h
index f4e56227b7..46f3d2902f 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-shell.h
+++ b/cpukit/libfs/src/rfs/rtems-rfs-shell.h
@@ -1,3 +1,13 @@
+/**
+ * @file
+ *
+ * @ingroup rtems_rfs
+ * @brief RTEMS File Systems Shell Commands
+ *
+ * RTEMS File Systems Shell commands provide a CLI interface to support and
+ * development of the RFS file system.
+ */
+
/*
* COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
*
@@ -5,14 +15,6 @@
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*/
-/**
- * @file
- *
- * @ingroup rtems-rfs
- *
- * RTEMS File Systems Shell commands provide a CLI interface to support and
- * development od the RFS file system.
- */
#if !defined (_RTEMS_RFS_SHELL_H_)
#define _RTEMS_RFS_SHELL_H_
@@ -24,18 +26,22 @@
/**
* The shell command for the RFS debugger.
*
- * @param argc The argument count.
- * @param argv The argument variables.
- * @return int The exit code for the command. A 0 is no error.
+ * @param[in] argc is the argument count.
+ * @param[in] argv is a pointer to the argument variables.
+ *
+ * @retval 0 Successful operation.
+ * @retval error_code An error occurred.
*/
int rtems_shell_debugrfs (int argc, char *argv[]);
/**
* The shell command for formatting an RFS file system.
*
- * @param argc The argument count.
- * @param argv The argument variables.
- * @return int The exit code for the command. A 0 is no error.
+ * @param[in] argc is the argument count.
+ * @param[in] argv is a pointer to the argument variables.
+ *
+ * @retval 0 Successful operation.
+ * @retval 1 An error occurred.
*/
int rtems_shell_rfs_format (int argc, char* argv[]);
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-trace.c b/cpukit/libfs/src/rfs/rtems-rfs-trace.c
index df0f54ad6b..2be76792a2 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-trace.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-trace.c
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief RTEMS File Systems Trace Support
+ * @ingroup rtems_rfs
+ */
/*
* COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
*
@@ -5,13 +11,6 @@
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*/
-/**
- * @file
- *
- * @ingroup rtems-rfs
- *
- * RTEMS File Systems Trace Support
- */
#if HAVE_CONFIG_H
#include "config.h"
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-trace.h b/cpukit/libfs/src/rfs/rtems-rfs-trace.h
index 09273a5939..7ffdea0d56 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-trace.h
+++ b/cpukit/libfs/src/rfs/rtems-rfs-trace.h
@@ -1,9 +1,10 @@
/**
* @file
*
- * @brief Manages the Trace and Debugging Features of the RTEMS RFS File System
+ * @brief Manages the Trace and Debugging Features of the
+ * RTEMS RFS File System
*
- * @ingroup rtems-rfs
+ * @ingroup rtems_rfs
*
* RTEMS File Systems Trace manages the trace and debugging features of the
* RTEMS RFS file system. The design allows all tracing code and strings to be
@@ -87,7 +88,8 @@ typedef uint64_t rtems_rfs_trace_mask;
* Call to check if this part is bring traced. If RTEMS_RFS_TRACE is defined to
* 0 the code is dead code elminiated when built with -Os, -O2, or higher.
*
- * @param mask The part of the API to trace.
+ * @param[in] mask is the part of the API to trace.
+ *
* @retval true Tracing is active for the mask.
* @retval false Do not trace.
*/
@@ -100,8 +102,9 @@ bool rtems_rfs_trace (rtems_rfs_trace_mask mask);
/**
* Set the mask.
*
- * @param mask The mask bits to set.
- * @return The previous mask.
+ * @param[in] mask are the mask bits to set.
+ *
+ * @retval mask The previous mask.
*/
#if RTEMS_RFS_TRACE
rtems_rfs_trace_mask rtems_rfs_trace_set_mask (rtems_rfs_trace_mask mask);
@@ -112,8 +115,9 @@ rtems_rfs_trace_mask rtems_rfs_trace_set_mask (rtems_rfs_trace_mask mask);
/**
* Clear the mask.
*
- * @param mask The mask bits to clear.
- * @return The previous mask.
+ * @param[in] mask are the mask bits to clear.
+ *
+ * @retval mask The previous mask.
*/
#if RTEMS_RFS_TRACE
rtems_rfs_trace_mask rtems_rfs_trace_clear_mask (rtems_rfs_trace_mask mask);
diff --git a/cpukit/libfs/src/rfs/rtems-rfs.h b/cpukit/libfs/src/rfs/rtems-rfs.h
index 251a61805f..ffd2f806fb 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs.h
+++ b/cpukit/libfs/src/rfs/rtems-rfs.h
@@ -1,19 +1,21 @@
-/*
- * COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
- */
/**
* @file
*
- * @ingroup rtems-rfs
+ * @brief RFS File system Initialization
+ * @ingroup rtems_rfs
*
* RTEMS File System
*
*/
+/*
+ * COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
#if !defined(RTEMS_RFS_DEFINED)
#define RTEMS_RFS_DEFINED
@@ -21,8 +23,16 @@
#include <rtems/fs.h>
/**
+ * @defgroup rtems_rfs RTEMS File System Group Management
+ *
+ * @ingroup FileSystemTypesAndMount
+ */
+/**@{*/
+
+/**
* Initialise the RFS File system.
*/
int rtems_rfs_rtems_initialise (rtems_filesystem_mount_table_entry_t *mt_entry);
+/**@}*/
#endif
diff --git a/cpukit/libi2c/libi2c.h b/cpukit/libi2c/libi2c.h
index 04c20a64b7..14327465e2 100644
--- a/cpukit/libi2c/libi2c.h
+++ b/cpukit/libi2c/libi2c.h
@@ -3,7 +3,7 @@
*
* @ingroup libi2c
*
- * @brief I2C library.
+ * @brief I2C Library
*/
#ifndef _RTEMS_LIBI2C_H
@@ -67,8 +67,8 @@ extern "C" {
*
* @brief I2C library.
*
- * @{
*/
+/**@{**/
/* Simple I2C driver API */
diff --git a/cpukit/libmisc/bspcmdline/bspcmdline.h b/cpukit/libmisc/bspcmdline/bspcmdline.h
index 7fa03c9492..4cd0e5c887 100644
--- a/cpukit/libmisc/bspcmdline/bspcmdline.h
+++ b/cpukit/libmisc/bspcmdline/bspcmdline.h
@@ -1,11 +1,16 @@
/**
- * @file rtems/bspcmdline.h
+ * @file rtems/bspcmdline.h
*
- * This include file contains all prototypes and specifications
- * related to the BSP Command Line String and associated helper
- * routines. The helpers are useful for locating command line
- * type arguments (e.g. --mode) and their associated right
- * hand side (e.g. FAST in --mode=FAST).
+ * @defgroup BSPCommandLine BSP Command Line Helpers
+ *
+ * @ingroup libmisc
+ * @brief BSP Command Line Handler
+ *
+ * This include file contains all prototypes and specifications
+ * related to the BSP Command Line String and associated helper
+ * routines. The helpers are useful for locating command line
+ * type arguments (e.g. --mode) and their associated right
+ * hand side (e.g. FAST in --mode=FAST).
*/
/*
@@ -21,11 +26,11 @@
#define __BSP_COMMAND_LINE_h
/**
- * @defgroup BSPCommandLine BSP Command Line Helpers
+ * @defgroup BSPCommandLine BSP Command Line Helpers
*
- * The BSP Command Line Handler provides a set of routines which assist
- * in examining and decoding the Command Line String passed to the BSP
- * at boot time.
+ * The BSP Command Line Handler provides a set of routines which assist
+ * in examining and decoding the Command Line String passed to the BSP
+ * at boot time.
*/
/**@{*/
@@ -37,33 +42,33 @@ extern "C" {
/**
- * @brief Obtain Pointer to BSP Boot Command String
+ * @brief Obtain Pointer to BSP Boot Command String
*
- * This method returns a pointer to the BSP Boot Command String. It
- * is as likely to be NULL as point to a string as most BSPs do not
- * have a start environment that provides a boot string.
+ * This method returns a pointer to the BSP Boot Command String. It
+ * is as likely to be NULL as point to a string as most BSPs do not
+ * have a start environment that provides a boot string.
*
- * @return This method returns the pointer to the BSP Boot Command String.
+ * @retval This method returns the pointer to the BSP Boot Command String.
*/
const char *rtems_bsp_cmdline_get(void);
/**
- * @brief Obtain COPY of the Entire Matching Argument
- *
- * This method searches for the argument @a name in the BSP Boot Command
- * String and returns a copy of the entire string associated with it in
- * @a value up to a string of @a length. This will include the argument
- * and any right hand side portion of the string. For example, one might
- * be returned --mode=FAST if
- * searching for --mode.
- *
- * @param[in] name is the arugment to search for
- * @param[in] value points to where the contents will
- * be placed if located.
- * @param[in] length is the maximum length to copy
- *
- * @return This method returns NULL if not found and
- * @a value if found.
+ * @brief Obtain COPY of the Entire Matching Argument
+ *
+ * This method searches for the argument @a name in the BSP Boot Command
+ * String and returns a copy of the entire string associated with it in
+ * @a value up to a string of @a length. This will include the argument
+ * and any right hand side portion of the string. For example, one might
+ * be returned --mode=FAST if
+ * searching for --mode.
+ *
+ * @param[in] name is the arugment to search for
+ * @param[in] value points to where the contents will
+ * be placed if located.
+ * @param[in] length is the maximum length to copy
+ *
+ * @return This method returns NULL if not found and
+ * @a value if found.
*/
const char *rtems_bsp_cmdline_get_param(
const char *name,
@@ -73,22 +78,22 @@ const char *rtems_bsp_cmdline_get_param(
/**
- * @brief Obtain COPY of the Right Hand Side of the Matching Argument
- *
- * This method searches for the argument @a name in
- * the BSP Boot Command String and returns the right hand side
- * associated with it in @a value up to a maximum string @a length.
- * This will NOT include the argument but only any right hand side
- * portion of the string. * For example, one might be returned FAST if
- * searching for --mode.
- *
- * @param[in] name is the arugment to search for
- * @param[in] value points to where the contents will
- * be placed if located.
- * @param[in] length is the maximum length to copy
- *
- * @return This method returns NULL if not found and
- * @a value if found.
+ * @brief Obtain COPY of the Right Hand Side of the Matching Argument
+ *
+ * This method searches for the argument @a name in
+ * the BSP Boot Command String and returns the right hand side
+ * associated with it in @a value up to a maximum string @a length.
+ * This will NOT include the argument but only any right hand side
+ * portion of the string. * For example, one might be returned FAST if
+ * searching for --mode.
+ *
+ * @param[in] name is the arugment to search for
+ * @param[in] value points to where the contents will
+ * be placed if located.
+ * @param[in] length is the maximum length to copy
+ *
+ * @retval This method returns NULL if not found and
+ * @a value if found.
*/
const char *rtems_bsp_cmdline_get_param_rhs(
const char *name,
@@ -97,22 +102,22 @@ const char *rtems_bsp_cmdline_get_param_rhs(
);
/**
- * @brief Obtain Pointer to the Entire Matching Argument
+ * @brief Obtain Pointer to the Entire Matching Argument
*
- * This method searches for the argument @a name in
- * the BSP Boot Command String and returns a pointer to the
- * entire string associated with it. This will include the
- * argument and any right hand side portion of the string.
- * For example, one might be returned --mode=FAST if
- * searching for --mode.
+ * This method searches for the argument @a name in
+ * the BSP Boot Command String and returns a pointer to the
+ * entire string associated with it. This will include the
+ * argument and any right hand side portion of the string.
+ * For example, one might be returned --mode=FAST if
+ * searching for --mode.
*
- * @param[in] name is the arugment to search for
+ * @param[in] name is the arugment to search for
*
- * @return This method returns NULL if not found and a pointer
- * into the BSP Boot Command String if found.
+ * @retval This method returns NULL if not found and a pointer
+ * into the BSP Boot Command String if found.
*
- * @note The pointer will be to the original BSP Command
- * Line string. Exercise caution when using this.
+ * @note The pointer will be to the original BSP Command
+ * Line string. Exercise caution when using this.
*/
const char *rtems_bsp_cmdline_get_param_raw(
const char *name
diff --git a/cpukit/libmisc/capture/capture.h b/cpukit/libmisc/capture/capture.h
index 034bdb9c86..d75f675b27 100644
--- a/cpukit/libmisc/capture/capture.h
+++ b/cpukit/libmisc/capture/capture.h
@@ -1,6 +1,9 @@
/**
* @file rtems/capture.h
*
+ * @brief Capture Engine Component of the RTEMS Measurement and
+ * Monitoring System
+ *
* This is the Capture Engine component of the RTEMS Measurement and
* Monitoring system.
*/
diff --git a/cpukit/libmisc/cpuuse/cpuuse.h b/cpukit/libmisc/cpuuse/cpuuse.h
index 7dfe5ba388..0fa94d6357 100644
--- a/cpukit/libmisc/cpuuse/cpuuse.h
+++ b/cpukit/libmisc/cpuuse/cpuuse.h
@@ -1,17 +1,22 @@
/**
* @file rtems/cpuuse.h
+ *
+ * @defgroup libmisc_cpuuse CPU Usage
+ *
+ * @ingroup libmisc
+ * @brief CPU Usage Report
*
* This include file contains information necessary to utilize
* and install the cpu usage reporting mechanism.
*/
/*
- * COPYRIGHT (c) 1989-2011.
- * On-Line Applications Research Corporation (OAR).
+ * COPYRIGHT (c) 1989-2011.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef __RTEMS_CPUUSE_h
diff --git a/cpukit/libmisc/devnull/devnull.h b/cpukit/libmisc/devnull/devnull.h
index 84e1475471..0eae69751c 100644
--- a/cpukit/libmisc/devnull/devnull.h
+++ b/cpukit/libmisc/devnull/devnull.h
@@ -1,6 +1,8 @@
/**
- * @file rtems/devnull.h
+ * @file
*
+ * @brief RTEMS /dev/null Device Driver
+ *
* This include file defines the interface to the RTEMS /dev/null
* device driver.
*/
@@ -19,14 +21,15 @@
#ifndef _RTEMS_DEVNULL_H
#define _RTEMS_DEVNULL_H
-#include <rtems/io.h> /* rtems_device_driver */
+#include <rtems/io.h>
/**
- * @defgroup libmisc_devnull Device Driver
+ * @defgroup libmisc_devnull Null Device Driver
*
* @ingroup libmisc
*/
/**@{*/
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/cpukit/libmisc/devnull/devzero.h b/cpukit/libmisc/devnull/devzero.h
index aaf084cc32..2f10e0f507 100644
--- a/cpukit/libmisc/devnull/devzero.h
+++ b/cpukit/libmisc/devnull/devzero.h
@@ -1,6 +1,8 @@
/**
* @file rtems/devzero.h
*
+ * @brief RTEMS /dev/zero Device Driver
+ *
* This include file defines the interface to the RTEMS /dev/zero
* device driver.
*/
@@ -8,11 +10,11 @@
/*
* Copyright (c) 2011 embedded brains GmbH. All rights reserved.
*
- * embedded brains GmbH
- * Obere Lagerstr. 30
- * 82178 Puchheim
- * Germany
- * <rtems@embedded-brains.de>
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
@@ -24,6 +26,13 @@
#include <rtems/io.h>
+/**
+ * @defgroup libmisc_devzero Zero Device Driver
+ *
+ * @ingroup libmisc
+ */
+/**@{*/
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
@@ -79,5 +88,5 @@ rtems_device_driver dev_zero_control(
#ifdef __cplusplus
}
#endif /* __cplusplus */
-
+/**@}*/
#endif /* _RTEMS_DEVZERO_H */
diff --git a/cpukit/libmisc/dumpbuf/dumpbuf.h b/cpukit/libmisc/dumpbuf/dumpbuf.h
index d03274a1bc..6065fb11e2 100644
--- a/cpukit/libmisc/dumpbuf/dumpbuf.h
+++ b/cpukit/libmisc/dumpbuf/dumpbuf.h
@@ -1,6 +1,8 @@
/**
- * @file rtems/dumpbuf.h
+ * @file
*
+ * @brief Print a Memory Buffer
+ *
* This file defines the interface to the RTEMS methods to print a
* memory buffer in a style similar to many ROM monitors and debuggers.
*/
@@ -28,14 +30,14 @@ extern "C" {
#endif
/**
- * @brief Print memory buffer.
+ * @brief Print memory buffer.
*
- * This method prints @a length bytes beginning at @a buffer in
- * a nice format similar to what one would expect from a debugger
- * or ROM monitor.
+ * This method prints @a length bytes beginning at @a buffer in
+ * a nice format similar to what one would expect from a debugger
+ * or ROM monitor.
*
- * @param[in] buffer is the address of the buffer
- * @param[in] length is the length of the buffer
+ * @param[in] buffer is the address of the buffer
+ * @param[in] length is the length of the buffer
*/
void rtems_print_buffer(
const unsigned char *buffer,
diff --git a/cpukit/libmisc/fb/fb.h b/cpukit/libmisc/fb/fb.h
index 5a896e19db..e268418a3a 100644
--- a/cpukit/libmisc/fb/fb.h
+++ b/cpukit/libmisc/fb/fb.h
@@ -1,4 +1,7 @@
-/** @file rtems/fb.h
+/**
+ * @file rtems/fb.h
+ *
+ * @brief Frame Buffer Device Driver
*
* This file defines the interface to a frame buffer device driver.
*/
@@ -15,6 +18,13 @@
#include <stdint.h>
+/**
+ * @defgroup libmisc_fb Frame Buffer Device Driver Interface
+ *
+ * @ingroup Device Drivers and Frameworks
+ */
+/**@{*/
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -86,10 +96,9 @@ struct fb_cmap {
uint16_t *transp; /* transparency, can be NULL */
};
-
-
#ifdef __cplusplus
}
#endif
+/**@}*/
#endif /* _MW_FB_H */
diff --git a/cpukit/libmisc/fb/mw_uid.h b/cpukit/libmisc/fb/mw_uid.h
index ba91a76b8c..8a10a8f38c 100644
--- a/cpukit/libmisc/fb/mw_uid.h
+++ b/cpukit/libmisc/fb/mw_uid.h
@@ -1,6 +1,11 @@
/**
* @file rtems/mw_uid.h
*
+ * @defgroup libmisc_fb_mw Input Devices for MicroWindows
+ *
+ * @ingroup libmisc
+ * @brief Input Devices for MicroWindows
+ *
* This file defines the interface for input devices used by MicroWindows
* in an embedded system environment.
*/
@@ -109,43 +114,43 @@ struct MW_UID_MESSAGE {
*/
/**
- * This method creates the message queue that holds events from the
- * input devices.
+ * This method creates the message queue that holds events from the
+ * input devices.
*
- * @param[in] q_name is the name of the message queue
- * @param[in] flags controls the behaviour of the queue
- * @param[in] max_msgs specifies the maximum number of pending messages
+ * @param[in] q_name is the name of the message queue
+ * @param[in] flags controls the behaviour of the queue
+ * @param[in] max_msgs specifies the maximum number of pending messages
*
- * @note The message queue is from the Classic API.
+ * @note The message queue is from the Classic API.
*
- * @return This method returns 0 on success and -1 on error.
+ * @retval This method returns 0 on success and -1 on error.
*/
extern int uid_open_queue( const char *q_name, int flags, size_t max_msgs );
/**
- * This method closes the message queue and deletes it.
+ * This method closes the message queue and deletes it.
*
- * @return This method returns 0 on success and -1 on error.
+ * @retval This method returns 0 on success and -1 on error.
*/
extern int uid_close_queue( void );
/**
- * This method reads a message from the queue. It waits up to the specified
- * timeout in miliseconds. A @a timeout of 0 is a poll.
+ * This method reads a message from the queue. It waits up to the specified
+ * timeout in miliseconds. A @a timeout of 0 is a poll.
*
- * @param[in] m will be filled in with the received message
- * @param[in] timeout is the maximum number of mulliseconds to wait
+ * @param[in] m will be filled in with the received message
+ * @param[in] timeout is the maximum number of mulliseconds to wait
*
- * @return This method returns 0 on success and -1 on error.
+ * @retval This method returns 0 on success and -1 on error.
*/
extern int uid_read_message( struct MW_UID_MESSAGE *m, unsigned long timeout );
/**
- * This methods writes a message to the queue.
+ * This methods writes a message to the queue.
*
- * @param[in] m is the message to send
+ * @param[in] m is the message to send
*
- * @return This method returns 0 on success and -1 on error.
+ * @retval This method returns 0 on success and -1 on error.
*/
extern int uid_send_message( struct MW_UID_MESSAGE *m );
@@ -162,22 +167,22 @@ extern int uid_unregister_device( int fd );
extern int uid_set_kbd_mode( int fd, int mode, int *old_mode );
/**
- * This methods prints the specified UID message using printk
+ * This methods prints the specified UID message using printk
*
- * @param[in] uid points to the message to print
+ * @param[in] uid points to the message to print
*/
void uid_print_message(
struct MW_UID_MESSAGE *uid
);
/**
- * This methods prints the specified UID message using your fprintf
- * style method of choice.
+ * This methods prints the specified UID message using your fprintf
+ * style method of choice.
*
- * @param[in] context is a pointer to a data area which may be
- * used by some print handlers
- * @param[in] handler is the fprintf style method to invoke
- * @param[in] uid points to the message to print
+ * @param[in] context is a pointer to a data area which may be
+ * used by some print handlers
+ * @param[in] handler is the fprintf style method to invoke
+ * @param[in] uid points to the message to print
*/
void uid_print_message_with_plugin(
void *context,
diff --git a/cpukit/libmisc/fsmount/fsmount.h b/cpukit/libmisc/fsmount/fsmount.h
index af1d9a532f..70c0594ea0 100644
--- a/cpukit/libmisc/fsmount/fsmount.h
+++ b/cpukit/libmisc/fsmount/fsmount.h
@@ -1,9 +1,29 @@
/**
- * @file
+ * @file rtems/fsmount.h
*
- * File system mount functions.
+ * @defgroup rtems_fstab File System Mount Support
+ *
+ * @ingroup FileSystemTypesAndMount
+ * @brief File System Mount Functions
+ *
+ * This file contains the fsmount functions. These functions
+ * are used to mount a list of filesystems (and create their mount
+ * points before)
+ */
+
+/*
+ *
+ * Copyright (c) 2003 IMD
+ *
+ * Ingenieurbuero fuer Microcomputertechnik Th. Doerfler
+ * <Thomas.Doerfler@imd-systems.de>
+ * all rights reserved
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
-
+
/*===============================================================*\
| Project: RTEMS fsmount |
+-----------------------------------------------------------------+
@@ -44,8 +64,8 @@ extern "C" {
*
* @ingroup FileSystemTypesAndMount
*
- * @{
*/
+/**@{**/
/**
* File system mount report and abort condition flags.
diff --git a/cpukit/libmisc/monitor/monitor.h b/cpukit/libmisc/monitor/monitor.h
index ba3a61e62b..aedde1a848 100644
--- a/cpukit/libmisc/monitor/monitor.h
+++ b/cpukit/libmisc/monitor/monitor.h
@@ -1,7 +1,7 @@
/**
* @file rtems/monitor.h
*
- * The RTEMS monitor task.
+ * @brief The RTEMS Monitor Task
*/
diff --git a/cpukit/libmisc/mouse/mouse_parser.h b/cpukit/libmisc/mouse/mouse_parser.h
index 8b42c4464f..27bea1bbbc 100644
--- a/cpukit/libmisc/mouse/mouse_parser.h
+++ b/cpukit/libmisc/mouse/mouse_parser.h
@@ -1,6 +1,8 @@
/**
* @file rtems/mouse_parser.h
*
+ * @brief Initialize Mouse Parser Engine
+ *
* This file is the header file for the Mouse Parser Engine.
*/
@@ -37,33 +39,33 @@
#include <rtems/mw_uid.h>
/**
- * @defgroup libmisc_mouse Mouse Parser Engine
- *
- * @ingroup libmisc
+ * @defgroup libmisc_mouseparser Mouse Parser Engine
+ * @ingroup libmisc_mouse
*/
/**@{*/
+
#ifdef __cplusplus
extern "C" {
#endif
/**
- * This is the mask for the right button.
+ * This is the mask for the right button.
*
- * @note Use the same definitions as the user interface.
+ * @note Use the same definitions as the user interface.
*/
#define RBUTTON MV_BUTTON_RIGHT
/**
* This is the mask for the center button.
*
- * @note Use the same definitions as the user interface.
+ * @note Use the same definitions as the user interface.
*/
#define MBUTTON MV_BUTTON_CENTER
/**
- * This is the mask for the left button.
+ * This is the mask for the left button.
*
- * @note Use the same definitions as the user interface.
+ * @note Use the same definitions as the user interface.
*/
#define LBUTTON MV_BUTTON_LEFT
@@ -85,25 +87,25 @@ typedef unsigned int BUTTON;
typedef void (*mouse_parser_enqueue_handler)(unsigned char *, size_t);
/**
- * @brief Initialize the mouse parser engine.
+ * @brief Initialize the mouse parser engine.
*
- * This method initializes the Mouse Parser Engine for the mouse
- * of @a type. The @a type should be one of the following strings:
- * pc ms, logi, ps2.
+ * This method initializes the Mouse Parser Engine for the mouse
+ * of @a type. The @a type should be one of the following strings:
+ * pc ms, logi, ps2.
*
- * @a param[in] type indicates the type of mouse.
+ * @a param[in] type indicates the type of mouse.
*
- * @return This method returns 0 on success and -1 on error.
+ * @retval This method returns 0 on success and -1 on error.
*/
int mouse_parser_initialize(const char *type);
/**
- * @brief Enqueue input to the mouse parser engine.
+ * @brief Enqueue input to the mouse parser engine.
*
- * This method is used to pass mouse input to the Mouse Parser Engine.
+ * This method is used to pass mouse input to the Mouse Parser Engine.
*
- * @a param[in] buffer is the data to enqueue
- * @a param[in] size is the amount of data to enqueue
+ * @a param[in] buffer is the data to enqueue
+ * @a param[in] size is the amount of data to enqueue
*/
void mouse_parser_enqueue(
unsigned char *buffer,
@@ -114,4 +116,6 @@ void mouse_parser_enqueue(
}
#endif
+/**@}*/
+
#endif
diff --git a/cpukit/libmisc/mouse/serial_mouse.h b/cpukit/libmisc/mouse/serial_mouse.h
index 314e49bbd0..307587fd7e 100644
--- a/cpukit/libmisc/mouse/serial_mouse.h
+++ b/cpukit/libmisc/mouse/serial_mouse.h
@@ -1,13 +1,15 @@
/**
- * @file rtems/serial_mouse.h
+ * @file
+ *
+ * @brief Serial Mouse Driver
*
- * This file describes the Serial Mouse Driver for all boards.
- * This driver assumes that the BSP or application will provide
- * an implementation of the method bsp_get_serial_mouse_device()
- * which tells the driver what serial port device to open() and
- * what type of mouse is connected.
+ * This file describes the Serial Mouse Driver for all boards.
+ * This driver assumes that the BSP or application will provide
+ * an implementation of the method bsp_get_serial_mouse_device()
+ * which tells the driver what serial port device to open() and
+ * what type of mouse is connected.
*
- * This driver relies on the Mouse Parser Engine.
+ * This driver relies on the Mouse Parser Engine.
*/
/*
@@ -25,9 +27,8 @@
/* functions */
/**
- * @defgroup libmisc_mouse Serial Mouse Driver
- *
- * @ingroup libmisc
+ * @defgroup libmisc_serialmouse Serial Mouse Driver
+ * @ingroup libmisc_mouse
*/
/**@{*/
#ifdef __cplusplus
@@ -42,13 +43,13 @@ extern "C" {
serial_mouse_read, serial_mouse_write, serial_mouse_control }
/**
- * @brief The initialization of the serial mouse driver.
+ * @brief The initialization of the serial mouse driver.
*
- * This method initializes the serial mouse driver.
+ * This method initializes the serial mouse driver.
*
- * @param[in] major is the mouse device major number
- * @param[in] minor is the mouse device minor number
- * @param[in] arguments points to device driver arguments
+ * @param[in] major is the mouse device major number
+ * @param[in] minor is the mouse device minor number
+ * @param[in] arg points to device driver arguments
*/
rtems_device_driver serial_mouse_initialize(
rtems_device_major_number major,
@@ -57,14 +58,14 @@ rtems_device_driver serial_mouse_initialize(
);
/**
- * @brief Open device driver entry point for the serial mouse driver.
+ * @brief Open device driver entry point for the serial mouse driver.
*
- * This method implements the Open device driver entry
- * point for the serial mouse driver.
+ * This method implements the Open device driver entry
+ * point for the serial mouse driver.
*
- * @param[in] major is the mouse device major number
- * @param[in] minor is the mouse device minor number
- * @param[in] arguments points to device driver arguments
+ * @param[in] major is the mouse device major number
+ * @param[in] minor is the mouse device minor number
+ * @param[in] arg points to device driver arguments
*/
rtems_device_driver serial_mouse_open(
rtems_device_major_number major,
@@ -73,14 +74,14 @@ rtems_device_driver serial_mouse_open(
);
/**
- * @brief Close device driver entry point for the serial mouse driver.
+ * @brief Close device driver entry point for the serial mouse driver.
*
- * This method implements the Close device driver entry
- * point for the serial mouse driver.
+ * This method implements the Close device driver entry
+ * point for the serial mouse driver.
*
- * @param[in] major is the mouse device major number
- * @param[in] minor is the mouse device minor number
- * @param[in] arguments points to device driver arguments
+ * @param[in] major is the mouse device major number
+ * @param[in] minor is the mouse device minor number
+ * @param[in] arg points to device driver arguments
*/
rtems_device_driver serial_mouse_close(
rtems_device_major_number major,
@@ -89,14 +90,14 @@ rtems_device_driver serial_mouse_close(
);
/**
- * @brief Read device driver entry point for the serial mouse driver.
+ * @brief Read device driver entry point for the serial mouse driver.
*
- * This method implements the Read device driver entry
- * point for the serial mouse driver.
+ * This method implements the Read device driver entry
+ * point for the serial mouse driver.
*
- * @param[in] major is the mouse device major number
- * @param[in] minor is the mouse device minor number
- * @param[in] arguments points to device driver arguments
+ * @param[in] major is the mouse device major number
+ * @param[in] minor is the mouse device minor number
+ * @param[in] arg points to device driver arguments
*/
rtems_device_driver serial_mouse_read(
rtems_device_major_number major,
@@ -105,14 +106,14 @@ rtems_device_driver serial_mouse_read(
);
/**
- * @brief Write device driver entry point for the serial mouse driver.
+ * @brief Write device driver entry point for the serial mouse driver.
*
- * This method implements the Write device driver entry
- * point for the serial mouse driver.
+ * This method implements the Write device driver entry
+ * point for the serial mouse driver.
*
- * @param[in] major is the mouse device major number
- * @param[in] minor is the mouse device minor number
- * @param[in] arguments points to device driver arguments
+ * @param[in] major is the mouse device major number
+ * @param[in] minor is the mouse device minor number
+ * @param[in] arg points to device driver arguments
*/
rtems_device_driver serial_mouse_write(
rtems_device_major_number major,
@@ -121,14 +122,14 @@ rtems_device_driver serial_mouse_write(
);
/**
- * @brief IO Control device driver entry point for the serial mouse driver.
+ * @brief IO Control device driver entry point for the serial mouse driver.
*
- * This method implements the IO Control device driver entry
- * point for the serial mouse driver.
+ * This method implements the IO Control device driver entry
+ * point for the serial mouse driver.
*
- * @param[in] major is the mouse device major number
- * @param[in] minor is the mouse device minor number
- * @param[in] arguments points to device driver arguments
+ * @param[in] major is the mouse device major number
+ * @param[in] minor is the mouse device minor number
+ * @param[in] arg points to device driver arguments
*/
rtems_device_driver serial_mouse_control(
rtems_device_major_number major,
@@ -137,17 +138,17 @@ rtems_device_driver serial_mouse_control(
);
/**
- * @brief Obtain serial mouse configuration information.
+ * @brief Obtain serial mouse configuration information.
*
- * This method is implemented by the BSP or application and
- * tells the driver what device to open() and what type of
- * mouse is connected.
+ * This method is implemented by the BSP or application and
+ * tells the driver what device to open() and what type of
+ * mouse is connected.
*
- * @param[in] name will point to a string with the device name
- * of the serial port with the mouse connected.
- * @param[in] type will point to a string with the type of mouse connected.
+ * @param[in] name will point to a string with the device name
+ * of the serial port with the mouse connected.
+ * @param[in] type will point to a string with the type of mouse connected.
*
- * @return This method returns true on success and false on error.
+ * @retval This method returns true on success and false on error.
*/
bool bsp_get_serial_mouse_device(
const char **name,
diff --git a/cpukit/libmisc/serdbg/serdbgcnf.h b/cpukit/libmisc/serdbg/serdbgcnf.h
index 90e2d80134..9d4087ae69 100644
--- a/cpukit/libmisc/serdbg/serdbgcnf.h
+++ b/cpukit/libmisc/serdbg/serdbgcnf.h
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief Adds a GDB remote Debug Stub to an RTEMS System
+ */
+
/*===============================================================*\
| Project: RTEMS configure remote gdb over serial line |
+-----------------------------------------------------------------+
diff --git a/cpukit/libmisc/serdbg/termios_printk_cnf.h b/cpukit/libmisc/serdbg/termios_printk_cnf.h
index a69926e0e0..03c3090c38 100644
--- a/cpukit/libmisc/serdbg/termios_printk_cnf.h
+++ b/cpukit/libmisc/serdbg/termios_printk_cnf.h
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief Adds printk Support via Polled termios
+ */
+
/*===============================================================*\
| Project: RTEMS configure remote gdb over serial line |
+-----------------------------------------------------------------+
diff --git a/cpukit/libmisc/shell/shell.h b/cpukit/libmisc/shell/shell.h
index eb55361a67..079ef667af 100644
--- a/cpukit/libmisc/shell/shell.h
+++ b/cpukit/libmisc/shell/shell.h
@@ -1,7 +1,7 @@
/**
* @file rtems/shell.h
*
- * Instantatiate a new terminal shell.
+ * @brief Instantatiate a New Terminal Shell
*/
/*
diff --git a/cpukit/libmisc/stackchk/internal.h b/cpukit/libmisc/stackchk/internal.h
index 9e34b8b2e7..40dde64c47 100644
--- a/cpukit/libmisc/stackchk/internal.h
+++ b/cpukit/libmisc/stackchk/internal.h
@@ -1,14 +1,22 @@
-/* internal.h
+/*
+ * @file rtems/internal.h
*
- * This include file contains internal information
- * for the RTEMS stack checker.
+ * @defgroup libmisc_internal Internal Stack Checker Information
*
- * COPYRIGHT (c) 1989-2006.
- * On-Line Applications Research Corporation (OAR).
+ * @ingroup libmisc
+ * @brief Stack Checker Internal Information
+ *
+ * This include file contains internal information
+ * for the RTEMS stack checker.
+ */
+
+/*
+ * COPYRIGHT (c) 1989-2006.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef __INTERNAL_STACK_CHECK_h
diff --git a/cpukit/libmisc/stackchk/stackchk.h b/cpukit/libmisc/stackchk/stackchk.h
index e4931715c9..0c7e6c5bb5 100644
--- a/cpukit/libmisc/stackchk/stackchk.h
+++ b/cpukit/libmisc/stackchk/stackchk.h
@@ -1,7 +1,13 @@
-/** @file rtems/stackchk.h
+/**
+ * @file rtems/stackchk.h
+ *
+ * @defgroup libmisc_stackchk Stack Checker Mechanism
+ *
+ * @ingroup libmisc
+ * @brief Stack Checker Information
*
- * This include file contains information necessary to utilize
- * and install the stack checker mechanism.
+ * This include file contains information necessary to utilize
+ * and install the stack checker mechanism.
*/
/*
@@ -32,37 +38,37 @@ extern "C" {
#endif
/**
- * @brief Checks if current task is blown its stack.
+ * @brief Checks if current task is blown its stack.
*
- * This method is used to determine if the current stack pointer
- * of the currently executing task is within bounds.
+ * This method is used to determine if the current stack pointer
+ * of the currently executing task is within bounds.
*
- * @return This method returns true if the currently executing task
- * has blown its stack.
+ * @retval This method returns true if the currently executing task
+ * has blown its stack.
*
*/
bool rtems_stack_checker_is_blown( void );
/**
- * @brief Print the stack usage report using printk.
+ * @brief Print the stack usage report using printk.
*
- * This method prints a stack usage report for the curently executing
- * task.
+ * This method prints a stack usage report for the curently executing
+ * task.
*
- * @note It uses printk to print the report.
+ * @note It uses printk to print the report.
*/
void rtems_stack_checker_report_usage( void );
/**
- * @brief Print the stack usage report using caller's routine.
+ * @brief Print the stack usage report using caller's routine.
*
- * This method prints a stack usage report for the curently executing
- * task.
+ * This method prints a stack usage report for the curently executing
+ * task.
*
- * @param[in] context is the context to pass to the print handler
- * @param[in] print is the print handler
+ * @param[in] context is the context to pass to the print handler
+ * @param[in] print is the print handler
*
- * @note It uses the caller's routine to print the report.
+ * @note It uses the caller's routine to print the report.
*/
void rtems_stack_checker_report_usage_with_plugin(
void *context,
@@ -76,7 +82,7 @@ void rtems_stack_checker_report_usage_with_plugin(
*************************************************************/
/**
- * @brief Stack Checker Task Create Extension
+ * @brief Stack Checker Task Create Extension
*
* This method is the task create extension for the stack checker.
*
@@ -92,7 +98,7 @@ bool rtems_stack_checker_create_extension(
);
/**
- * @brief Stack Checker Task Begin Extension
+ * @brief Stack Checker Task Begin Extension
*
* This method is the task begin extension for the stack checker.
*
@@ -105,7 +111,7 @@ void rtems_stack_checker_begin_extension(
);
/**
- * @brief Stack Checker Task Context Switch Extension
+ * @brief Stack Checker Task Context Switch Extension
*
* This method is the task context switch extension for the stack checker.
*
diff --git a/cpukit/libmisc/stringto/stringto.h b/cpukit/libmisc/stringto/stringto.h
index f643949ed9..8b1687e2a9 100644
--- a/cpukit/libmisc/stringto/stringto.h
+++ b/cpukit/libmisc/stringto/stringto.h
@@ -1,16 +1,21 @@
/**
* @file rtems/stringto.h
*
+ * @defgroup libmisc_conv_help Conversion Helpers
+ *
+ * @ingroup libmisc
+ * @brief Convert String to Pointer (with validation)
+ *
* This file defines the interface to a set of string conversion helpers.
*/
/*
- * COPYRIGHT (c) 2009-2011.
- * On-Line Applications Research Corporation (OAR).
+ * COPYRIGHT (c) 2009-2011.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_STRINGTO_H
@@ -25,18 +30,18 @@
#include <rtems.h>
/**
- * @brief Convert String to Pointer (with validation).
+ * @brief Convert String to Pointer (with validation).
*
- * This method converts a string to a pointer (void *) with
- * basic numeric validation.
+ * This method converts a string to a pointer (void *) with
+ * basic numeric validation.
*
- * @param[in] s is the string to convert
- * @param[in] n points to the variable to place the converted output in
- * @param[in] endptr is used to keep track of the position in the string
+ * @param[in] s is the string to convert
+ * @param[in] n points to the variable to place the converted output in
+ * @param[in] endptr is used to keep track of the position in the string
*
- * @return This method returns RTEMS_SUCCESSFUL on successful conversion
- * and *n is filled in. Otherwise, the status indicates the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL on successful conversion
+ * and *n is filled in. Otherwise, the status indicates the
+ * source of the error.
*/
rtems_status_code rtems_string_to_pointer(
const char *s,
@@ -45,19 +50,19 @@ rtems_status_code rtems_string_to_pointer(
);
/**
- * @brief Convert String to Unsigned Character (with validation).
+ * @brief Convert String to Unsigned Character (with validation).
*
- * This method converts a string to an unsigned character with
- * range validation.
+ * This method converts a string to an unsigned character with
+ * range validation.
*
- * @param[in] s is the string to convert
- * @param[in] n points to the variable to place the converted output in
- * @param[in] endptr is used to keep track of the position in the string
- * @param[in] base is the expected base of the number
+ * @param[in] s is the string to convert
+ * @param[in] n points to the variable to place the converted output in
+ * @param[in] endptr is used to keep track of the position in the string
+ * @param[in] base is the expected base of the number
*
- * @return This method returns RTEMS_SUCCESSFUL on successful conversion
- * and *n is filled in. Otherwise, the status indicates the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL on successful conversion
+ * and *n is filled in. Otherwise, the status indicates the
+ * source of the error.
*/
rtems_status_code rtems_string_to_unsigned_char(
const char *s,
@@ -67,18 +72,18 @@ rtems_status_code rtems_string_to_unsigned_char(
);
/**
- * @brief Convert String to Int (with validation).
+ * @brief Convert String to Int (with validation).
*
- * This method converts a string to an int with range validation.
+ * This method converts a string to an int with range validation.
*
- * @param[in] s is the string to convert
- * @param[in] n points to the variable to place the converted output in
- * @param[in] endptr is used to keep track of the position in the string
- * @param[in] base is the expected base of the number
+ * @param[in] s is the string to convert
+ * @param[in] n points to the variable to place the converted output in
+ * @param[in] endptr is used to keep track of the position in the string
+ * @param[in] base is the expected base of the number
*
- * @return This method returns RTEMS_SUCCESSFUL on successful conversion
- * and *n is filled in. Otherwise, the status indicates the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL on successful conversion
+ * and *n is filled in. Otherwise, the status indicates the
+ * source of the error.
*/
rtems_status_code rtems_string_to_int(
const char *s,
@@ -88,18 +93,18 @@ rtems_status_code rtems_string_to_int(
);
/**
- * @brief Convert String to Unsigned Int (with validation).
+ * @brief Convert String to Unsigned Int (with validation).
*
- * This method converts a string to an unsigned int with range validation.
+ * This method converts a string to an unsigned int with range validation.
*
- * @param[in] s is the string to convert
- * @param[in] n points to the variable to place the converted output in
- * @param[in] endptr is used to keep track of the position in the string
- * @param[in] base is the expected base of the number
+ * @param[in] s is the string to convert
+ * @param[in] n points to the variable to place the converted output in
+ * @param[in] endptr is used to keep track of the position in the string
+ * @param[in] base is the expected base of the number
*
- * @return This method returns RTEMS_SUCCESSFUL on successful conversion
- * and *n is filled in. Otherwise, the status indicates the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL on successful conversion
+ * and *n is filled in. Otherwise, the status indicates the
+ * source of the error.
*/
rtems_status_code rtems_string_to_unsigned_int(
const char *s,
@@ -109,19 +114,19 @@ rtems_status_code rtems_string_to_unsigned_int(
);
/**
- * @brief Convert String to Long (with validation).
+ * @brief Convert String to Long (with validation).
*
- * This method converts a string to a long with
- * range validation.
+ * This method converts a string to a long with
+ * range validation.
*
- * @param[in] s is the string to convert
- * @param[in] n points to the variable to place the converted output in
- * @param[in] endptr is used to keep track of the position in the string
- * @param[in] base is the expected base of the number
+ * @param[in] s is the string to convert
+ * @param[in] n points to the variable to place the converted output in
+ * @param[in] endptr is used to keep track of the position in the string
+ * @param[in] base is the expected base of the number
*
- * @return This method returns RTEMS_SUCCESSFUL on successful conversion
- * and *n is filled in. Otherwise, the status indicates the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL on successful conversion
+ * and *n is filled in. Otherwise, the status indicates the
+ * source of the error.
*/
rtems_status_code rtems_string_to_long(
const char *s,
@@ -131,19 +136,19 @@ rtems_status_code rtems_string_to_long(
);
/**
- * @brief Convert String to Unsigned Long (with validation).
+ * @brief Convert String to Unsigned Long (with validation).
*
- * This method converts a string to an unsigned long with
- * range validation.
+ * This method converts a string to an unsigned long with
+ * range validation.
*
- * @param[in] s is the string to convert
- * @param[in] n points to the variable to place the converted output in
- * @param[in] endptr is used to keep track of the position in the string
- * @param[in] base is the expected base of the number
+ * @param[in] s is the string to convert
+ * @param[in] n points to the variable to place the converted output in
+ * @param[in] endptr is used to keep track of the position in the string
+ * @param[in] base is the expected base of the number
*
- * @return This method returns RTEMS_SUCCESSFUL on successful conversion
- * and *n is filled in. Otherwise, the status indicates the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL on successful conversion
+ * and *n is filled in. Otherwise, the status indicates the
+ * source of the error.
*/
rtems_status_code rtems_string_to_unsigned_long(
const char *s,
@@ -153,19 +158,19 @@ rtems_status_code rtems_string_to_unsigned_long(
);
/**
- * @brief Convert String to Long Long (with validation).
+ * @brief Convert String to Long Long (with validation).
*
- * This method converts a string to a long long with
- * range validation.
+ * This method converts a string to a long long with
+ * range validation.
*
- * @param[in] s is the string to convert
- * @param[in] n points to the variable to place the converted output in
- * @param[in] endptr is used to keep track of the position in the string
- * @param[in] base is the expected base of the number
+ * @param[in] s is the string to convert
+ * @param[in] n points to the variable to place the converted output in
+ * @param[in] endptr is used to keep track of the position in the string
+ * @param[in] base is the expected base of the number
*
- * @return This method returns RTEMS_SUCCESSFUL on successful conversion
- * and *n is filled in. Otherwise, the status indicates the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL on successful conversion
+ * and *n is filled in. Otherwise, the status indicates the
+ * source of the error.
*/
rtems_status_code rtems_string_to_long_long(
const char *s,
@@ -175,19 +180,19 @@ rtems_status_code rtems_string_to_long_long(
);
/**
- * @brief Convert String to Unsigned Long Long (with validation).
+ * @brief Convert String to Unsigned Long Long (with validation).
*
- * This method converts a string to an unsigned character with
- * range validation.
+ * This method converts a string to an unsigned character with
+ * range validation.
*
- * @param[in] s is the string to convert
- * @param[in] n points to the variable to place the converted output in
- * @param[in] endptr is used to keep track of the position in the string
- * @param[in] base is the expected base of the number
+ * @param[in] s is the string to convert
+ * @param[in] n points to the variable to place the converted output in
+ * @param[in] endptr is used to keep track of the position in the string
+ * @param[in] base is the expected base of the number
*
- * @return This method returns RTEMS_SUCCESSFUL on successful conversion
- * and *n is filled in. Otherwise, the status indicates the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL on successful conversion
+ * and *n is filled in. Otherwise, the status indicates the
+ * source of the error.
*/
rtems_status_code rtems_string_to_unsigned_long_long(
const char *s,
@@ -197,17 +202,17 @@ rtems_status_code rtems_string_to_unsigned_long_long(
);
/**
- * @brief Convert String to Float (with validation).
+ * @brief Convert String to Float (with validation).
*
- * This method converts a string to a float with range validation.
+ * This method converts a string to a float with range validation.
*
- * @param[in] s is the string to convert
- * @param[in] n points to the variable to place the converted output in
- * @param[in] endptr is used to keep track of the position in the string
+ * @param[in] s is the string to convert
+ * @param[in] n points to the variable to place the converted output in
+ * @param[in] endptr is used to keep track of the position in the string
*
- * @return This method returns RTEMS_SUCCESSFUL on successful conversion
- * and *n is filled in. Otherwise, the status indicates the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL on successful conversion
+ * and *n is filled in. Otherwise, the status indicates the
+ * source of the error.
*/
rtems_status_code rtems_string_to_float(
const char *s,
@@ -216,17 +221,17 @@ rtems_status_code rtems_string_to_float(
);
/**
- * @brief Convert String to Double (with validation).
+ * @brief Convert String to Double (with validation).
*
- * This method converts a string to a double with range validation.
+ * This method converts a string to a double with range validation.
*
- * @param[in] s is the string to convert
- * @param[in] n points to the variable to place the converted output in
- * @param[in] endptr is used to keep track of the position in the string
+ * @param[in] s is the string to convert
+ * @param[in] n points to the variable to place the converted output in
+ * @param[in] endptr is used to keep track of the position in the string
*
- * @return This method returns RTEMS_SUCCESSFUL on successful conversion
- * and *n is filled in. Otherwise, the status indicates the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL on successful conversion
+ * and *n is filled in. Otherwise, the status indicates the
+ * source of the error.
*/
rtems_status_code rtems_string_to_double(
const char *s,
@@ -235,17 +240,17 @@ rtems_status_code rtems_string_to_double(
);
/**
- * @brief Convert String to long double (with validation).
+ * @brief Convert String to long double (with validation).
*
- * This method converts a string to a long double with range validation.
+ * This method converts a string to a long double with range validation.
*
- * @param[in] s is the string to convert
- * @param[in] n points to the variable to place the converted output in
- * @param[in] endptr is used to keep track of the position in the string
+ * @param[in] s is the string to convert
+ * @param[in] n points to the variable to place the converted output in
+ * @param[in] endptr is used to keep track of the position in the string
*
- * @return This method returns RTEMS_SUCCESSFUL on successful conversion
- * and *n is filled in. Otherwise, the status indicates the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL on successful conversion
+ * and *n is filled in. Otherwise, the status indicates the
+ * source of the error.
*/
rtems_status_code rtems_string_to_long_double(
const char *s,
@@ -254,4 +259,4 @@ rtems_status_code rtems_string_to_long_double(
);
#endif
-/**@}*/ \ No newline at end of file
+/**@}*/
diff --git a/cpukit/libmisc/untar/untar.h b/cpukit/libmisc/untar/untar.h
index 81cbd0e8ba..84b0efe62e 100644
--- a/cpukit/libmisc/untar/untar.h
+++ b/cpukit/libmisc/untar/untar.h
@@ -1,6 +1,8 @@
/**
- * @file rtems/untar.h
+ * @file
*
+ * @brief Untar an Image
+ *
* This file defines the interface to methods which can untar an image.
*/
diff --git a/cpukit/libnetworking/lib/ftpfs.c b/cpukit/libnetworking/lib/ftpfs.c
index 6ce25435c5..784ff48601 100644
--- a/cpukit/libnetworking/lib/ftpfs.c
+++ b/cpukit/libnetworking/lib/ftpfs.c
@@ -64,6 +64,8 @@
* Connection entry for each open file stream.
*/
typedef struct {
+ off_t file_size;
+
/**
* Control connection socket.
*/
@@ -931,6 +933,93 @@ static int rtems_ftpfs_open_data_connection_passive(
return 0;
}
+typedef enum {
+ RTEMS_FTPFS_SIZE_START = 0,
+ RTEMS_FTPFS_SIZE_SPACE,
+ RTEMS_FTPFS_SIZE_NUMBER,
+ RTEMS_FTPFS_SIZE_NL
+} rtems_ftpfs_size_state;
+
+typedef struct {
+ rtems_ftpfs_size_state state;
+ size_t index;
+ off_t size;
+} rtems_ftpfs_size_entry;
+
+static void rtems_ftpfs_size_parser(
+ const char* buf,
+ size_t len,
+ void *arg
+)
+{
+ rtems_ftpfs_size_entry *se = arg;
+ size_t i = 0;
+
+ for (i = 0; se->size >= 0 && i < len; ++i, ++se->index) {
+ int c = buf [i];
+
+ switch (se->state) {
+ case RTEMS_FTPFS_SIZE_START:
+ if (se->index == 2) {
+ se->state = RTEMS_FTPFS_SIZE_SPACE;
+ }
+ break;
+ case RTEMS_FTPFS_SIZE_SPACE:
+ if (c == ' ') {
+ se->state = RTEMS_FTPFS_SIZE_NUMBER;
+ } else {
+ se->size = -1;
+ }
+ break;
+ case RTEMS_FTPFS_SIZE_NUMBER:
+ if (isdigit(c)) {
+ se->size = 10 * se->size + c - '0';
+ } else if (c == '\r') {
+ se->state = RTEMS_FTPFS_SIZE_NL;
+ } else {
+ se->size = -1;
+ }
+ break;
+ case RTEMS_FTPFS_SIZE_NL:
+ if (c != '\n') {
+ se->size = -1;
+ }
+ break;
+ default:
+ se->size = -1;
+ break;
+ }
+ }
+}
+
+static void rtems_ftpfs_get_file_size(rtems_ftpfs_entry *e, bool verbose)
+{
+ if (e->file_size < 0) {
+ if (e->write) {
+ e->file_size = 0;
+ } else {
+ rtems_ftpfs_size_entry se;
+ rtems_ftpfs_reply reply = RTEMS_FTPFS_REPLY_ERROR;
+
+ memset(&se, 0, sizeof(se));
+
+ reply = rtems_ftpfs_send_command_with_parser(
+ e,
+ "SIZE ",
+ e->filename,
+ rtems_ftpfs_size_parser,
+ &se,
+ verbose
+ );
+ if (reply == RTEMS_FTPFS_REPLY_2 && se.size >= 0) {
+ e->file_size = se.size;
+ } else {
+ e->file_size = 0;
+ }
+ }
+ }
+}
+
static int rtems_ftpfs_open(
rtems_libio_t *iop,
const char *path,
@@ -955,6 +1044,10 @@ static int rtems_ftpfs_open(
}
if (eno == 0) {
+ rtems_ftpfs_get_file_size(e, verbose);
+ }
+
+ if (eno == 0) {
const char *file_command = e->write ? "STOR " : "RETR ";
/* Open passive data connection */
@@ -1052,6 +1145,8 @@ static ssize_t rtems_ftpfs_write(
out += rv;
todo -= (size_t) rv;
+
+ e->file_size += rv;
}
return (ssize_t) (count - todo);
@@ -1119,6 +1214,7 @@ static void rtems_ftpfs_eval_path(
e->ino = me->ino;
rtems_libio_unlock();
+ e->file_size = -1;
e->ctrl_socket = -1;
eno = rtems_ftpfs_open_ctrl_connection(
@@ -1238,65 +1334,6 @@ static int rtems_ftpfs_ioctl(
return 0;
}
-typedef enum {
- RTEMS_FTPFS_SIZE_START = 0,
- RTEMS_FTPFS_SIZE_SPACE,
- RTEMS_FTPFS_SIZE_NUMBER,
- RTEMS_FTPFS_SIZE_NL
-} rtems_ftpfs_size_state;
-
-typedef struct {
- rtems_ftpfs_size_state state;
- size_t index;
- off_t size;
-} rtems_ftpfs_size_entry;
-
-static void rtems_ftpfs_size_parser(
- const char* buf,
- size_t len,
- void *arg
-)
-{
- rtems_ftpfs_size_entry *se = arg;
- size_t i = 0;
-
- for (i = 0; se->size >= 0 && i < len; ++i, ++se->index) {
- int c = buf [i];
-
- switch (se->state) {
- case RTEMS_FTPFS_SIZE_START:
- if (se->index == 2) {
- se->state = RTEMS_FTPFS_SIZE_SPACE;
- }
- break;
- case RTEMS_FTPFS_SIZE_SPACE:
- if (c == ' ') {
- se->state = RTEMS_FTPFS_SIZE_NUMBER;
- } else {
- se->size = -1;
- }
- break;
- case RTEMS_FTPFS_SIZE_NUMBER:
- if (isdigit(c)) {
- se->size = 10 * se->size + c - '0';
- } else if (c == '\r') {
- se->state = RTEMS_FTPFS_SIZE_NL;
- } else {
- se->size = -1;
- }
- break;
- case RTEMS_FTPFS_SIZE_NL:
- if (c != '\n') {
- se->size = -1;
- }
- break;
- default:
- se->size = -1;
- break;
- }
- }
-}
-
/*
* The stat() support is intended only for the cp shell command. Each request
* will return that we have a regular file with read, write and execute
@@ -1319,24 +1356,9 @@ static int rtems_ftpfs_fstat(
if (e->do_size_command) {
const rtems_ftpfs_mount_entry *me = loc->mt_entry->fs_info;
- rtems_ftpfs_size_entry se;
- rtems_ftpfs_reply reply = RTEMS_FTPFS_REPLY_ERROR;
- memset(&se, 0, sizeof(se));
-
- reply = rtems_ftpfs_send_command_with_parser(
- e,
- "SIZE ",
- e->filename,
- rtems_ftpfs_size_parser,
- &se,
- me->verbose
- );
- if (reply == RTEMS_FTPFS_REPLY_2 && se.size >= 0) {
- st->st_size = se.size;
- } else {
- eno = EIO;
- }
+ rtems_ftpfs_get_file_size(e, me->verbose);
+ st->st_size = e->file_size;
} else {
e->do_size_command = true;
}
diff --git a/cpukit/libnetworking/nfs/bootp_subr.c b/cpukit/libnetworking/nfs/bootp_subr.c
index 0645b89431..911e322879 100644
--- a/cpukit/libnetworking/nfs/bootp_subr.c
+++ b/cpukit/libnetworking/nfs/bootp_subr.c
@@ -380,7 +380,9 @@ bootpc_call(
auio.uio_rw = UIO_WRITE;
auio.uio_offset = 0;
auio.uio_resid = sizeof(*call);
+#ifndef __rtems__
auio.uio_procp = procp;
+#endif
error = sosend(so, nam, &auio, NULL, NULL, 0);
if (error) {
printf("bootpc_call: sosend: %d\n", error);
@@ -414,7 +416,9 @@ bootpc_call(
auio.uio_rw = UIO_READ;
auio.uio_offset = 0;
auio.uio_resid = sizeof(*reply);
+#ifndef __rtems__
auio.uio_procp = procp;
+#endif
rcvflg = 0;
error = soreceive(so, NULL, &auio, NULL, NULL, &rcvflg);
diff --git a/cpukit/libnetworking/rtems/ftpfs.h b/cpukit/libnetworking/rtems/ftpfs.h
index 8b1de3ca10..28ce55caf4 100644
--- a/cpukit/libnetworking/rtems/ftpfs.h
+++ b/cpukit/libnetworking/rtems/ftpfs.h
@@ -70,9 +70,8 @@ extern "C" {
*
* For the data transfer passive (= default) and active (= fallback) mode are
* supported.
- *
- * @{
*/
+/**@{**/
/**
* @brief Well-known port number for FTP control connection.
diff --git a/cpukit/libqos/qreslib.h b/cpukit/libqos/qreslib.h
index 8b5af82ca5..110cc2f6be 100644
--- a/cpukit/libqos/qreslib.h
+++ b/cpukit/libqos/qreslib.h
@@ -1,8 +1,11 @@
/**
* @file qreslib.h
*
- * This include file contains all the constants and structures associated
- * with the QoS RES library in RTEMS.
+ * @brief Constants and Structures Associated
+ * with the QoS RES library in RTEMS
+ *
+ * This include file contains all the constants and structures
+ * associated with the QoS RES library in RTEMS.
*
* @note The library is available only together with CBS scheduler.
*/
diff --git a/cpukit/posix/include/aio.h b/cpukit/posix/include/aio.h
index f4f824ab69..8896fa168e 100644
--- a/cpukit/posix/include/aio.h
+++ b/cpukit/posix/include/aio.h
@@ -1,6 +1,8 @@
/**
- * @file aio.h
+ * @file
*
+ * @brief POSIX Asynchronous Input and Output
+ *
* This file contains the definitions related to POSIX Asynchronous
* Input and Output,
*/
@@ -26,10 +28,12 @@ extern "C" {
/**
* @defgroup POSIX_AIO POSIX Asynchronous I/O Support
*
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*
* @brief POSIX Asynchronous Input and Output
+ *
*/
+/**@{**/
#if defined(_POSIX_ASYNCHRONOUS_IO)
@@ -135,16 +139,18 @@ ssize_t aio_return(
);
/**
- * @brief Cancel Asynchronous I/O Operation
+ * @brief Cancel asynchronous I/O operation.
*
- * 6.7.7 Cancel Asynchronous I/O Operation, P1003.1b-1993, p. 163
+ * 6.7.7 Cancel Asynchronous I/O Operation, P1003.1b-1993, p. 163
*
- * @param[in] filedes is the file descriptor
- * @param[in] aiocbp is the asynchronous I/O control block
+ * @param[in] filedes is the file descriptor
+ * @param[in] aiocbp is a pointer to the asynchronous I/O control block
*
- * @return This method returns AIO_CANCELED if the requested operation(s)
- * were canceled. Otherwise, AIO_NOTCANCELED is returned indicating
- * that at least one of the requested operation(s) cannot be canceled
+ * @retval AIO_CANCELED The requested operation(s) were canceled.
+ * @retval AIO_NOTCANCELED Some of the requested operation(s) cannot be
+ * canceled since they are in progress.
+ * @retval AIO_ALLDONE None of the requested operation(s) could be canceled
+ * since they are already complete
*/
int aio_cancel(
int filedes,
@@ -176,6 +182,8 @@ int aio_fsync(
#endif /* _POSIX_ASYNCHRONOUS_IO */
+/** @} */
+
#ifdef __cplusplus
}
#endif
diff --git a/cpukit/posix/include/mqueue.h b/cpukit/posix/include/mqueue.h
index a35d94ccc4..34a60657a7 100644
--- a/cpukit/posix/include/mqueue.h
+++ b/cpukit/posix/include/mqueue.h
@@ -1,6 +1,8 @@
/**
- * @file mqueue.h
+ * @file
*
+ * @brief POSIX Message Queues
+ *
* This file contains the definitions related to POSIX Message Queues.
*
* The structure of the routines is identical to that of POSIX
@@ -39,11 +41,12 @@
#include <rtems/score/object.h>
/**
- * @defgroup POSIX_MQUEUE Message Queues
+ * @defgroup POSIX_MQUEUE POSIX Message Queues
*
- * @ingroup POSIX
+ * @ingroup POSIXAPI
+ *
*/
-/**@{*/
+/**@{**/
#ifdef __cplusplus
extern "C" {
@@ -54,14 +57,14 @@ extern "C" {
*/
/**
- * Message queue id type.
+ * Message queue id type.
*
- * @note Use uint32_t since all POSIX Ids are 32-bit currently.
+ * NOTE: Use uint32_t since all POSIX Ids are 32-bit currently.
*/
typedef uint32_t mqd_t;
/**
- * This is the message queue attributes structure.
+ * This is the message queue attributes structure.
*/
struct mq_attr {
/** This is the message queue flags */
@@ -75,7 +78,7 @@ struct mq_attr {
};
/**
- * 15.2.2 Open a Message Queue, P1003.1b-1993, p. 272
+ * 15.2.2 Open a Message Queue, P1003.1b-1993, p. 272
*/
mqd_t mq_open(
const char *name,
@@ -84,37 +87,37 @@ mqd_t mq_open(
);
/**
- * 15.2.2 Close a Message Queue, P1003.1b-1993, p. 275
+ * 15.2.2 Close a Message Queue, P1003.1b-1993, p. 275
*/
int mq_close(
mqd_t mqdes
);
/**
- * @brief Remove a Message Queue
+ * @brief Remove a message queue.
*
- * 15.2.2 Remove a Message Queue, P1003.1b-1993, p. 276
+ * 15.2.2 Remove a Message Queue, P1003.1b-1993, p. 276
*
- * NOTE: The structure of the routines is identical to that of POSIX
- * Message_queues to leave the option of having unnamed message
- * queues at a future date. They are currently not part of the
- * POSIX standard but unnamed message_queues are. This is also
- * the reason for the apparently unnecessary tracking of
- * the process_shared attribute. [In addition to the fact that
- * it would be trivial to add pshared to the mq_attr structure
- * and have process private message queues.]
+ * NOTE: The structure of the routines is identical to that of POSIX
+ * Message_queues to leave the option of having unnamed message
+ * queues at a future date. They are currently not part of the
+ * POSIX standard but unnamed message_queues are. This is also
+ * the reason for the apparently unnecessary tracking of
+ * the process_shared attribute. [In addition to the fact that
+ * it would be trivial to add pshared to the mq_attr structure
+ * and have process private message queues.]
*
- * This code ignores the O_RDONLY/O_WRONLY/O_RDWR flag at open
- * time.
+ * This code ignores the O_RDONLY/O_WRONLY/O_RDWR flag at open
+ * time.
*/
int mq_unlink(
const char *name
);
/**
- * 15.2.4 Send a Message to a Message Queue, P1003.1b-1993, p. 277
+ * 15.2.4 Send a Message to a Message Queue, P1003.1b-1993, p. 277
*
- * @note P1003.4b/D8, p. 45 adds mq_timedsend().
+ * NOTE; P1003.4b/D8, p. 45 adds mq_timedsend().
*/
int mq_send(
mqd_t mqdes,
@@ -128,11 +131,9 @@ int mq_send(
#include <time.h>
/**
- * @brief Send a Message to a Message Queue
+ * @brief Send a message to a message queue.
*
- * 15.2.4 Send a Message to a Message Queue, P1003.1b-1993, p. 277
- *
- * @note P1003.4b/D8, p. 45 adds mq_timedsend().
+ * @see mq_send()
*/
int mq_timedsend(
mqd_t mqdes,
@@ -145,11 +146,11 @@ int mq_timedsend(
#endif /* _POSIX_TIMEOUTS */
/**
- * @brief Receive a Message From a Message Queue
+ * @brief Receive a message from a message queue.
*
- * 15.2.5 Receive a Message From a Message Queue, P1003.1b-1993, p. 279
+ * 15.2.5 Receive a Message From a Message Queue, P1003.1b-1993, p. 279
*
- * @note P1003.4b/D8, p. 45 adds mq_timedreceive().
+ * NOTE: P1003.4b/D8, p. 45 adds mq_timedreceive().
*/
ssize_t mq_receive(
mqd_t mqdes,
@@ -173,7 +174,7 @@ ssize_t mq_timedreceive(
#if defined(_POSIX_REALTIME_SIGNALS)
/**
- * @brief Notify Process that a Message is Available on a Queue
+ * @brief Notify process that a message is available on a queue.
*
* 15.2.6 Notify Process that a Message is Available on a Queue,
* P1003.1b-1993, p. 280
@@ -186,7 +187,7 @@ int mq_notify(
#endif /* _POSIX_REALTIME_SIGNALS */
/**
- * @brief Set Message Queue Attributes
+ * @brief Set message queue attributes.
*
* 15.2.7 Set Message Queue Attributes, P1003.1b-1993, p. 281
*/
@@ -205,11 +206,13 @@ int mq_getattr(
struct mq_attr *mqstat
);
+/** @} */
+
#ifdef __cplusplus
}
#endif
#endif /* _POSIX_MESSAGE_PASSING */
-/**@}*/
+
#endif
/* end of include file */
diff --git a/cpukit/posix/include/rtems/posix/aio_misc.h b/cpukit/posix/include/rtems/posix/aio_misc.h
index da926086ac..4dfcb592c2 100644
--- a/cpukit/posix/include/rtems/posix/aio_misc.h
+++ b/cpukit/posix/include/rtems/posix/aio_misc.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/aio_misc.h
+ * @file
+ *
+ * @brief POSIX Asynchronous Input and Output Private Support
*
* This defines private information for the AIO implementation.
*/
diff --git a/cpukit/posix/include/rtems/posix/barrier.h b/cpukit/posix/include/rtems/posix/barrier.h
index ce75358d5e..73c63f7162 100644
--- a/cpukit/posix/include/rtems/posix/barrier.h
+++ b/cpukit/posix/include/rtems/posix/barrier.h
@@ -1,14 +1,16 @@
/**
- * @file rtems/posix/barrier.h
+ * @file
+ *
+ * @brief Constants and Structures Associated with the POSIX Barrier Manager
*
- * This include file contains all the constants and structures associated
- * with the POSIX Barrier Manager.
+ * This include file contains all the constants and structures associated
+ * with the POSIX Barrier Manager.
*
- * Directives provided are:
+ * Directives provided are:
*
- * - create a barrier
- * - delete a barrier
- * - wait for a barrier
+ * - create a barrier
+ * - delete a barrier
+ * - wait for a barrier
*/
/*
@@ -23,6 +25,17 @@
#ifndef _RTEMS_POSIX_BARRIER_H
#define _RTEMS_POSIX_BARRIER_H
+/**
+ * @defgroup POSIXBarrier POSIX Barriers
+ *
+ * @ingroup POSIXAPI
+ *
+ * This encapsulates functionality which implements the RTEMS API
+ * Barrier Manager.
+ *
+ */
+/**@{**/
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -31,7 +44,7 @@ extern "C" {
#include <rtems/score/corebarrier.h>
/**
- * This type defines the control block used to manage each barrier.
+ * This type defines the control block used to manage each barrier.
*/
typedef struct {
@@ -49,26 +62,22 @@ typedef struct {
POSIX_EXTERN Objects_Information _POSIX_Barrier_Information;
/**
- * @brief _POSIX_Barrier_Manager_initialization
+ * @brief POSIX barrier manager initialization.
*
- * This routine performs the initialization necessary for this manager.
- *
- * @param[in] maximum_barriers is the total number of barriers allowed to
- * concurrently be active in the system.
+ * This routine performs the initialization necessary for this manager.
*/
void _POSIX_Barrier_Manager_initialization(void);
/**
- * @brief _POSIX_Barrier_Translate_core_barrier_return_code (
- *
- * This routine translates SuperCore Barrier status codes into the
- * corresponding POSIX ones.
+ * @brief POSIX translate barrier return code.
+ *
+ * This routine translates SuperCore Barrier status codes into the
+ * corresponding POSIX ones.
*
+ * @param[in] the_barrier_status is the SuperCore status.
*
- * @param[in] the_barrier_status is the SuperCore status.
- *
- * @return the corresponding POSIX status
+ * @return the corresponding POSIX status
*/
int _POSIX_Barrier_Translate_core_barrier_return_code(
CORE_barrier_Status the_barrier_status
@@ -78,6 +87,8 @@ int _POSIX_Barrier_Translate_core_barrier_return_code(
#include <rtems/posix/barrier.inl>
#endif
+/** @} */
+
#ifdef __cplusplus
}
#endif
diff --git a/cpukit/posix/include/rtems/posix/cancel.h b/cpukit/posix/include/rtems/posix/cancel.h
index 06b8efd645..c1fff9c04d 100644
--- a/cpukit/posix/include/rtems/posix/cancel.h
+++ b/cpukit/posix/include/rtems/posix/cancel.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/cancel.h
+ * @file
+ *
+ * @brief POSIX Thread Cancelation Support
*
* This file contains the prototypes and data types used to implement
* POSIX thread cancelation.
@@ -20,7 +22,7 @@
#include <rtems/posix/threadsup.h>
/**
- * This structure is used to manage the cancelation handlers.
+ * This structure is used to manage the cancelation handlers.
*/
typedef struct {
/** This field is the Chain Node so we can put these on lists. */
@@ -32,25 +34,25 @@ typedef struct {
} POSIX_Cancel_Handler_control;
/**
- * @brief _POSIX_Threads_cancel_run
+ * @brief POSIX run thread cancelation.
*
- * This support routine runs through the chain of cancel handlers that
- * have been registered and executes them.
+ * This support routine runs through the chain of cancel handlers that
+ * have been registered and executes them.
*
- * @param[in] the_thread is the thread whose cancelation handlers
- * should be run
+ * @param[in] the_thread is a pointer to the thread whose cancelation handlers
+ * should be run
*/
void _POSIX_Threads_cancel_run(
Thread_Control *the_thread
);
/**
- * @brief _POSIX_Thread_Evaluate_cancellation_and_enable_dispatch
+ * @brief POSIX evaluate thread cancelation and enable dispatch.
*
- * This routine separates a piece of code that existed as part of
- * another routine, but had to be separated to improve coverage.
+ * This routine separates a piece of code that existed as part of
+ * another routine, but had to be separated to improve coverage.
*
- * @param[in] the_thread is the thread to evaluate canceling
+ * @param[in] the_thread is a pointer to the thread to evaluate canceling
*/
void _POSIX_Thread_Evaluate_cancellation_and_enable_dispatch (
Thread_Control *the_thread
diff --git a/cpukit/posix/include/rtems/posix/cond.h b/cpukit/posix/include/rtems/posix/cond.h
index 93b5b4cf2a..8ff34e0ce6 100644
--- a/cpukit/posix/include/rtems/posix/cond.h
+++ b/cpukit/posix/include/rtems/posix/cond.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/cond.h
+ * @file
+ *
+ * @brief POSIX Condition Variables Private Support
*
* This include file contains all the private support information for
* POSIX condition variables.
@@ -18,11 +20,12 @@
#define _RTEMS_POSIX_COND_H
/**
- * @defgroup POSIX_COND_VARS Condition Variables
+ * @defgroup POSIX_COND_VARS POSIX Condition Variables
*
- * @ingroup POSIX
+ * @ingroup POSIXAPI
+ *
*/
-/**@{*/
+/**@{**/
#ifdef __cplusplus
extern "C" {
#endif
@@ -132,24 +135,21 @@ RTEMS_INLINE_ROUTINE bool _POSIX_Condition_variables_Is_null (
POSIX_Condition_variables_Control *the_condition_variable
);
-/*
- * @brief Implements wake up version of the "signal" operation
- *
- * _POSIX_Condition_variables_Signal_support
- *
- * DESCRIPTION:
+/**
+ * @brief Implements wake up version of the "signal" operation.
+ *
+ * DESCRIPTION:
*
- * A support routine which implements guts of the broadcast and single task
- * wake up version of the "signal" operation.
+ * A support routine which implements guts of the broadcast and single task
+ * wake up version of the "signal" operation.
*/
-
int _POSIX_Condition_variables_Signal_support(
pthread_cond_t *cond,
bool is_broadcast
);
/**
- * @brief POSIX Condition Variables Wait Support
+ * @brief POSIX condition variables wait support.
*
* DESCRIPTION:
*
@@ -180,9 +180,11 @@ POSIX_Condition_variables_Control *_POSIX_Condition_variables_Get (
#include <rtems/posix/cond.inl>
+/** @} */
+
#ifdef __cplusplus
}
#endif
-/**@}*/
+
#endif
/* end of include file */
diff --git a/cpukit/posix/include/rtems/posix/config.h b/cpukit/posix/include/rtems/posix/config.h
index ddd63acae6..460ddcb2a9 100644
--- a/cpukit/posix/include/rtems/posix/config.h
+++ b/cpukit/posix/include/rtems/posix/config.h
@@ -1,6 +1,8 @@
/**
- * @file rtems/posix/config.h
+ * @file
*
+ * @brief User Defined Configuration Parameters Specific For The POSIX API
+ *
* This include file contains the table of user defined configuration
* parameters specific for the POSIX API.
*/
@@ -60,10 +62,10 @@ typedef struct {
} posix_api_configuration_table;
/**
- * @brief POSIX API Configuration Table
+ * @brief POSIX API configuration table.
*
- * This is the POSIX API Configuration Table expected to be generated
- * by confdefs.h.
+ * This is the POSIX API Configuration Table expected to be generated
+ * by confdefs.h.
*/
extern posix_api_configuration_table Configuration_POSIX_API;
diff --git a/cpukit/posix/include/rtems/posix/key.h b/cpukit/posix/include/rtems/posix/key.h
index edcaa42685..0bb1dbe6a8 100644
--- a/cpukit/posix/include/rtems/posix/key.h
+++ b/cpukit/posix/include/rtems/posix/key.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/key.h
+ * @file
+ *
+ * @brief POSIX Key Private Support
*
* This include file contains all the private support information for
* POSIX key.
@@ -20,20 +22,22 @@
#include <rtems/score/object.h>
/**
- * @defgroup POSIX_KEY Key
+ * @defgroup POSIX_KEY POSIX Key
*
- * @ingroup POSIX
+ * @ingroup POSIXAPI
+ *
*/
-/**@{*/
+/**@{**/
+
#ifdef __cplusplus
extern "C" {
#endif
/**
- * This is the data Structure used to manage a POSIX key.
+ * This is the data Structure used to manage a POSIX key.
*
- * @note The Values is a table indexed by the index portion of the
- * ID of the currently executing thread.
+ * NOTE: The Values is a table indexed by the index portion of the
+ * ID of the currently executing thread.
*/
typedef struct {
/** This field is the Object control structure. */
@@ -45,52 +49,53 @@ typedef struct {
} POSIX_Keys_Control;
/**
- * The following defines the information control block used to manage
- * this class of objects.
+ * The following defines the information control block used to manage
+ * this class of objects.
*/
POSIX_EXTERN Objects_Information _POSIX_Keys_Information;
/**
- * @brief POSIX Keys Manager Initialization
+ * @brief POSIX keys manager initialization.
*
- * This routine performs the initialization necessary for this manager.
+ * This routine performs the initialization necessary for this manager.
*/
void _POSIX_Key_Manager_initialization(void);
/**
- * @brief Thread-Specific Data Key Create
+ * @brief Create thread-specific data POSIX key.
*
- * This function executes all the destructors associated with the thread's
- * keys. This function will execute until all values have been set to NULL.
+ * This function executes all the destructors associated with the thread's
+ * keys. This function will execute until all values have been set to NULL.
*
- * @param[in] thread is the thread whose keys should have all their
- * destructors run.
+ * @param[in] thread is a pointer to the thread whose keys should have
+ * all their destructors run.
*
- * @note This is the routine executed when a thread exits to
- * run through all the keys and do the destructor action.
+ * NOTE: This is the routine executed when a thread exits to
+ * run through all the keys and do the destructor action.
*/
void _POSIX_Keys_Run_destructors(
Thread_Control *thread
);
/**
- * @brief Free Key Memory
+ * @brief Free a POSIX key table memory.
*
- * This memory frees the key table memory associated with @a the_key.
+ * This memory frees the key table memory associated with @a the_key.
*
- * @param[in] the_key is the POSIX key to free the table memory of.
+ * @param[in] the_key is a pointer to the POSIX key to free
+ * the table memory of.
*/
void _POSIX_Keys_Free_memory(
POSIX_Keys_Control *the_key
);
/**
- * @brief _POSIX_Keys_Free
+ * @brief Free a POSIX keys control block.
*
- * This routine frees a keys control block to the
- * inactive chain of free keys control blocks.
+ * This routine frees a keys control block to the
+ * inactive chain of free keys control blocks.
*
- * @param[in] the_key is the POSIX key to free.
+ * @param[in] the_key is a pointer to the POSIX key to free.
*/
RTEMS_INLINE_ROUTINE void _POSIX_Keys_Free (
POSIX_Keys_Control *the_key
@@ -98,9 +103,11 @@ RTEMS_INLINE_ROUTINE void _POSIX_Keys_Free (
#include <rtems/posix/key.inl>
+/** @} */
+
#ifdef __cplusplus
}
#endif
-/**@}*/
+
#endif
/* end of include file */
diff --git a/cpukit/posix/include/rtems/posix/mqueue.h b/cpukit/posix/include/rtems/posix/mqueue.h
index 582d5b73b2..d6f370cbf8 100644
--- a/cpukit/posix/include/rtems/posix/mqueue.h
+++ b/cpukit/posix/include/rtems/posix/mqueue.h
@@ -1,20 +1,22 @@
/**
- * @file rtems/posix/mqueue.h
+ * @file
+ *
+ * @brief POSIX Message Queues Private Private Support
*
* This include file contains all the private support information for
* POSIX Message Queues.
*
- * The structure of the routines is identical to that of POSIX
- * Message_queues to leave the option of having unnamed message
- * queues at a future date. They are currently not part of the
- * POSIX standard but unnamed message_queues are. This is also
- * the reason for the apparently unnecessary tracking of
- * the process_shared attribute. [In addition to the fact that
- * it would be trivial to add pshared to the mq_attr structure
- * and have process private message queues.]
- *
- * This code ignores the O_RDONLY/O_WRONLY/O_RDWR flag at open
- * time.
+ * The structure of the routines is identical to that of POSIX
+ * Message_queues to leave the option of having unnamed message
+ * queues at a future date. They are currently not part of the
+ * POSIX standard but unnamed message_queues are. This is also
+ * the reason for the apparently unnecessary tracking of
+ * the process_shared attribute. [In addition to the fact that
+ * it would be trivial to add pshared to the mq_attr structure
+ * and have process private message queues.]
+ *
+ * This code ignores the O_RDONLY/O_WRONLY/O_RDWR flag at open
+ * time.
*/
/*
@@ -36,19 +38,16 @@
#include <rtems/posix/posixapi.h>
/**
- * @defgroup POSIX_MQUEUE_P Message Queues Private Support Information
+ * @defgroup POSIX_MQUEUE_P Message Queues Private Support
*
- * @ingroup POSIX
+ * @ingroup POSIXAPI
+ *
*/
-/**@{*/
+/**@{**/
#ifdef __cplusplus
extern "C" {
#endif
-/**
- * @ingroup POSIX_MQUEUE
- */
-
/*
* Data Structure used to manage a POSIX message queue
*/
@@ -78,24 +77,24 @@ typedef struct {
POSIX_EXTERN Objects_Information _POSIX_Message_queue_Information;
POSIX_EXTERN Objects_Information _POSIX_Message_queue_Information_fds;
-/*
- * @brief Initializes message_queue Manager Related Data Structures
+/**
+ * @brief Initialize message_queue manager related data structures.
*
- * DESCRIPTION:
+ * DESCRIPTION:
*
- * This routine performs the initialization necessary for this manager.
+ * This routine performs the initialization necessary for this manager.
*
- * NOTE: The structure of the routines is identical to that of POSIX
- * Message_queues to leave the option of having unnamed message
- * queues at a future date. They are currently not part of the
- * POSIX standard but unnamed message_queues are. This is also
- * the reason for the apparently unnecessary tracking of
- * the process_shared attribute. [In addition to the fact that
- * it would be trivial to add pshared to the mq_attr structure
- * and have process private message queues.]
+ * NOTE: The structure of the routines is identical to that of POSIX
+ * Message_queues to leave the option of having unnamed message
+ * queues at a future date. They are currently not part of the
+ * POSIX standard but unnamed message_queues are. This is also
+ * the reason for the apparently unnecessary tracking of
+ * the process_shared attribute. [In addition to the fact that
+ * it would be trivial to add pshared to the mq_attr structure
+ * and have process private message queues.]
*
- * This code ignores the O_RDONLY/O_WRONLY/O_RDWR flag at open
- * time.
+ * This code ignores the O_RDONLY/O_WRONLY/O_RDWR flag at open
+ * time.
*
*/
@@ -120,12 +119,12 @@ int _POSIX_Message_queue_Create_support(
);
/**
- * @brief POSIX Delete Message Queue
+ * @brief Delete a POSIX message queue.
*
- * DESCRIPTION:
+ * DESCRIPTION:
*
- * This routine supports the mq_unlink and mq_close routines by
- * doing most of the work involved with removing a message queue.
+ * This routine supports the mq_unlink and mq_close routines by
+ * doing most of the work involved with removing a message queue.
*/
void _POSIX_Message_queue_Delete(
POSIX_Message_queue_Control *the_mq
@@ -271,9 +270,11 @@ int _POSIX_Message_queue_Translate_core_message_queue_return_code(
#include <rtems/posix/mqueue.inl>
+/** @} */
+
#ifdef __cplusplus
}
#endif
-/**@}*/
+
#endif
/* end of include file */
diff --git a/cpukit/posix/include/rtems/posix/mutex.h b/cpukit/posix/include/rtems/posix/mutex.h
index 727745ae67..f228644377 100644
--- a/cpukit/posix/include/rtems/posix/mutex.h
+++ b/cpukit/posix/include/rtems/posix/mutex.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/mutex.h
+ * @file
+ *
+ * @brief POSIX MUTEX Support
*
* This include file contains all the private support information for
* POSIX mutex's.
@@ -24,10 +26,12 @@ extern "C" {
/**
* @defgroup POSIX_MUTEX POSIX Mutex Support
*
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*
* @brief Private Support Information for POSIX Mutex
+ *
*/
+/**@{**/
#include <rtems/score/coremutex.h>
#include <pthread.h>
@@ -138,16 +142,28 @@ int _POSIX_Mutex_Lock_support(
);
/**
- * @brief POSIX Mutex Translate Core Mutex Return Code
- *
- * DESCRIPTION:
- *
- * A support routine which converts core mutex status codes into the
- * appropriate POSIX status values.
- *
- * @param[in] the_mutex_status is the mutex status code to translate
- *
- * @return the translated POSIX status code
+ * @brief Convert core mutex status codes into the appropriate POSIX status
+ * values.
+ *
+ * DESCRIPTION:
+ *
+ * A support routine which converts core mutex status codes into the
+ * appropriate POSIX status values.
+ *
+ * @param[in] the_mutex_status is the mutex status code to translate
+ *
+ * @retval 0 Mutex status code indicates the operation completed successfully.
+ * @retval EBUSY Mutex status code indicates that the operation unable to
+ * complete immediately because the resource was unavailable.
+ * @retval EDEADLK Mutex status code indicates that an attempt was made to
+ * relock a mutex for which nesting is not configured.
+ * @retval EPERM Mutex status code indicates that an attempt was made to
+ * release a mutex by a thread other than the thread which locked it.
+ * @retval EINVAL Mutex status code indicates that the thread was blocked
+ * waiting for an operation to complete and the mutex was deleted.
+ * @retval ETIMEDOUT Mutex status code indicates that the calling task was
+ * willing to block but the operation was unable to complete within the time
+ * allotted because the resource never became available.
*/
int _POSIX_Mutex_Translate_core_mutex_return_code(
@@ -198,5 +214,7 @@ POSIX_Mutex_Control *_POSIX_Mutex_Get_interrupt_disable (
}
#endif
+/** @} */
+
#endif
/* end of include file */
diff --git a/cpukit/posix/include/rtems/posix/posixapi.h b/cpukit/posix/include/rtems/posix/posixapi.h
index cb61ba0036..6ae5dfabfd 100644
--- a/cpukit/posix/include/rtems/posix/posixapi.h
+++ b/cpukit/posix/include/rtems/posix/posixapi.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/posixapi.h
+ * @file
+ *
+ * @brief POSIX API Implementation
*
* This include file defines the top level interface to the POSIX API
* implementation in RTEMS.
@@ -21,27 +23,35 @@
#include <rtems/score/object.h>
/**
- * @brief Initialize POSIX API
+ * @defgroup POSIXAPI RTEMS POSIX API
*
- * This method is responsible for initializing each of the POSIX
- * API managers.
+ * RTEMS POSIX API definitions and modules.
+ *
+ */
+/**@{**/
+
+/**
+ * @brief Initialize POSIX API.
+ *
+ * This method is responsible for initializing each of the POSIX
+ * API managers.
*/
void _POSIX_API_Initialize(void);
/**
- * @brief Queries the object identifier @a id for a @a name.
+ * @brief Queries the object identifier @a id for a @a name.
*
- * @param[in] information Object information.
- * @param[in] name Zero terminated name string to look up.
- * @param[out] id Pointer for identifier. The pointer must be valid.
- * @param[out] len Pointer for string length. The pointer must be valid.
+ * @param[in] information Object information.
+ * @param[in] name Zero terminated name string to look up.
+ * @param[out] id Pointer for identifier. The pointer must be valid.
+ * @param[out] len Pointer for string length. The pointer must be valid.
*
- * @retval 0 Successful operation.
- * @retval EINVAL The @a name pointer is @c NULL or the @a name string has
- * zero length.
- * @retval ENAMETOOLONG The @a name string length is greater than or equal to
- * @c NAME_MAX.
- * @retval ENOENT Found no corresponding identifier.
+ * @retval 0 Successful operation.
+ * @retval EINVAL The @a name pointer is @c NULL or the @a name string has
+ * zero length.
+ * @retval ENAMETOOLONG The @a name string length is greater than or equal to
+ * @c NAME_MAX.
+ * @retval ENOENT Found no corresponding identifier.
*/
int _POSIX_Name_to_id(
Objects_Information *information,
@@ -50,5 +60,7 @@ int _POSIX_Name_to_id(
size_t *len
);
+/** @} */
+
#endif
/* end of include file */
diff --git a/cpukit/posix/include/rtems/posix/priority.h b/cpukit/posix/include/rtems/posix/priority.h
index a6a3c289da..e9ee2f900b 100644
--- a/cpukit/posix/include/rtems/posix/priority.h
+++ b/cpukit/posix/include/rtems/posix/priority.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/priority.h
+ * @file
+ *
+ * @brief POSIX Priority Support
*
* This include file defines the interface to the POSIX priority
* implementation.
@@ -20,28 +22,30 @@
/**
* @defgroup POSIX_PRIORITY POSIX Priority Support
*
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*
* @brief Interface to the POSIX Priority Implementation
+ *
*/
+/**@{**/
#include <rtems/score/priority.h>
/**
- * 1003.1b-1993,2.2.2.80 definition of priority, p. 19
+ * 1003.1b-1993,2.2.2.80 definition of priority, p. 19
*
- * "Numerically higher values represent higher priorities."
+ * "Numerically higher values represent higher priorities."
*
- * Thus, RTEMS Core has priorities run in the opposite sense of the POSIX API.
+ * Thus, RTEMS Core has priorities run in the opposite sense of the POSIX API.
*
- * There are only 254 posix priority levels since a task at priority level
- * 255 would never run because of the RTEMS idle task. This is necessary
- * because GNAT maps the lowest Ada task priority to the lowest thread
- * priority. The lowest priority Ada task should get to run, so there is
- * a fundamental conflict with having 255 priorities.
+ * There are only 254 posix priority levels since a task at priority level
+ * 255 would never run because of the RTEMS idle task. This is necessary
+ * because GNAT maps the lowest Ada task priority to the lowest thread
+ * priority. The lowest priority Ada task should get to run, so there is
+ * a fundamental conflict with having 255 priorities.
*
- * But since RTEMS can be configured with fewer than 256 priorities,
- * we use the internal constant.
+ * But since RTEMS can be configured with fewer than 256 priorities,
+ * we use the internal constant.
*/
#define POSIX_SCHEDULER_MAXIMUM_PRIORITY (PRIORITY_MAXIMUM - 1)
@@ -52,46 +56,46 @@
#define POSIX_SCHEDULER_MINIMUM_PRIORITY (1)
/**
- * @brief POSIX Is Priority Valid
+ * @brief Check if POSIX priority is valid.
*
- * 1003.1b-1993,2.2.2.80 definition of priority, p. 19
+ * 1003.1b-1993,2.2.2.80 definition of priority, p. 19
*
- * "Numerically higher values represent higher priorities."
+ * "Numerically higher values represent higher priorities."
*
- * Thus, RTEMS Core has priorities run in the opposite sense of the POSIX API.
+ * Thus, RTEMS Core has priorities run in the opposite sense of the POSIX API.
*
- * @param[in] priority is the priority to test
+ * @param[in] priority is the priority to test
*
- * @return This method returns true if the priority is valid and
- * false otherwise.
+ * @retval TRUE The priority is valid.
+ * @retval FALSE The priority is invalid.
*/
bool _POSIX_Priority_Is_valid(
int priority
);
/**
- * @brief Convert POSIX Priority To SuperCore Priority
+ * @brief Convert POSIX priority to SuperCore priority.
*
- * This method converts a POSIX API priority into onto the corresponding
- * SuperCore value.
+ * This method converts a POSIX API priority into onto the corresponding
+ * SuperCore value.
*
- * @param[in] priority is the POSIX API priority.
+ * @param[in] priority is the POSIX API priority.
*
- * @return This method returns the corresponding SuperCore priority.
+ * @return This method returns the corresponding SuperCore priority.
*/
RTEMS_INLINE_ROUTINE Priority_Control _POSIX_Priority_To_core(
int priority
);
/**
- * @brief Convert SuperCore Priority To POSIX Priority
+ * @brief Convert SuperCore priority To POSIX priority.
*
- * This method converts a SuperCore priority into onto the corresponding
- * POSIX API value.
+ * This method converts a SuperCore priority into onto the corresponding
+ * POSIX API value.
*
- * @param[in] priority is the POSIX API priority.
+ * @param[in] priority is the POSIX API priority.
*
- * @return This method returns the corresponding POSIX priority.
+ * @return This method returns the corresponding POSIX priority.
*/
RTEMS_INLINE_ROUTINE int _POSIX_Priority_From_core(
Priority_Control priority
@@ -99,4 +103,6 @@ RTEMS_INLINE_ROUTINE int _POSIX_Priority_From_core(
#include <rtems/posix/priority.inl>
+/** @} */
+
#endif
diff --git a/cpukit/posix/include/rtems/posix/psignal.h b/cpukit/posix/include/rtems/posix/psignal.h
index 604b98982c..977fade2bb 100644
--- a/cpukit/posix/include/rtems/posix/psignal.h
+++ b/cpukit/posix/include/rtems/posix/psignal.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/psignal.h
+ * @file
+ *
+ * @brief Internal Information about POSIX Signals
*
* This include file defines internal information about POSIX signals.
*/
diff --git a/cpukit/posix/include/rtems/posix/psignalimpl.h b/cpukit/posix/include/rtems/posix/psignalimpl.h
index c416a7aa1b..481a7ea57e 100644
--- a/cpukit/posix/include/rtems/posix/psignalimpl.h
+++ b/cpukit/posix/include/rtems/posix/psignalimpl.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/psignal.h
+ * @file
+ *
+ * @brief POSIX Signals Support
*
* This include file defines internal information about POSIX signals.
*/
@@ -19,10 +21,12 @@
/**
* @defgroup POSIX_SIGNALS POSIX Signals Support
*
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*
* @brief Internal Information about POSIX Signals
+ *
*/
+/**@{**/
#include <rtems/posix/psignal.h>
#include <rtems/posix/pthread.h>
@@ -72,7 +76,7 @@ extern API_extensions_Post_switch_control _POSIX_signals_Post_switch;
*/
/**
- * @brief POSIX Signals Manager Initialization
+ * @brief POSIX signals manager initialization.
*/
void _POSIX_signals_Manager_Initialization(void);
@@ -82,7 +86,7 @@ static inline void _POSIX_signals_Add_post_switch_extension(void)
}
/**
- * @brief POSIX Signals Thread Unlock
+ * @brief Unlock POSIX signals thread.
*
* XXX this routine could probably be cleaned up
*/
@@ -93,7 +97,7 @@ bool _POSIX_signals_Unblock_thread(
);
/**
- * @brief POSIX Signals Check Signal
+ * @brief Check POSIX signal.
*/
bool _POSIX_signals_Check_signal(
POSIX_API_Control *api,
@@ -102,7 +106,7 @@ bool _POSIX_signals_Check_signal(
);
/**
- * @brief POSIX Signals Clear Signals
+ * @brief Clear POSIX signals.
*/
bool _POSIX_signals_Clear_signals(
POSIX_API_Control *api,
@@ -119,7 +123,7 @@ int killinfo(
);
/**
- * @brief POSIX Signals Set Process Signals
+ * @brief Set POSIX process signals.
*/
void _POSIX_signals_Set_process_signals(
sigset_t mask
@@ -138,5 +142,7 @@ void _POSIX_signals_Clear_process_signals(
void _POSIX_signals_Abnormal_termination_handler( int signo );
+/** @} */
+
#endif
/* end of file */
diff --git a/cpukit/posix/include/rtems/posix/pthread.h b/cpukit/posix/include/rtems/posix/pthread.h
index 5932d45a39..5250b70d0f 100644
--- a/cpukit/posix/include/rtems/posix/pthread.h
+++ b/cpukit/posix/include/rtems/posix/pthread.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/pthread.h
+ * @file
+ *
+ * @brief POSIX Threads Private Support
*
* This include file contains all the private support information for
* POSIX threads.
@@ -21,12 +23,6 @@
#include <rtems/posix/config.h>
#include <rtems/posix/threadsup.h>
-/**
- * @defgroup POSIX_PTHREADS Private Threads
- *
- * @ingroup POSIX
- */
-/**@{*/
#ifdef __cplusplus
extern "C" {
#endif
@@ -34,80 +30,82 @@ extern "C" {
/**
* @defgroup POSIX_PTHREAD POSIX Threads Support
*
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*
* @brief Private Support Information for POSIX Threads
+ *
*/
+/**@{**/
/**
- * The following sets the minimum stack size for POSIX threads.
+ * The following sets the minimum stack size for POSIX threads.
*/
#define PTHREAD_MINIMUM_STACK_SIZE (_Stack_Minimum() * 2)
/**
- * The following defines the information control block used to manage
- * this class of objects.
+ * The following defines the information control block used to manage
+ * this class of objects.
*/
POSIX_EXTERN Objects_Information _POSIX_Threads_Information;
/**
- * This variable contains the default POSIX Thread attributes.
+ * This variable contains the default POSIX Thread attributes.
*/
extern const pthread_attr_t _POSIX_Threads_Default_attributes;
/**
- * When the user configures a set of POSIX API initialization threads,
- * This variable will point to the method used to initialize them.
+ * When the user configures a set of POSIX API initialization threads,
+ * This variable will point to the method used to initialize them.
*
- * @note It is instantiated and initialized by confdefs.h based upon
- * application requirements.
+ * NOTE: It is instantiated and initialized by confdefs.h based upon
+ * application requirements.
*/
extern void (*_POSIX_Threads_Initialize_user_threads_p)(void);
/**
- * @brief _POSIX_Threads_Manager_initialization
+ * @brief POSIX threads manager initialization.
*
- * This routine performs the initialization necessary for this manager.
+ * This routine performs the initialization necessary for this manager.
*/
void _POSIX_Threads_Manager_initialization(void);
/**
- * @brief _POSIX_Threads_Allocate
+ * @brief Allocate POSIX thread control block.
*
- * This function allocates a pthread control block from
- * the inactive chain of free pthread control blocks.
+ * This function allocates a pthread control block from
+ * the inactive chain of free pthread control blocks.
*
- * @return This method returns a newly allocated thread.
+ * @return This method returns a newly allocated thread.
*/
RTEMS_INLINE_ROUTINE Thread_Control *_POSIX_Threads_Allocate( void );
/**
- * @brief _POSIX_Threads_Free
+ * @brief Free POSIX control block.
*
- * This routine frees a pthread control block to the
- * inactive chain of free pthread control blocks.
+ * This routine frees a pthread control block to the
+ * inactive chain of free pthread control blocks.
*
- * @param[in] the_pthread is the thread to free
+ * @param[in] the_pthread is a pointer to the thread to free.
*/
RTEMS_INLINE_ROUTINE void _POSIX_Threads_Free(
Thread_Control *the_pthread
);
/**
- * @brief _POSIX_Threads_Get
+ * @brief Map POSIX thread IDs to control blocks.
*
- * This function maps pthread IDs to pthread control blocks.
- * If ID corresponds to a local pthread, then it returns
- * the_pthread control pointer which maps to ID and location
- * is set to OBJECTS_LOCAL. if the pthread ID is global and
- * resides on a remote node, then location is set to OBJECTS_REMOTE,
- * and the_pthread is undefined. Otherwise, location is set
- * to OBJECTS_ERROR and the_pthread is undefined.
+ * This function maps pthread IDs to pthread control blocks.
+ * If ID corresponds to a local pthread, then it returns
+ * the_pthread control pointer which maps to ID and location
+ * is set to OBJECTS_LOCAL. if the pthread ID is global and
+ * resides on a remote node, then location is set to OBJECTS_REMOTE,
+ * and the_pthread is undefined. Otherwise, location is set
+ * to OBJECTS_ERROR and the_pthread is undefined.
*
- * @param[in] id is the id to lookup
- * @param[in] location points to the returned location value
+ * @param[in] id is the id to lookup
+ * @param[in] location points to the returned location value
*
- * @return This methods returns a pointer to the corresponding Thread_Control.
+ * @return This methods returns a pointer to the corresponding Thread_Control.
*/
RTEMS_INLINE_ROUTINE Thread_Control *_POSIX_Threads_Get(
pthread_t id,
@@ -115,43 +113,45 @@ RTEMS_INLINE_ROUTINE Thread_Control *_POSIX_Threads_Get(
);
/**
- * @brief _POSIX_Threads_Is_null
+ * @brief Check if a POSIX thread control block is NULL.
*
- * This function returns TRUE if the_pthread is NULL and FALSE otherwise.
+ * This function returns @c TRUE if the_pthread is @c NULL and @c FALSE
+ * otherwise.
*
- * @param[in] the_pthread is the thread pointer to check.
+ * @param[in] the_pthread is a pointer to the POSIX thread control block
+ * to check.
*
- * @return This method returns true if the thread pointer is null.
+ * @retval TRUE The thread control block is @c NULL.
+ * @retval FALSE The thread control block is not @c NULL.
*/
RTEMS_INLINE_ROUTINE bool _POSIX_Threads_Is_null(
Thread_Control *the_pthread
);
/**
- * @brief _POSIX_Threads_Sporadic_budget_callout
+ * @brief POSIX threads sporadic budget callout.
*
- * This routine handles the sporadic scheduling algorithm.
+ * This routine handles the sporadic scheduling algorithm.
*
- * @param[in] the_thread is the thread whose budget has been exceeded.
+ * @param[in] the_thread is a pointer to the thread whose budget
+ * has been exceeded.
*/
void _POSIX_Threads_Sporadic_budget_callout(
Thread_Control *the_thread
);
/**
- * _POSIX_Threads_Sporadic_budget_TSR
+ * This routine supports the sporadic scheduling algorithm. It
+ * is scheduled to be executed at the end of each replenishment
+ * period. In sporadic scheduling a thread will execute at a
+ * high priority for a user specified amount of CPU time. When
+ * it exceeds that amount of CPU time, its priority is automatically
+ * lowered. This TSR is executed when it is time to replenish
+ * the thread's processor budget and raise its priority.
*
- * This routine supports the sporadic scheduling algorithm. It
- * is scheduled to be executed at the end of each replenishment
- * period. In sporadic scheduling a thread will execute at a
- * high priority for a user specified amount of CPU time. When
- * it exceeds that amount of CPU time, its priority is automatically
- * lowered. This TSR is executed when it is time to replenish
- * the thread's processor budget and raise its priority.
- *
- * @param[in] id is ignored
- * @param[in] argument is a pointer to the Thread_Control structure
- * for the thread being replenished.
+ * @param[in] id is ignored
+ * @param[in] argument is a pointer to the Thread_Control structure
+ * for the thread being replenished.
*/
void _POSIX_Threads_Sporadic_budget_TSR(
Objects_Id id,
@@ -159,17 +159,18 @@ void _POSIX_Threads_Sporadic_budget_TSR(
);
/**
- * @brief Translate sched_param into SuperCore Terms
+ * @brief Translate sched_param into SuperCore terms.
*
- * This method translates the POSIX API sched_param into the corresponding
- * SuperCore settings.
+ * This method translates the POSIX API sched_param into the corresponding
+ * SuperCore settings.
*
- * @param[in] policy is the POSIX scheduling policy
- * @param[in] param points to the scheduling parameter structure
- * @param[in] budget_algorithm points to the output CPU Budget algorithm
- * @param[in] budget_callout points to the output CPU Callout
+ * @param[in] policy is the POSIX scheduling policy
+ * @param[in] param points to the scheduling parameter structure
+ * @param[in] budget_algorithm points to the output CPU Budget algorithm
+ * @param[in] budget_callout points to the output CPU Callout
*
- * @return This method returns 0 on success or a POSIX error code.
+ * @retval 0 Indicates success.
+ * @retval error_code POSIX error code indicating failure.
*/
int _POSIX_Thread_Translate_sched_param(
int policy,
@@ -179,7 +180,7 @@ int _POSIX_Thread_Translate_sched_param(
);
/**
- * @brief POSIX Threads Initialize User Threads Body
+ * @brief POSIX threads initialize user threads body.
*
* This routine creates and starts all configured user
* initialization threads.
@@ -188,9 +189,11 @@ extern void _POSIX_Threads_Initialize_user_threads_body(void);
#include <rtems/posix/pthread.inl>
+/** @} */
+
#ifdef __cplusplus
}
#endif
-/**@}*/
+
#endif
/* end of include file */
diff --git a/cpukit/posix/include/rtems/posix/ptimer.h b/cpukit/posix/include/rtems/posix/ptimer.h
index 1b791cc915..e06b1e9449 100644
--- a/cpukit/posix/include/rtems/posix/ptimer.h
+++ b/cpukit/posix/include/rtems/posix/ptimer.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/ptimer.h
+ * @file
+ *
+ * @brief POSIX Timers Private Support
*
* This include file contains all the private support information for
* POSIX timers.
@@ -21,11 +23,12 @@
#define _RTEMS_POSIX_PTIMER_H
/**
- * @defgroup POSIX_PRIV_TIMERS Timers
+ * @defgroup POSIX_PRIV_TIMERS POSIX Timers
*
- * @ingroup POSIX
+ * @ingroup POSIXAPI
+ *
*/
-/**@{*/
+/**@{**/
#ifdef __cplusplus
extern "C" {
#endif
@@ -89,16 +92,18 @@ int timer_gettime(
);
/**
- * @brief Get Overrun Count for a POSIX Per-Process Timer
+ * @brief Get overrun count for a POSIX per-process timer.
*
- * The expiration of a timer must increase by one a counter.
- * After the signal handler associated to the timer finishes
- * its execution, _POSIX_Timer_TSR will have to set this counter to 0.
+ * The expiration of a timer must increase by one a counter.
+ * After the signal handler associated to the timer finishes
+ * its execution, _POSIX_Timer_TSR will have to set this counter to 0.
*
- * 14.2.4 Per-Process Timers, P1003.1b-1993, p. 267
+ * 14.2.4 Per-Process Timers, P1003.1b-1993, p. 267
*/
int timer_getoverrun(
timer_t timerid
);
-/**@}*/
+
+/** @} */
+
#endif
diff --git a/cpukit/posix/include/rtems/posix/rwlock.h b/cpukit/posix/include/rtems/posix/rwlock.h
index 411384c2c6..0cfd20dad8 100644
--- a/cpukit/posix/include/rtems/posix/rwlock.h
+++ b/cpukit/posix/include/rtems/posix/rwlock.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/rwlock.h
+ * @file
+ *
+ * @brief Constants and Structures Associated with the POSIX RWLock Manager
*
* This include file contains all the constants and structures associated
* with the POSIX RWLock Manager.
@@ -30,16 +32,18 @@ extern "C" {
/**
* @defgroup POSIX_RWLOCK POSIX RWLock Manager
*
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*
* @brief Constants and Structures Associated with the POSIX RWLock Manager
+ *
*/
+/**@{**/
#include <rtems/score/object.h>
#include <rtems/score/corerwlock.h>
/**
- * This type defines the control block used to manage each RWLock.
+ * This type defines the control block used to manage each RWLock.
*/
typedef struct {
@@ -50,33 +54,38 @@ typedef struct {
} POSIX_RWLock_Control;
/**
- * The following defines the information control block used to manage
- * this class of objects.
+ * The following defines the information control block used to manage
+ * this class of objects.
*/
POSIX_EXTERN Objects_Information _POSIX_RWLock_Information;
/**
- * @brief _POSIX_RWLock_Manager_initialization
- *
- * This routine performs the initialization necessary for this manager.
+ * @brief POSIX RWLock manager initialization.
*
- * @param[in] maximum_rwlocks is the total number of RWLocks allowed to
- * concurrently be active in the system.
+ * This routine performs the initialization necessary for this manager.
*/
void _POSIX_RWLock_Manager_initialization(void);
/**
- * @brief POSIX RWLock Translate Core RWLock Return Code
+ * @brief POSIX translate core RWLock return code.
*
- * This routine translates SuperCore RWLock status codes into the
- * corresponding POSIX ones.
+ * This routine translates SuperCore RWLock status codes into the
+ * corresponding POSIX ones.
*
*
- * @param[in] the_RWLock_status is the SuperCore status.
+ * @param[in] the_RWLock_status is the SuperCore status.
*
- * @return the corresponding POSIX status
+ * @return the corresponding POSIX status
+ * @retval 0 The status indicates that the operation completed successfully.
+ * @retval EINVAL The status indicates that the thread was blocked waiting for
+ * an operation to complete and the RWLock was deleted.
+ * @retval EBUSY This status indicates that the RWLock was not
+ * immediately available.
+ * @retval ETIMEDOUT This status indicates that the calling task was
+ * willing to block but the operation was unable to complete within
+ * the time allotted because the resource never became available.
*/
int _POSIX_RWLock_Translate_core_RWLock_return_code(
CORE_RWLock_Status the_RWLock_status
@@ -86,6 +95,8 @@ int _POSIX_RWLock_Translate_core_RWLock_return_code(
#include <rtems/posix/rwlock.inl>
#endif
+/** @} */
+
#ifdef __cplusplus
}
#endif
diff --git a/cpukit/posix/include/rtems/posix/semaphore.h b/cpukit/posix/include/rtems/posix/semaphore.h
index 08ace7684f..3127c3f9aa 100644
--- a/cpukit/posix/include/rtems/posix/semaphore.h
+++ b/cpukit/posix/include/rtems/posix/semaphore.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/semaphore.h
+ * @file
+ *
+ * @brief Private Support Information for POSIX Semaphores
*
* This include file contains all the private support information for
* POSIX Semaphores.
@@ -18,19 +20,18 @@
#define _RTEMS_POSIX_SEMAPHORE_H
/**
- * @defgroup POSIX_SEMAPHORES Semaphore
+ * @defgroup POSIXSemaphorePrivate POSIX Semaphore Private Support
+ *
+ * @ingroup POSIXAPI
*
- * @ingroup POSIX
+ * This defines the internal implementation support for POSIX semaphores.
*/
/**@{*/
+
#ifdef __cplusplus
extern "C" {
#endif
-/**
- * @ingroup POSIX_SEMAPHORE
- */
-
#include <semaphore.h>
#include <rtems/score/coresem.h>
#include <rtems/posix/posixapi.h>
@@ -145,25 +146,24 @@ int _POSIX_Semaphore_Create_support(
);
/**
- * @brief POSIX Delete Semaphore
+ * @brief POSIX delete a semaphore.
*
- * DESCRIPTION:
+ * DESCRIPTION:
*
- * This routine supports the sem_close and sem_unlink routines.
+ * This routine supports the sem_close and sem_unlink routines.
*/
void _POSIX_Semaphore_Delete(
POSIX_Semaphore_Control *the_semaphore
);
-/*
- * @brief POSIX Semaphore Wait Support
+/**
+ * @brief POSIX semaphore wait support.
*
- * DESCRIPTION:
+ * DESCRIPTION:
*
- * This routine supports the sem_wait, sem_trywait, and sem_timedwait
- * services.
+ * This routine supports the sem_wait, sem_trywait, and sem_timedwait
+ * services.
*/
-
int _POSIX_Semaphore_Wait_support(
sem_t *sem,
bool blocking,
@@ -189,5 +189,7 @@ int _POSIX_Semaphore_Translate_core_semaphore_return_code(
}
#endif
+/** @} */
+
#endif
/* end of include file */
diff --git a/cpukit/posix/include/rtems/posix/sigset.h b/cpukit/posix/include/rtems/posix/sigset.h
index b0dd61fe58..0dd218913c 100644
--- a/cpukit/posix/include/rtems/posix/sigset.h
+++ b/cpukit/posix/include/rtems/posix/sigset.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/sigset.h
+ * @file
+ *
+ * @brief POSIX Signal Sets Management Helper
*
* This file defines the interface to implementation helper for management
* of POSIX Signal Sets.
diff --git a/cpukit/posix/include/rtems/posix/spinlock.h b/cpukit/posix/include/rtems/posix/spinlock.h
index 44061bd42c..34b04ebbc9 100644
--- a/cpukit/posix/include/rtems/posix/spinlock.h
+++ b/cpukit/posix/include/rtems/posix/spinlock.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/spinlock.h
+ * @file
+ *
+ * @brief POSIX Spinlock Support
*
* This include file contains all the constants and structures associated
* with the POSIX Spinlock Manager.
@@ -30,16 +32,18 @@ extern "C" {
/**
* @defgroup POSIX_SPINLOCK POSIX Spinlock Support
*
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*
* @brief Constants and Structures Associated with the POSIX Spinlock Manager
+ *
*/
+/**@{**/
#include <rtems/score/object.h>
#include <rtems/score/corespinlock.h>
/**
- * This type defines the control block used to manage each spinlock.
+ * This type defines the control block used to manage each spinlock.
*/
typedef struct {
@@ -50,33 +54,29 @@ typedef struct {
} POSIX_Spinlock_Control;
/**
- * The following defines the information control block used to manage
- * this class of objects.
+ * The following defines the information control block used to manage
+ * this class of objects.
*/
POSIX_EXTERN Objects_Information _POSIX_Spinlock_Information;
/**
- * @brief _POSIX_Spinlock_Manager_initialization
+ * @brief POSIX spinlock manager initialization.
*
- * This routine performs the initialization necessary for this manager.
- *
- * @param[in] maximum_spinlocks is the total number of spinlocks allowed to
- * concurrently be active in the system.
+ * This routine performs the initialization necessary for this manager.
*/
void _POSIX_Spinlock_Manager_initialization(void);
/**
- * @brief POSIX Spinlock Translate Core Spinlock Return Code
- *
- * This routine translates SuperCore Spinlock status codes into the
- * corresponding POSIX ones.
+ * @brief Translate core spinlock status code.
*
+ * This routine translates SuperCore Spinlock status codes into the
+ * corresponding POSIX ones.
+ *
+ * @param[in] the_spinlock_status is the SuperCore status.
*
- * @param[in] the_spinlock_status is the SuperCore status.
- *
- * @return the corresponding POSIX status
+ * @return the corresponding POSIX status
*/
int _POSIX_Spinlock_Translate_core_spinlock_return_code(
CORE_spinlock_Status the_spinlock_status
@@ -86,6 +86,8 @@ int _POSIX_Spinlock_Translate_core_spinlock_return_code(
#include <rtems/posix/spinlock.inl>
#endif
+/** @} */
+
#ifdef __cplusplus
}
#endif
diff --git a/cpukit/posix/include/rtems/posix/threadsup.h b/cpukit/posix/include/rtems/posix/threadsup.h
index c5a2e3db7e..80f64dc2a8 100644
--- a/cpukit/posix/include/rtems/posix/threadsup.h
+++ b/cpukit/posix/include/rtems/posix/threadsup.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/threadsup.h
+ * @file
+ *
+ * @brief POSIX Thread API Support
*
* This defines the POSIX thread API extension.
*/
@@ -21,18 +23,19 @@
#include <rtems/score/tqdata.h>
/**
- * @defgroup POSIX_THREAD Thread API Extension
+ * @defgroup POSIX_THREAD POSIX Thread API Extension
*
- * @ingroup POSIX
+ * @ingroup POSIXAPI
+ *
*/
-/**@{*/
+/**@{**/
#ifdef __cplusplus
extern "C" {
#endif
-/*!
- * This defines the POSIX API support structure associated with
- * each thread in a system with POSIX configured.
+/**
+ * This defines the POSIX API support structure associated with
+ * each thread in a system with POSIX configured.
*/
typedef struct {
/** This is the POSIX threads attribute set. */
@@ -46,13 +49,13 @@ typedef struct {
/** This is the thread's current set of scheduling parameters. */
struct sched_param schedparam;
/**
- * This is the high priority to execute at when using the sporadic
- * scheduler.
+ * This is the high priority to execute at when using the sporadic
+ * scheduler.
*/
int ss_high_priority;
/**
- * This is the timer which controls when the thread executes at
- * high and low priority when using the sporadic scheduler.
+ * This is the timer which controls when the thread executes at
+ * high and low priority when using the sporadic scheduler.
*/
Watchdog_Control Sporadic_timer;
@@ -78,19 +81,19 @@ typedef struct {
} POSIX_API_Control;
-/*!
- * @brief POSIX Thread Exit Shared Helper
+/**
+ * @brief POSIX thread exit shared helper.
*
- * 16.1.5.1 Thread Termination, p1003.1c/Draft 10, p. 150
+ * 16.1.5.1 Thread Termination, p1003.1c/Draft 10, p. 150
*
- * This method is a helper routine which ensures that all
- * POSIX thread calls which result in a thread exiting will
- * do so in the same manner.
+ * This method is a helper routine which ensures that all
+ * POSIX thread calls which result in a thread exiting will
+ * do so in the same manner.
*
- * @param[in] the_thread is the thread exiting or being canceled
- * @param[in] value_ptr is the value to be returned by the thread
+ * @param[in] the_thread is a pointer to the thread exiting or being canceled
+ * @param[in] value_ptr is a pointer the value to be returned by the thread
*
- * NOTE: Key destructors are executed in the POSIX api delete extension.
+ * NOTE: Key destructors are executed in the POSIX api delete extension.
*
*/
void _POSIX_Thread_Exit(
@@ -98,9 +101,11 @@ void _POSIX_Thread_Exit(
void *value_ptr
);
+/** @} */
+
#ifdef __cplusplus
}
#endif
-/**@}*/
+
#endif
/* end of include file */
diff --git a/cpukit/posix/include/rtems/posix/time.h b/cpukit/posix/include/rtems/posix/time.h
index d0dc4a27fe..735082e074 100644
--- a/cpukit/posix/include/rtems/posix/time.h
+++ b/cpukit/posix/include/rtems/posix/time.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/time.h
+ * @file
+ *
+ * @brief POSIX Time Types
*
* This defines the interface to implementation helper routines related
* to POSIX time types.
@@ -20,18 +22,19 @@
#include <rtems/score/timespec.h>
#include <rtems/score/watchdog.h>
/**
- * @defgroup POSIX_TIMETYPES Time Types
+ * @defgroup POSIX_TIMETYPES POSIX Time Types
*
- * @ingroup POSIX
+ * @ingroup POSIXAPI
+ *
*/
-/**@{*/
+/**@{**/
/**
- * @brief Absolute Timeout Conversion Results
+ * @brief Absolute timeout conversion results.
*
- * This enumeration defines the possible results of converting
- * an absolute time used for timeouts to POSIX blocking calls to
- * a number of ticks.
+ * This enumeration defines the possible results of converting
+ * an absolute time used for timeouts to POSIX blocking calls to
+ * a number of ticks.
*/
typedef enum {
/** The timeout is invalid. */
@@ -45,24 +48,25 @@ typedef enum {
} POSIX_Absolute_timeout_conversion_results_t;
/**
- * @brief Convert Absolute Timeout to Ticks
+ * @brief Convert absolute timeout to ticks.
*
- * This method takes an absolute time being used as a timeout
- * to a blocking directive, validates it and returns the number
- * of corresponding clock ticks for use by the SuperCore.
+ * This method takes an absolute time being used as a timeout
+ * to a blocking directive, validates it and returns the number
+ * of corresponding clock ticks for use by the SuperCore.
*
- * @param[in] abstime is the timeout
- * @param[in] ticks_out will contain the number of ticks
+ * @param[in] abstime is a pointer to the timeout
+ * @param[out] ticks_out will contain the number of ticks
*
- * @return This method returns the number of ticks in @a ticks_out
- * and a status value indicating whether the absolute time
- * is valid, in the past, equal to the current time or in
- * the future as it should be.
+ * @return This method returns the number of ticks in @a ticks_out
+ * and a status value indicating whether the absolute time
+ * is valid, in the past, equal to the current time or in
+ * the future as it should be.
*/
POSIX_Absolute_timeout_conversion_results_t _POSIX_Absolute_timeout_to_ticks(
const struct timespec *abstime,
Watchdog_Interval *ticks_out
);
+/** @} */
+
#endif
-/**@}*/
diff --git a/cpukit/posix/include/rtems/posix/timer.h b/cpukit/posix/include/rtems/posix/timer.h
index 1298178e95..0b70cc9950 100644
--- a/cpukit/posix/include/rtems/posix/timer.h
+++ b/cpukit/posix/include/rtems/posix/timer.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/timer.h
+ * @file
+ *
+ * @brief POSIX Timers Internal Support
*
* This include files defines the internal support for implementation of
* POSIX Timers.
@@ -22,11 +24,12 @@
#include <rtems/score/watchdog.h> /* Watchdog_Control */
/**
- * @defgroup POSIX_INTERNAL_TIMERS Timers
+ * @defgroup POSIX_INTERNAL_TIMERS POSIX Timer Private Support
*
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/**@{*/
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -34,13 +37,13 @@ extern "C" {
/* Timer is free */
#define POSIX_TIMER_STATE_FREE 0x01
-/* Created timer but not running */
+/* Created timer but not running */
#define POSIX_TIMER_STATE_CREATE_NEW 0x02
-/* Created timer and running */
+/* Created timer and running */
#define POSIX_TIMER_STATE_CREATE_RUN 0x03
-/* Created, ran and stopped timer */
+/* Created, ran and stopped timer */
#define POSIX_TIMER_STATE_CREATE_STOP 0x04
/* Indicates that the fire time is relative to the current one */
@@ -55,7 +58,6 @@ extern "C" {
#error "POSIX_TIMER_RELATIVE == TIMER_ABSTIME"
#endif
-
/*
* Data for a timer
*/
@@ -108,9 +110,11 @@ POSIX_EXTERN Objects_Information _POSIX_Timer_Information;
#include <rtems/posix/timer.inl>
#endif
+/** @} */
+
#ifdef __cplusplus
}
#endif
-/**@}*/
+
#endif
/* end of include file */
diff --git a/cpukit/posix/include/semaphore.h b/cpukit/posix/include/semaphore.h
index 37e3fd54b4..489258ecb0 100644
--- a/cpukit/posix/include/semaphore.h
+++ b/cpukit/posix/include/semaphore.h
@@ -1,5 +1,7 @@
/**
- * @file semaphore.h
+ * @file
+ *
+ * @brief Private Support Information for POSIX Semaphores
*
* This file contains definitions that are internal to the RTEMS
* implementation of POSIX Semaphores.
@@ -24,7 +26,7 @@ extern "C" {
/**
* @defgroup POSIX_SEMAPHORE POSIX Semaphores Support
*
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*
* @brief Private Support Information for POSIX Semaphores
*/
@@ -55,9 +57,9 @@ int sem_init(
);
/**
- * @brief Destroy an Unnamed Semaphore
+ * @brief Destroy an unnamed semaphore.
*
- * 11.2.2 Destroy an Unnamed Semaphore, P1003.1b-1993, p.220
+ * 11.2.2 Destroy an Unnamed Semaphore, P1003.1b-1993, p.220
*/
int sem_destroy(
sem_t *sem
@@ -75,7 +77,7 @@ sem_t *sem_open(
);
/**
- * @brief Close a Named Semaphore
+ * @brief Close a named semaphore.
*
* Routine to close a semaphore that has been opened or initialized.
*
@@ -86,7 +88,7 @@ int sem_close(
);
/**
- * @brief Remove a Named Semaphore
+ * @brief Remove a named semaphore.
*
* Unlinks a named semaphore, sem_close must also be called to remove
* the semaphore.
@@ -98,20 +100,20 @@ int sem_unlink(
);
/**
- * @brief Lock a Semaphore
+ * @brief Lock a semaphore.
*
- * 11.2.6 Lock a Semaphore, P1003.1b-1993, p.226
+ * 11.2.6 Lock a Semaphore, P1003.1b-1993, p.226
*
- * @note P1003.4b/D8 adds sem_timedwait(), p. 27
+ * NOTE: P1003.4b/D8 adds sem_timedwait(), p. 27
*/
int sem_wait(
sem_t *sem
);
/**
- * @brief Lock a Semaphore
+ * @brief Lock a semaphore.
*
- * @see sem_wait()
+ * @see sem_wait()
*/
int sem_trywait(
sem_t *sem
@@ -119,7 +121,7 @@ int sem_trywait(
#if defined(_POSIX_TIMEOUTS)
/**
- * @brief Lock a Semaphore
+ * @brief Lock a semaphore.
*/
int sem_timedwait(
sem_t *sem,
@@ -128,16 +130,16 @@ int sem_timedwait(
#endif
/**
- * @brief Unlock a Semaphore
+ * @brief Unlock a semaphore.
*
- * 11.2.7 Unlock a Semaphore, P1003.1b-1993, p.227
+ * 11.2.7 Unlock a Semaphore, P1003.1b-1993, p.227
*/
int sem_post(
sem_t *sem
);
/**
- * @brief Get the Value of a Semaphore
+ * @brief Get the value of a semaphore.
*
* 11.2.8 Get the Value of a Semaphore, P1003.1b-1993, p.229
*/
diff --git a/cpukit/posix/inline/rtems/posix/barrier.inl b/cpukit/posix/inline/rtems/posix/barrier.inl
index f78e432b07..6e439d8c66 100644
--- a/cpukit/posix/inline/rtems/posix/barrier.inl
+++ b/cpukit/posix/inline/rtems/posix/barrier.inl
@@ -1,8 +1,10 @@
/**
- * @file rtems/posix/barrier.inl
+ * @file
+ *
+ * @brief Inlined Routines from the POSIX Barrier Manager
*
- * This file contains the static inlin implementation of the inlined
- * routines from the POSIX Barrier Manager.
+ * This file contains the static inlin implementation of the inlined
+ * routines from the POSIX Barrier Manager.
*/
/*
@@ -24,10 +26,10 @@
#include <pthread.h>
/**
- * @brief _POSIX_Barrier_Allocate
+ * @brief Allocate a barrier control block.
*
- * This function allocates a barrier control block from
- * the inactive chain of free barrier control blocks.
+ * This function allocates a barrier control block from
+ * the inactive chain of free barrier control blocks.
*/
RTEMS_INLINE_ROUTINE POSIX_Barrier_Control *_POSIX_Barrier_Allocate( void )
{
@@ -36,10 +38,10 @@ RTEMS_INLINE_ROUTINE POSIX_Barrier_Control *_POSIX_Barrier_Allocate( void )
}
/**
- * @brief _POSIX_Barrier_Free
+ * @brief Free a barrier control block.
*
- * This routine frees a barrier control block to the
- * inactive chain of free barrier control blocks.
+ * This routine frees a barrier control block to the
+ * inactive chain of free barrier control blocks.
*/
RTEMS_INLINE_ROUTINE void _POSIX_Barrier_Free (
POSIX_Barrier_Control *the_barrier
@@ -49,15 +51,15 @@ RTEMS_INLINE_ROUTINE void _POSIX_Barrier_Free (
}
/**
- * @brief _POSIX_Barrier_Get
+ * @brief Get a barrier control block.
*
- * This function maps barrier IDs to barrier control blocks.
- * If ID corresponds to a local barrier, then it returns
- * the_barrier control pointer which maps to ID and location
- * is set to OBJECTS_LOCAL. if the barrier ID is global and
- * resides on a remote node, then location is set to OBJECTS_REMOTE,
- * and the_barrier is undefined. Otherwise, location is set
- * to OBJECTS_ERROR and the_barrier is undefined.
+ * This function maps barrier IDs to barrier control blocks.
+ * If ID corresponds to a local barrier, then it returns
+ * the_barrier control pointer which maps to ID and location
+ * is set to OBJECTS_LOCAL. if the barrier ID is global and
+ * resides on a remote node, then location is set to OBJECTS_REMOTE,
+ * and the_barrier is undefined. Otherwise, location is set
+ * to OBJECTS_ERROR and the_barrier is undefined.
*/
RTEMS_INLINE_ROUTINE POSIX_Barrier_Control *_POSIX_Barrier_Get (
pthread_barrier_t *barrier,
@@ -72,9 +74,16 @@ RTEMS_INLINE_ROUTINE POSIX_Barrier_Control *_POSIX_Barrier_Get (
}
/**
- * @brief _POSIX_Barrier_Is_null
+ * @brief Check if a barrier control block is NULL.
*
- * This function returns TRUE if the_barrier is NULL and FALSE otherwise.
+ * This function returns @c TRUE if the_barrier is @c NULL and @c FALSE
+ * otherwise.
+ *
+ * @param[in] the_barrier is the pointer to the barrier control block
+ * to be checked.
+ *
+ * @retval TRUE The barrier control block is @c NULL.
+ * @retval FALSE The barrier control block is not @c NULL.
*/
RTEMS_INLINE_ROUTINE bool _POSIX_Barrier_Is_null (
POSIX_Barrier_Control *the_barrier
diff --git a/cpukit/posix/inline/rtems/posix/key.inl b/cpukit/posix/inline/rtems/posix/key.inl
index 4c2466be57..ce5601b06d 100644
--- a/cpukit/posix/inline/rtems/posix/key.inl
+++ b/cpukit/posix/inline/rtems/posix/key.inl
@@ -1,8 +1,10 @@
/**
- * @file rtems/posix/key.inl
+ * @file
+ *
+ * @brief Private Inlined Routines for POSIX Key's
*
- * This include file contains the static inline implementation of the private
- * inlined routines for POSIX key's.
+ * This include file contains the static inline implementation of the private
+ * inlined routines for POSIX key's.
*/
/*
@@ -22,10 +24,10 @@
#define _RTEMS_POSIX_KEY_INL
/**
- * @brief _POSIX_Keys_Allocate
+ * @brief Allocate a keys control block.
*
- * This function allocates a keys control block from
- * the inactive chain of free keys control blocks.
+ * This function allocates a keys control block from
+ * the inactive chain of free keys control blocks.
*/
RTEMS_INLINE_ROUTINE POSIX_Keys_Control *_POSIX_Keys_Allocate( void )
@@ -34,10 +36,10 @@ RTEMS_INLINE_ROUTINE POSIX_Keys_Control *_POSIX_Keys_Allocate( void )
}
/**
- * @brief _POSIX_Keys_Free
+ * @brief Free a keys control block.
*
- * This routine frees a keys control block to the
- * inactive chain of free keys control blocks.
+ * This routine frees a keys control block to the
+ * inactive chain of free keys control blocks.
*/
RTEMS_INLINE_ROUTINE void _POSIX_Keys_Free (
POSIX_Keys_Control *the_key
@@ -47,15 +49,15 @@ RTEMS_INLINE_ROUTINE void _POSIX_Keys_Free (
}
/**
- * @brief _POSIX_Keys_Get
+ * @brief Get a keys control block.
*
- * This function maps key IDs to key control blocks.
- * If ID corresponds to a local keys, then it returns
- * the_key control pointer which maps to ID and location
- * is set to OBJECTS_LOCAL. if the keys ID is global and
- * resides on a remote node, then location is set to OBJECTS_REMOTE,
- * and the_key is undefined. Otherwise, location is set
- * to OBJECTS_ERROR and the_key is undefined.
+ * This function maps key IDs to key control blocks.
+ * If ID corresponds to a local keys, then it returns
+ * the_key control pointer which maps to ID and location
+ * is set to OBJECTS_LOCAL. if the keys ID is global and
+ * resides on a remote node, then location is set to OBJECTS_REMOTE,
+ * and the_key is undefined. Otherwise, location is set
+ * to OBJECTS_ERROR and the_key is undefined.
*/
RTEMS_INLINE_ROUTINE POSIX_Keys_Control *_POSIX_Keys_Get (
@@ -68,9 +70,15 @@ RTEMS_INLINE_ROUTINE POSIX_Keys_Control *_POSIX_Keys_Get (
}
/**
- * @brief _POSIX_Keys_Is_null
+ * @brief Check if a keys control block is NULL.
*
- * This function returns TRUE if the_key is NULL and FALSE otherwise.
+ * This function returns @c TRUE if the_key is @c NULL and @c FALSE
+ * otherwise.
+ *
+ * @param[in] the_key is the pointer to the key control block to be checked.
+ *
+ * @retval TRUE The key control block is @c NULL.
+ * @retval FALSE The key control block is not @c NULL.
*/
RTEMS_INLINE_ROUTINE bool _POSIX_Keys_Is_null (
POSIX_Keys_Control *the_key
diff --git a/cpukit/posix/inline/rtems/posix/mqueue.inl b/cpukit/posix/inline/rtems/posix/mqueue.inl
index ed345125af..e27efcacfe 100644
--- a/cpukit/posix/inline/rtems/posix/mqueue.inl
+++ b/cpukit/posix/inline/rtems/posix/mqueue.inl
@@ -1,6 +1,8 @@
/**
- * @file rtems/posix/mqueue.inl
+ * @file
*
+ * @brief Private Inlined Routines for POSIX Message Queue
+ *
* This include file contains the static inline implementation of the private
* inlined routines for POSIX Message Queue.
*/
diff --git a/cpukit/posix/inline/rtems/posix/mutex.inl b/cpukit/posix/inline/rtems/posix/mutex.inl
index 033a4ccfcf..e5c68016bd 100644
--- a/cpukit/posix/inline/rtems/posix/mutex.inl
+++ b/cpukit/posix/inline/rtems/posix/mutex.inl
@@ -1,6 +1,8 @@
/**
- * @file rtems/posix/mutex.inl
+ * @file
*
+ * @brief Private Inlined Routines for POSIX Mutex's.
+ *
* This include file contains the static inline implementation of the private
* inlined routines for POSIX mutex's.
*/
diff --git a/cpukit/posix/inline/rtems/posix/priority.inl b/cpukit/posix/inline/rtems/posix/priority.inl
index b1eb9b8da5..cae2242c78 100644
--- a/cpukit/posix/inline/rtems/posix/priority.inl
+++ b/cpukit/posix/inline/rtems/posix/priority.inl
@@ -1,6 +1,8 @@
/**
- * @file rtems/posix/priority.inl
+ * @file
*
+ * @brief Inline Methods Related to POSIX Priority Management
+ *
* This defines the static inline methods related to POSIX priority management.
*/
diff --git a/cpukit/posix/inline/rtems/posix/pthread.inl b/cpukit/posix/inline/rtems/posix/pthread.inl
index 1127841586..2df49804b0 100644
--- a/cpukit/posix/inline/rtems/posix/pthread.inl
+++ b/cpukit/posix/inline/rtems/posix/pthread.inl
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/pthread.inl
+ * @file
+ *
+ * @brief Private Inlined Routines for POSIX Threads
*
* This include file contains the static inline implementation of the private
* inlined routines for POSIX threads.
diff --git a/cpukit/posix/inline/rtems/posix/rwlock.inl b/cpukit/posix/inline/rtems/posix/rwlock.inl
index 5f1ef7e477..ac641c926b 100644
--- a/cpukit/posix/inline/rtems/posix/rwlock.inl
+++ b/cpukit/posix/inline/rtems/posix/rwlock.inl
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/rwlock.inl
+ * @file
+ *
+ * @brief Inlined Routines from the POSIX RWLock Manager
*
* This file contains the static inlin implementation of the inlined
* routines from the POSIX RWLock Manager.
@@ -24,10 +26,10 @@
#include <pthread.h>
/**
- * @brief _POSIX_RWLock_Allocate
+ * @brief Allocate a RWLock control block.
*
- * This function allocates a RWLock control block from
- * the inactive chain of free RWLock control blocks.
+ * This function allocates a RWLock control block from
+ * the inactive chain of free RWLock control blocks.
*/
RTEMS_INLINE_ROUTINE POSIX_RWLock_Control *_POSIX_RWLock_Allocate( void )
{
@@ -36,10 +38,10 @@ RTEMS_INLINE_ROUTINE POSIX_RWLock_Control *_POSIX_RWLock_Allocate( void )
}
/**
- * @brief _POSIX_RWLock_Free
+ * @brief Free a RWLock control block.
*
- * This routine frees a RWLock control block to the
- * inactive chain of free RWLock control blocks.
+ * This routine frees a RWLock control block to the
+ * inactive chain of free RWLock control blocks.
*/
RTEMS_INLINE_ROUTINE void _POSIX_RWLock_Free (
POSIX_RWLock_Control *the_RWLock
@@ -49,15 +51,15 @@ RTEMS_INLINE_ROUTINE void _POSIX_RWLock_Free (
}
/**
- * @brief _POSIX_RWLock_Get
+ * @brief Get a RWLock control block.
*
- * This function maps RWLock IDs to RWLock control blocks.
- * If ID corresponds to a local RWLock, then it returns
- * the_RWLock control pointer which maps to ID and location
- * is set to OBJECTS_LOCAL. if the RWLock ID is global and
- * resides on a remote node, then location is set to OBJECTS_REMOTE,
- * and the_RWLock is undefined. Otherwise, location is set
- * to OBJECTS_ERROR and the_RWLock is undefined.
+ * This function maps RWLock IDs to RWLock control blocks.
+ * If ID corresponds to a local RWLock, then it returns
+ * the_RWLock control pointer which maps to ID and location
+ * is set to OBJECTS_LOCAL. if the RWLock ID is global and
+ * resides on a remote node, then location is set to OBJECTS_REMOTE,
+ * and the_RWLock is undefined. Otherwise, location is set
+ * to OBJECTS_ERROR and the_RWLock is undefined.
*/
RTEMS_INLINE_ROUTINE POSIX_RWLock_Control *_POSIX_RWLock_Get (
pthread_rwlock_t *RWLock,
@@ -72,9 +74,16 @@ RTEMS_INLINE_ROUTINE POSIX_RWLock_Control *_POSIX_RWLock_Get (
}
/**
- * @brief _POSIX_RWLock_Is_null
+ * @brief Check if a RWLock control block is NULL.
*
- * This function returns TRUE if the_RWLock is NULL and FALSE otherwise.
+ * This function returns @c TRUE if the_RWLock is @c NULL and @c FALSE
+ * otherwise.
+ *
+ * @param[in] the_RWLock is the pointer to the RWLock control block
+ * to be checked.
+ *
+ * @retval TRUE The RWLock control block is @c NULL.
+ * @retval FALSE The RWLock control block is not @c NULL.
*/
RTEMS_INLINE_ROUTINE bool _POSIX_RWLock_Is_null (
POSIX_RWLock_Control *the_RWLock
diff --git a/cpukit/posix/inline/rtems/posix/semaphore.inl b/cpukit/posix/inline/rtems/posix/semaphore.inl
index 4828bcd5ea..8c7d6700a9 100644
--- a/cpukit/posix/inline/rtems/posix/semaphore.inl
+++ b/cpukit/posix/inline/rtems/posix/semaphore.inl
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/semaphore.inl
+ * @file
+ *
+ * @brief Private Inlined Routines for POSIX Semaphores
*
* This include file contains the static inline implementation of the private
* inlined routines for POSIX Semaphores.
diff --git a/cpukit/posix/inline/rtems/posix/spinlock.inl b/cpukit/posix/inline/rtems/posix/spinlock.inl
index 0924e5ad3d..b8ababda02 100644
--- a/cpukit/posix/inline/rtems/posix/spinlock.inl
+++ b/cpukit/posix/inline/rtems/posix/spinlock.inl
@@ -1,5 +1,7 @@
/**
- * @file rtems/posix/spinlock.inl
+ * @file
+ *
+ * @brief Inlined Routines from the POSIX Spinlock Manager
*
* This file contains the static inlin implementation of the inlined
* routines from the POSIX Spinlock Manager.
@@ -24,10 +26,10 @@
#include <pthread.h>
/**
- * @brief _POSIX_Spinlock_Allocate
+ * @brief Allocate a spinlock control block.
*
- * This function allocates a spinlock control block from
- * the inactive chain of free spinlock control blocks.
+ * This function allocates a spinlock control block from
+ * the inactive chain of free spinlock control blocks.
*/
RTEMS_INLINE_ROUTINE POSIX_Spinlock_Control *_POSIX_Spinlock_Allocate( void )
{
@@ -36,10 +38,10 @@ RTEMS_INLINE_ROUTINE POSIX_Spinlock_Control *_POSIX_Spinlock_Allocate( void )
}
/**
- * @brief _POSIX_Spinlock_Free
+ * @brief Free a spinlock control block.
*
- * This routine frees a spinlock control block to the
- * inactive chain of free spinlock control blocks.
+ * This routine frees a spinlock control block to the
+ * inactive chain of free spinlock control blocks.
*/
RTEMS_INLINE_ROUTINE void _POSIX_Spinlock_Free (
POSIX_Spinlock_Control *the_spinlock
@@ -49,15 +51,15 @@ RTEMS_INLINE_ROUTINE void _POSIX_Spinlock_Free (
}
/**
- * @brief _POSIX_Spinlock_Get
+ * @brief Get a spinlock control block.
*
- * This function maps spinlock IDs to spinlock control blocks.
- * If ID corresponds to a local spinlock, then it returns
- * the_spinlock control pointer which maps to ID and location
- * is set to OBJECTS_LOCAL. if the spinlock ID is global and
- * resides on a remote node, then location is set to OBJECTS_REMOTE,
- * and the_spinlock is undefined. Otherwise, location is set
- * to OBJECTS_ERROR and the_spinlock is undefined.
+ * This function maps spinlock IDs to spinlock control blocks.
+ * If ID corresponds to a local spinlock, then it returns
+ * the_spinlock control pointer which maps to ID and location
+ * is set to OBJECTS_LOCAL. if the spinlock ID is global and
+ * resides on a remote node, then location is set to OBJECTS_REMOTE,
+ * and the_spinlock is undefined. Otherwise, location is set
+ * to OBJECTS_ERROR and the_spinlock is undefined.
*/
RTEMS_INLINE_ROUTINE POSIX_Spinlock_Control *_POSIX_Spinlock_Get (
pthread_spinlock_t *spinlock,
@@ -72,9 +74,16 @@ RTEMS_INLINE_ROUTINE POSIX_Spinlock_Control *_POSIX_Spinlock_Get (
}
/**
- * @brief _POSIX_Spinlock_Is_null
+ * @brief Check if a spinlock control block is NULL.
*
- * This function returns TRUE if the_spinlock is NULL and FALSE otherwise.
+ * This function returns @c TRUE if the_spinlock is @c NULL and @c FALSE
+ * otherwise.
+ *
+ * @param[in] the_spinlock is the pointer to the spinlock control block
+ * to be checked.
+ *
+ * @retval TRUE The spinlock control block is @c NULL.
+ * @retval FALSE The spinlock control block is not @c NULL.
*/
RTEMS_INLINE_ROUTINE bool _POSIX_Spinlock_Is_null (
POSIX_Spinlock_Control *the_spinlock
diff --git a/cpukit/posix/inline/rtems/posix/timer.inl b/cpukit/posix/inline/rtems/posix/timer.inl
index 03377252fe..bc1db80c88 100644
--- a/cpukit/posix/inline/rtems/posix/timer.inl
+++ b/cpukit/posix/inline/rtems/posix/timer.inl
@@ -1,6 +1,8 @@
/**
- * @file rtems/posix/timer.inl
+ * @file
*
+ * @brief Inlined Routines from the POSIX Timer Manager
+ *
* This file contains the static inline implementation of the inlined routines
* from the POSIX Timer Manager.
*/
diff --git a/cpukit/posix/src/_execve.c b/cpukit/posix/src/_execve.c
index b606fd63df..aa57ccb8a3 100644
--- a/cpukit/posix/src/_execve.c
+++ b/cpukit/posix/src/_execve.c
@@ -2,7 +2,7 @@
* @file
*
* @brief execve()
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/adjtime.c b/cpukit/posix/src/adjtime.c
index 23f7d3a9ed..3b17a7461b 100644
--- a/cpukit/posix/src/adjtime.c
+++ b/cpukit/posix/src/adjtime.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Correct the Time to Synchronize the System Clock
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/aio_error.c b/cpukit/posix/src/aio_error.c
index e29c8361b1..852422d394 100644
--- a/cpukit/posix/src/aio_error.c
+++ b/cpukit/posix/src/aio_error.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Returns the error status for the Asynchronous I/O request
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/aio_fsync.c b/cpukit/posix/src/aio_fsync.c
index 0330076696..dbfd79901d 100644
--- a/cpukit/posix/src/aio_fsync.c
+++ b/cpukit/posix/src/aio_fsync.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Syncing of all Outstanding Asynchronous I/O Operations
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/aio_misc.c b/cpukit/posix/src/aio_misc.c
index 12bec2eb7d..e4c40df84e 100644
--- a/cpukit/posix/src/aio_misc.c
+++ b/cpukit/posix/src/aio_misc.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Actual request being processed
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/aio_read.c b/cpukit/posix/src/aio_read.c
index f339752525..5445e86145 100644
--- a/cpukit/posix/src/aio_read.c
+++ b/cpukit/posix/src/aio_read.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Asynchronously reads Data from a File
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/aio_return.c b/cpukit/posix/src/aio_return.c
index 87c3af1f3e..89f0076c9e 100644
--- a/cpukit/posix/src/aio_return.c
+++ b/cpukit/posix/src/aio_return.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Final return status for Asynchronous I/O request pointed to by aiobcp
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/aio_suspend.c b/cpukit/posix/src/aio_suspend.c
index 60c4af1389..15448e54dc 100644
--- a/cpukit/posix/src/aio_suspend.c
+++ b/cpukit/posix/src/aio_suspend.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Suspends Process until Asynchronous I/O Operation completes
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/aio_write.c b/cpukit/posix/src/aio_write.c
index a510946837..dec08fe345 100644
--- a/cpukit/posix/src/aio_write.c
+++ b/cpukit/posix/src/aio_write.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function queues I/O request described by buffer pointed by aiocb
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/alarm.c b/cpukit/posix/src/alarm.c
index 22ffcae5c3..5130b0162b 100644
--- a/cpukit/posix/src/alarm.c
+++ b/cpukit/posix/src/alarm.c
@@ -2,7 +2,7 @@
* @file
*
* @brief System Generates Signal for process after realtime seconds elapsed
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/barrierattrdestroy.c b/cpukit/posix/src/barrierattrdestroy.c
index c0a6fada2c..1e3cb17ae3 100644
--- a/cpukit/posix/src/barrierattrdestroy.c
+++ b/cpukit/posix/src/barrierattrdestroy.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function shall Destroy a Barrier Attribues Object
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/barrierattrgetpshared.c b/cpukit/posix/src/barrierattrgetpshared.c
index 1141fa5a5c..352b9ade0f 100644
--- a/cpukit/posix/src/barrierattrgetpshared.c
+++ b/cpukit/posix/src/barrierattrgetpshared.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Barrier Attributes Get Process Shared
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/barrierattrinit.c b/cpukit/posix/src/barrierattrinit.c
index 29d58f4991..342e9f2e0a 100644
--- a/cpukit/posix/src/barrierattrinit.c
+++ b/cpukit/posix/src/barrierattrinit.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Initialize the Barrier Attributes Object
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/barrierattrsetpshared.c b/cpukit/posix/src/barrierattrsetpshared.c
index 897a833946..22cefcf4f4 100644
--- a/cpukit/posix/src/barrierattrsetpshared.c
+++ b/cpukit/posix/src/barrierattrsetpshared.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Set the Process-Shared Attribute of the Barrier Attributes Object
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/cancel.c b/cpukit/posix/src/cancel.c
index 42321ce93b..77ccf8c238 100644
--- a/cpukit/posix/src/cancel.c
+++ b/cpukit/posix/src/cancel.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Canceling Execution of a Thread
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/canceleval.c b/cpukit/posix/src/canceleval.c
index 804efb4726..973d2a7db1 100644
--- a/cpukit/posix/src/canceleval.c
+++ b/cpukit/posix/src/canceleval.c
@@ -2,7 +2,7 @@
* @file
*
* @brief POSIX Function Evaluates Thread Cancellation and Enables Dispatch
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/cancelrun.c b/cpukit/posix/src/cancelrun.c
index 39a8de763d..2d73bdaca7 100644
--- a/cpukit/posix/src/cancelrun.c
+++ b/cpukit/posix/src/cancelrun.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Executes a thread's cancellation handlers
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/cleanuppop.c b/cpukit/posix/src/cleanuppop.c
index 9e198f74c9..bbadec5f11 100644
--- a/cpukit/posix/src/cleanuppop.c
+++ b/cpukit/posix/src/cleanuppop.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Removes Routine from Top of Calling Thread's stack and Invoke it
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/cleanuppush.c b/cpukit/posix/src/cleanuppush.c
index 87df540555..4fb82c250b 100644
--- a/cpukit/posix/src/cleanuppush.c
+++ b/cpukit/posix/src/cleanuppush.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Establishing Cancellation Handlers
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/clockgetcpuclockid.c b/cpukit/posix/src/clockgetcpuclockid.c
index fb04e174aa..d69783cb83 100644
--- a/cpukit/posix/src/clockgetcpuclockid.c
+++ b/cpukit/posix/src/clockgetcpuclockid.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function Returns Clock ID of CPU-time Clock of process specified
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/clockgetenableattr.c b/cpukit/posix/src/clockgetenableattr.c
index 8420c2be88..b6a638b100 100644
--- a/cpukit/posix/src/clockgetenableattr.c
+++ b/cpukit/posix/src/clockgetenableattr.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Clock get Enable Attribute Access
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/clockgetres.c b/cpukit/posix/src/clockgetres.c
index 60d516d26e..08fd773a11 100644
--- a/cpukit/posix/src/clockgetres.c
+++ b/cpukit/posix/src/clockgetres.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function Returns the Resolution of any Clock
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/clockgettime.c b/cpukit/posix/src/clockgettime.c
index 46c1d46811..a8aa0f09bb 100644
--- a/cpukit/posix/src/clockgettime.c
+++ b/cpukit/posix/src/clockgettime.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Retrieves the Specified Clock Time
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/clocksetenableattr.c b/cpukit/posix/src/clocksetenableattr.c
index 592b82341e..d6e2c11e84 100644
--- a/cpukit/posix/src/clocksetenableattr.c
+++ b/cpukit/posix/src/clocksetenableattr.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Clock set Enable Attribute Access
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/clocksettime.c b/cpukit/posix/src/clocksettime.c
index 7e7edb4f56..df9d81da82 100644
--- a/cpukit/posix/src/clocksettime.c
+++ b/cpukit/posix/src/clocksettime.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Set Time of Clock
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/condattrdestroy.c b/cpukit/posix/src/condattrdestroy.c
index 6f686fe1df..3c54fcb3a0 100644
--- a/cpukit/posix/src/condattrdestroy.c
+++ b/cpukit/posix/src/condattrdestroy.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Destroy Condition Attribute
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/condattrgetpshared.c b/cpukit/posix/src/condattrgetpshared.c
index 298c2618b3..080253d0ed 100644
--- a/cpukit/posix/src/condattrgetpshared.c
+++ b/cpukit/posix/src/condattrgetpshared.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Get the Process-Shared Condition Variable Attributes
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/condattrinit.c b/cpukit/posix/src/condattrinit.c
index 89b806cb7e..edd7e7b5d2 100644
--- a/cpukit/posix/src/condattrinit.c
+++ b/cpukit/posix/src/condattrinit.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Initialization of Conditional Attributes
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/condattrsetpshared.c b/cpukit/posix/src/condattrsetpshared.c
index 4e00c920c5..b38782a6f4 100644
--- a/cpukit/posix/src/condattrsetpshared.c
+++ b/cpukit/posix/src/condattrsetpshared.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Initialize Condition Variable Attributes
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/condbroadcast.c b/cpukit/posix/src/condbroadcast.c
index 6506d87d98..7ae1eade2e 100644
--- a/cpukit/posix/src/condbroadcast.c
+++ b/cpukit/posix/src/condbroadcast.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Broadcast a Condition
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/conddefaultattributes.c b/cpukit/posix/src/conddefaultattributes.c
index 32ec64d69a..d7a4545a34 100644
--- a/cpukit/posix/src/conddefaultattributes.c
+++ b/cpukit/posix/src/conddefaultattributes.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Condition variable Attributes structure
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/conddestroy.c b/cpukit/posix/src/conddestroy.c
index 0f32b89da3..99f60569e2 100644
--- a/cpukit/posix/src/conddestroy.c
+++ b/cpukit/posix/src/conddestroy.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Destroy a Condition Variable
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/condinit.c b/cpukit/posix/src/condinit.c
index 2a8321192e..4123510ec2 100644
--- a/cpukit/posix/src/condinit.c
+++ b/cpukit/posix/src/condinit.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Initialize a Condition Variable
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/condsignal.c b/cpukit/posix/src/condsignal.c
index debc110143..c9ff936bfd 100644
--- a/cpukit/posix/src/condsignal.c
+++ b/cpukit/posix/src/condsignal.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Signal a Condition
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/condtimedwait.c b/cpukit/posix/src/condtimedwait.c
index 031376cfea..a78cb1ae5e 100644
--- a/cpukit/posix/src/condtimedwait.c
+++ b/cpukit/posix/src/condtimedwait.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Waiting on a Condition
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/condwait.c b/cpukit/posix/src/condwait.c
index 3162b4d97b..b50fb33592 100644
--- a/cpukit/posix/src/condwait.c
+++ b/cpukit/posix/src/condwait.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Waiting on a Condition
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/execl.c b/cpukit/posix/src/execl.c
index 61b9a74fce..4b2eb6cc6d 100644
--- a/cpukit/posix/src/execl.c
+++ b/cpukit/posix/src/execl.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Process will get Executed and then Terminated by execl
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/execle.c b/cpukit/posix/src/execle.c
index 1dbd3826a1..64edc6ee09 100644
--- a/cpukit/posix/src/execle.c
+++ b/cpukit/posix/src/execle.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Execute a File
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/execlp.c b/cpukit/posix/src/execlp.c
index 7a4c5142a6..402604e696 100644
--- a/cpukit/posix/src/execlp.c
+++ b/cpukit/posix/src/execlp.c
@@ -2,7 +2,7 @@
* @file
*
* @brief execlp()
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/execv.c b/cpukit/posix/src/execv.c
index 26d62b123d..8baec845cc 100644
--- a/cpukit/posix/src/execv.c
+++ b/cpukit/posix/src/execv.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Inoperable implementation of execv for POSIX threads
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/execve.c b/cpukit/posix/src/execve.c
index 03320e52a0..b05a7f1cc7 100644
--- a/cpukit/posix/src/execve.c
+++ b/cpukit/posix/src/execve.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Execute a Program
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/fork.c b/cpukit/posix/src/fork.c
index 4cfccf4a02..7d5c803bde 100644
--- a/cpukit/posix/src/fork.c
+++ b/cpukit/posix/src/fork.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Inoperable implementation of fork() for POSIX threads
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/getitimer.c b/cpukit/posix/src/getitimer.c
index a7ee836b04..2264a6ffae 100644
--- a/cpukit/posix/src/getitimer.c
+++ b/cpukit/posix/src/getitimer.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function Gets Value of an Interval Timer
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/keycreate.c b/cpukit/posix/src/keycreate.c
index 3ac462dbcb..b41b59017e 100644
--- a/cpukit/posix/src/keycreate.c
+++ b/cpukit/posix/src/keycreate.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Thread-Specific Data Key Create
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/keydelete.c b/cpukit/posix/src/keydelete.c
index 41d57772bf..5ef6261148 100644
--- a/cpukit/posix/src/keydelete.c
+++ b/cpukit/posix/src/keydelete.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Deletes Thread-specific Data Key Previously Returned by keycreate.c
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/keyfreememory.c b/cpukit/posix/src/keyfreememory.c
index 35e8a36918..f71af4f327 100644
--- a/cpukit/posix/src/keyfreememory.c
+++ b/cpukit/posix/src/keyfreememory.c
@@ -2,7 +2,7 @@
* @file
*
* @brief POSIX Function Keys Free Memory
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/keygetspecific.c b/cpukit/posix/src/keygetspecific.c
index 3a34359297..debad830ae 100644
--- a/cpukit/posix/src/keygetspecific.c
+++ b/cpukit/posix/src/keygetspecific.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Thread-Specific Data Management
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/keysetspecific.c b/cpukit/posix/src/keysetspecific.c
index e631127fba..b25e44ccbf 100644
--- a/cpukit/posix/src/keysetspecific.c
+++ b/cpukit/posix/src/keysetspecific.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Set Specific Key
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/kill.c b/cpukit/posix/src/kill.c
index 8a476e40ce..cf60cac5a1 100644
--- a/cpukit/posix/src/kill.c
+++ b/cpukit/posix/src/kill.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Send a Signal to a Process
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/kill_r.c b/cpukit/posix/src/kill_r.c
index 739fed7358..57f5c24473 100644
--- a/cpukit/posix/src/kill_r.c
+++ b/cpukit/posix/src/kill_r.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Send a Signal to a Process
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/killinfo.c b/cpukit/posix/src/killinfo.c
index b7b556de39..f386757e8f 100644
--- a/cpukit/posix/src/killinfo.c
+++ b/cpukit/posix/src/killinfo.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Send a Signal to a Process
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/lio_listio.c b/cpukit/posix/src/lio_listio.c
index 9b53b4d858..64a578f22b 100644
--- a/cpukit/posix/src/lio_listio.c
+++ b/cpukit/posix/src/lio_listio.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function Initiates a List of I/O Requests with Single Function Call
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mprotect.c b/cpukit/posix/src/mprotect.c
index 32de472a21..cb9161b9ad 100644
--- a/cpukit/posix/src/mprotect.c
+++ b/cpukit/posix/src/mprotect.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Change Memory Protection
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mqueueclose.c b/cpukit/posix/src/mqueueclose.c
index 8492c90705..4f1bb41bd3 100644
--- a/cpukit/posix/src/mqueueclose.c
+++ b/cpukit/posix/src/mqueueclose.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function closes the Message Queue
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mqueuegetattr.c b/cpukit/posix/src/mqueuegetattr.c
index cfcc51af1e..0f250f1c2d 100644
--- a/cpukit/posix/src/mqueuegetattr.c
+++ b/cpukit/posix/src/mqueuegetattr.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Message Queue Attributes
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mqueueopen.c b/cpukit/posix/src/mqueueopen.c
index d5f783990e..01d3d57351 100644
--- a/cpukit/posix/src/mqueueopen.c
+++ b/cpukit/posix/src/mqueueopen.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Creates a new POSIX Message Queue or Opens an Existing Queue
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mqueuesend.c b/cpukit/posix/src/mqueuesend.c
index 0d67b6d337..11016e4830 100644
--- a/cpukit/posix/src/mqueuesend.c
+++ b/cpukit/posix/src/mqueuesend.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Adds Message Pointed by msg_ptr to Message Queue Reffered by mqdes
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mqueuesendsupp.c b/cpukit/posix/src/mqueuesendsupp.c
index 3fbe0fb164..1f9bf63d5a 100644
--- a/cpukit/posix/src/mqueuesendsupp.c
+++ b/cpukit/posix/src/mqueuesendsupp.c
@@ -2,7 +2,7 @@
* @file
*
* @brief POSIX Message Queue and Send Support
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mqueuetimedreceive.c b/cpukit/posix/src/mqueuetimedreceive.c
index 58f796160c..53b3364a8f 100644
--- a/cpukit/posix/src/mqueuetimedreceive.c
+++ b/cpukit/posix/src/mqueuetimedreceive.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Receive Message from Message Queue
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mqueuetranslatereturncode.c b/cpukit/posix/src/mqueuetranslatereturncode.c
index 34edf80a24..614226188d 100644
--- a/cpukit/posix/src/mqueuetranslatereturncode.c
+++ b/cpukit/posix/src/mqueuetranslatereturncode.c
@@ -2,7 +2,7 @@
* @file
*
* @brief POSIX Error Translation in Message Queue
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mutexattrdestroy.c b/cpukit/posix/src/mutexattrdestroy.c
index 06d5c1d2fc..5573b7284f 100644
--- a/cpukit/posix/src/mutexattrdestroy.c
+++ b/cpukit/posix/src/mutexattrdestroy.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Destroy Mutex Attributes Object
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mutexattrgetprioceiling.c b/cpukit/posix/src/mutexattrgetprioceiling.c
index 949fd3b32c..1ce6c692ca 100644
--- a/cpukit/posix/src/mutexattrgetprioceiling.c
+++ b/cpukit/posix/src/mutexattrgetprioceiling.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Mutex Initialization Scheduling Attributes
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mutexattrgetprotocol.c b/cpukit/posix/src/mutexattrgetprotocol.c
index 1824b3fff9..59fe109041 100644
--- a/cpukit/posix/src/mutexattrgetprotocol.c
+++ b/cpukit/posix/src/mutexattrgetprotocol.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Get protocol Attribute of Mutex Attribute Obect
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mutexattrgetpshared.c b/cpukit/posix/src/mutexattrgetpshared.c
index d32ef838b6..6ddba3a320 100644
--- a/cpukit/posix/src/mutexattrgetpshared.c
+++ b/cpukit/posix/src/mutexattrgetpshared.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Obtaining process-shared Attribute Value from the Attributes Object
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mutexattrgettype.c b/cpukit/posix/src/mutexattrgettype.c
index 9137271d9d..365defc787 100644
--- a/cpukit/posix/src/mutexattrgettype.c
+++ b/cpukit/posix/src/mutexattrgettype.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function gets the Mutex Type Attribute
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mutexattrinit.c b/cpukit/posix/src/mutexattrinit.c
index 9e1345ee6d..64f077b103 100644
--- a/cpukit/posix/src/mutexattrinit.c
+++ b/cpukit/posix/src/mutexattrinit.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Mutex Initialization Attribute
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mutexattrsetprioceiling.c b/cpukit/posix/src/mutexattrsetprioceiling.c
index 82c83cf80e..69e1f91157 100644
--- a/cpukit/posix/src/mutexattrsetprioceiling.c
+++ b/cpukit/posix/src/mutexattrsetprioceiling.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Mutex Initialization Scheduling Attributes
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mutexattrsetprotocol.c b/cpukit/posix/src/mutexattrsetprotocol.c
index fc7c1afe74..c32655025e 100644
--- a/cpukit/posix/src/mutexattrsetprotocol.c
+++ b/cpukit/posix/src/mutexattrsetprotocol.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Mutex Initialization Scheduling Attributes
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mutexattrsetpshared.c b/cpukit/posix/src/mutexattrsetpshared.c
index 87e8b52f2b..a97265f2df 100644
--- a/cpukit/posix/src/mutexattrsetpshared.c
+++ b/cpukit/posix/src/mutexattrsetpshared.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function sets Current pshared Attribute for Mutex Attributes Object
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mutexattrsettype.c b/cpukit/posix/src/mutexattrsettype.c
index 861e616ad3..024f6e6b1f 100644
--- a/cpukit/posix/src/mutexattrsettype.c
+++ b/cpukit/posix/src/mutexattrsettype.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Set a Mutex Type
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mutexdestroy.c b/cpukit/posix/src/mutexdestroy.c
index 4a9f1e964a..f733ce714c 100644
--- a/cpukit/posix/src/mutexdestroy.c
+++ b/cpukit/posix/src/mutexdestroy.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Initializing and Destroying a Mutex
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mutexget.c b/cpukit/posix/src/mutexget.c
index 44d1864118..e8b84eaf3e 100644
--- a/cpukit/posix/src/mutexget.c
+++ b/cpukit/posix/src/mutexget.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Convert POSIX Mutex ID to local object pointer
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mutexgetprioceiling.c b/cpukit/posix/src/mutexgetprioceiling.c
index 21287e2c38..8355286ebc 100644
--- a/cpukit/posix/src/mutexgetprioceiling.c
+++ b/cpukit/posix/src/mutexgetprioceiling.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Returns the Current Priority Ceiling of the Mutex
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mutexinit.c b/cpukit/posix/src/mutexinit.c
index 5ef3485ee2..979e5b84b9 100644
--- a/cpukit/posix/src/mutexinit.c
+++ b/cpukit/posix/src/mutexinit.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Initialize a Mutex
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mutexlock.c b/cpukit/posix/src/mutexlock.c
index be5e4d56df..6777048424 100644
--- a/cpukit/posix/src/mutexlock.c
+++ b/cpukit/posix/src/mutexlock.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Call to function enables locking of Mutex Object referenced by mutex
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mutexlocksupp.c b/cpukit/posix/src/mutexlocksupp.c
index 6b5d7bd92f..0a35e3c661 100644
--- a/cpukit/posix/src/mutexlocksupp.c
+++ b/cpukit/posix/src/mutexlocksupp.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Support Call to function Enables Locking of Mutex Object
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mutexsetprioceiling.c b/cpukit/posix/src/mutexsetprioceiling.c
index b11c4570ab..920d6fae92 100644
--- a/cpukit/posix/src/mutexsetprioceiling.c
+++ b/cpukit/posix/src/mutexsetprioceiling.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Changes the Priority Ceiling of a Mutex and Releases it
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mutextimedlock.c b/cpukit/posix/src/mutextimedlock.c
index 442f3c6052..e5d6019d55 100644
--- a/cpukit/posix/src/mutextimedlock.c
+++ b/cpukit/posix/src/mutextimedlock.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Mutex Timed Lock
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mutextrylock.c b/cpukit/posix/src/mutextrylock.c
index f398dc208a..a354c8089d 100644
--- a/cpukit/posix/src/mutextrylock.c
+++ b/cpukit/posix/src/mutextrylock.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Try to Lock Mutex
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/mutexunlock.c b/cpukit/posix/src/mutexunlock.c
index 75eaec73c1..cfe8bdbeeb 100644
--- a/cpukit/posix/src/mutexunlock.c
+++ b/cpukit/posix/src/mutexunlock.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Locking and Unlocking a Mutex
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/nanosleep.c b/cpukit/posix/src/nanosleep.c
index 02abe55cec..b59b9934b0 100644
--- a/cpukit/posix/src/nanosleep.c
+++ b/cpukit/posix/src/nanosleep.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Suspends Execution of calling thread until Time elaps
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pause.c b/cpukit/posix/src/pause.c
index ee74f6746b..5700fe9992 100644
--- a/cpukit/posix/src/pause.c
+++ b/cpukit/posix/src/pause.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Suspend Process Execution
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pbarrierdestroy.c b/cpukit/posix/src/pbarrierdestroy.c
index 6b2e9d0bc9..66f701452f 100644
--- a/cpukit/posix/src/pbarrierdestroy.c
+++ b/cpukit/posix/src/pbarrierdestroy.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Destroy a Barrier Object
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pbarrierinit.c b/cpukit/posix/src/pbarrierinit.c
index c3077cb903..edf7e7ca32 100644
--- a/cpukit/posix/src/pbarrierinit.c
+++ b/cpukit/posix/src/pbarrierinit.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Call to Function Enables Reinitializing of the Barrier
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pbarriertranslatereturncode.c b/cpukit/posix/src/pbarriertranslatereturncode.c
index e8a53ec459..e9552d1f7d 100644
--- a/cpukit/posix/src/pbarriertranslatereturncode.c
+++ b/cpukit/posix/src/pbarriertranslatereturncode.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function Translates POSIX Barrier Status Code
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pbarrierwait.c b/cpukit/posix/src/pbarrierwait.c
index 0ad9634411..e941bf5d7f 100644
--- a/cpukit/posix/src/pbarrierwait.c
+++ b/cpukit/posix/src/pbarrierwait.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Wait at a Barrier
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/prwlockdestroy.c b/cpukit/posix/src/prwlockdestroy.c
index 9b644ba943..6c99abf128 100644
--- a/cpukit/posix/src/prwlockdestroy.c
+++ b/cpukit/posix/src/prwlockdestroy.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Destroy a RWLock
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
* COPYRIGHT (c) 1989-2007.
diff --git a/cpukit/posix/src/prwlockinit.c b/cpukit/posix/src/prwlockinit.c
index 61825fe1d5..0ee53e84d5 100644
--- a/cpukit/posix/src/prwlockinit.c
+++ b/cpukit/posix/src/prwlockinit.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Allocate resources to use the read-write lock and Initialize it
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/prwlockrdlock.c b/cpukit/posix/src/prwlockrdlock.c
index 0ce4764915..24adcb451c 100644
--- a/cpukit/posix/src/prwlockrdlock.c
+++ b/cpukit/posix/src/prwlockrdlock.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Obtain a Read Lock on a RWLock Instance
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/prwlocktimedrdlock.c b/cpukit/posix/src/prwlocktimedrdlock.c
index 95a3fa5423..414fec3fd3 100644
--- a/cpukit/posix/src/prwlocktimedrdlock.c
+++ b/cpukit/posix/src/prwlocktimedrdlock.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Attempt to Obtain a Read Lock on a RWLock Instance
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/prwlocktimedwrlock.c b/cpukit/posix/src/prwlocktimedwrlock.c
index ca435373ff..84aa3a00ff 100644
--- a/cpukit/posix/src/prwlocktimedwrlock.c
+++ b/cpukit/posix/src/prwlocktimedwrlock.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function applies a Write lock to RWLock referenced by rwlock
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/prwlocktryrdlock.c b/cpukit/posix/src/prwlocktryrdlock.c
index f8524e34d2..f58467743c 100644
--- a/cpukit/posix/src/prwlocktryrdlock.c
+++ b/cpukit/posix/src/prwlocktryrdlock.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Attempt to Obtain a Read Lock on a RWLock Instance
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/prwlocktrywrlock.c b/cpukit/posix/src/prwlocktrywrlock.c
index f8857a831b..6b51d17611 100644
--- a/cpukit/posix/src/prwlocktrywrlock.c
+++ b/cpukit/posix/src/prwlocktrywrlock.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Attempt to Obtain a Write Lock on a RWLock Instance
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/prwlockunlock.c b/cpukit/posix/src/prwlockunlock.c
index 79042b259d..d9c2f6fa75 100644
--- a/cpukit/posix/src/prwlockunlock.c
+++ b/cpukit/posix/src/prwlockunlock.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function Releases a lock held on RWLock object referenced by rwlock
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/prwlockwrlock.c b/cpukit/posix/src/prwlockwrlock.c
index 16e5ecd6f1..672772e6e3 100644
--- a/cpukit/posix/src/prwlockwrlock.c
+++ b/cpukit/posix/src/prwlockwrlock.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Obtain a Write Lock on a RWlock Instance
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/psignalclearprocesssignals.c b/cpukit/posix/src/psignalclearprocesssignals.c
index 3d1d16b5aa..b16398c8cf 100644
--- a/cpukit/posix/src/psignalclearprocesssignals.c
+++ b/cpukit/posix/src/psignalclearprocesssignals.c
@@ -2,7 +2,7 @@
* @file
*
* @brief POSIX_signals clear_process_signals
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pspindestroy.c b/cpukit/posix/src/pspindestroy.c
index 97745b6b77..f49fd47348 100644
--- a/cpukit/posix/src/pspindestroy.c
+++ b/cpukit/posix/src/pspindestroy.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Destroy a Spinlock
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pspininit.c b/cpukit/posix/src/pspininit.c
index 030bb50ae2..164cb5039f 100644
--- a/cpukit/posix/src/pspininit.c
+++ b/cpukit/posix/src/pspininit.c
@@ -2,7 +2,7 @@
* @file
*
* @brief POSIX Function Initializes a Spinlock Instance
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pspinlock.c b/cpukit/posix/src/pspinlock.c
index 7f6793c1d5..3d0aed903b 100644
--- a/cpukit/posix/src/pspinlock.c
+++ b/cpukit/posix/src/pspinlock.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Wait at a Spinlock
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pspintrylock.c b/cpukit/posix/src/pspintrylock.c
index de89b4e579..08ace6d9da 100644
--- a/cpukit/posix/src/pspintrylock.c
+++ b/cpukit/posix/src/pspintrylock.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Wait at a Spinlock
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pspinunlock.c b/cpukit/posix/src/pspinunlock.c
index 67a69cbc02..8f7c5b1e96 100644
--- a/cpukit/posix/src/pspinunlock.c
+++ b/cpukit/posix/src/pspinunlock.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function Unlocks a Spin Lock Object
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/psxnametoid.c b/cpukit/posix/src/psxnametoid.c
index d75d5d43df..4049970e8c 100644
--- a/cpukit/posix/src/psxnametoid.c
+++ b/cpukit/posix/src/psxnametoid.c
@@ -2,7 +2,7 @@
* @file
*
* @brief POSIX Name to ID
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadatfork.c b/cpukit/posix/src/pthreadatfork.c
index 558bc77555..59c358c819 100644
--- a/cpukit/posix/src/pthreadatfork.c
+++ b/cpukit/posix/src/pthreadatfork.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Register Fork Handlers
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadattrdestroy.c b/cpukit/posix/src/pthreadattrdestroy.c
index 27d58ccec7..eebda081bf 100644
--- a/cpukit/posix/src/pthreadattrdestroy.c
+++ b/cpukit/posix/src/pthreadattrdestroy.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Thread Creation Attributes
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadattrgetdetachstate.c b/cpukit/posix/src/pthreadattrgetdetachstate.c
index bd23cb7f30..fd66a6bd47 100644
--- a/cpukit/posix/src/pthreadattrgetdetachstate.c
+++ b/cpukit/posix/src/pthreadattrgetdetachstate.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function gets the detachstate Attribute in the attr Object
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadattrgetguardsize.c b/cpukit/posix/src/pthreadattrgetguardsize.c
index 81eee4f9f9..1258a3a771 100644
--- a/cpukit/posix/src/pthreadattrgetguardsize.c
+++ b/cpukit/posix/src/pthreadattrgetguardsize.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Thread Creation Attributes
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadattrgetinheritsched.c b/cpukit/posix/src/pthreadattrgetinheritsched.c
index 84f1fa560f..629519f2fe 100644
--- a/cpukit/posix/src/pthreadattrgetinheritsched.c
+++ b/cpukit/posix/src/pthreadattrgetinheritsched.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Thread Creation Scheduling Attributes
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadattrgetschedparam.c b/cpukit/posix/src/pthreadattrgetschedparam.c
index eee962f854..cf0fa82ad1 100644
--- a/cpukit/posix/src/pthreadattrgetschedparam.c
+++ b/cpukit/posix/src/pthreadattrgetschedparam.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Returns Scheduling Parameter Attributes of Thread Attributes Object
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadattrgetschedpolicy.c b/cpukit/posix/src/pthreadattrgetschedpolicy.c
index 6b57e8a2ca..0db47ef6bb 100644
--- a/cpukit/posix/src/pthreadattrgetschedpolicy.c
+++ b/cpukit/posix/src/pthreadattrgetschedpolicy.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Get The Schedpolicy Attribute
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadattrgetscope.c b/cpukit/posix/src/pthreadattrgetscope.c
index ee5ed4c044..617f8fde0d 100644
--- a/cpukit/posix/src/pthreadattrgetscope.c
+++ b/cpukit/posix/src/pthreadattrgetscope.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function gets the Contentionscope Attribute in the attr object
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadattrgetstack.c b/cpukit/posix/src/pthreadattrgetstack.c
index a1254ae7a1..298383556b 100644
--- a/cpukit/posix/src/pthreadattrgetstack.c
+++ b/cpukit/posix/src/pthreadattrgetstack.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function Gets the Thread Creation Stack Attributes in the attr
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadattrgetstackaddr.c b/cpukit/posix/src/pthreadattrgetstackaddr.c
index dfdffbd662..e169bc6ecc 100644
--- a/cpukit/posix/src/pthreadattrgetstackaddr.c
+++ b/cpukit/posix/src/pthreadattrgetstackaddr.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Thread Creation Attributes
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadattrgetstacksize.c b/cpukit/posix/src/pthreadattrgetstacksize.c
index 06854ca54b..97c0b9478e 100644
--- a/cpukit/posix/src/pthreadattrgetstacksize.c
+++ b/cpukit/posix/src/pthreadattrgetstacksize.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Thread Creation Attributes
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadattrinit.c b/cpukit/posix/src/pthreadattrinit.c
index 1e5211bfd6..dd3f222cf6 100644
--- a/cpukit/posix/src/pthreadattrinit.c
+++ b/cpukit/posix/src/pthreadattrinit.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Thread Attributes Creation
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadattrsetdetachstate.c b/cpukit/posix/src/pthreadattrsetdetachstate.c
index a76d304a43..1d5feb817a 100644
--- a/cpukit/posix/src/pthreadattrsetdetachstate.c
+++ b/cpukit/posix/src/pthreadattrsetdetachstate.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Thread Creation Attributes
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadattrsetguardsize.c b/cpukit/posix/src/pthreadattrsetguardsize.c
index 7656d4fee9..f6df5784ef 100644
--- a/cpukit/posix/src/pthreadattrsetguardsize.c
+++ b/cpukit/posix/src/pthreadattrsetguardsize.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Thread Creation Attributes
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadattrsetinheritsched.c b/cpukit/posix/src/pthreadattrsetinheritsched.c
index 2951444fcf..8f414abed3 100644
--- a/cpukit/posix/src/pthreadattrsetinheritsched.c
+++ b/cpukit/posix/src/pthreadattrsetinheritsched.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function sets the inheritsched Attribute in the attr Argument
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadattrsetschedparam.c b/cpukit/posix/src/pthreadattrsetschedparam.c
index 65e560198f..f84ff0ec9e 100644
--- a/cpukit/posix/src/pthreadattrsetschedparam.c
+++ b/cpukit/posix/src/pthreadattrsetschedparam.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Thread Creation Scheduling Parameters
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadattrsetschedpolicy.c b/cpukit/posix/src/pthreadattrsetschedpolicy.c
index ee7fe1fce3..4b4187ef40 100644
--- a/cpukit/posix/src/pthreadattrsetschedpolicy.c
+++ b/cpukit/posix/src/pthreadattrsetschedpolicy.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Sets Scheduling policy Attributes of Thread Attributes Object
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadattrsetscope.c b/cpukit/posix/src/pthreadattrsetscope.c
index d468524086..db2c931388 100644
--- a/cpukit/posix/src/pthreadattrsetscope.c
+++ b/cpukit/posix/src/pthreadattrsetscope.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function Sets the Contentionscope Attribute in the attr Object
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadattrsetstack.c b/cpukit/posix/src/pthreadattrsetstack.c
index 04231ed791..e512c160e2 100644
--- a/cpukit/posix/src/pthreadattrsetstack.c
+++ b/cpukit/posix/src/pthreadattrsetstack.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function Sets Thread Creation Stack Attributes in the attr object
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadattrsetstackaddr.c b/cpukit/posix/src/pthreadattrsetstackaddr.c
index 1696bb95ac..1ac4720c09 100644
--- a/cpukit/posix/src/pthreadattrsetstackaddr.c
+++ b/cpukit/posix/src/pthreadattrsetstackaddr.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Sets the Thread Creation stackaddr Attribute in the attr Object
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadattrsetstacksize.c b/cpukit/posix/src/pthreadattrsetstacksize.c
index eb269e3df9..313034ce02 100644
--- a/cpukit/posix/src/pthreadattrsetstacksize.c
+++ b/cpukit/posix/src/pthreadattrsetstacksize.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Sets the Thread Creation Stacksize Attribute in the attr object
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadcreate.c b/cpukit/posix/src/pthreadcreate.c
index 30551ac64c..9585772d17 100644
--- a/cpukit/posix/src/pthreadcreate.c
+++ b/cpukit/posix/src/pthreadcreate.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function Starts a New Thread in The Calling Process
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreaddetach.c b/cpukit/posix/src/pthreaddetach.c
index 682bac8b42..824537eb8c 100644
--- a/cpukit/posix/src/pthreaddetach.c
+++ b/cpukit/posix/src/pthreaddetach.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Detaching a Thread
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadequal.c b/cpukit/posix/src/pthreadequal.c
index ce08b1ea88..199cc8fb9a 100644
--- a/cpukit/posix/src/pthreadequal.c
+++ b/cpukit/posix/src/pthreadequal.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Compare Thread IDs
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadgetcpuclockid.c b/cpukit/posix/src/pthreadgetcpuclockid.c
index 0b7e3bbd28..2d95b00684 100644
--- a/cpukit/posix/src/pthreadgetcpuclockid.c
+++ b/cpukit/posix/src/pthreadgetcpuclockid.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Returns Clock ID for CPU time clock of the thread
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadgetschedparam.c b/cpukit/posix/src/pthreadgetschedparam.c
index 8c78ccca52..d681f0479a 100644
--- a/cpukit/posix/src/pthreadgetschedparam.c
+++ b/cpukit/posix/src/pthreadgetschedparam.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Gets Scheduling Policy and Parameters of Individual Threads
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadjoin.c b/cpukit/posix/src/pthreadjoin.c
index 115f39d103..8304aa3685 100644
--- a/cpukit/posix/src/pthreadjoin.c
+++ b/cpukit/posix/src/pthreadjoin.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Suspends Execution of Calling Thread until Target Thread Terminates
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadkill.c b/cpukit/posix/src/pthreadkill.c
index 420aaa567f..e0f395070d 100644
--- a/cpukit/posix/src/pthreadkill.c
+++ b/cpukit/posix/src/pthreadkill.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Sends a signal Asynchronously directed to a thread
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadonce.c b/cpukit/posix/src/pthreadonce.c
index 651e4d0539..0700a222c7 100644
--- a/cpukit/posix/src/pthreadonce.c
+++ b/cpukit/posix/src/pthreadonce.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Call to function by Thread will call init_routine with no Arguments
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadself.c b/cpukit/posix/src/pthreadself.c
index 0ed68be515..de6a40955b 100644
--- a/cpukit/posix/src/pthreadself.c
+++ b/cpukit/posix/src/pthreadself.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function returns the ID of the Calling Thread
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadsetschedparam.c b/cpukit/posix/src/pthreadsetschedparam.c
index d574811ae0..06216f49a1 100644
--- a/cpukit/posix/src/pthreadsetschedparam.c
+++ b/cpukit/posix/src/pthreadsetschedparam.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function sets scheduling policy and parameters of the thread
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/pthreadsigmask.c b/cpukit/posix/src/pthreadsigmask.c
index 9d47e44865..3f985bfa39 100644
--- a/cpukit/posix/src/pthreadsigmask.c
+++ b/cpukit/posix/src/pthreadsigmask.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Examine and/or change the calling thread's signal mask
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/ptimer.c b/cpukit/posix/src/ptimer.c
index 1d5ac6245e..540fb71cef 100644
--- a/cpukit/posix/src/ptimer.c
+++ b/cpukit/posix/src/ptimer.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Process Timer
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/rwlockattrdestroy.c b/cpukit/posix/src/rwlockattrdestroy.c
index 102b141704..925ff35e68 100644
--- a/cpukit/posix/src/rwlockattrdestroy.c
+++ b/cpukit/posix/src/rwlockattrdestroy.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function Destroys a read-write lock Attributes object
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/rwlockattrgetpshared.c b/cpukit/posix/src/rwlockattrgetpshared.c
index 233cbffa22..95e059ee87 100644
--- a/cpukit/posix/src/rwlockattrgetpshared.c
+++ b/cpukit/posix/src/rwlockattrgetpshared.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Get the Process-Shared Attribute of the RWLock
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/rwlockattrinit.c b/cpukit/posix/src/rwlockattrinit.c
index 381cd52b0d..2baad73c3d 100644
--- a/cpukit/posix/src/rwlockattrinit.c
+++ b/cpukit/posix/src/rwlockattrinit.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Initialises a RWLock Attributes object attr with the default value
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/rwlockattrsetpshared.c b/cpukit/posix/src/rwlockattrsetpshared.c
index 5a32530e1e..80f53cd7af 100644
--- a/cpukit/posix/src/rwlockattrsetpshared.c
+++ b/cpukit/posix/src/rwlockattrsetpshared.c
@@ -2,7 +2,7 @@
* @file
*
* @brief RWLock Attributes Set Process Shared
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sched_getparam.c b/cpukit/posix/src/sched_getparam.c
index d9e516a8ed..8e7336080d 100644
--- a/cpukit/posix/src/sched_getparam.c
+++ b/cpukit/posix/src/sched_getparam.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Set Scheduling Parameters
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sched_getprioritymax.c b/cpukit/posix/src/sched_getprioritymax.c
index 5a77e258f1..ab4c2056d1 100644
--- a/cpukit/posix/src/sched_getprioritymax.c
+++ b/cpukit/posix/src/sched_getprioritymax.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Returns the Appropriate Maximum for Scheduling policy
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sched_getprioritymin.c b/cpukit/posix/src/sched_getprioritymin.c
index 73d892de47..d419e66431 100644
--- a/cpukit/posix/src/sched_getprioritymin.c
+++ b/cpukit/posix/src/sched_getprioritymin.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Get the Minimum Priority Limit
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sched_getscheduler.c b/cpukit/posix/src/sched_getscheduler.c
index 6f12cd7868..92da28f854 100644
--- a/cpukit/posix/src/sched_getscheduler.c
+++ b/cpukit/posix/src/sched_getscheduler.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function Returns Scheduling Policy of the process specified by pid
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sched_rr_get_interval.c b/cpukit/posix/src/sched_rr_get_interval.c
index b73f60f229..c606bc9ef2 100644
--- a/cpukit/posix/src/sched_rr_get_interval.c
+++ b/cpukit/posix/src/sched_rr_get_interval.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Limits for Scheduling Parameter
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sched_setparam.c b/cpukit/posix/src/sched_setparam.c
index 8e894e0978..e291292555 100644
--- a/cpukit/posix/src/sched_setparam.c
+++ b/cpukit/posix/src/sched_setparam.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Sets Scheduling Parameters Associated with Scheduling Policies
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sched_setscheduler.c b/cpukit/posix/src/sched_setscheduler.c
index f9b5c3f562..fef66f2aa7 100644
--- a/cpukit/posix/src/sched_setscheduler.c
+++ b/cpukit/posix/src/sched_setscheduler.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Set Scheduling Policy and Scheduling Parameters
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sched_yield.c b/cpukit/posix/src/sched_yield.c
index 1aa4713a85..207cbb286a 100644
--- a/cpukit/posix/src/sched_yield.c
+++ b/cpukit/posix/src/sched_yield.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Yield Processor
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/semaphore.c b/cpukit/posix/src/semaphore.c
index b214a3c302..58da098501 100644
--- a/cpukit/posix/src/semaphore.c
+++ b/cpukit/posix/src/semaphore.c
@@ -2,7 +2,7 @@
* @file
*
* @brief POSIX Function Initializes Semaphore Manager
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/semaphorecreatesupp.c b/cpukit/posix/src/semaphorecreatesupp.c
index 18fef72a03..026e7fafcd 100644
--- a/cpukit/posix/src/semaphorecreatesupp.c
+++ b/cpukit/posix/src/semaphorecreatesupp.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function does Actual creation and Initialization of POSIX Semaphore
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/semaphoretranslatereturncode.c b/cpukit/posix/src/semaphoretranslatereturncode.c
index 2c54b9fb49..44885d6085 100644
--- a/cpukit/posix/src/semaphoretranslatereturncode.c
+++ b/cpukit/posix/src/semaphoretranslatereturncode.c
@@ -2,7 +2,7 @@
* @file
*
* @brief POSIX Semaphore Code Translation Error
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/semaphorewaitsupp.c b/cpukit/posix/src/semaphorewaitsupp.c
index 5b215dad23..08a26ee16f 100644
--- a/cpukit/posix/src/semaphorewaitsupp.c
+++ b/cpukit/posix/src/semaphorewaitsupp.c
@@ -2,11 +2,11 @@
* @file
*
* @brief POSIX Semaphore Wait Support
- * @ingroup POSIX_SEMAPHORES Semaphore
+ * @ingroup POSIXSemaphorePrivate
*/
/*
- * COPYRIGHT (c) 1989-2008.
+ * COPYRIGHT (c) 1989-2012.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -32,10 +32,6 @@
#include <rtems/posix/time.h>
#include <rtems/seterr.h>
-/*
- * _POSIX_Semaphore_Wait_support
- */
-
int _POSIX_Semaphore_Wait_support(
sem_t *sem,
bool blocking,
diff --git a/cpukit/posix/src/seminit.c b/cpukit/posix/src/seminit.c
index be7056dcad..f0dcb7137f 100644
--- a/cpukit/posix/src/seminit.c
+++ b/cpukit/posix/src/seminit.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Initializing of an Unnamed Semaphore
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/semopen.c b/cpukit/posix/src/semopen.c
index 1ecd75105b..113c622e97 100644
--- a/cpukit/posix/src/semopen.c
+++ b/cpukit/posix/src/semopen.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function Creates New POSIX semaphore or Opens an existing Semaphore
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/setcancelstate.c b/cpukit/posix/src/setcancelstate.c
index 31bef65eff..4d0699c310 100644
--- a/cpukit/posix/src/setcancelstate.c
+++ b/cpukit/posix/src/setcancelstate.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Setting Cancelability State
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/setcanceltype.c b/cpukit/posix/src/setcanceltype.c
index 6a82374229..115eebf638 100644
--- a/cpukit/posix/src/setcanceltype.c
+++ b/cpukit/posix/src/setcanceltype.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Sets the Cancelability Type of Calling Thread to value given in type
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/setitimer.c b/cpukit/posix/src/setitimer.c
index f8ab9efa56..3c84b469c7 100644
--- a/cpukit/posix/src/setitimer.c
+++ b/cpukit/posix/src/setitimer.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Set the Timer
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sigaction.c b/cpukit/posix/src/sigaction.c
index b2906558e0..cfcc65cec4 100644
--- a/cpukit/posix/src/sigaction.c
+++ b/cpukit/posix/src/sigaction.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Allows calling process to examine action of a Specific Signal
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sigaddset.c b/cpukit/posix/src/sigaddset.c
index d4e324fe5e..4ad925e563 100644
--- a/cpukit/posix/src/sigaddset.c
+++ b/cpukit/posix/src/sigaddset.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function Adds Signal from Set
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sigdelset.c b/cpukit/posix/src/sigdelset.c
index 7567689ccd..0d808163c1 100644
--- a/cpukit/posix/src/sigdelset.c
+++ b/cpukit/posix/src/sigdelset.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Deleted Signal from Set
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sigemptyset.c b/cpukit/posix/src/sigemptyset.c
index 5cfc310ba1..270f67636f 100644
--- a/cpukit/posix/src/sigemptyset.c
+++ b/cpukit/posix/src/sigemptyset.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Manipulate Signal Sets
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sigfillset.c b/cpukit/posix/src/sigfillset.c
index 32b1ef15d0..fb6ca50dfa 100644
--- a/cpukit/posix/src/sigfillset.c
+++ b/cpukit/posix/src/sigfillset.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Manipulate Signal Sets
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sigismember.c b/cpukit/posix/src/sigismember.c
index 5591085af4..f08e9c7224 100644
--- a/cpukit/posix/src/sigismember.c
+++ b/cpukit/posix/src/sigismember.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Manipulate Signal Sets
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/signal_2.c b/cpukit/posix/src/signal_2.c
index 75f13d8f92..de15cf62e3 100644
--- a/cpukit/posix/src/signal_2.c
+++ b/cpukit/posix/src/signal_2.c
@@ -2,7 +2,7 @@
* @file
*
* @brief POSIX Function Installs signal Handler
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sigpending.c b/cpukit/posix/src/sigpending.c
index c62d878b6b..44dbe93127 100644
--- a/cpukit/posix/src/sigpending.c
+++ b/cpukit/posix/src/sigpending.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Examine Pending Signals
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sigprocmask.c b/cpukit/posix/src/sigprocmask.c
index 464343bab0..b6daf81e35 100644
--- a/cpukit/posix/src/sigprocmask.c
+++ b/cpukit/posix/src/sigprocmask.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Examine and Change Blocked Signals
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sigqueue.c b/cpukit/posix/src/sigqueue.c
index 8b65aba0cb..99c214745e 100644
--- a/cpukit/posix/src/sigqueue.c
+++ b/cpukit/posix/src/sigqueue.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Queue a Signal to a Process
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sigsuspend.c b/cpukit/posix/src/sigsuspend.c
index b1f1c4cc77..c3ab2bb0a0 100644
--- a/cpukit/posix/src/sigsuspend.c
+++ b/cpukit/posix/src/sigsuspend.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Replacing signal mask with *sigmask and suspending calling process
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sigtimedwait.c b/cpukit/posix/src/sigtimedwait.c
index b350a2cc33..ef8bbdfd8f 100644
--- a/cpukit/posix/src/sigtimedwait.c
+++ b/cpukit/posix/src/sigtimedwait.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Wait for Queued Signals
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sigwait.c b/cpukit/posix/src/sigwait.c
index 24afa80602..a51fe7b2ff 100644
--- a/cpukit/posix/src/sigwait.c
+++ b/cpukit/posix/src/sigwait.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Synchronously Accept a Signal
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/sysconf.c b/cpukit/posix/src/sysconf.c
index fb0939fbe2..65812d34a5 100644
--- a/cpukit/posix/src/sysconf.c
+++ b/cpukit/posix/src/sysconf.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Get Configurable System Variables
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/testcancel.c b/cpukit/posix/src/testcancel.c
index 6228af6165..e7e08d2b73 100644
--- a/cpukit/posix/src/testcancel.c
+++ b/cpukit/posix/src/testcancel.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Setting test on Cancelability State
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/timerdelete.c b/cpukit/posix/src/timerdelete.c
index 473c0df3fe..f8690eb2fc 100644
--- a/cpukit/posix/src/timerdelete.c
+++ b/cpukit/posix/src/timerdelete.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Deletes a POSIX Interval Timer
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/timergettime.c b/cpukit/posix/src/timergettime.c
index 823989a4e4..7b9de539b6 100644
--- a/cpukit/posix/src/timergettime.c
+++ b/cpukit/posix/src/timergettime.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function Fetches State of POSIX Per-Process Timers
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/timerinserthelper.c b/cpukit/posix/src/timerinserthelper.c
index a1726770d9..eddc455f57 100644
--- a/cpukit/posix/src/timerinserthelper.c
+++ b/cpukit/posix/src/timerinserthelper.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Helper Routine for POSIX TIMERS
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/timersettime.c b/cpukit/posix/src/timersettime.c
index 00cce57b59..7bdcad8bad 100644
--- a/cpukit/posix/src/timersettime.c
+++ b/cpukit/posix/src/timersettime.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Function Arms or Disarms the Timer Identified by timerid
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/ualarm.c b/cpukit/posix/src/ualarm.c
index 34ab0a41cc..e9a4bb82ae 100644
--- a/cpukit/posix/src/ualarm.c
+++ b/cpukit/posix/src/ualarm.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Schedule Alarm
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/vfork.c b/cpukit/posix/src/vfork.c
index 3bb0f31b83..1d9fa71cf2 100644
--- a/cpukit/posix/src/vfork.c
+++ b/cpukit/posix/src/vfork.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Creates Child process Of The Calling process
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/wait.c b/cpukit/posix/src/wait.c
index 8e48af71d6..da22ab7486 100644
--- a/cpukit/posix/src/wait.c
+++ b/cpukit/posix/src/wait.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Wait for Process to Change State
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/posix/src/waitpid.c b/cpukit/posix/src/waitpid.c
index 03e4f7d731..3899fc427c 100644
--- a/cpukit/posix/src/waitpid.c
+++ b/cpukit/posix/src/waitpid.c
@@ -2,7 +2,7 @@
* @file
*
* @brief Wait for Process to Change State
- * @ingroup POSIX
+ * @ingroup POSIXAPI
*/
/*
diff --git a/cpukit/preinstall.am b/cpukit/preinstall.am
index 26b90ecc75..d1e1f87804 100644
--- a/cpukit/preinstall.am
+++ b/cpukit/preinstall.am
@@ -43,7 +43,7 @@ $(PROJECT_INCLUDE)/sys/$(dirstamp):
@: > $(PROJECT_INCLUDE)/sys/$(dirstamp)
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/sys/$(dirstamp)
-$(PROJECT_INCLUDE)/memory.h: libnetworking/memory.h $(PROJECT_INCLUDE)/$(dirstamp)
+$(PROJECT_INCLUDE)/memory.h: include/memory.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/memory.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/memory.h
@@ -87,10 +87,14 @@ $(PROJECT_INCLUDE)/sys/utsname.h: libcsupport/include/sys/utsname.h $(PROJECT_IN
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/utsname.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/utsname.h
-$(PROJECT_INCLUDE)/sys/uio.h: libnetworking/sys/uio.h $(PROJECT_INCLUDE)/sys/$(dirstamp)
+$(PROJECT_INCLUDE)/sys/uio.h: include/sys/uio.h $(PROJECT_INCLUDE)/sys/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/uio.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/uio.h
+$(PROJECT_INCLUDE)/sys/_iovec.h: include/sys/_iovec.h $(PROJECT_INCLUDE)/sys/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/_iovec.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/_iovec.h
+
$(PROJECT_INCLUDE)/sys/priority.h: include/sys/priority.h $(PROJECT_INCLUDE)/sys/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/priority.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/priority.h
diff --git a/cpukit/rtems/include/rtems.h b/cpukit/rtems/include/rtems.h
index 68c6a0b7b9..a644fa051c 100644
--- a/cpukit/rtems/include/rtems.h
+++ b/cpukit/rtems/include/rtems.h
@@ -1,17 +1,19 @@
/**
* @file
*
- * @ingroup ClassicRTEMS
+ * @defgroup ClassicRTEMS RTEMS Classic API
+ *
+ * @brief RTEMS Classic API
*
- * @brief Provides the public interface to the RTEMS Classic API.
+ * the Public Interface to the RTEMS Classic API
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_H
@@ -21,9 +23,8 @@
* @defgroup ClassicRTEMS RTEMS Classic API
*
* RTEMS Classic API definitions and modules.
- *
- * @{
*/
+/**@{*/
#ifdef __cplusplus
extern "C" {
@@ -158,7 +159,7 @@ const char *rtems_get_version_string(void);
* risk of blown stacks for most user applications. Using this constant when
* specifying the task stack size, indicates that the stack size will be at
* least RTEMS_MINIMUM_STACK_SIZE bytes in size. If the user configured minimum
- * stack size is larger than the recommended minimum, then it will be used.
+ * stack size is larger than the recommended minimum, then it will be used.
*/
#define RTEMS_MINIMUM_STACK_SIZE STACK_MINIMUM_SIZE
@@ -174,7 +175,7 @@ const char *rtems_get_version_string(void);
* minimum stack size value, you may get a stack size that is smaller or larger
* than the recommended minimum. This can be used to provide large stacks for
* all tasks on complex applications or small stacks on applications that are
- * trying to conserve memory.
+ * trying to conserve memory.
*/
#define RTEMS_CONFIGURED_MINIMUM_STACK_SIZE 0
diff --git a/cpukit/rtems/include/rtems/rtems/asr.h b/cpukit/rtems/include/rtems/rtems/asr.h
index 372f4c7073..6516233328 100644
--- a/cpukit/rtems/include/rtems/rtems/asr.h
+++ b/cpukit/rtems/include/rtems/rtems/asr.h
@@ -1,19 +1,22 @@
/**
* @file rtems/rtems/asr.h
*
- * @brief Constants and Structures Associated with the Asynchronous Signal Handler
+ * @defgroup ClassicASR ASR Support
*
- * This include file contains all the constants and structures associated
- * with the Asynchronous Signal Handler. This Handler provides the low-level
- * support required by the Signal Manager.
+ * @ingroup ClassicRTEMS
+ * @brief Asynchronous Signal Handler
+ *
+ * This include file contains all the constants and structures associated
+ * with the Asynchronous Signal Handler. This Handler provides the low-level
+ * support required by the Signal Manager.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_ASR_H
diff --git a/cpukit/rtems/include/rtems/rtems/attr.h b/cpukit/rtems/include/rtems/rtems/attr.h
index 674ee08eff..4753e3acee 100644
--- a/cpukit/rtems/include/rtems/rtems/attr.h
+++ b/cpukit/rtems/include/rtems/rtems/attr.h
@@ -1,16 +1,21 @@
/**
* @file rtems/rtems/attr.h
*
- * This include file contains all information about the Object Attributes
- * Handler.
+ * @defgroup ClassicAttributes Attributes
+ *
+ * @ingroup ClassicRTEMS
+ * @brief Object Attributes Handler
+ *
+ * This include file contains all information about the Object Attributes
+ * Handler.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_ATTR_H
diff --git a/cpukit/rtems/include/rtems/rtems/barrier.h b/cpukit/rtems/include/rtems/rtems/barrier.h
index b7e74839a5..b27f81b378 100644
--- a/cpukit/rtems/include/rtems/rtems/barrier.h
+++ b/cpukit/rtems/include/rtems/rtems/barrier.h
@@ -1,49 +1,53 @@
/**
* @file rtems/rtems/barrier.h
*
- * @brief Constants and Structures Associated with the Barrier Manager
+ * @defgroup ClassicBarrier Barriers
*
- * This include file contains all the constants and structures associated
- * with the Barrier Manager.
+ * @ingroup ClassicRTEMS
+ * @brief Classic API Barrier Manager
*
- * Directives provided are:
+ * This include file contains all the constants and structures associated
+ * with the Barrier Manager.
*
- * - create a barrier
- * - get an ID of a barrier
- * - delete a barrier
- * - wait for a barrier
- * - signal a barrier
+ * Directives provided are:
+ *
+ * - create a barrier
+ * - get an ID of a barrier
+ * - delete a barrier
+ * - wait for a barrier
+ * - signal a barrier
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_BARRIER_H
#define _RTEMS_RTEMS_BARRIER_H
/**
- * @defgroup ClassicBarrier Barriers
+ * @defgroup ClassicBarrier Barriers
*
- * @ingroup ClassicRTEMS
+ * @ingroup ClassicRTEMS
*
- * This encapsulates functionality which XXX
+ * This encapsulates functionality which implements the Classic API
+ * Barrier Manager.
*/
/**@{*/
/**
- * @brief Instantiate Barrier Data
+ * @brief Instantiate Barrier Data
*
- * Barrier Manager -- Instantiate Data
+ * Barrier Manager -- Instantiate Data
*
- * This constant is defined to extern most of the time when using
- * this header file. However by defining it to nothing, the data
- * declared in this header file can be instantiated. This is done
- * in a single per manager file.
+ * This constant is defined to extern most of the time when using
+ * this header file. However by defining it to nothing, the data
+ * declared in this header file can be instantiated. This is done
+ * in a single per manager file.
*/
#ifndef RTEMS_BARRIER_EXTERN
#define RTEMS_BARRIER_EXTERN extern
@@ -86,23 +90,23 @@ RTEMS_BARRIER_EXTERN Objects_Information _Barrier_Information;
void _Barrier_Manager_initialization(void);
/**
- * @brief RTEMS Create Barrier
+ * @brief RTEMS Create Barrier
*
- * Barrier Manager -- Create a Barrier Instance
+ * Barrier Manager -- Create a Barrier Instance
*
- * This routine implements the rtems_barrier_create directive. The
- * barrier will have the name name. The starting count for
- * the barrier is count. The attribute_set determines if
- * the barrier is global or local and the thread queue
- * discipline. It returns the id of the created barrier in ID.
+ * This routine implements the rtems_barrier_create directive. The
+ * barrier will have the name name. The starting count for
+ * the barrier is count. The attribute_set determines if
+ * the barrier is global or local and the thread queue
+ * discipline. It returns the id of the created barrier in ID.
*
- * @param[in] name is the name of this barrier instance.
- * @param[in] attribute_set specifies the attributes of this barrier instance.
- * @param[in] maximum_waiters is the maximum number of threads which will
- * be allowed to concurrently wait at the barrier.
- * @param[out] id will contain the id of this barrier.
+ * @param[in] name is the name of this barrier instance.
+ * @param[in] attribute_set specifies the attributes of this barrier instance.
+ * @param[in] maximum_waiters is the maximum number of threads which will
+ * be allowed to concurrently wait at the barrier.
+ * @param[out] id will contain the id of this barrier.
*
- * @return a status code indicating success or the reason for failure.
+ * @retval a status code indicating success or the reason for failure.
*/
rtems_status_code rtems_barrier_create(
rtems_name name,
@@ -112,20 +116,20 @@ rtems_status_code rtems_barrier_create(
);
/**
- * @brief RTEMS Barrier name to Id
+ * @brief RTEMS Barrier name to Id
*
- * This routine implements the rtems_barrier_ident directive.
- * This directive returns the barrier ID associated with name.
- * If more than one barrier is named name, then the barrier
- * to which the ID belongs is arbitrary. node indicates the
- * extent of the search for the ID of the barrier named name.
- * The search can be limited to a particular node or allowed to
- * encompass all nodes.
+ * This routine implements the rtems_barrier_ident directive.
+ * This directive returns the barrier ID associated with name.
+ * If more than one barrier is named name, then the barrier
+ * to which the ID belongs is arbitrary. node indicates the
+ * extent of the search for the ID of the barrier named name.
+ * The search can be limited to a particular node or allowed to
+ * encompass all nodes.
*
- * @param[in] name is the name of this barrier instance.
- * @param[out] id will contain the id of this barrier.
+ * @param[in] name is the name of this barrier instance.
+ * @param[out] id will contain the id of this barrier.
*
- * @return a status code indicating success or the reason for failure.
+ * @retval a status code indicating success or the reason for failure.
*/
rtems_status_code rtems_barrier_ident(
rtems_name name,
@@ -133,34 +137,34 @@ rtems_status_code rtems_barrier_ident(
);
/**
- * @brief RTEMS Delete Barrier
+ * @brief RTEMS Delete Barrier
*
- * This routine implements the rtems_barrier_delete directive. The
- * barrier indicated by @a id is deleted. The barrier is freed back to the
- * inactive barrier chain.
+ * This routine implements the rtems_barrier_delete directive. The
+ * barrier indicated by @a id is deleted. The barrier is freed back to the
+ * inactive barrier chain.
*
*
- * @param[in] id indicates the barrier to delete
+ * @param[in] id indicates the barrier to delete
*
- * @return a status code indicating success or the reason for failure.
+ * @retval a status code indicating success or the reason for failure.
*/
rtems_status_code rtems_barrier_delete(
rtems_id id
);
/**
- * @brief RTEMS Barrier Wait
+ * @brief RTEMS Barrier Wait
*
- * This routine implements the rtems_barrier_wait directive. It
- * attempts to wait at the barrier associated with @a id. The calling task
- * may block waiting for the barrier with an optional timeout of @a timeout
- * clock ticks.
+ * This routine implements the rtems_barrier_wait directive. It
+ * attempts to wait at the barrier associated with @a id. The calling task
+ * may block waiting for the barrier with an optional timeout of @a timeout
+ * clock ticks.
*
- * @param[in] id indicates the barrier to wait at.
- * @param[in] timeout is the maximum length of time in ticks the calling
- * thread is willing to block.
+ * @param[in] id indicates the barrier to wait at.
+ * @param[in] timeout is the maximum length of time in ticks the calling
+ * thread is willing to block.
*
- * @return a status code indicating success or the reason for failure.
+ * @retval a status code indicating success or the reason for failure.
*/
rtems_status_code rtems_barrier_wait(
rtems_id id,
@@ -168,19 +172,19 @@ rtems_status_code rtems_barrier_wait(
);
/**
- * @brief RTEMS Barrier Release
+ * @brief RTEMS Barrier Release
*
- * Barrier Manager -- Release Tasks Waitng at a Barrier
+ * Barrier Manager -- Release Tasks Waitng at a Barrier
*
- * This routine implements the rtems_barrier_release directive. It
- * unblocks all of the threads waiting on the barrier associated with
- * @a id. The number of threads unblocked is returned in @a released.
+ * This routine implements the rtems_barrier_release directive. It
+ * unblocks all of the threads waiting on the barrier associated with
+ * @a id. The number of threads unblocked is returned in @a released.
*
*
- * @param[in] id indicates the barrier to wait at.
- * @param[out] released will contain the number of threads unblocked.
+ * @param[in] id indicates the barrier to wait at.
+ * @param[out] released will contain the number of threads unblocked.
*
- * @return a status code indicating success or the reason for failure.
+ * @retval a status code indicating success or the reason for failure.
*/
rtems_status_code rtems_barrier_release(
rtems_id id,
@@ -188,14 +192,14 @@ rtems_status_code rtems_barrier_release(
);
/**
- * @brief Translate SuperCore Barrier Status Code to RTEMS Status Code
+ * @brief Translate SuperCore Barrier Status Code to RTEMS Status Code
*
- * This function returns a RTEMS status code based on the barrier
- * status code specified.
+ * This function returns a RTEMS status code based on the barrier
+ * status code specified.
*
- * @param[in] the_status is the SuperCore Barrier status to translate.
+ * @param[in] the_status is the SuperCore Barrier status to translate.
*
- * @return a status code indicating success or the reason for failure.
+ * @retval a status code indicating success or the reason for failure.
*/
rtems_status_code _Barrier_Translate_core_barrier_return_code (
CORE_barrier_Status the_status
diff --git a/cpukit/rtems/include/rtems/rtems/barriermp.h b/cpukit/rtems/include/rtems/rtems/barriermp.h
index 102979c36b..d2a203b162 100644
--- a/cpukit/rtems/include/rtems/rtems/barriermp.h
+++ b/cpukit/rtems/include/rtems/rtems/barriermp.h
@@ -1,16 +1,18 @@
/**
* @file rtems/rtems/barriermp.h
*
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Support in the Barrier Manager.
+ * @brief MP Support in the Barrier Manager
+ *
+ * This include file contains all the constants and structures associated
+ * with the Multiprocessing Support in the Barrier Manager.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_SEMMP_H
@@ -23,7 +25,7 @@
*
* This encapsulates functionality which XXX
*/
-/**{*/
+/**@{*/
#ifdef __cplusplus
extern "C" {
diff --git a/cpukit/rtems/include/rtems/rtems/cache.h b/cpukit/rtems/include/rtems/rtems/cache.h
index 95cf14f741..c4bc79dc97 100644
--- a/cpukit/rtems/include/rtems/rtems/cache.h
+++ b/cpukit/rtems/include/rtems/rtems/cache.h
@@ -1,32 +1,35 @@
/**
* @file rtems/rtems/cache.h
*
- * @brief Functionality Associated with the Cache Manager
+ * @defgroup ClassicCache Cache
*
- * Cache Manager
+ * @ingroup ClassicRTEMS
+ * @brief Cache Manager
+ *
+ * Functionality Associated with the Cache Manager
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*
*
- * The functions in this file define the API to the RTEMS Cache Manager and
- * are divided into data cache and instruction cache functions. Data cache
- * functions are only meaningful if a data cache is supported. Instruction
- * cache functions are only meaningful if an instruction cache is supported.
+ * The functions in this file define the API to the RTEMS Cache Manager and
+ * are divided into data cache and instruction cache functions. Data cache
+ * functions are only meaningful if a data cache is supported. Instruction
+ * cache functions are only meaningful if an instruction cache is supported.
*
- * The functions below are implemented with CPU dependent support routines
- * implemented as part of libcpu. In the event that a CPU does not support a
- * specific function, the CPU dependent routine does nothing (but does exist).
+ * The functions below are implemented with CPU dependent support routines
+ * implemented as part of libcpu. In the event that a CPU does not support a
+ * specific function, the CPU dependent routine does nothing (but does exist).
*
- * At this point, the Cache Manager makes no considerations, and provides no
- * support for BSP specific issues such as a secondary cache. In such a system,
- * the CPU dependent routines would have to be modified, or a BSP layer added
- * to this Manager.
+ * At this point, the Cache Manager makes no considerations, and provides no
+ * support for BSP specific issues such as a secondary cache. In such a system,
+ * the CPU dependent routines would have to be modified, or a BSP layer added
+ * to this Manager.
*/
#ifndef _RTEMS_RTEMS_CACHE_H
diff --git a/cpukit/rtems/include/rtems/rtems/clock.h b/cpukit/rtems/include/rtems/rtems/clock.h
index 549dc798c9..3254b59dc1 100644
--- a/cpukit/rtems/include/rtems/rtems/clock.h
+++ b/cpukit/rtems/include/rtems/rtems/clock.h
@@ -1,27 +1,30 @@
/**
* @file rtems/rtems/clock.h
*
- * @brief Constants and Structures Associated with the Clock Manager
+ * @defgroup ClassicClock Clocks
*
- * This include file contains all the constants and structures associated
- * with the Clock Manager. This manager provides facilities to set, obtain,
- * and continually update the current date and time.
+ * @ingroup ClassicRTEMS
+ * @brief Clock Manager API
*
- * This manager provides directives to:
+ * This include file contains all the constants and structures associated
+ * with the Clock Manager. This manager provides facilities to set, obtain,
+ * and continually update the current date and time.
*
- * - set the current date and time
- * - obtain the current date and time
- * - set the nanoseconds since last clock tick handler
- * - announce a clock tick
- * - obtain the system uptime
+ * This manager provides directives to:
+ *
+ * - set the current date and time
+ * - obtain the current date and time
+ * - set the nanoseconds since last clock tick handler
+ * - announce a clock tick
+ * - obtain the system uptime
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_CLOCK_H
@@ -70,21 +73,21 @@ typedef Watchdog_Nanoseconds_since_last_tick_routine
rtems_nanoseconds_extension_routine;
/**
- * @brief Obtain Current Time of Day
+ * @brief Obtain Current Time of Day
*
- * This routine implements the rtems_clock_get directive. It returns
- * one of the following:
- * + current time of day
- * + seconds since epoch
- * + ticks since boot
- * + ticks per second
+ * This routine implements the rtems_clock_get directive. It returns
+ * one of the following:
+ * + current time of day
+ * + seconds since epoch
+ * + ticks since boot
+ * + ticks per second
*
- * @param[in] option is the format of time to return
- * @param[in] time_buffer points to the output area
+ * @param[in] option is the format of time to return
+ * @param[in] time_buffer points to the output area
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error.
*/
rtems_status_code rtems_clock_get(
rtems_clock_get_options option,
@@ -92,189 +95,191 @@ rtems_status_code rtems_clock_get(
);
/**
- * @brief Obtain Current Time of Day (Classic TOD)
+ * @brief Obtain Current Time of Day (Classic TOD)
*
- * This routine implements the rtems_clock_get_tod directive. It returns
- * the current time of day in the format defined by RTEID.
+ * This routine implements the rtems_clock_get_tod directive. It returns
+ * the current time of day in the format defined by RTEID.
*
- * Clock Manager - rtems_clock_get_tod
+ * Clock Manager - rtems_clock_get_tod
*
- * @param[in] time_buffer points to the time of day structure
+ * @param[in] time_buffer points to the time of day structure
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the time_buffer will
- * be filled in with the current time of day.
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error. If successful, the time_buffer will
+ * be filled in with the current time of day.
*/
rtems_status_code rtems_clock_get_tod(
rtems_time_of_day *time_buffer
);
/**
- * @brief Obtain TOD in struct timeval Format
+ * @brief Obtain TOD in struct timeval Format
*
- * This routine implements the rtems_clock_get_tod_timeval
- * directive.
+ * This routine implements the rtems_clock_get_tod_timeval
+ * directive.
*
- * @param[in] time points to the struct timeval variable to fill in
+ * @param[in] time points to the struct timeval variable to fill in
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the time will
- * be filled in with the current time of day.
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error. If successful, the time will
+ * be filled in with the current time of day.
*/
rtems_status_code rtems_clock_get_tod_timeval(
struct timeval *time
);
/**
- * @brief Obtain Seconds Since Epoch
+ * @brief Obtain Seconds Since Epoch
*
- * This routine implements the rtems_clock_get_seconds_since_epoch
- * directive.
+ * This routine implements the rtems_clock_get_seconds_since_epoch
+ * directive.
*
- * @param[in] the_interval points to the interval variable to fill in
+ * @param[in] the_interval points to the interval variable to fill in
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the time_buffer will
- * be filled in with the current time of day.
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error. If successful, the time_buffer will
+ * be filled in with the current time of day.
*/
rtems_status_code rtems_clock_get_seconds_since_epoch(
rtems_interval *the_interval
);
/**
- * @brief Obtain Ticks Since Boot
+ * @brief Obtain Ticks Since Boot
*
- * This routine implements the rtems_clock_get_ticks_since_boot
- * directive.
+ * This routine implements the rtems_clock_get_ticks_since_boot
+ * directive.
*
- * @return This method returns the number of ticks since boot. It cannot
- * fail since RTEMS always keeps a running count of ticks since boot.
+ * @retval This method returns the number of ticks since boot. It cannot
+ * fail since RTEMS always keeps a running count of ticks since boot.
*/
rtems_interval rtems_clock_get_ticks_since_boot(void);
/**
- * @brief Obtain Ticks Per Seconds
+ * @brief Obtain Ticks Per Seconds
*
- * This routine implements the rtems_clock_get_ticks_per_second
- * directive.
+ * This routine implements the rtems_clock_get_ticks_per_second
+ * directive.
*
- * @return This method returns the number of ticks since boot. It cannot
- * fail since RTEMS is always configured to know the number of
- * ticks per second.
+ * @retval This method returns the number of ticks since boot. It cannot
+ * fail since RTEMS is always configured to know the number of
+ * ticks per second.
*/
rtems_interval rtems_clock_get_ticks_per_second(void);
/**
- * @brief Set the Current TOD
+ * @brief Set the Current TOD
*
- * This routine implements the rtems_clock_set directive. It sets
- * the current time of day to that in the time_buffer record.
+ * This routine implements the rtems_clock_set directive. It sets
+ * the current time of day to that in the time_buffer record.
*
- * @param[in] time_buffer points to the new TOD
+ * @param[in] time_buffer points to the new TOD
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error.
*
- * @note Activities scheduled based upon the current time of day
- * may be executed immediately if the time is moved forward.
+ * @note Activities scheduled based upon the current time of day
+ * may be executed immediately if the time is moved forward.
*/
rtems_status_code rtems_clock_set(
const rtems_time_of_day *time_buffer
);
/**
- * @brief Announce a Clock Tick
+ * @brief Announce a Clock Tick
*
- * This routine implements the rtems_clock_tick directive. It is invoked
- * to inform RTEMS of the occurrence of a clock tick.
+ * This routine implements the rtems_clock_tick directive. It is invoked
+ * to inform RTEMS of the occurrence of a clock tick.
*
- * @return This directive always returns RTEMS_SUCCESSFUL.
+ * @retval This directive always returns RTEMS_SUCCESSFUL.
*
- * @note This method is typically called from an ISR and is the basis
- * for all timeouts and delays. This routine only works for leap-years
- * through 2099.
+ * @note This method is typically called from an ISR and is the basis
+ * for all timeouts and delays. This routine only works for leap-years
+ * through 2099.
*/
rtems_status_code rtems_clock_tick( void );
/**
- * @brief Set the BSP specific Nanoseconds Extension
+ * @brief Set the BSP specific Nanoseconds Extension
*
- * Clock Manager
+ * Clock Manager
*
- * This directive sets the BSP provided nanoseconds since last tick
- * extension.
+ * This directive sets the BSP provided nanoseconds since last tick
+ * extension.
*
- * @param[in] routine is a pointer to the extension routine
+ * @param[in] routine is a pointer to the extension routine
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
+ * @return This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error.
*/
rtems_status_code rtems_clock_set_nanoseconds_extension(
rtems_nanoseconds_extension_routine routine
);
/**
- * @brief Obtain the System Uptime
- *
- * This directive returns the system uptime.
+ * @brief Obtain the System Uptime
*
- * @param[in] uptime is a pointer to the time structure
+ * This directive returns the system uptime.
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the uptime will be
- * filled in.
+ * @param[in] uptime is a pointer to the time structure
*
- * Clock Manager - get uptime
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error. If successful, the @a uptime will be
+ * filled in.
*/
rtems_status_code rtems_clock_get_uptime(
struct timespec *uptime
);
/**
- * @brief Gets the System Uptime in the Struct Timeval Format
+ * @brief Gets the System Uptime in the Struct Timeval Format
+ *
+ * @param[out] uptime is a pointer to a struct timeval structure.
+ *
+ * @retval This methods returns the system uptime.
*
- * @param[out] Returns the system uptime. Pointer must not be NULL.
+ * @note Pointer must not be NULL.
*/
void rtems_clock_get_uptime_timeval( struct timeval *uptime );
/**
- * @brief Returns the system uptime in seconds.
+ * @brief Returns the system uptime in seconds.
*
- * @return The system uptime in seconds.
+ * @retval The system uptime in seconds.
*/
time_t rtems_clock_get_uptime_seconds( void );
/**
- * @brief TOD Validate
+ * @brief TOD Validate
*
- * This support function returns true if @a the_tod contains
- * a valid time of day, and false otherwise.
+ * This support function returns true if @a the_tod contains
+ * a valid time of day, and false otherwise.
*
- * @param[in] the_tod is the TOD structure to validate
+ * @param[in] the_tod is the TOD structure to validate
*
- * @return This method returns true if the TOD is valid and false otherwise.
+ * @retval This method returns true if the TOD is valid and false otherwise.
*
- * @note This routine only works for leap-years through 2099.
+ * @note This routine only works for leap-years through 2099.
*/
bool _TOD_Validate(
const rtems_time_of_day *the_tod
);
/**
- * @brief TOD to Seconds
+ * @brief TOD to Seconds
*
- * This function returns the number seconds between the epoch and @a the_tod.
+ * This function returns the number seconds between the epoch and @a the_tod.
*
- * @param[in] the_tod is the TOD structure to convert to seconds
+ * @param[in] the_tod is the TOD structure to convert to seconds
*
- * @return This method returns the number of seconds since epoch represented
- * by @a the_tod
+ * @retval This method returns the number of seconds since epoch represented
+ * by @a the_tod
*/
Watchdog_Interval _TOD_To_seconds(
const rtems_time_of_day *the_tod
diff --git a/cpukit/rtems/include/rtems/rtems/config.h b/cpukit/rtems/include/rtems/rtems/config.h
index e4ac509d88..3ad19ea68b 100644
--- a/cpukit/rtems/include/rtems/rtems/config.h
+++ b/cpukit/rtems/include/rtems/rtems/config.h
@@ -1,18 +1,21 @@
/**
* @file rtems/rtems/config.h
*
- * @brief Records Which Define the Configuration Table
+ * @defgroup ClassicConfig Configuration
*
- * This include file contains the table of user defined configuration
- * parameters specific for the RTEMS API.
+ * @ingroup ClassicRTEMS
+ * @brief Configuration Table
+ *
+ * This include file contains the table of user defined configuration
+ * parameters specific for the RTEMS API.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_CONFIG_H
diff --git a/cpukit/rtems/include/rtems/rtems/dpmem.h b/cpukit/rtems/include/rtems/rtems/dpmem.h
index 42601d5779..aea8aea6a4 100644
--- a/cpukit/rtems/include/rtems/rtems/dpmem.h
+++ b/cpukit/rtems/include/rtems/rtems/dpmem.h
@@ -1,27 +1,32 @@
/**
* @file rtems/rtems/dpmem.h
*
- * This include file contains all the constants and structures associated
- * with the Dual Ported Memory Manager. This manager provides a mechanism
- * for converting addresses between internal and external representations
- * for multiple dual-ported memory areas.
+ * @defgroup ClassicDPMEM Dual Ported Memory
*
- * Directives provided are:
+ * @ingroup ClassicRTEMS
+ * @brief Dual Ported Memory Manager
*
- * - create a port
- * - get ID of a port
- * - delete a port
- * - convert external to internal address
- * - convert internal to external address
+ * This include file contains all the constants and structures associated
+ * with the Dual Ported Memory Manager. This manager provides a mechanism
+ * for converting addresses between internal and external representations
+ * for multiple dual-ported memory areas.
+ *
+ * Directives provided are:
+ *
+ * - create a port
+ * - get ID of a port
+ * - delete a port
+ * - convert external to internal address
+ * - convert internal to external address
*
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_DPMEM_H
@@ -85,24 +90,24 @@ RTEMS_DPMEM_EXTERN Objects_Information _Dual_ported_memory_Information;
void _Dual_ported_memory_Manager_initialization(void);
/**
- * @brief Creates a port into a dual-ported memory area.
- *
- * This routine implements the rtems_port_create directive. The port
- * will have the name @a name. The port maps onto an area of dual ported
- * memory of length bytes which has internal_start and external_start
- * as the internal and external starting addresses, respectively.
- * It returns the id of the created port in ID.
- *
- * @param[in] name is the user defined port name
- * @param[in] internal_start is the internal start address of port
- * @param[in] external_start is the external start address of port
- * @param[in] length is the physical length in bytes
- * @param[out] id is the address of port id to set
- *
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the id will
- * be filled in with the port id.
+ * @brief Creates a port into a dual-ported memory area.
+ *
+ * This routine implements the rtems_port_create directive. The port
+ * will have the name @a name. The port maps onto an area of dual ported
+ * memory of length bytes which has internal_start and external_start
+ * as the internal and external starting addresses, respectively.
+ * It returns the id of the created port in ID.
+ *
+ * @param[in] name is the user defined port name
+ * @param[in] internal_start is the internal start address of port
+ * @param[in] external_start is the external start address of port
+ * @param[in] length is the physical length in bytes
+ * @param[out] id is the address of port id to set
+ *
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error. If successful, the id will
+ * be filled in with the port id.
*/
rtems_status_code rtems_port_create(
rtems_name name,
@@ -113,16 +118,16 @@ rtems_status_code rtems_port_create(
);
/**
- * @brief RTEMS Port Name to Id
- *
- * This routine implements the rtems_port_ident directive. This directive
- * returns the port ID associated with name. If more than one port is
- * named name, then the port to which the ID belongs is arbitrary.
- *
- * @param[in] name is the user defined port name
- * @param[out] id is the pointer to port id
- *
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful
+ * @brief RTEMS Port Name to Id
+ *
+ * This routine implements the rtems_port_ident directive. This directive
+ * returns the port ID associated with name. If more than one port is
+ * named name, then the port to which the ID belongs is arbitrary.
+ *
+ * @param[in] name is the user defined port name
+ * @param[out] id is the pointer to port id
+ *
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
*/
rtems_status_code rtems_port_ident(
rtems_name name,
@@ -130,35 +135,35 @@ rtems_status_code rtems_port_ident(
);
/**
- * @brief RTEMS Delete Port
- *
- * This routine implements the rtems_port_delete directive. It deletes
- * the port associated with ID.
- *
- * @param[in] id is the dual-ported memory area id
- *
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
+ * @brief RTEMS Delete Port
+ *
+ * This routine implements the rtems_port_delete directive. It deletes
+ * the port associated with ID.
+ *
+ * @param[in] id is the dual-ported memory area id
+ *
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error.
*/
rtems_status_code rtems_port_delete(
rtems_id id
);
/**
- * @brief RTEMS Port External to Internal
- *
- * This routine implements the rtems_port_external_to_internal directive.
- * It returns the internal port address which maps to the provided
- * external port address for the specified port ID.If the given external
- * address is an invalid dual-ported address, then the internal address is
- * set to the given external address.
- *
- * @param[in] id is the id of dp memory object
- * @param[in] external is the external address
- * @param[out] internal is the pointer of internal address to set
- *
- * @return RTEMS_SUCCESSFUL
+ * @brief RTEMS Port External to Internal
+ *
+ * This routine implements the rtems_port_external_to_internal directive.
+ * It returns the internal port address which maps to the provided
+ * external port address for the specified port ID. If the given external
+ * address is an invalid dual-ported address, then the internal address is
+ * set to the given external address.
+ *
+ * @param[in] id is the id of dp memory object
+ * @param[in] external is the external address
+ * @param[out] internal is the pointer of internal address to set
+ *
+ * @retval RTEMS_SUCCESSFUL
*/
rtems_status_code rtems_port_external_to_internal(
rtems_id id,
@@ -167,20 +172,20 @@ rtems_status_code rtems_port_external_to_internal(
);
/**
- * @brief RTEMS Port Internal to External
- *
- * This routine implements the Port_internal_to_external directive.
- * It returns the external port address which maps to the provided
- * internal port address for the specified port ID. If the given
- * internal address is an invalid dual-ported address, then the
- * external address is set to the given internal address.
- *
- * @param[in] id is the id of dual-ported memory object
- * @param[in] internal is the internal address to set
- * @param[in] external is the pointer to external address
- *
- * @return RTEMS_SUCCESSFUL and the external will be filled in
- * with the external addresses
+ * @brief RTEMS Port Internal to External
+ *
+ * This routine implements the Port_internal_to_external directive.
+ * It returns the external port address which maps to the provided
+ * internal port address for the specified port ID. If the given
+ * internal address is an invalid dual-ported address, then the
+ * external address is set to the given internal address.
+ *
+ * @param[in] id is the id of dual-ported memory object
+ * @param[in] internal is the internal address to set
+ * @param[in] external is the pointer to external address
+ *
+ * @retval RTEMS_SUCCESSFUL and the external will be filled in
+ * with the external addresses
*/
rtems_status_code rtems_port_internal_to_external(
rtems_id id,
diff --git a/cpukit/rtems/include/rtems/rtems/event.h b/cpukit/rtems/include/rtems/rtems/event.h
index 6c265c3f40..6a27c91aee 100644
--- a/cpukit/rtems/include/rtems/rtems/event.h
+++ b/cpukit/rtems/include/rtems/rtems/event.h
@@ -1,25 +1,28 @@
/**
* @file rtems/rtems/event.h
*
- * @brief Information Related to the Event Manager
+ * @defgroup ClassicEvent Events
*
- * This include file contains the information pertaining to the Event
- * Manager. This manager provides a high performance method of communication
- * and synchronization.
+ * @ingroup ClassicRTEMS
+ * @brief Information Related to Event Manager
*
- * Directives provided are:
+ * This include file contains the information pertaining to the Event
+ * Manager. This manager provides a high performance method of communication
+ * and synchronization.
*
- * - send an event set to a task
- * - receive event condition
+ * Directives provided are:
+ *
+ * - send an event set to a task
+ * - receive event condition
*
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_EVENT_H
@@ -100,38 +103,38 @@ extern "C" {
*/
/**
- * @brief Sends an Event Set to the Target Task
- *
- * This directive sends an event set @a event_in to the task specified by
- * @a id.
- *
- * Based upon the state of the target task, one of the following situations
- * applies. The target task is
- * - blocked waiting for events.
- * If the waiting task's input event condition is
- * - satisfied, then the task is made ready for execution.
- * - not satisfied, then the event set is posted but left pending and the
- * task remains blocked.
- * - not waiting for events.
- * - The event set is posted and left pending.
- *
- * Identical events sent to a task are not queued. In other words, the second,
- * and subsequent, posting of an event to a task before it can perform an
- * rtems_event_receive() has no effect.
- *
- * The calling task will be preempted if it has preemption enabled and a
- * higher priority task is unblocked as the result of this directive.
- *
- * Sending an event set to a global task which does not reside on the local
- * node will generate a request telling the remote node to send the event set
- * to the appropriate task.
- *
- * @param[in] id Identifier of the target task. Specifying @ref RTEMS_SELF
- * results in the event set being sent to the calling task.
- * @param[in] event_in Event set sent to the target task.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_INVALID_ID Invalid task identifier.
+ * @brief Sends an Event Set to the Target Task
+ *
+ * This directive sends an event set @a event_in to the task specified by
+ * @a id.
+ *
+ * Based upon the state of the target task, one of the following situations
+ * applies. The target task is
+ * - blocked waiting for events.
+ * If the waiting task's input event condition is
+ * - satisfied, then the task is made ready for execution.
+ * - not satisfied, then the event set is posted but left pending and the
+ * task remains blocked.
+ * - not waiting for events.
+ * - The event set is posted and left pending.
+ *
+ * Identical events sent to a task are not queued. In other words, the second,
+ * and subsequent, posting of an event to a task before it can perform an
+ * rtems_event_receive() has no effect.
+ *
+ * The calling task will be preempted if it has preemption enabled and a
+ * higher priority task is unblocked as the result of this directive.
+ *
+ * Sending an event set to a global task which does not reside on the local
+ * node will generate a request telling the remote node to send the event set
+ * to the appropriate task.
+ *
+ * @param[in] id Identifier of the target task. Specifying @ref RTEMS_SELF
+ * results in the event set being sent to the calling task.
+ * @param[in] event_in Event set sent to the target task.
+ *
+ * @retval RTEMS_SUCCESSFUL Successful operation.
+ * @retval RTEMS_INVALID_ID Invalid task identifier.
*/
rtems_status_code rtems_event_send (
rtems_id id,
@@ -139,65 +142,65 @@ rtems_status_code rtems_event_send (
);
/**
- * @brief Receives pending events.
- *
- * This directive attempts to receive the event condition specified in
- * @a event_in. If @a event_in is set to @ref RTEMS_PENDING_EVENTS, then the
- * current pending events are returned in @a event_out and left pending. The
- * @aref RTEMS_WAIT and @aref RTEMS_NO_WAIT options in the @a option_set
- * parameter are used to specify whether or not the task is willing to wait
- * for the event condition to be satisfied. The @ref RTEMS_EVENT_ANY and @ref
- * RTEMS_EVENT_ALL are used in the @a option_set parameter to specify whether
- * at least a single event or the complete event set is necessary to satisfy
- * the event condition. The @a event_out parameter is returned to the calling
- * task with the value that corresponds to the events in @a event_in that were
- * satisfied.
- *
- * A task can determine the pending event set by using a value of
- * @ref RTEMS_PENDING_EVENTS for the input event set @a event_in. The pending
- * events are returned to the calling task but the event set is left
- * unaltered.
- *
- * A task can receive all of the currently pending events by using the a value
- * of @ref RTEMS_ALL_EVENTS for the input event set @a event_in and
- * @ref RTEMS_NO_WAIT | @ref RTEMS_EVENT_ANY for the option set @a option_set.
- * The pending events are returned to the calling task and the event set is
- * cleared. If no events are pending then the @ref RTEMS_UNSATISFIED status
- * code will be returned.
- *
- * If pending events satisfy the event condition, then @a event_out is set to
- * the satisfied events and the pending events in the event condition are
- * cleared. If the event condition is not satisfied and @ref RTEMS_NO_WAIT is
- * specified, then @a event_out is set to the currently satisfied events. If
- * the calling task chooses to wait, then it will block waiting for the event
- * condition.
- *
- * If the calling task must wait for the event condition to be satisfied, then
- * the timeout parameter is used to specify the maximum interval to wait. If
- * it is set to @ref RTEMS_NO_TIMEOUT, then the calling task will wait forever.
- *
- * This directive only affects the events specified in @a event_in. Any
- * pending events that do not correspond to any of the events specified in
- * @a event_in will be left pending.
- *
- * A clock tick is required to support the wait with time out functionality of
- * this directive.
- *
- * @param[in] event_in Set of requested events (input events).
- * @param[in] option_set Use a bitwise or of the following options
- * - @ref RTEMS_WAIT - task will wait for event (default),
- * - @ref RTEMS_NO_WAIT - task should not wait,
- * - @ref RTEMS_EVENT_ALL - return after all events (default), and
- * - @ref RTEMS_EVENT_ANY - return after any events.
- * @param[in] ticks Time out in ticks. Use @ref RTEMS_NO_TIMEOUT to wait
- * without a time out (potentially forever).
- * @param[out] event_out Set of received events (output events).
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_UNSATISFIED Input events not satisfied (only with the
- * @ref RTEMS_NO_WAIT option).
- * @retval RTEMS_INVALID_ADDRESS The @a event_out pointer is @c NULL.
- * @retval RTEMS_TIMEOUT Timed out waiting for events.
+ * @brief Receives pending events.
+ *
+ * This directive attempts to receive the event condition specified in
+ * @a event_in. If @a event_in is set to @ref RTEMS_PENDING_EVENTS, then the
+ * current pending events are returned in @a event_out and left pending. The
+ * @aref RTEMS_WAIT and @aref RTEMS_NO_WAIT options in the @a option_set
+ * parameter are used to specify whether or not the task is willing to wait
+ * for the event condition to be satisfied. The @ref RTEMS_EVENT_ANY and @ref
+ * RTEMS_EVENT_ALL are used in the @a option_set parameter to specify whether
+ * at least a single event or the complete event set is necessary to satisfy
+ * the event condition. The @a event_out parameter is returned to the calling
+ * task with the value that corresponds to the events in @a event_in that were
+ * satisfied.
+ *
+ * A task can determine the pending event set by using a value of
+ * @ref RTEMS_PENDING_EVENTS for the input event set @a event_in. The pending
+ * events are returned to the calling task but the event set is left
+ * unaltered.
+ *
+ * A task can receive all of the currently pending events by using the a value
+ * of @ref RTEMS_ALL_EVENTS for the input event set @a event_in and
+ * @ref RTEMS_NO_WAIT | @ref RTEMS_EVENT_ANY for the option set @a option_set.
+ * The pending events are returned to the calling task and the event set is
+ * cleared. If no events are pending then the @ref RTEMS_UNSATISFIED status
+ * code will be returned.
+ *
+ * If pending events satisfy the event condition, then @a event_out is set to
+ * the satisfied events and the pending events in the event condition are
+ * cleared. If the event condition is not satisfied and @ref RTEMS_NO_WAIT is
+ * specified, then @a event_out is set to the currently satisfied events. If
+ * the calling task chooses to wait, then it will block waiting for the event
+ * condition.
+ *
+ * If the calling task must wait for the event condition to be satisfied, then
+ * the timeout parameter is used to specify the maximum interval to wait. If
+ * it is set to @ref RTEMS_NO_TIMEOUT, then the calling task will wait forever.
+ *
+ * This directive only affects the events specified in @a event_in. Any
+ * pending events that do not correspond to any of the events specified in
+ * @a event_in will be left pending.
+ *
+ * A clock tick is required to support the wait with time out functionality of
+ * this directive.
+ *
+ * @param[in] event_in Set of requested events (input events).
+ * @param[in] option_set Use a bitwise or of the following options
+ * - @ref RTEMS_WAIT - task will wait for event (default),
+ * - @ref RTEMS_NO_WAIT - task should not wait,
+ * - @ref RTEMS_EVENT_ALL - return after all events (default), and
+ * - @ref RTEMS_EVENT_ANY - return after any events.
+ * @param[in] ticks Time out in ticks. Use @ref RTEMS_NO_TIMEOUT to wait
+ * without a time out (potentially forever).
+ * @param[out] event_out Set of received events (output events).
+ *
+ * @retval RTEMS_SUCCESSFUL Successful operation.
+ * @retval RTEMS_UNSATISFIED Input events not satisfied (only with the
+ * @ref RTEMS_NO_WAIT option).
+ * @retval RTEMS_INVALID_ADDRESS The @a event_out pointer is @c NULL.
+ * @retval RTEMS_TIMEOUT Timed out waiting for events.
*/
rtems_status_code rtems_event_receive (
rtems_event_set event_in,
@@ -220,9 +223,8 @@ rtems_status_code rtems_event_receive (
* The event @ref RTEMS_EVENT_SYSTEM_TRANSIENT is used for transient usage.
* See also @ref ClassicEventTransient. This event may be used by every entity
* that fulfils its usage pattern.
- *
- * @{
*/
+/**@{**/
/**
* @brief Reserved system event for network SBWAIT usage.
@@ -364,9 +366,8 @@ rtems_status_code rtems_event_system_receive(
* assert(req.work_done);
* }
* @endcode
- *
- * @{
*/
+/**@{**/
/**
* @brief See rtems_event_system_send().
diff --git a/cpukit/rtems/include/rtems/rtems/eventmp.h b/cpukit/rtems/include/rtems/rtems/eventmp.h
index a54f79cffe..45f60b67b7 100644
--- a/cpukit/rtems/include/rtems/rtems/eventmp.h
+++ b/cpukit/rtems/include/rtems/rtems/eventmp.h
@@ -1,16 +1,21 @@
/**
* @file rtems/rtems/eventmp.h
*
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Support in the Event Manager.
+ * @defgroup ClassicEventMP Event MP Support
+ *
+ * @ingroup ClassicRTEMS
+ * @brief Event Manager MP Support
+ *
+ * This include file contains all the constants and structures associated
+ * with the Multiprocessing Support in the Event Manager.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_EVENTMP_H
diff --git a/cpukit/rtems/include/rtems/rtems/eventset.h b/cpukit/rtems/include/rtems/rtems/eventset.h
index 632e217c79..4d2bff8a89 100644
--- a/cpukit/rtems/include/rtems/rtems/eventset.h
+++ b/cpukit/rtems/include/rtems/rtems/eventset.h
@@ -1,19 +1,22 @@
/**
* @file rtems/rtems/eventset.h
*
- * @brief Information Related to the Event Sets Handler
+ * @defgroup ClassicEventSet Event Set
*
- * This include file contains the information pertaining to the
- * Event Sets Handler. This handler provides methods for the manipulation
- * of event sets which will be sent and received by tasks.
+ * @ingroup ClassicRTEMS
+ * @brief Event Sets Handler
+ *
+ * This include file contains the information pertaining to the
+ * Event Sets Handler. This handler provides methods for the manipulation
+ * of event sets which will be sent and received by tasks.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_EVENTSET_H
diff --git a/cpukit/rtems/include/rtems/rtems/intr.h b/cpukit/rtems/include/rtems/rtems/intr.h
index 66684fe327..ea6dc6b64a 100644
--- a/cpukit/rtems/include/rtems/rtems/intr.h
+++ b/cpukit/rtems/include/rtems/rtems/intr.h
@@ -1,18 +1,21 @@
/**
* @file rtems/rtems/intr.h
*
- * @brief Header file for the Interrupt Manager.
+ * @defgroup ClassicINTR Interrupts
*
- * This include file contains all the constants and structures associated with
- * the Interrupt Manager.
+ * @ingroup ClassicRTEMS
+ * @brief Header file for Interrupt Manager
+ *
+ * This include file contains all the constants and structures associated with
+ * the Interrupt Manager.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_INTR_H
@@ -63,17 +66,17 @@ typedef rtems_isr ( *rtems_isr_entry )(
);
/**
- * @brief RTEMS Interrupt Catch
+ * @brief RTEMS Interrupt Catch
*
- * This directive installs @a new_isr_handler as the RTEMS interrupt service
- * routine for the interrupt vector with number @a vector. The previous RTEMS
- * interrupt service routine is returned in @a old_isr_handler.
+ * This directive installs @a new_isr_handler as the RTEMS interrupt service
+ * routine for the interrupt vector with number @a vector. The previous RTEMS
+ * interrupt service routine is returned in @a old_isr_handler.
*
- * @param[in] new_isr_handler is the address of interrupt service routine
- * @param[in] vector is the interrupt vector number
- * @param[in] old_isr_handler address at which to store previous ISR address
+ * @param[in] new_isr_handler is the address of interrupt service routine
+ * @param[in] vector is the interrupt vector number
+ * @param[in] old_isr_handler address at which to store previous ISR address
*
- * @return RTEMS_SUCCESSFUL and *old_isr_handler filled with previous ISR
+ * @retval RTEMS_SUCCESSFUL and *old_isr_handler filled with previous ISR
* address
*/
rtems_status_code rtems_interrupt_catch(
diff --git a/cpukit/rtems/include/rtems/rtems/message.h b/cpukit/rtems/include/rtems/rtems/message.h
index 9ad1e9b9ef..e8bbee8cc4 100644
--- a/cpukit/rtems/include/rtems/rtems/message.h
+++ b/cpukit/rtems/include/rtems/rtems/message.h
@@ -1,30 +1,33 @@
/**
* @file rtems/rtems/message.h
*
- * @brief Constants and Structures Associated with the Message Queue Manager
- *
- * This include file contains all the constants and structures associated
- * with the Message Queue Manager. This manager provides a mechanism for
- * communication and synchronization between tasks using messages.
- *
- * Directives provided are:
- *
- * - create a queue
- * - get ID of a queue
- * - delete a queue
- * - put a message at the rear of a queue
- * - put a message at the front of a queue
- * - broadcast N messages to a queue
- * - receive message from a queue
- * - flush all messages on a queue
+ * @defgroup ClassicMessageQueue Message Queues
+ *
+ * @ingroup ClassicRTEMS
+ * @brief Message Queue Manager
+ *
+ * This include file contains all the constants and structures associated
+ * with the Message Queue Manager. This manager provides a mechanism for
+ * communication and synchronization between tasks using messages.
+ *
+ * Directives provided are:
+ *
+ * - create a queue
+ * - get ID of a queue
+ * - delete a queue
+ * - put a message at the rear of a queue
+ * - put a message at the front of a queue
+ * - broadcast N messages to a queue
+ * - receive message from a queue
+ * - flush all messages on a queue
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_MESSAGE_H
@@ -106,25 +109,25 @@ RTEMS_MESSAGE_EXTERN Objects_Information _Message_queue_Information;
void _Message_queue_Manager_initialization(void);
/**
- * @brief RTEMS Create Message Queue
- *
- * This routine implements the rtems_message_queue_create directive. The
- * message queue will have the @a name. If the @a attribute_set indicates
- * that the message queue is to be limited in the number of messages
- * that can be outstanding, then @a count indicates the maximum number of
- * messages that will be held. It returns the id of the created
- * message queue in @a id.
- *
- * @param[in] name is the user defined queue name
- * @param[in] count is the maximum message and reserved buffer count
- * @param[in] max_message_size is the maximum size of each message
- * @param[in] attribute_set is the process method
- * @param[in] id is the pointer to queue
- *
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the @a id will
- * be filled in with the queue id.
+ * @brief RTEMS Create Message Queue
+ *
+ * This routine implements the rtems_message_queue_create directive. The
+ * message queue will have the @a name. If the @a attribute_set indicates
+ * that the message queue is to be limited in the number of messages
+ * that can be outstanding, then @a count indicates the maximum number of
+ * messages that will be held. It returns the id of the created
+ * message queue in @a id.
+ *
+ * @param[in] name is the user defined queue name
+ * @param[in] count is the maximum message and reserved buffer count
+ * @param[in] max_message_size is the maximum size of each message
+ * @param[in] attribute_set is the process method
+ * @param[in] id is the pointer to queue
+ *
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error. If successful, the @a id will
+ * be filled in with the queue id.
*/
rtems_status_code rtems_message_queue_create(
rtems_name name,
@@ -135,22 +138,22 @@ rtems_status_code rtems_message_queue_create(
);
/**
- * @brief RTEMS Message Queue Name to Id
- *
- * This routine implements the rtems_message_queue_ident directive.
- * This directive returns the message queue ID associated with NAME.
- * If more than one message queue is named name, then the message
- * queue to which the ID belongs is arbitrary. node indicates the
- * extent of the search for the ID of the message queue named name.
- * The search can be limited to a particular node or allowed to
- * encompass all nodes.
- *
- * @param[in] name is the user defined message queue name
- * @param[in] node is the node(s) to be searched
- * @param[in] id is the pointer to message queue id
- *
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
- * *id filled with the message queue id
+ * @brief RTEMS Message Queue Name to Id
+ *
+ * This routine implements the rtems_message_queue_ident directive.
+ * This directive returns the message queue ID associated with NAME.
+ * If more than one message queue is named name, then the message
+ * queue to which the ID belongs is arbitrary. node indicates the
+ * extent of the search for the ID of the message queue named name.
+ * The search can be limited to a particular node or allowed to
+ * encompass all nodes.
+ *
+ * @param[in] name is the user defined message queue name
+ * @param[in] node is the node(s) to be searched
+ * @param[in] id is the pointer to message queue id
+ *
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
+ * *id filled with the message queue id
*/
rtems_status_code rtems_message_queue_ident(
rtems_name name,
@@ -159,14 +162,14 @@ rtems_status_code rtems_message_queue_ident(
);
/**
- * @brief RTEMS Delete Message Queue
+ * @brief RTEMS Delete Message Queue
*
- * This routine implements the rtems_message_queue_delete directive. The
- * message queue indicated by ID is deleted.
+ * This routine implements the rtems_message_queue_delete directive. The
+ * message queue indicated by ID is deleted.
*
- * @param[in] id is the queue id
+ * @param[in] id is the queue id
*
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
*/
rtems_status_code rtems_message_queue_delete(
rtems_id id
@@ -194,19 +197,19 @@ rtems_status_code rtems_message_queue_send(
);
/**
- * @brief RTEMS Urgent Message Queue
+ * @brief RTEMS Urgent Message Queue
*
- * This routine implements the rtems_message_queue_urgent directive.
- * This directive has the same behavior as rtems_message_queue_send
- * except that if no tasks are waiting, the message buffer will
- * be placed at the FRONT of the chain of pending messages rather
- * than at the REAR.
+ * This routine implements the rtems_message_queue_urgent directive.
+ * This directive has the same behavior as rtems_message_queue_send
+ * except that if no tasks are waiting, the message buffer will
+ * be placed at the FRONT of the chain of pending messages rather
+ * than at the REAR.
*
- * @param[in] id is the pointer to message queue
- * @param[in] buffer is the pointer to message buffer
- * @param[in] size is the size of message to send urgently
+ * @param[in] id is the pointer to message queue
+ * @param[in] buffer is the pointer to message buffer
+ * @param[in] size is the size of message to send urgently
*
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
*/
rtems_status_code rtems_message_queue_urgent(
rtems_id id,
@@ -215,20 +218,20 @@ rtems_status_code rtems_message_queue_urgent(
);
/**
- * @brief RTEMS Broadcast Message Queue
+ * @brief RTEMS Broadcast Message Queue
*
- * This routine implements the rtems_message_queue_broadcast directive.
- * This directive sends the message buffer to all of the tasks blocked
- * waiting for a message on the message queue indicated by ID.
- * If no tasks are waiting, then the message buffer will not be queued.
+ * This routine implements the rtems_message_queue_broadcast directive.
+ * This directive sends the message buffer to all of the tasks blocked
+ * waiting for a message on the message queue indicated by ID.
+ * If no tasks are waiting, then the message buffer will not be queued.
*
- * @param[in] id is the pointer to message queue
- * @param[in] buffer is the pointer to message buffer
- * @param[in] size is the size of message to broadcast
- * @param[in] count pointer to area to store number of threads made ready
+ * @param[in] id is the pointer to message queue
+ * @param[in] buffer is the pointer to message buffer
+ * @param[in] size is the size of message to broadcast
+ * @param[in] count pointer to area to store number of threads made ready
*
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
- * *count filled in with number of threads made ready
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
+ * *count filled in with number of threads made ready
*/
rtems_status_code rtems_message_queue_broadcast(
rtems_id id,
@@ -238,25 +241,25 @@ rtems_status_code rtems_message_queue_broadcast(
);
/**
- * @brief RTEMS Message Queue Receive
- *
- * This routine implements the rtems_message_queue_receive directive.
- * This directive is invoked when the calling task wishes to receive
- * a message from the message queue indicated by ID. The received
- * message is to be placed in buffer. If no messages are outstanding
- * and the option_set indicates that the task is willing to block,
- * then the task will be blocked until a message arrives or until,
- * optionally, timeout clock ticks have passed.
- *
- * @param[in] id is the queue id
- * @param[in] buffer is the pointer to message buffer
- * @param[in] size is the size of message receive
- * @param[in] option_set is the options on receive
- * @param[in] timeout is the number of ticks to wait
- *
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
+ * @brief RTEMS Message Queue Receive
+ *
+ * This routine implements the rtems_message_queue_receive directive.
+ * This directive is invoked when the calling task wishes to receive
+ * a message from the message queue indicated by ID. The received
+ * message is to be placed in buffer. If no messages are outstanding
+ * and the option_set indicates that the task is willing to block,
+ * then the task will be blocked until a message arrives or until,
+ * optionally, timeout clock ticks have passed.
+ *
+ * @param[in] id is the queue id
+ * @param[in] buffer is the pointer to message buffer
+ * @param[in] size is the size of message receive
+ * @param[in] option_set is the options on receive
+ * @param[in] timeout is the number of ticks to wait
+ *
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error.
*/
rtems_status_code rtems_message_queue_receive(
rtems_id id,
@@ -315,24 +318,24 @@ rtems_status_code _Message_queue_Submit(
);
/**
- * @brief Message Queue Allocate
+ * @brief Message Queue Allocate
*
- * This function allocates a message queue control block from
- * the inactive chain of free message queue control blocks.
+ * This function allocates a message queue control block from
+ * the inactive chain of free message queue control blocks.
*
- * @return the_message_queue filled in if successful, NULL otherwise
+ * @retval the_message_queue filled in if successful, NULL otherwise
*/
Message_queue_Control *_Message_queue_Allocate (void);
/**
- * @brief Message queue Translate Core Message Queue Return Code
+ * @brief Message queue Translate Core Message Queue Return Code
*
- * This function returns a RTEMS status code based on
- * @a the_message_queue_status.
+ * This function returns a RTEMS status code based on
+ * @a the_message_queue_status.
*
- * @param[in] the_message_queue_status is the status code to translate
+ * @param[in] the_message_queue_status is the status code to translate
*
- * @return translated RTEMS status code
+ * @retval translated RTEMS status code
*/
rtems_status_code _Message_queue_Translate_core_message_queue_return_code (
uint32_t the_message_queue_status
diff --git a/cpukit/rtems/include/rtems/rtems/modes.h b/cpukit/rtems/include/rtems/rtems/modes.h
index 6ac7d15773..9a4bf73f91 100644
--- a/cpukit/rtems/include/rtems/rtems/modes.h
+++ b/cpukit/rtems/include/rtems/rtems/modes.h
@@ -1,18 +1,21 @@
/**
* @file rtems/rtems/modes.h
*
- * @brief Constants and Structures Associated with the RTEMS thread and RTEMS_ASR modes
+ * @defgroup ClassicModes Modes
*
- * This include file contains all constants and structures associated
- * with the RTEMS thread and RTEMS_ASR modes.
+ * @ingroup ClassicRTEMS
+ * @brief RTEMS thread and RTEMS_ASR modes
+ *
+ * This include file contains all constants and structures associated
+ * with the RTEMS thread and RTEMS_ASR modes.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_MODES_H
@@ -84,14 +87,14 @@ typedef uint32_t Modes_Control;
#define RTEMS_NO_ASR 0x00000400
/**
- * @brief RTEMS_INTERRUPT_LEVEL
+ * @brief RTEMS_INTERRUPT_LEVEL
*
- * This function returns the processor dependent interrupt
- * level which corresponds to the requested interrupt level.
+ * This function returns the processor dependent interrupt
+ * level which corresponds to the requested interrupt level.
*
- * @note RTEMS supports 256 interrupt levels using the least
- * significant eight bits of MODES.CONTROL. On any
- * particular CPU, fewer than 256 levels may be supported.
+ * @note RTEMS supports 256 interrupt levels using the least
+ * significant eight bits of MODES.CONTROL. On any
+ * particular CPU, fewer than 256 levels may be supported.
*/
#define RTEMS_INTERRUPT_LEVEL( _mode_set ) \
( (_mode_set) & RTEMS_INTERRUPT_MASK )
@@ -104,15 +107,15 @@ typedef uint32_t Modes_Control;
extern const uint32_t rtems_interrupt_mask;
/**
- * @brief Body for RTEMS_INTERRUPT_LEVEL Macro
+ * @brief Body for RTEMS_INTERRUPT_LEVEL Macro
*
- * @param[in] level is the desired interrupt level
+ * @param[in] level is the desired interrupt level
*
- * @return This methods returns a mode with the desired interrupt
- * @a level in the proper bitfield location.
+ * @retval This methods returns a mode with the desired interrupt
+ * @a level in the proper bitfield location.
*
- * @note This variable is used by bindings from languages other than
- * C and C++.
+ * @note This variable is used by bindings from languages other than
+ * C and C++.
*/
Modes_Control rtems_interrupt_level_body(
uint32_t level
diff --git a/cpukit/rtems/include/rtems/rtems/mp.h b/cpukit/rtems/include/rtems/rtems/mp.h
index f7b5f20c62..fc59e74493 100644
--- a/cpukit/rtems/include/rtems/rtems/mp.h
+++ b/cpukit/rtems/include/rtems/rtems/mp.h
@@ -1,16 +1,21 @@
/**
* @file rtems/rtems/mp.h
*
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Manager.
+ * @defgroup ClassicMP Multiprocessing
+ *
+ * @ingroup ClassicRTEMS
+ * @brief Multiprocessing Manager
+ *
+ * This include file contains all the constants and structures associated
+ * with the Multiprocessing Manager.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_MP_H
diff --git a/cpukit/rtems/include/rtems/rtems/msgmp.h b/cpukit/rtems/include/rtems/rtems/msgmp.h
index f512eaeda7..f01a687ae3 100644
--- a/cpukit/rtems/include/rtems/rtems/msgmp.h
+++ b/cpukit/rtems/include/rtems/rtems/msgmp.h
@@ -1,16 +1,18 @@
/**
* @file rtems/rtems/msgmp.h
*
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Support in the Message Manager.
+ * @brief Message Manager MP Support
+ *
+ * This include file contains all the constants and structures associated
+ * with the Multiprocessing Support in the Message Manager.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_MSGMP_H
@@ -34,7 +36,7 @@ extern "C" {
*
* This encapsulates functionality which XXX
*/
-/**{*/
+/*{*/
/**
* The following enumerated type defines the list of
@@ -119,10 +121,10 @@ void _Message_queue_MP_Send_response_packet (
/**
*
- @brief * _Message_queue_MP_Process_packet
+ * @brief _Message_queue_MP_Process_packet
*
- * This routine performs the actions specific to this package for
- * the request from another node.
+ * This routine performs the actions specific to this package for
+ * the request from another node.
*/
void _Message_queue_MP_Process_packet (
rtems_packet_prefix *the_packet_prefix
diff --git a/cpukit/rtems/include/rtems/rtems/object.h b/cpukit/rtems/include/rtems/rtems/object.h
index 7baa80c652..bd80cc00da 100644
--- a/cpukit/rtems/include/rtems/rtems/object.h
+++ b/cpukit/rtems/include/rtems/rtems/object.h
@@ -1,15 +1,20 @@
/**
* @file rtems/rtems/object.h
*
+ * @defgroup ClassicClassInfo Object Class Information
+ *
+ * @ingroup ClassicRTEMS
+ * @brief Classic API interfaces to Object Services
+ *
* This include file defines Classic API interfaces to Object Services.
*/
-/* COPYRIGHT (c) 1989-2011.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2011.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_OBJECT_H
@@ -51,59 +56,59 @@ typedef struct {
} rtems_object_api_class_information;
/**
- * @brief Build Object Id
+ * @brief Build Object Id
*
- * This function returns an object id composed of the
- * specified @a api, @a class, @a node,
- * and @a index.
+ * This function returns an object id composed of the
+ * specified @a api, @a class, @a node,
+ * and @a index.
*
- * @param[in] _api indicates the api to use for the Id
- * @param[in] _class indicates the class to use for the Id
- * @param[in] _node indicates the node to use for the Id
- * @param[in] _index indicates the index to use for the Id
+ * @param[in] _api indicates the api to use for the Id
+ * @param[in] _class indicates the class to use for the Id
+ * @param[in] _node indicates the node to use for the Id
+ * @param[in] _index indicates the index to use for the Id
*
- * @return This method returns an object Id built from the
- * specified values.
+ * @retval This method returns an object Id built from the
+ * specified values.
*
- * @note A body is also provided.
+ * @note A body is also provided.
*/
#define rtems_build_id( _api, _class, _node, _index ) \
_Objects_Build_id( _api, _class, _node, _index )
/**
- * @brief Build Thirty-Two Bit Object Name
+ * @brief Build Thirty-Two Bit Object Name
*
- * RTEMS Object Helper -- Build an Object Id
+ * RTEMS Object Helper -- Build an Object Id
*
- * This function returns an object name composed of the four characters
- * C1, C2, C3, and C4.
+ * This function returns an object name composed of the four characters
+ * C1, C2, C3, and C4.
*
- * @param[in] _C1 is the first character of the name
- * @param[in] _C2 is the second character of the name
- * @param[in] _C3 is the third character of the name
- * @param[in] _C4 is the fourth character of the name
+ * @param[in] _C1 is the first character of the name
+ * @param[in] _C2 is the second character of the name
+ * @param[in] _C3 is the third character of the name
+ * @param[in] _C4 is the fourth character of the name
*
- * @note This must be implemented as a macro for use in
- * Configuration Tables. A body is also provided.
+ * @note This must be implemented as a macro for use in
+ * Configuration Tables. A body is also provided.
*
*/
#define rtems_build_name( _C1, _C2, _C3, _C4 ) \
_Objects_Build_name( _C1, _C2, _C3, _C4 )
/**
- * @brief Obtain Name of Object
+ * @brief Obtain Name of Object
*
- * This directive returns the name associated with the specified
- * object ID.
+ * This directive returns the name associated with the specified
+ * object ID.
*
- * @param[in] id is the Id of the object to obtain the name of.
- * @param[out] name will be set to the name of the object
+ * @param[in] id is the Id of the object to obtain the name of.
+ * @param[out] name will be set to the name of the object
*
- * @note The object must be have a name of the 32-bit form.
+ * @note The object must be have a name of the 32-bit form.
*
- * @return @a *name will contain user defined object name
- * @return @a RTEMS_SUCCESSFUL - if successful
- * @return error code - if unsuccessful
+ * @retval @a *name will contain user defined object name
+ * @retval @a RTEMS_SUCCESSFUL - if successful
+ * @retval error code - if unsuccessful
*/
rtems_status_code rtems_object_get_classic_name(
rtems_id id,
@@ -111,18 +116,18 @@ rtems_status_code rtems_object_get_classic_name(
);
/**
- * @brief Obtain Object Name as String
+ * @brief Obtain Object Name as String
*
- * This directive returns the name associated with the specified
- * object ID.
+ * This directive returns the name associated with the specified
+ * object ID.
*
- * @param[in] id is the Id of the object to obtain the name of
- * @param[in] length is the length of the output name buffer
- * @param[out] name will be set to the name of the object
+ * @param[in] id is the Id of the object to obtain the name of
+ * @param[in] length is the length of the output name buffer
+ * @param[out] name will be set to the name of the object
*
- * @return @a *name will contain user defined object name
- * @return @a name - if successful
- * @return @a NULL - if unsuccessful
+ * @retval @a *name will contain user defined object name
+ * @retval @a name - if successful
+ * @retval @a NULL - if unsuccessful
*/
char *rtems_object_get_name(
rtems_id id,
@@ -131,20 +136,20 @@ char *rtems_object_get_name(
);
/**
- * @brief Set Name of Object
+ * @brief Set Name of Object
*
- * This method allows the caller to set the name of an
- * object. This can be used to set the name of objects
- * which do not have a naming scheme per their API.
+ * This method allows the caller to set the name of an
+ * object. This can be used to set the name of objects
+ * which do not have a naming scheme per their API.
*
- * RTEMS Object Helper -- Set Name of Object as String
+ * RTEMS Object Helper -- Set Name of Object as String
*
- * @param[in] id is the Id of the object to obtain the name of
- * @param[out] name will be set to the name of the object
+ * @param[in] id is the Id of the object to obtain the name of
+ * @param[out] name will be set to the name of the object
*
- * @return @a *name will contain user defined object name
- * @return @a RTEMS_SUCCESSFUL - if successful
- * @return error code - if unsuccessful
+ * @retval @a *name will contain user defined object name
+ * @retval @a RTEMS_SUCCESSFUL - if successful
+ * @retval error code - if unsuccessful
*/
rtems_status_code rtems_object_set_name(
rtems_id id,
@@ -152,131 +157,131 @@ rtems_status_code rtems_object_set_name(
);
/**
- * @brief Get API Portion of Object Id
+ * @brief Get API Portion of Object Id
*
- * RTEMS Object Helper -- Extract API From Id
+ * RTEMS Object Helper -- Extract API From Id
*
- * This function returns the API portion of the Id.
+ * This function returns the API portion of the Id.
*
- * @param[in] _id is the Id of the object to obtain the API from
+ * @param[in] _id is the Id of the object to obtain the API from
*
- * @return This method returns the API portion of the provided
- * @a _id.
+ * @retval This method returns the API portion of the provided
+ * @a _id.
*
- * @note This method does NOT validate the @a _id provided.
+ * @note This method does NOT validate the @a _id provided.
*
- * @note A body is also provided.
+ * @note A body is also provided.
*/
#define rtems_object_id_get_api( _id ) \
_Objects_Get_API( _id )
/**
- * @brief Get Class Portion of Object Id
+ * @brief Get Class Portion of Object Id
*
- * This function returns the class portion of the @a _id ID.
+ * This function returns the class portion of the @a _id ID.
*
- * @param[in] _id is the Id of the object to obtain the class from
+ * @param[in] _id is the Id of the object to obtain the class from
*
- * @return This method returns the class portion of the provided
- * @a _id.
+ * @retval This method returns the class portion of the provided
+ * @a _id.
*
- * @note This method does NOT validate the @a _id provided.
+ * @note This method does NOT validate the @a _id provided.
*
- * @note A body is also provided.
+ * @note A body is also provided.
*/
#define rtems_object_id_get_class( _id ) \
_Objects_Get_class( _id )
/**
- * @brief Get Node Portion of Object Id
+ * @brief Get Node Portion of Object Id
*
- * This function returns the node portion of the ID.
+ * This function returns the node portion of the ID.
*
- * @param[in] _id is the Id of the object to obtain the node from
+ * @param[in] _id is the Id of the object to obtain the node from
*
- * @return This method returns the node portion of the provided
+ * @retval This method returns the node portion of the provided
* @a _id.
*
- * @note This method does NOT validate the @a _id provided.
+ * @note This method does NOT validate the @a _id provided.
*
- * @note A body is also provided.
+ * @note A body is also provided.
*/
#define rtems_object_id_get_node( _id ) \
_Objects_Get_node( _id )
/**
- * @brief Get Index Portion of Object Id
+ * @brief Get Index Portion of Object Id
*
- * This function returns the index portion of the ID.
+ * This function returns the index portion of the ID.
*
- * @param[in] _id is the Id of the object to obtain the index from
+ * @param[in] _id is the Id of the object to obtain the index from
*
- * @return This method returns the index portion of the provided
- * @a _id.
+ * @retval This method returns the index portion of the provided
+ * @a _id.
*
- * @note This method does NOT validate the @a _id provided.
+ * @note This method does NOT validate the @a _id provided.
*
- * @note A body is also provided.
+ * @note A body is also provided.
*/
#define rtems_object_id_get_index( _id ) \
_Objects_Get_index( _id )
/**
- * @brief Get Lowest Valid API Index
+ * @brief Get Lowest Valid API Index
*
- * This method returns the lowest valid value for the API
- * portion of an RTEMS object Id.
+ * This method returns the lowest valid value for the API
+ * portion of an RTEMS object Id.
*
- * @return This method returns the least valid value for
- * the API portion of an RTEMS object Id.
+ * @retval This method returns the least valid value for
+ * the API portion of an RTEMS object Id.
*
- * @note A body is also provided.
+ * @note A body is also provided.
*/
#define rtems_object_id_api_minimum() \
OBJECTS_INTERNAL_API
/**
- * @brief Get Highest Valid API Index
+ * @brief Get Highest Valid API Index
*
- * This method returns the highest valid value for the API
- * portion of an RTEMS object Id.
+ * This method returns the highest valid value for the API
+ * portion of an RTEMS object Id.
*
- * @return This method returns the greatest valid value for
- * the API portion of an RTEMS object Id.
+ * @retval This method returns the greatest valid value for
+ * the API portion of an RTEMS object Id.
*
- * @note A body is also provided.
+ * @note A body is also provided.
*/
#define rtems_object_id_api_maximum() \
OBJECTS_APIS_LAST
/**
- * @brief Get Lowest Valid Class Value
+ * @brief Get Lowest Valid Class Value
*
- * This method returns the lowest valid value Class for the
- * specified @a api. Each API supports a different number
- * of object classes.
+ * This method returns the lowest valid value Class for the
+ * specified @a api. Each API supports a different number
+ * of object classes.
*
- * @param[in] api is the API to obtain the minimum class of
+ * @param[in] api is the API to obtain the minimum class of
*
- * @return This method returns the least valid value for
- * class number for the specified @a api.
- * RTEMS Object Helper -- Get Least Valid Class for an API
+ * @retval This method returns the least valid value for
+ * class number for the specified @a api.
+ * RTEMS Object Helper -- Get Least Valid Class for an API
*/
int rtems_object_api_minimum_class(
int api
);
/**
- * @brief Get Highest Valid Class Value
+ * @brief Get Highest Valid Class Value
*
- * This method returns the highest valid value Class for the
- * specified @a api. Each API supports a different number
- * of object classes.
+ * This method returns the highest valid value Class for the
+ * specified @a api. Each API supports a different number
+ * of object classes.
*
- * @param[in] api is the API to obtain the maximum class of
+ * @param[in] api is the API to obtain the maximum class of
*
- * @return This method returns the greatet valid value for
- * class number for the specified @a api.
+ * @retval This method returns the greatet valid value for
+ * class number for the specified @a api.
*/
int rtems_object_api_maximum_class(
int api
@@ -284,49 +289,49 @@ int rtems_object_api_maximum_class(
/**
- * @brief Get Highest Valid Class Value
+ * @brief Get Highest Valid Class Value
*
- * This method returns the lowest valid value Class for the
- * specified @a api. Each API supports a different number
- * of object classes.
+ * This method returns the lowest valid value Class for the
+ * specified @a api. Each API supports a different number
+ * of object classes.
*
- * @param[in] api is the API to obtain the maximum class of
+ * @param[in] api is the API to obtain the maximum class of
*
- * @return This method returns the least valid value for
- * class number for the specified @a api.
+ * @retval This method returns the least valid value for
+ * class number for the specified @a api.
*/
int rtems_object_id_api_maximum_class(
int api
);
/**
- * @brief Get API Name
+ * @brief Get API Name
*
- * This method returns a string containing the name of the
- * specified @a api.
+ * This method returns a string containing the name of the
+ * specified @a api.
*
- * @param[in] api is the API to obtain the name of
+ * @param[in] api is the API to obtain the name of
*
- * @return If successful, this method returns the name of
- * the specified @a api. Otherwise, it returns
- * the string "BAD API"
+ * @retval If successful, this method returns the name of
+ * the specified @a api. Otherwise, it returns
+ * the string "BAD API"
*/
const char *rtems_object_get_api_name(
int api
);
/**
- * @brief Get Class Name
+ * @brief Get Class Name
*
- * This method returns a string containing the name of the
- * @a class from the specified @a api.
+ * This method returns a string containing the name of the
+ * @a class from the specified @a api.
*
- * @param[in] the_api is the API for the class
- * @param[in] the_class is the class to obtain the name of
+ * @param[in] the_api is the API for the class
+ * @param[in] the_class is the class to obtain the name of
*
- * @return If successful, this method returns the name of
- * the specified @a class. Otherwise, it returns
- * the string "BAD CLASS"
+ * @retval If successful, this method returns the name of
+ * the specified @a class. Otherwise, it returns
+ * the string "BAD CLASS"
*/
const char *rtems_object_get_api_class_name(
int the_api,
@@ -334,18 +339,18 @@ const char *rtems_object_get_api_class_name(
);
/**
- * @brief Get Class Information
+ * @brief Get Class Information
*
- * This method returns a string containing the name of the
- * @a the_class from the specified @a api.
+ * This method returns a string containing the name of the
+ * @a the_class from the specified @a api.
*
- * @param[in] the_api is the API for the class
- * @param[in] the_class is the class to obtain information about
- * @param[in] info points to the information structure to fill in
+ * @param[in] the_api is the API for the class
+ * @param[in] the_class is the class to obtain information about
+ * @param[in] info points to the information structure to fill in
*
- * @return If successful, this method returns the name of
- * RTEMS_SUCCESSFUL with @a *info filled in. Otherwise,
- * a status is returned to indicate the error.
+ * @retval If successful, this method returns the name of
+ * RTEMS_SUCCESSFUL with @a *info filled in. Otherwise,
+ * a status is returned to indicate the error.
*
*/
rtems_status_code rtems_object_get_class_information(
diff --git a/cpukit/rtems/include/rtems/rtems/options.h b/cpukit/rtems/include/rtems/rtems/options.h
index 6b30cc3044..29c0351a34 100644
--- a/cpukit/rtems/include/rtems/rtems/options.h
+++ b/cpukit/rtems/include/rtems/rtems/options.h
@@ -1,18 +1,21 @@
/**
* @file rtems/rtems/options.h
*
- * @brief Information Which Defines the Options Available on Many Directives.
+ * @defgroup ClassicOptions Classic API Options
*
- * This include file contains information which defines the
- * options available on many directives.
+ * @ingroup ClassicRTEMS
+ * @brief Options Available on Many Directives
+ *
+ * This include file contains information which defines the
+ * options available on many directives.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_OPTIONS_H
@@ -23,9 +26,13 @@ extern "C" {
#endif
/**
- * @defgroup ClassicOptions Classic API Options
+ * @defgroup ClassicOptions Classic API Options
+ *
+ * @ingroup ClassicRTEMS
*
- * This encapsulates functionality which XXX
+ * This encapsulates functionality related to the options argument
+ * to Classic API blocking operations. The primary option is whether
+ * or not a task is willing to wait for the operation to complete.
*/
/**@{*/
diff --git a/cpukit/rtems/include/rtems/rtems/part.h b/cpukit/rtems/include/rtems/rtems/part.h
index ff1cedd823..c864bebc5f 100644
--- a/cpukit/rtems/include/rtems/rtems/part.h
+++ b/cpukit/rtems/include/rtems/rtems/part.h
@@ -1,40 +1,43 @@
/**
* @file rtems/rtems/part.h
*
- * @brief Constants and Structures Associated with the Partition Manager
+ * @defgroup ClassicPart Partitions
*
- * This include file contains all the constants and structures associated
- * with the Partition Manager. This manager provides facilities to
- * dynamically allocate memory in fixed-sized units which are returned
- * as buffers.
+ * @ingroup ClassicRTEMS
+ * @brief Partition Manager
*
- * Directives provided are:
+ * This include file contains all the constants and structures associated
+ * with the Partition Manager. This manager provides facilities to
+ * dynamically allocate memory in fixed-sized units which are returned
+ * as buffers.
*
- * - create a partition
- * - get an ID of a partition
- * - delete a partition
- * - get a buffer from a partition
- * - return a buffer to a partition
+ * Directives provided are:
+ *
+ * - create a partition
+ * - get an ID of a partition
+ * - delete a partition
+ * - get a buffer from a partition
+ * - return a buffer to a partition
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_PART_H
#define _RTEMS_RTEMS_PART_H
/**
- * This constant is defined to extern most of the time when using
- * this header file. However by defining it to nothing, the data
- * declared in this header file can be instantiated. This is done
- * in a single per manager file.
+ * This constant is defined to extern most of the time when using
+ * this header file. However by defining it to nothing, the data
+ * declared in this header file can be instantiated. This is done
+ * in a single per manager file.
*
- * Partition Manager -- Instantiate Data
+ * Partition Manager -- Instantiate Data
*/
#ifndef RTEMS_PART_EXTERN
#define RTEMS_PART_EXTERN extern
@@ -117,22 +120,22 @@ rtems_status_code rtems_partition_create(
);
/**
- * @brief RTEMS Partition Ident
- *
- * This routine implements the rtems_partition_ident directive.
- * This directive returns the partition ID associated with name.
- * If more than one partition is named name, then the partition
- * to which the ID belongs is arbitrary. node indicates the
- * extent of the search for the ID of the partition named name.
- * The search can be limited to a particular node or allowed to
- * encompass all nodes.
- *
- * @param[in] name is the user defined partition name
- * @param[in] node is(are) the node(s) to be searched
- * @param[in] id is the pointer to partition id
- *
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
- * *id filled in with the partition id
+ * @brief RTEMS Partition Ident
+ *
+ * This routine implements the rtems_partition_ident directive.
+ * This directive returns the partition ID associated with name.
+ * If more than one partition is named name, then the partition
+ * to which the ID belongs is arbitrary. node indicates the
+ * extent of the search for the ID of the partition named name.
+ * The search can be limited to a particular node or allowed to
+ * encompass all nodes.
+ *
+ * @param[in] name is the user defined partition name
+ * @param[in] node is(are) the node(s) to be searched
+ * @param[in] id is the pointer to partition id
+ *
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
+ * *id filled in with the partition id
*/
rtems_status_code rtems_partition_ident(
rtems_name name,
@@ -141,33 +144,33 @@ rtems_status_code rtems_partition_ident(
);
/**
- * @brief RTEMS Delete Partition
+ * @brief RTEMS Delete Partition
*
- * This routine implements the rtems_partition_delete directive. The
- * partition indicated by ID is deleted, provided that none of its buffers
- * are still allocated.
+ * This routine implements the rtems_partition_delete directive. The
+ * partition indicated by ID is deleted, provided that none of its buffers
+ * are still allocated.
*
- * @param[in] id is the partition id
+ * @param[in] id is the partition id
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error.
*/
rtems_status_code rtems_partition_delete(
rtems_id id
);
/**
- * @brief RTEMS Get Partition Buffer
+ * @brief RTEMS Get Partition Buffer
*
- * This routine implements the rtems_partition_get_buffer directive. It
- * attempts to allocate a buffer from the partition associated with ID.
- * If a buffer is allocated, its address is returned in buffer.
+ * This routine implements the rtems_partition_get_buffer directive. It
+ * attempts to allocate a buffer from the partition associated with ID.
+ * If a buffer is allocated, its address is returned in buffer.
*
- * @param[in] id is the partition id
- * @param[out] buffer is the pointer to buffer address
+ * @param[in] id is the partition id
+ * @param[out] buffer is the pointer to buffer address
*
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
*/
rtems_status_code rtems_partition_get_buffer(
rtems_id id,
diff --git a/cpukit/rtems/include/rtems/rtems/partmp.h b/cpukit/rtems/include/rtems/rtems/partmp.h
index fee58e9038..3d3f47fe52 100644
--- a/cpukit/rtems/include/rtems/rtems/partmp.h
+++ b/cpukit/rtems/include/rtems/rtems/partmp.h
@@ -1,16 +1,18 @@
/**
* @file rtems/rtems/partmp.h
*
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Support in the Partition Manager.
+ * @brief MP Support in Partition Manager
+ *
+ * This include file contains all the constants and structures associated
+ * with the Multiprocessing Support in the Partition Manager.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_PARTMP_H
@@ -34,7 +36,7 @@ extern "C" {
*
* This encapsulates functionality which XXX
*/
-/**{*/
+/*{*/
/**
* The following enumerated type defines the list of
diff --git a/cpukit/rtems/include/rtems/rtems/ratemon.h b/cpukit/rtems/include/rtems/rtems/ratemon.h
index 2ea3d23a13..634889aeeb 100644
--- a/cpukit/rtems/include/rtems/rtems/ratemon.h
+++ b/cpukit/rtems/include/rtems/rtems/ratemon.h
@@ -1,28 +1,31 @@
/**
* @file rtems/rtems/ratemon.h
*
- * @brief Constants, Structures, and Prototypes Associated to the Classic API Rate Monotonic Manager.
+ * @defgroup ClassicRateMon Rate Monotonic Scheduler
*
- * This include file contains all the constants, structures, and
- * prototypes associated with the Rate Monotonic Manager. This manager
- * provides facilities to implement threads which execute in a periodic
- * fashion.
+ * @ingroup ClassicRTEMS
+ * @brief Classic API Rate Monotonic Manager.
*
- * Directives provided are:
+ * This include file contains all the constants, structures, and
+ * prototypes associated with the Rate Monotonic Manager. This manager
+ * provides facilities to implement threads which execute in a periodic
+ * fashion.
*
- * - create a rate monotonic timer
- * - cancel a period
- * - delete a rate monotonic timer
- * - conclude current and start the next period
- * - obtain status information on a period
+ * Directives provided are:
+ *
+ * - create a rate monotonic timer
+ * - cancel a period
+ * - delete a rate monotonic timer
+ * - conclude current and start the next period
+ * - obtain status information on a period
*/
-/* COPYRIGHT (c) 1989-2009.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2009.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_RATEMON_H
@@ -293,19 +296,19 @@ rtems_status_code rtems_rate_monotonic_create(
);
/**
- * @brief RTEMS Rate Monotonic Name to Id
+ * @brief RTEMS Rate Monotonic Name to Id
*
- * This routine implements the rtems_rate_monotonic_ident directive.
- * It returns the period ID associated with name. If more than one period
- * is named name, then the period to which the ID belongs is arbitrary.
+ * This routine implements the rtems_rate_monotonic_ident directive.
+ * It returns the period ID associated with name. If more than one period
+ * is named name, then the period to which the ID belongs is arbitrary.
*
- * @param[in] name is the user defined period name
- * @param[in] id is the pointer to period id
+ * @param[in] name is the user defined period name
+ * @param[in] id is the pointer to period id
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the id will
- * be filled in with the region id.
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error. If successful, the id will
+ * be filled in with the region id.
*/
rtems_status_code rtems_rate_monotonic_ident(
rtems_name name,
@@ -313,16 +316,16 @@ rtems_status_code rtems_rate_monotonic_ident(
);
/**
- * @brief RTEMS Rate Monotonic Cancel
+ * @brief RTEMS Rate Monotonic Cancel
*
- * This routine implements the rtems_rate_monotonic_cancel directive. This
- * directive stops the period associated with ID from continuing to
- * run.
+ * This routine implements the rtems_rate_monotonic_cancel directive. This
+ * directive stops the period associated with ID from continuing to
+ * run.
*
- * @param[in] id is the rate monotonic id
+ * @param[in] id is the rate monotonic id
*
- * @return RTEMS_SUCCESSFUL if successful and caller is not the owning thread
- * or error code if unsuccessful
+ * @retval RTEMS_SUCCESSFUL if successful and caller is not the owning thread
+ * or error code if unsuccessful
*
*/
rtems_status_code rtems_rate_monotonic_cancel(
@@ -330,33 +333,33 @@ rtems_status_code rtems_rate_monotonic_cancel(
);
/**
- * @brief RTEMS Delete Rate Monotonic
+ * @brief RTEMS Delete Rate Monotonic
*
- * This routine implements the rtems_rate_monotonic_delete directive. The
- * period indicated by ID is deleted.
+ * This routine implements the rtems_rate_monotonic_delete directive. The
+ * period indicated by ID is deleted.
*
- * @param[in] id is the rate monotonic id
+ * @param[in] id is the rate monotonic id
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error.
*/
rtems_status_code rtems_rate_monotonic_delete(
rtems_id id
);
/**
- * @brief RTEMS Rate Monotonic Get Status
+ * @brief RTEMS Rate Monotonic Get Status
*
- * This routine implements the rtems_rate_monotonic_get_status directive.
- * Information about the period indicated by ID is returned.
+ * This routine implements the rtems_rate_monotonic_get_status directive.
+ * Information about the period indicated by ID is returned.
*
- * @param[in] id is the rate monotonic id
- * @param[in] status is the pointer to status control block
+ * @param[in] id is the rate monotonic id
+ * @param[in] status is the pointer to status control block
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error.
*
*/
rtems_status_code rtems_rate_monotonic_get_status(
@@ -365,15 +368,15 @@ rtems_status_code rtems_rate_monotonic_get_status(
);
/**
- * @brief RTEMS Rate Monotonic Get Statistics
+ * @brief RTEMS Rate Monotonic Get Statistics
*
- * This routine implements the rtems_rate_monotonic_get_statistics directive.
- * Statistics gathered from the use of this period are returned.
+ * This routine implements the rtems_rate_monotonic_get_statistics directive.
+ * Statistics gathered from the use of this period are returned.
*
- * @param[in] id is the rate monotonic id
- * @param[in] statistics is the pointer to statistics control block
+ * @param[in] id is the rate monotonic id
+ * @param[in] statistics is the pointer to statistics control block
*
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
*/
rtems_status_code rtems_rate_monotonic_get_statistics(
rtems_id id,
@@ -423,17 +426,17 @@ void rtems_rate_monotonic_report_statistics_with_plugin(
void rtems_rate_monotonic_report_statistics( void );
/**
- * @brief RTEMS Rate Monotonic Period
+ * @brief RTEMS Rate Monotonic Period
*
- * This routine implements the rtems_rate_monotonic_period directive. When
- * length is non-zero, this directive initiates the period associated with
- * ID from continuing for a period of length. If length is zero, then
- * result is set to indicate the current state of the period.
+ * This routine implements the rtems_rate_monotonic_period directive. When
+ * length is non-zero, this directive initiates the period associated with
+ * ID from continuing for a period of length. If length is zero, then
+ * result is set to indicate the current state of the period.
*
- * @param[in] id is the rate monotonic id
- * @param[in] lenght is the length of period (in ticks)
+ * @param[in] id is the rate monotonic id
+ * @param[in] length is the length of period (in ticks)
*
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
*/
rtems_status_code rtems_rate_monotonic_period(
rtems_id id,
@@ -441,16 +444,16 @@ rtems_status_code rtems_rate_monotonic_period(
);
/**
- * @brief Rate Monotonic Timeout
+ * @brief Rate Monotonic Timeout
*
- * This routine is invoked when the period represented
- * by ID expires. If the thread which owns this period is blocked
- * waiting for the period to expire, then it is readied and the
- * period is restarted. If the owning thread is not waiting for the
- * period to expire, then the period is placed in the EXPIRED
- * state and not restarted.
+ * This routine is invoked when the period represented
+ * by ID expires. If the thread which owns this period is blocked
+ * waiting for the period to expire, then it is readied and the
+ * period is restarted. If the owning thread is not waiting for the
+ * period to expire, then the period is placed in the EXPIRED
+ * state and not restarted.
*
- * @param[in] id is the period id
+ * @param[in] id is the period id
*/
void _Rate_monotonic_Timeout(
rtems_id id,
@@ -458,19 +461,19 @@ void _Rate_monotonic_Timeout(
);
/**
- * @brief _Rate_monotonic_Get_status(
+ * @brief _Rate_monotonic_Get_status(
*
- * This routine is invoked to compute the elapsed wall time and cpu
- * time for a period.
+ * This routine is invoked to compute the elapsed wall time and cpu
+ * time for a period.
*
- * @param[in] the_period points to the period being operated upon.
- * @param[out] wall_since_last_period is set to the wall time elapsed
- * since the period was initiated.
- * @param[out] cpu_since_last_period is set to the cpu time used by the
- * owning thread since the period was initiated.
+ * @param[in] the_period points to the period being operated upon.
+ * @param[out] wall_since_last_period is set to the wall time elapsed
+ * since the period was initiated.
+ * @param[out] cpu_since_last_period is set to the cpu time used by the
+ * owning thread since the period was initiated.
*
- * @return This routine returns true if the status can be determined
- * and false otherwise.
+ * @retval This routine returns true if the status can be determined
+ * and false otherwise.
*/
bool _Rate_monotonic_Get_status(
Rate_monotonic_Control *the_period,
diff --git a/cpukit/rtems/include/rtems/rtems/region.h b/cpukit/rtems/include/rtems/rtems/region.h
index 73d66d290d..a99a497b8d 100644
--- a/cpukit/rtems/include/rtems/rtems/region.h
+++ b/cpukit/rtems/include/rtems/rtems/region.h
@@ -1,27 +1,30 @@
/**
* @file rtems/rtems/region.h
*
- * @brief Constants and Structures Associated with the Region Manager
+ * @defgroup ClassicRegion Regions
*
- * This include file contains all the constants and structures associated
- * with the Region Manager. This manager provides facilities to dynamically
- * allocate memory in variable sized units which are returned as segments.
+ * @ingroup ClassicRTEMS
+ * @brief Region Manager
*
- * Directives provided are:
+ * This include file contains all the constants and structures associated
+ * with the Region Manager. This manager provides facilities to dynamically
+ * allocate memory in variable sized units which are returned as segments.
*
- * - create a region
- * - get an ID of a region
- * - delete a region
- * - get a segment from a region
- * - return a segment to a region
+ * Directives provided are:
+ *
+ * - create a region
+ * - get an ID of a region
+ * - delete a region
+ * - get a segment from a region
+ * - return a segment to a region
*/
-/* COPYRIGHT (c) 1989-2009.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2009.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_REGION_H
@@ -119,20 +122,20 @@ rtems_status_code rtems_region_create(
);
/**
- * @brief RTEMS Extend Region
+ * @brief RTEMS Extend Region
*
- * This routine implements the rtems_region_extend directive. The
- * region will have the name name. The memory area managed by
- * the region will be attempted to be grown by length bytes using
- * the memory starting at starting_address.
+ * This routine implements the rtems_region_extend directive. The
+ * region will have the name name. The memory area managed by
+ * the region will be attempted to be grown by length bytes using
+ * the memory starting at starting_address.
*
- * @param[in] id is the id of region to grow
- * @param[in] starting_address starting address of memory area for extension
- * @param[in] length is the physical length in bytes to grow the region
+ * @param[in] id is the id of region to grow
+ * @param[in] starting_address starting address of memory area for extension
+ * @param[in] length is the physical length in bytes to grow the region
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error.
*/
rtems_status_code rtems_region_extend(
rtems_id id,
@@ -141,20 +144,20 @@ rtems_status_code rtems_region_extend(
);
/**
- * @brief RTEMS Region Name to Id
+ * @brief RTEMS Region Name to Id
*
- * This routine implements the rtems_region_ident directive.
- * This directive returns the region ID associated with name.
- * If more than one region is named name, then the region
- * to which the ID belongs is arbitrary.
+ * This routine implements the rtems_region_ident directive.
+ * This directive returns the region ID associated with name.
+ * If more than one region is named name, then the region
+ * to which the ID belongs is arbitrary.
*
- * @param[in] name is the user defined region name
- * @param[in] id is the pointer to region id
+ * @param[in] name is the user defined region name
+ * @param[in] id is the pointer to region id
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the id will
- * be filled in with the region id.
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error. If successful, the id will
+ * be filled in with the region id.
*/
rtems_status_code rtems_region_ident(
rtems_name name,
@@ -162,17 +165,17 @@ rtems_status_code rtems_region_ident(
);
/**
- * @brief RTEMS Get Region Information
+ * @brief RTEMS Get Region Information
*
- * This routine implements the rtems_region_get_information directive.
- * This directive returns information about the heap associated with
- * this region.
+ * This routine implements the rtems_region_get_information directive.
+ * This directive returns information about the heap associated with
+ * this region.
*
- * @param[in] id is the region id
- * @param[in] the_info is the pointer to region information block
+ * @param[in] id is the region id
+ * @param[in] the_info is the pointer to region information block
*
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
- * *id filled with the region information block
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
+ * *id filled with the region information block
*/
rtems_status_code rtems_region_get_information(
rtems_id id,
@@ -180,20 +183,20 @@ rtems_status_code rtems_region_get_information(
);
/**
- * @brief RTEMS Get Region Free Information
+ * @brief RTEMS Get Region Free Information
*
- * This routine implements the rtems_region_get_free_information directive.
- * This directive returns information about the free blocks in the
- * heap associated with this region. Information about the used blocks
- * will be returned as zero.
+ * This routine implements the rtems_region_get_free_information directive.
+ * This directive returns information about the free blocks in the
+ * heap associated with this region. Information about the used blocks
+ * will be returned as zero.
*
- * @param[in] id is the region id
- * @param[in] the_info is the pointer to region information block
+ * @param[in] id is the region id
+ * @param[in] the_info is the pointer to region information block
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the the_info will
- * be filled in with the region information block.
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error. If successful, the the_info will
+ * be filled in with the region information block.
*/
rtems_status_code rtems_region_get_free_information(
rtems_id id,
@@ -201,43 +204,43 @@ rtems_status_code rtems_region_get_free_information(
);
/**
- * @brief RTEMS Delete Region
+ * @brief RTEMS Delete Region
*
- * This routine implements the rtems_region_delete directive. The
- * region indicated by ID is deleted, provided that none of its segments are
- * still allocated.
+ * This routine implements the rtems_region_delete directive. The
+ * region indicated by ID is deleted, provided that none of its segments are
+ * still allocated.
*
- * @param[in] id is the region id
+ * @param[in] id is the region id
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error.
*/
rtems_status_code rtems_region_delete(
rtems_id id
);
/**
- * @brief RTEMS Get Region Segment
- *
- * This routine implements the rtems_region_get_segment directive. It
- * attempts to allocate a segment from the region associated with @a id.
- * If a segment of the requested @a size size can be allocated, its address
- * is returned in @a segment. If no segment is available, then the task
- * may return immediately or block waiting for a segment with an optional
- * timeout of @a timeout clock ticks. Whether the task blocks or returns
- * immediately is based on the no_wait option in the @a option_set.
- *
- * @param[in] id is the region id
- * @param[in] size is the segment size in bytes
- * @param[in] option_set is the wait option
- * @param[in] timeout is the number of ticks to wait (0 means wait forever)
- * @param[in] segment is the pointer to segment address
- *
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the segment will
- * be filled in with the segment address.
+ * @brief RTEMS Get Region Segment
+ *
+ * This routine implements the rtems_region_get_segment directive. It
+ * attempts to allocate a segment from the region associated with @a id.
+ * If a segment of the requested @a size size can be allocated, its address
+ * is returned in @a segment. If no segment is available, then the task
+ * may return immediately or block waiting for a segment with an optional
+ * timeout of @a timeout clock ticks. Whether the task blocks or returns
+ * immediately is based on the no_wait option in the @a option_set.
+ *
+ * @param[in] id is the region id
+ * @param[in] size is the segment size in bytes
+ * @param[in] option_set is the wait option
+ * @param[in] timeout is the number of ticks to wait (0 means wait forever)
+ * @param[in] segment is the pointer to segment address
+ *
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error. If successful, the segment will
+ * be filled in with the segment address.
*/
rtems_status_code rtems_region_get_segment(
rtems_id id,
@@ -248,19 +251,19 @@ rtems_status_code rtems_region_get_segment(
);
/**
- * @brief RTEMS Get Region Segment Size
+ * @brief RTEMS Get Region Segment Size
*
- * This routine implements the rtems_region_get_segment_size directive. It
- * returns the size in bytes of the specified user memory area.
+ * This routine implements the rtems_region_get_segment_size directive. It
+ * returns the size in bytes of the specified user memory area.
*
- * @param[in] id is the region id
- * @param[in] segment is the segment address
- * @param[in] size is the pointer to segment size in bytes
+ * @param[in] id is the region id
+ * @param[in] segment is the segment address
+ * @param[in] size is the pointer to segment size in bytes
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the size will
- * be filled in with the segment size in bytes.
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error. If successful, the size will
+ * be filled in with the segment size in bytes.
*/
rtems_status_code rtems_region_get_segment_size(
rtems_id id,
@@ -269,20 +272,20 @@ rtems_status_code rtems_region_get_segment_size(
);
/**
- * @brief RTEMS Return Region Segment
+ * @brief RTEMS Return Region Segment
*
- * This routine implements the rtems_region_return_segment directive. It
- * frees the segment to the region associated with ID. The segment must
- * have been previously allocated from the same region. If freeing the
- * segment results in enough memory being available to satisfy the
- * rtems_region_get_segment of the first blocked task, then that task and as
- * many subsequent tasks as possible will be unblocked with their requests
- * satisfied.
+ * This routine implements the rtems_region_return_segment directive. It
+ * frees the segment to the region associated with ID. The segment must
+ * have been previously allocated from the same region. If freeing the
+ * segment results in enough memory being available to satisfy the
+ * rtems_region_get_segment of the first blocked task, then that task and as
+ * many subsequent tasks as possible will be unblocked with their requests
+ * satisfied.
*
- * @param[in] id is the region id
- * @param[in] segment is the pointer to segment address
+ * @param[in] id is the region id
+ * @param[in] segment is the pointer to segment address
*
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
*/
rtems_status_code rtems_region_return_segment(
rtems_id id,
@@ -290,27 +293,27 @@ rtems_status_code rtems_region_return_segment(
);
/**
- * @brief Resize RTEMS Region Segment
- *
- * This routine implements the rtems_region_resize_segment directive. It
- * tries to resize segment in the region associated with 'id' to the new size
- * 'size' in place. The first 'size' or old size bytes of the segment
- * (whatever is less) are guaranteed to remain unmodified. The segment must
- * have been previously allocated from the same region. If resizing the
- * segment results in enough memory being available to satisfy the
- * rtems_region_get_segment of the first blocked task, then that task and as
- * many subsequent tasks as possible will be unblocked with their requests
- * satisfied.
- *
- * @param[in] id is the region id
- * @param[in] segmet is the pointer to segment address
- * @param[in] size is the new required size
- * @return RTEMS_SUCCESSFUL if operation successful, RTEMS_UNSATISFIED if the
- * the segment can't be resized in place or any other code atfailure
- *
- * @note On RTEMS_SUCCESSFUL or RTEMS_UNSATISFIED exit it returns into the
- * 'old_size' the old size in bytes of the user memory area of the
- * specified segment.
+ * @brief Resize RTEMS Region Segment
+ *
+ * This routine implements the rtems_region_resize_segment directive. It
+ * tries to resize segment in the region associated with 'id' to the new size
+ * 'size' in place. The first 'size' or old size bytes of the segment
+ * (whatever is less) are guaranteed to remain unmodified. The segment must
+ * have been previously allocated from the same region. If resizing the
+ * segment results in enough memory being available to satisfy the
+ * rtems_region_get_segment of the first blocked task, then that task and as
+ * many subsequent tasks as possible will be unblocked with their requests
+ * satisfied.
+ *
+ * @param[in] id is the region id
+ * @param[in] segment is the pointer to segment address
+ * @param[in] size is the new required size
+ * @retval RTEMS_SUCCESSFUL if operation successful, RTEMS_UNSATISFIED if the
+ * the segment can't be resized in place or any other code at failure
+ *
+ * @note On RTEMS_SUCCESSFUL or RTEMS_UNSATISFIED exit it returns into the
+ * 'old_size' the old size in bytes of the user memory area of the
+ * specified segment.
*/
rtems_status_code rtems_region_resize_segment(
rtems_id id,
diff --git a/cpukit/rtems/include/rtems/rtems/regionmp.h b/cpukit/rtems/include/rtems/rtems/regionmp.h
index f4adc2bda1..4ec1eb10c8 100644
--- a/cpukit/rtems/include/rtems/rtems/regionmp.h
+++ b/cpukit/rtems/include/rtems/rtems/regionmp.h
@@ -1,16 +1,21 @@
/**
* @file rtems/rtems/regionmp.h
*
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Support in the Region Manager.
+ * @defgroup ClassicRegionMP Region MP Support
+ *
+ * @ingroup ClassicMP
+ * @brief Multiprocessing Support in Region Manager
+ *
+ * This include file contains all the constants and structures associated
+ * with the Multiprocessing Support in the Region Manager.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_REGIONMP_H
diff --git a/cpukit/rtems/include/rtems/rtems/rtemsapi.h b/cpukit/rtems/include/rtems/rtems/rtemsapi.h
index 5d74fa6790..039436ded1 100644
--- a/cpukit/rtems/include/rtems/rtems/rtemsapi.h
+++ b/cpukit/rtems/include/rtems/rtems/rtemsapi.h
@@ -1,15 +1,22 @@
/**
* @file rtems/rtems/rtemsapi.h
*
- * RTEMS API Support
+ * @defgroup ClassicAPI RTEMS API Support
+ *
+ * @ingroup ClassicRTEMS
+ * @brief RTEMS API Support
+ *
+ * This routine initializes the RTEMS API by invoking the initialization
+ * routine for each RTEMS manager with the appropriate parameters
+ * from the configuration_table.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_RTEMSAPI_H
diff --git a/cpukit/rtems/include/rtems/rtems/sem.h b/cpukit/rtems/include/rtems/rtems/sem.h
index ea0aea32ca..dafd1eac0d 100644
--- a/cpukit/rtems/include/rtems/rtems/sem.h
+++ b/cpukit/rtems/include/rtems/rtems/sem.h
@@ -1,40 +1,46 @@
/**
* @file rtems/rtems/sem.h
*
- * This include file contains all the constants and structures associated
- * with the Semaphore Manager. This manager utilizes standard Dijkstra
- * counting semaphores to provide synchronization and mutual exclusion
- * capabilities.
- *
- * Directives provided are:
- *
- * - create a semaphore
- * - get an ID of a semaphore
- * - delete a semaphore
- * - acquire a semaphore
- * - release a semaphore
+ * @brief Semaphore Manager
+ *
+ * @defgroup ClassicSem Semaphores
+ *
+ * @ingroup ClassicRTEMS
+ *
+ * This include file contains all the constants and structures associated
+ * with the Semaphore Manager. This manager utilizes standard Dijkstra
+ * counting semaphores to provide synchronization and mutual exclusion
+ * capabilities.
+ *
+ * Directives provided are:
+ *
+ * - create a semaphore
+ * - get an ID of a semaphore
+ * - delete a semaphore
+ * - acquire a semaphore
+ * - release a semaphore
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_SEM_H
#define _RTEMS_RTEMS_SEM_H
/**
- * @brief Instantiate Semaphore Data
+ * @brief Instantiate Semaphore Data
*
- * Semaphore Manager -- Data Instantiation
+ * Semaphore Manager -- Data Instantiation
*
- * This constant is defined to extern most of the time when using
- * this header file. However by defining it to nothing, the data
- * declared in this header file can be instantiated. This is done
- * in a single per manager file.
+ * This constant is defined to extern most of the time when using
+ * this header file. However by defining it to nothing, the data
+ * declared in this header file can be instantiated. This is done
+ * in a single per manager file.
*
*/
#ifndef RTEMS_SEM_EXTERN
@@ -135,22 +141,22 @@ rtems_status_code rtems_semaphore_create(
);
/**
- * @brief RTEMS Semaphore Name to Id
- *
- * This routine implements the rtems_semaphore_ident directive.
- * This directive returns the semaphore ID associated with name.
- * If more than one semaphore is named name, then the semaphore
- * to which the ID belongs is arbitrary. node indicates the
- * extent of the search for the ID of the semaphore named name.
- * The search can be limited to a particular node or allowed to
- * encompass all nodes.
- *
- * @param[in] name is the user defined semaphore name
- * @param[in] node is(are) the node(s) to be searched
- * @param[in] id is the pointer to semaphore id
- *
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
- * *id filled in with the semaphore id
+ * @brief RTEMS Semaphore Name to Id
+ *
+ * This routine implements the rtems_semaphore_ident directive.
+ * This directive returns the semaphore ID associated with name.
+ * If more than one semaphore is named name, then the semaphore
+ * to which the ID belongs is arbitrary. node indicates the
+ * extent of the search for the ID of the semaphore named name.
+ * The search can be limited to a particular node or allowed to
+ * encompass all nodes.
+ *
+ * @param[in] name is the user defined semaphore name
+ * @param[in] node is(are) the node(s) to be searched
+ * @param[in] id is the pointer to semaphore id
+ *
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
+ * *id filled in with the semaphore id
*/
rtems_status_code rtems_semaphore_ident(
rtems_name name,
@@ -159,39 +165,39 @@ rtems_status_code rtems_semaphore_ident(
);
/**
- * @brief RTEMS Delete Semaphore
+ * @brief RTEMS Delete Semaphore
*
- * This routine implements the rtems_semaphore_delete directive. The
- * semaphore indicated by ID is deleted.
+ * This routine implements the rtems_semaphore_delete directive. The
+ * semaphore indicated by ID is deleted.
*
- * @param[in] id is the semaphore id
+ * @param[in] id is the semaphore id
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error.
*/
rtems_status_code rtems_semaphore_delete(
rtems_id id
);
/**
- * @brief RTEMS Obtain Semaphore
- *
- * This routine implements the rtems_semaphore_obtain directive. It
- * attempts to obtain a unit from the semaphore associated with ID.
- * If a unit can be allocated, the calling task will return immediately.
- * If no unit is available, then the task may return immediately or
- * block waiting for a unit with an optional timeout of timeout
- * clock ticks. Whether the task blocks or returns immediately
- * is based on the RTEMS_NO_WAIT option in the option_set.
- *
- * @param[in] id is the semaphore id
- * @param[in] option_set is the wait option
- * @param[in] timeout is the number of ticks to wait (0 means wait forever)
- *
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
+ * @brief RTEMS Obtain Semaphore
+ *
+ * This routine implements the rtems_semaphore_obtain directive. It
+ * attempts to obtain a unit from the semaphore associated with ID.
+ * If a unit can be allocated, the calling task will return immediately.
+ * If no unit is available, then the task may return immediately or
+ * block waiting for a unit with an optional timeout of timeout
+ * clock ticks. Whether the task blocks or returns immediately
+ * is based on the RTEMS_NO_WAIT option in the option_set.
+ *
+ * @param[in] id is the semaphore id
+ * @param[in] option_set is the wait option
+ * @param[in] timeout is the number of ticks to wait (0 means wait forever)
+ *
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error.
*/
rtems_status_code rtems_semaphore_obtain(
rtems_id id,
@@ -215,18 +221,18 @@ rtems_status_code rtems_semaphore_release(
);
/**
- * @brief RTEMS Semaphore Flush
+ * @brief RTEMS Semaphore Flush
*
- * DESCRIPTION:
- * This package is the implementation of the flush directive
- * of the Semaphore Manager.
+ * DESCRIPTION:
+ * This package is the implementation of the flush directive
+ * of the Semaphore Manager.
*
- * This directive allows a thread to flush the threads
- * pending on the semaphore.
+ * This directive allows a thread to flush the threads
+ * pending on the semaphore.
*
- * @param[in] id is the semaphore id
+ * @param[in] id is the semaphore id
*
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
*/
rtems_status_code rtems_semaphore_flush(
rtems_id id
@@ -246,28 +252,28 @@ bool _Semaphore_Seize(
);
/**
- * @brief Semaphore Translate Core Mutex Return Code
+ * @brief Semaphore Translate Core Mutex Return Code
*
- * This function returns a RTEMS status code based on the mutex
- * status code specified.
+ * This function returns a RTEMS status code based on the mutex
+ * status code specified.
*
- * @param[in] the_mutex_status is the mutex status code to translate
+ * @param[in] the_mutex_status is the mutex status code to translate
*
- * @return translated RTEMS status code
+ * @retval translated RTEMS status code
*/
rtems_status_code _Semaphore_Translate_core_mutex_return_code (
uint32_t the_mutex_status
);
/**
- * @brief Semaphore Translate Core Semaphore Return Code
+ * @brief Semaphore Translate Core Semaphore Return Code
*
- * This function returns a RTEMS status code based on the semaphore
- * status code specified.
+ * This function returns a RTEMS status code based on the semaphore
+ * status code specified.
*
- * @param[in] status is the semaphore status code to translate
+ * @param[in] the_mutex_status is the semaphore status code to translate
*
- * @return translated RTEMS status code
+ * @retval translated RTEMS status code
*/
rtems_status_code _Semaphore_Translate_core_semaphore_return_code (
uint32_t the_mutex_status
diff --git a/cpukit/rtems/include/rtems/rtems/semmp.h b/cpukit/rtems/include/rtems/rtems/semmp.h
index d592d33b3a..d52176de7d 100644
--- a/cpukit/rtems/include/rtems/rtems/semmp.h
+++ b/cpukit/rtems/include/rtems/rtems/semmp.h
@@ -1,16 +1,21 @@
/**
* @file rtems/rtems/semmp.h
*
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Support in the Semaphore Manager.
+ * @defgroup ClassicSEM Semaphore MP Support
+ *
+ * @ingroup ClassicRTEMS
+ * @brief Semaphore Manager MP Support
+ *
+ * This include file contains all the constants and structures associated
+ * with the Multiprocessing Support in the Semaphore Manager.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_SEMMP_H
@@ -142,12 +147,12 @@ Semaphore_MP_Packet *_Semaphore_MP_Get_packet ( void );
/**
* @brief Semaphore Core Mutex MP Support
*
- * This function processes the global actions necessary for remote
- * accesses to a global semaphore based on a core mutex. This function
- * is called by the core.
+ * This function processes the global actions necessary for remote
+ * accesses to a global semaphore based on a core mutex. This function
+ * is called by the core.
*
- * @param[in] the_thread the remote thread the semaphore was surrendered to
- * @param[in] id is the id of the surrendered semaphore
+ * @param[in] the_thread the remote thread the semaphore was surrendered to
+ * @param[in] id is the id of the surrendered semaphore
*/
void _Semaphore_Core_mutex_mp_support (
Thread_Control *the_thread,
@@ -155,14 +160,14 @@ void _Semaphore_Core_mutex_mp_support (
);
/**
- * @brief Semaphore Core MP Support
+ * @brief Semaphore Core MP Support
*
- * This function processes the global actions necessary for remote
- * accesses to a global semaphore based on a core semaphore. This function
- * is called by the core.
+ * This function processes the global actions necessary for remote
+ * accesses to a global semaphore based on a core semaphore. This function
+ * is called by the core.
*
- * @param[in] the_thread the remote thread the semaphore was surrendered to
- * @param[in] id is the id of the surrendered semaphore
+ * @param[in] the_thread the remote thread the semaphore was surrendered to
+ * @param[in] id is the id of the surrendered semaphore
*/
void _Semaphore_Core_semaphore_mp_support (
Thread_Control *the_thread,
diff --git a/cpukit/rtems/include/rtems/rtems/signal.h b/cpukit/rtems/include/rtems/rtems/signal.h
index 6e242544a3..18f31b5ff5 100644
--- a/cpukit/rtems/include/rtems/rtems/signal.h
+++ b/cpukit/rtems/include/rtems/rtems/signal.h
@@ -1,22 +1,27 @@
/**
* @file rtems/rtems/signal.h
*
- * This include file contains all the constants and structures associated
- * with the Signal Manager. This manager provides capabilities required
- * for asynchronous communication between tasks via signal sets.
+ * @defgroup ClassicSignal Signals
*
- * Directives provided are:
+ * @ingroup ClassicRTEMS
+ * @brief Signal Manager
*
- * + establish an asynchronous signal routine
- * + send a signal set to a task
+ * This include file contains all the constants and structures associated
+ * with the Signal Manager. This manager provides capabilities required
+ * for asynchronous communication between tasks via signal sets.
+ *
+ * Directives provided are:
+ *
+ * + establish an asynchronous signal routine
+ * + send a signal set to a task
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_SIGNAL_H
@@ -50,18 +55,18 @@ extern "C" {
void _Signal_Manager_initialization( void );
/**
- * @brief RTEMS Catch Signal
+ * @brief RTEMS Catch Signal
*
- * This routine implements the rtems_signal_catch directive. This directive
- * is used to establish asr_handler as the Asynchronous Signal Routine
- * (RTEMS_ASR) for the calling task. The asr_handler will execute with a
- * mode of mode_set.
+ * This routine implements the rtems_signal_catch directive. This directive
+ * is used to establish asr_handler as the Asynchronous Signal Routine
+ * (RTEMS_ASR) for the calling task. The asr_handler will execute with a
+ * mode of mode_set.
*
- * @param[in] asr_handler is the address of asynchronous signal routine (asr)
- * ( NULL indicates asr is invalid )
- * @param[in] mode_set is the mode value for asr
+ * @param[in] asr_handler is the address of asynchronous signal routine (asr)
+ * ( NULL indicates asr is invalid )
+ * @param[in] mode_set is the mode value for asr
*
- * @return RTEMS_SUCCESSFUL
+ * @retval RTEMS_SUCCESSFUL
*/
rtems_status_code rtems_signal_catch(
rtems_asr_entry asr_handler,
@@ -69,15 +74,15 @@ rtems_status_code rtems_signal_catch(
);
/**
- * @brief RTEMS Send Signal
+ * @brief RTEMS Send Signal
*
- * This routine implements the rtems_signal_send directive. This directive
- * sends the signal_set to the task specified by ID.
+ * This routine implements the rtems_signal_send directive. This directive
+ * sends the signal_set to the task specified by ID.
*
- * @param[in] id is the thread thread id
- * @param[in] signal_set is the signal set
+ * @param[in] id is the thread thread id
+ * @param[in] signal_set is the signal set
*
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
*/
rtems_status_code rtems_signal_send(
rtems_id id,
diff --git a/cpukit/rtems/include/rtems/rtems/signalmp.h b/cpukit/rtems/include/rtems/rtems/signalmp.h
index 2b373a92ed..82a7e07ef8 100644
--- a/cpukit/rtems/include/rtems/rtems/signalmp.h
+++ b/cpukit/rtems/include/rtems/rtems/signalmp.h
@@ -1,16 +1,18 @@
/**
* @file rtems/rtems/signalmp.h
*
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Support in the Signal Manager.
+ * @brief Signal MP Support
+ *
+ * This include file contains all the constants and structures associated
+ * with the Multiprocessing Support in the Signal Manager.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_SIGNALMP_H
@@ -33,7 +35,7 @@ extern "C" {
*
* This encapsulates functionality which XXX
*/
-/**{*/
+/*{*/
/**
* The following enumerated type defines the list of
diff --git a/cpukit/rtems/include/rtems/rtems/smp.h b/cpukit/rtems/include/rtems/rtems/smp.h
index cf2ae8e30b..e62084ce86 100644
--- a/cpukit/rtems/include/rtems/rtems/smp.h
+++ b/cpukit/rtems/include/rtems/rtems/smp.h
@@ -1,19 +1,21 @@
/**
* @file rtems/rtems/smp.h
*
- * This include file provides the application interface
- * to SMP information and services.
+ * @defgroup ClassicSMP Classic API SMP Services
*
- * Most of the SMP interface is hidden from the application
- * and exists between the BSP and RTEMS.
+ * @ingroup ClassicRTEMS
+ * @brief SMP information and services.
+ *
+ * Most of the SMP interface is hidden from the application
+ * and exists between the BSP and RTEMS.
*/
-/* COPYRIGHT (c) 1989-2011.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2011.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_SMP_H
@@ -37,35 +39,35 @@ extern "C" {
extern uint32_t rtems_configuration_smp_maximum_processors;
/**
- * @brief Obtain Number of Cores in System
+ * @brief Obtain Number of Cores in System
*
- * This method returns the number of CPU cores that are currently in
- * the system. This will always be less than or equal to the number
- * of maximum number of cores which were configured.
+ * This method returns the number of CPU cores that are currently in
+ * the system. This will always be less than or equal to the number
+ * of maximum number of cores which were configured.
*
- * @return This method returns the number of cores in this system.
+ * @retval This method returns the number of cores in this system.
*/
#define rtems_smp_get_number_of_processors() \
(_SMP_Processor_count)
/**
- * @brief Obtain Maximum Cores Configured
+ * @brief Obtain Maximum Cores Configured
*
- * This method returns the number of CPU cores that were configured
- * in the system. The actual number of cores will always be less than
- * or equal to the number of maximum number of cores which were configured.
+ * This method returns the number of CPU cores that were configured
+ * in the system. The actual number of cores will always be less than
+ * or equal to the number of maximum number of cores which were configured.
*
- * @return This method returns the number of cores configured.
+ * @retval This method returns the number of cores configured.
*/
#define rtems_configuration_get_smp_maximum_processors() \
(rtems_configuration_smp_maximum_processors)
/**
- * @brief Obtain Current Core Number
+ * @brief Obtain Current Core Number
*
- * This method returns the id of the current CPU core.
+ * This method returns the id of the current CPU core.
*
- * @return This method returns the id of the current CPU core.
+ * @retval This method returns the id of the current CPU core.
*/
#define rtems_smp_get_current_processor() \
bsp_smp_processor_id()
diff --git a/cpukit/rtems/include/rtems/rtems/status.h b/cpukit/rtems/include/rtems/rtems/status.h
index 98923a0d53..9732d290f0 100644
--- a/cpukit/rtems/include/rtems/rtems/status.h
+++ b/cpukit/rtems/include/rtems/rtems/status.h
@@ -1,18 +1,21 @@
/**
* @file rtems/rtems/status.h
*
- * @brief Status Codes Returned from the Executive Directives
+ * @defgroup ClassicStatus Status Codes
*
- * This include file contains the status codes returned from the
- * executive directives.
+ * @ingroup ClassicRTEMS
+ * @brief Status Codes Returned from Executive Directives
+ *
+ * This include file contains the status codes returned from the
+ * executive directives.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_STATUS_H
diff --git a/cpukit/rtems/include/rtems/rtems/support.h b/cpukit/rtems/include/rtems/rtems/support.h
index 30716de72f..c9fbbdc480 100644
--- a/cpukit/rtems/include/rtems/rtems/support.h
+++ b/cpukit/rtems/include/rtems/rtems/support.h
@@ -1,19 +1,18 @@
/**
* @file
*
- * @ingroup ClassicRTEMS
- *
- * @ingroup ClassicRTEMSWorkspace
+ * @defgroup ClassicRTEMSWorkspace Workspace
*
+ * @ingroup ClassicRTEMS
* @brief Classic API support.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_SUPPORT_H
@@ -27,9 +26,8 @@ extern "C" {
/**
* @addtogroup ClassicRTEMS
- *
- * @{
*/
+/**@{**/
/**
* @brief Returns the number of micro seconds for the milli seconds value @a _ms.
@@ -58,9 +56,8 @@ extern "C" {
* @ingroup ClassicRTEMS
*
* Workspace definitions.
- *
- * @{
*/
+/**@{**/
/**
* @brief Gets Workspace Information
diff --git a/cpukit/rtems/include/rtems/rtems/taskmp.h b/cpukit/rtems/include/rtems/rtems/taskmp.h
index 7bf4c1bf2e..01a283b2f5 100644
--- a/cpukit/rtems/include/rtems/rtems/taskmp.h
+++ b/cpukit/rtems/include/rtems/rtems/taskmp.h
@@ -1,16 +1,21 @@
/**
* @file rtems/rtems/taskmp.h
*
- * This include file contains all the constants and structures associated
- * with the multiprocessing support in the task manager.
+ * @defgroup ClassicTaskMP Task MP Support
+ *
+ * @ingroup ClassicRTEMS
+ * @brief Task Manager MP Support
+ *
+ * This include file contains all the constants and structures associated
+ * with the multiprocessing support in the task manager.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_TASKMP_H
diff --git a/cpukit/rtems/include/rtems/rtems/tasks.h b/cpukit/rtems/include/rtems/rtems/tasks.h
index 607f87ca57..3be3aebe7c 100644
--- a/cpukit/rtems/include/rtems/rtems/tasks.h
+++ b/cpukit/rtems/include/rtems/rtems/tasks.h
@@ -1,34 +1,39 @@
/**
* @file rtems/rtems/tasks.h
*
- * This include file contains all constants and structures associated
- * with RTEMS tasks. This manager provides a comprehensive set of directives
- * to create, delete, and administer tasks.
- *
- * Directives provided are:
- *
- * - create a task
- * - get an ID of a task
- * - start a task
- * - restart a task
- * - delete a task
- * - suspend a task
- * - resume a task
- * - set a task's priority
- * - change the current task's mode
- * - get a task notepad entry
- * - set a task notepad entry
- * - wake up after interval
- * - wake up when specified
+ * @defgroup ClassicTasks Tasks
+ *
+ * @ingroup ClassicRTEMS
+ * @brief RTEMS Tasks
+ *
+ * This include file contains all constants and structures associated
+ * with RTEMS tasks. This manager provides a comprehensive set of directives
+ * to create, delete, and administer tasks.
+ *
+ * Directives provided are:
+ *
+ * - create a task
+ * - get an ID of a task
+ * - start a task
+ * - restart a task
+ * - delete a task
+ * - suspend a task
+ * - resume a task
+ * - set a task's priority
+ * - change the current task's mode
+ * - get a task notepad entry
+ * - set a task notepad entry
+ * - wake up after interval
+ * - wake up when specified
*/
/*
- * COPYRIGHT (c) 1989-2011.
- * On-Line Applications Research Corporation (OAR).
+ * COPYRIGHT (c) 1989-2011.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_TASKS_H
@@ -249,24 +254,24 @@ extern void (*_RTEMS_tasks_Initialize_user_tasks_p)(void);
void _RTEMS_tasks_Manager_initialization(void);
/**
- * @brief RTEMS Task Create
+ * @brief RTEMS Task Create
*
- * This routine implements the rtems_task_create directive. The task
- * will have the name name. The attribute_set can be used to indicate
- * that the task will be globally accessible or utilize floating point.
- * The task's stack will be stack_size bytes. The task will begin
- * execution with initial_priority and initial_modes. It returns the
- * id of the created task in ID.
+ * This routine implements the rtems_task_create directive. The task
+ * will have the name name. The attribute_set can be used to indicate
+ * that the task will be globally accessible or utilize floating point.
+ * The task's stack will be stack_size bytes. The task will begin
+ * execution with initial_priority and initial_modes. It returns the
+ * id of the created task in ID.
*
- * @param[in] name is the user defined thread name
- * @param[in] initial_priority is the thread priority
- * @param[in] stack_size is the stack size in bytes
- * @param[in] initial_modes is the initial thread mode
- * @param[in] attribute_set is the thread attributes
- * @param[in] id is the pointer to thread id
+ * @param[in] name is the user defined thread name
+ * @param[in] initial_priority is the thread priority
+ * @param[in] stack_size is the stack size in bytes
+ * @param[in] initial_modes is the initial thread mode
+ * @param[in] attribute_set is the thread attributes
+ * @param[in] id is the pointer to thread id
*
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful
- * and *id thread id filled in
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
+ * and *id thread id filled in
*/
rtems_status_code rtems_task_create(
rtems_name name,
@@ -278,24 +283,24 @@ rtems_status_code rtems_task_create(
);
/**
- * @brief RTEMS Task Name to Id
+ * @brief RTEMS Task Name to Id
*
- * This routine implements the rtems_task_ident directive.
- * This directive returns the task ID associated with name.
- * If more than one task is named name, then the task to
- * which the ID belongs is arbitrary. node indicates the
- * extent of the search for the ID of the task named name.
- * The search can be limited to a particular node or allowed to
- * encompass all nodes.
+ * This routine implements the rtems_task_ident directive.
+ * This directive returns the task ID associated with name.
+ * If more than one task is named name, then the task to
+ * which the ID belongs is arbitrary. node indicates the
+ * extent of the search for the ID of the task named name.
+ * The search can be limited to a particular node or allowed to
+ * encompass all nodes.
*
- * @param[in] name is the user defined thread name
- * @param[in] node is(are) the node(s) to be searched
- * @param[in] id is the pointer to thread id
+ * @param[in] name is the user defined thread name
+ * @param[in] node is(are) the node(s) to be searched
+ * @param[in] id is the pointer to thread id
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the id will
- * be filled in with the thread id.
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error. If successful, the id will
+ * be filled in with the thread id.
*/
rtems_status_code rtems_task_ident(
rtems_name name,
@@ -304,35 +309,35 @@ rtems_status_code rtems_task_ident(
);
/**
- * @brief RTEMS Delete Task
+ * @brief RTEMS Delete Task
*
- * This routine implements the rtems_task_delete directive. The
- * task indicated by ID is deleted. The executive halts execution
- * of the thread and frees the thread control block.
+ * This routine implements the rtems_task_delete directive. The
+ * task indicated by ID is deleted. The executive halts execution
+ * of the thread and frees the thread control block.
*
- * @param[in] id is the thread id
+ * @param[in] id is the thread id
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error and id is not the requesting thread. Status code is
- * returned indicating the source of the error. Nothing
- * is returned if id is the requesting thread (always succeeds).
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error and id is not the requesting thread. Status code is
+ * returned indicating the source of the error. Nothing
+ * is returned if id is the requesting thread (always succeeds).
*/
rtems_status_code rtems_task_delete(
rtems_id id
);
/**
- * @brief RTEMS Get Task Node
+ * @brief RTEMS Get Task Node
*
- * This routine implements the rtems_task_get_note directive. The
- * value of the indicated notepad for the task associated with ID
- * is returned in note.
+ * This routine implements the rtems_task_get_note directive. The
+ * value of the indicated notepad for the task associated with ID
+ * is returned in note.
*
- * @param[in] id is the thread id
- * @param[in] notepad is the notepad number
- * @param[out] note is the pointer to note
+ * @param[in] id is the thread id
+ * @param[in] notepad is the notepad number
+ * @param[out] note is the pointer to note
*
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
*/
rtems_status_code rtems_task_get_note(
rtems_id id,
@@ -341,19 +346,19 @@ rtems_status_code rtems_task_get_note(
);
/**
- * @brief RTEMS Set Task Note
+ * @brief RTEMS Set Task Note
*
- * This routine implements the rtems_task_set_note directive. The
- * value of the indicated notepad for the task associated with ID
- * is returned in note.
+ * This routine implements the rtems_task_set_note directive. The
+ * value of the indicated notepad for the task associated with ID
+ * is returned in note.
*
- * @param[in] id is the thread id
- * @param[in] notepad is the notepad number
- * @param[in] note is the note value
+ * @param[in] id is the thread id
+ * @param[in] notepad is the notepad number
+ * @param[in] note is the note value
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
+ * @return This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error.
*/
rtems_status_code rtems_task_set_note(
rtems_id id,
@@ -362,19 +367,19 @@ rtems_status_code rtems_task_set_note(
);
/**
- * @brief RTEMS Task Mode
+ * @brief RTEMS Task Mode
*
- * This routine implements the rtems_task_mode directive. The current
- * values of the modes indicated by mask of the calling task are changed
- * to that indicated in mode_set. The former mode of the task is
- * returned in mode_set.
+ * This routine implements the rtems_task_mode directive. The current
+ * values of the modes indicated by mask of the calling task are changed
+ * to that indicated in mode_set. The former mode of the task is
+ * returned in mode_set.
*
- * @param[in] mode_set is the new mode
- * @param[in] mask is the mask
- * @param[in] previous_mode_set is the address of previous mode set
+ * @param[in] mode_set is the new mode
+ * @param[in] mask is the mask
+ * @param[in] previous_mode_set is the address of previous mode set
*
- * @return RTEMS_SUCCESSFUL and previous_mode_set filled in with the
- * previous mode set
+ * @retval RTEMS_SUCCESSFUL and previous_mode_set filled in with the
+ * previous mode set
*/
rtems_status_code rtems_task_mode(
rtems_mode mode_set,
@@ -383,16 +388,16 @@ rtems_status_code rtems_task_mode(
);
/**
- * @brief RTEMS Task Restart
+ * @brief RTEMS Task Restart
*
- * This routine implements the rtems_task_restart directive. The
- * task associated with ID is restarted at its initial entry
- * point with the new argument.
+ * This routine implements the rtems_task_restart directive. The
+ * task associated with ID is restarted at its initial entry
+ * point with the new argument.
*
- * @param[in] id is the thread id
- * @param[in] arg is the thread argument
+ * @param[in] id is the thread id
+ * @param[in] arg is the thread argument
*
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
*/
rtems_status_code rtems_task_restart(
rtems_id id,
@@ -400,52 +405,52 @@ rtems_status_code rtems_task_restart(
);
/**
- * @brief RTEMS Suspend Task
+ * @brief RTEMS Suspend Task
*
- * This routine implements the rtems_task_suspend directive. The
- * SUSPENDED state is set for task associated with ID. Note that the
- * suspended state can be in addition to other waiting states.
+ * This routine implements the rtems_task_suspend directive. The
+ * SUSPENDED state is set for task associated with ID. Note that the
+ * suspended state can be in addition to other waiting states.
*
- * @param[in] id is the thread id
+ * @param[in] id is the thread id
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error.
*/
rtems_status_code rtems_task_suspend(
rtems_id id
);
/**
- * @brief RTEMS Resume Task
+ * @brief RTEMS Resume Task
*
- * This routine implements the rtems_task_resume Directive. The
- * SUSPENDED state is cleared for task associated with ID.
+ * This routine implements the rtems_task_resume Directive. The
+ * SUSPENDED state is cleared for task associated with ID.
*
- * @param[in] id is the thread id
+ * @param[in] id is the thread id
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error.
*/
rtems_status_code rtems_task_resume(
rtems_id id
);
/**
- * @brief RTEMS Set Task Priority
+ * @brief RTEMS Set Task Priority
*
- * This routine implements the rtems_task_set_priority directive. The
- * current priority of the task associated with ID is set to
- * new_priority. The former priority of that task is returned
- * in old_priority.
+ * This routine implements the rtems_task_set_priority directive. The
+ * current priority of the task associated with ID is set to
+ * new_priority. The former priority of that task is returned
+ * in old_priority.
*
- * @param[in] id is the thread to extract
- * @param[in] new_priority is the thread to extract
- * @param[in] old_priority is the thread to extract
+ * @param[in] id is the thread to extract
+ * @param[in] new_priority is the thread to extract
+ * @param[in] old_priority is the thread to extract
*
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
- * and *old_priority filled in with the previous previous priority
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
+ * and *old_priority filled in with the previous previous priority
*/
rtems_status_code rtems_task_set_priority(
rtems_id id,
@@ -469,29 +474,29 @@ rtems_status_code rtems_task_start(
);
/**
- * @brief RTEMS Task Wake When
+ * @brief RTEMS Task Wake When
*
- * This routine implements the rtems_task_wake_when directive. The
- * calling task is blocked until the current time of day is
- * equal to that indicated by time_buffer.
+ * This routine implements the rtems_task_wake_when directive. The
+ * calling task is blocked until the current time of day is
+ * equal to that indicated by time_buffer.
*
- * @param[in] time_buffer is the pointer to the time and date structure
+ * @param[in] time_buffer is the pointer to the time and date structure
*
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
*/
rtems_status_code rtems_task_wake_when(
rtems_time_of_day *time_buffer
);
/**
- * @brief RTEMS Task Wake After
+ * @brief RTEMS Task Wake After
*
- * This routine implements the rtems_task_wake_after directive. The
- * calling task is blocked until the indicated number of clock
- * ticks have occurred.
+ * This routine implements the rtems_task_wake_after directive. The
+ * calling task is blocked until the indicated number of clock
+ * ticks have occurred.
*
- * @param[in] ticks is the number of ticks to wait
- * @return RTEMS_SUCCESSFUL
+ * @param[in] ticks is the number of ticks to wait
+ * @retval RTEMS_SUCCESSFUL
*/
rtems_status_code rtems_task_wake_after(
rtems_interval ticks
diff --git a/cpukit/rtems/include/rtems/rtems/timer.h b/cpukit/rtems/include/rtems/rtems/timer.h
index 29c9f092ec..f27f958d9a 100644
--- a/cpukit/rtems/include/rtems/rtems/timer.h
+++ b/cpukit/rtems/include/rtems/rtems/timer.h
@@ -1,38 +1,41 @@
/**
* @file rtems/rtems/timer.h
*
- * @brief Constants, Structures, and Prototypes Associated with the Timer Manager
- *
- * This include file contains all the constants, structures, and
- * prototypes associated with the Timer Manager. This manager provides
- * facilities to configure, initiate, cancel, and delete timers which will
- * fire at specified intervals of time.
- *
- * Directives provided are:
- *
- * - create a timer
- * - get an ID of a timer
- * - delete a timer
- * - set timer to fire in context of clock tick
- * - after a number of ticks have passed
- * - when a specified date and time has been reached
- * - initiate the timer server task
- * - set timer to fire in context of the timer server task
- * - after a number of ticks have passed
- * - when a specified date and time has been reached
- * - reset a timer
- * - cancel a time
+ * @defgroup ClassicTimer Timers
+ *
+ * @ingroup ClassicRTEMS
+ * @brief Instantiate RTEMS Timer Data
+ *
+ * This include file contains all the constants, structures, and
+ * prototypes associated with the Timer Manager. This manager provides
+ * facilities to configure, initiate, cancel, and delete timers which will
+ * fire at specified intervals of time.
+ *
+ * Directives provided are:
+ *
+ * - create a timer
+ * - get an ID of a timer
+ * - delete a timer
+ * - set timer to fire in context of clock tick
+ * - after a number of ticks have passed
+ * - when a specified date and time has been reached
+ * - initiate the timer server task
+ * - set timer to fire in context of the timer server task
+ * - after a number of ticks have passed
+ * - when a specified date and time has been reached
+ * - reset a timer
+ * - cancel a time
*/
/*
- * COPYRIGHT (c) 1989-2011.
- * On-Line Applications Research Corporation (OAR).
+ * COPYRIGHT (c) 1989-2011.
+ * On-Line Applications Research Corporation (OAR).
*
- * Copyright (c) 2009 embedded brains GmbH.
+ * Copyright (c) 2009 embedded brains GmbH.
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_TIMER_H
@@ -231,16 +234,16 @@ RTEMS_TIMER_EXTERN Objects_Information _Timer_Information;
void _Timer_Manager_initialization(void);
/**
- * @brief RTEMS Create Timer
+ * @brief RTEMS Create Timer
*
- * This routine implements the rtems_timer_create directive. The
- * timer will have the name name. It returns the id of the
- * created timer in ID.
+ * This routine implements the rtems_timer_create directive. The
+ * timer will have the name name. It returns the id of the
+ * created timer in ID.
*
- * @param[in] name is the timer name
- * @param[out] id is the pointer to timer id
+ * @param[in] name is the timer name
+ * @param[out] id is the pointer to timer id
*
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
*/
rtems_status_code rtems_timer_create(
rtems_name name,
@@ -248,18 +251,18 @@ rtems_status_code rtems_timer_create(
);
/**
- * @brief RTEMS Timer Name to Id
+ * @brief RTEMS Timer Name to Id
*
- * This routine implements the rtems_timer_ident directive.
- * This directive returns the timer ID associated with name.
- * If more than one timer is named name, then the timer
- * to which the ID belongs is arbitrary.
+ * This routine implements the rtems_timer_ident directive.
+ * This directive returns the timer ID associated with name.
+ * If more than one timer is named name, then the timer
+ * to which the ID belongs is arbitrary.
*
- * @param[in] name is the user defined message queue name
- * @param[in] id is the pointer to timer id
+ * @param[in] name is the user defined message queue name
+ * @param[in] id is the pointer to timer id
*
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
- * id filled with the message queue id
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
+ * id filled with the message queue id
*/
rtems_status_code rtems_timer_ident(
rtems_name name,
@@ -277,38 +280,38 @@ rtems_status_code rtems_timer_cancel(
);
/**
- * @brief RTEMS Delete Timer
+ * @brief RTEMS Delete Timer
*
- * This routine implements the rtems_timer_delete directive. The
- * timer indicated by ID is deleted.
+ * This routine implements the rtems_timer_delete directive. The
+ * timer indicated by ID is deleted.
*
- * @param[in] id is the timer id
+ * @param[in] id is the timer id
*
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error.
*/
rtems_status_code rtems_timer_delete(
rtems_id id
);
/**
- * @brief RTEMS Timer Fire After
- *
- * This routine implements the rtems_timer_fire_after directive. It
- * initiates the timer associated with ID to fire in ticks clock ticks.
- * When the timer fires, the routine will be invoked in the context
- * of the rtems_clock_tick directive which is normally invoked as
- * part of servicing a periodic interupt.
- *
- * @param[in] id is the timer id
- * @param[in] ticks is the interval until routine is fired
- * @param[in] routine is the routine to schedule
- * @param[in] user_data is the passed as argument to routine when it is fired
- *
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
+ * @brief RTEMS Timer Fire After
+ *
+ * This routine implements the rtems_timer_fire_after directive. It
+ * initiates the timer associated with ID to fire in ticks clock ticks.
+ * When the timer fires, the routine will be invoked in the context
+ * of the rtems_clock_tick directive which is normally invoked as
+ * part of servicing a periodic interupt.
+ *
+ * @param[in] id is the timer id
+ * @param[in] ticks is the interval until routine is fired
+ * @param[in] routine is the routine to schedule
+ * @param[in] user_data is the passed as argument to routine when it is fired
+ *
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error.
*/
rtems_status_code rtems_timer_fire_after(
rtems_id id,
@@ -318,22 +321,22 @@ rtems_status_code rtems_timer_fire_after(
);
/**
- * @brief RTEMS Timer Server Fire After
- *
- * This routine implements the rtems_timer_server_fire_after directive. It
- * initiates the timer associated with ID to fire in ticks clock
- * ticks. When the timer fires, the routine will be invoked by the
- * Timer Server in the context of a task NOT IN THE CONTEXT of the
- * clock tick interrupt.
- *
- * @param[in] id is the timer id
- * @param[in] ticks is the interval until routine is fired
- * @param[in] routine is the routine to schedule
- * @param[in] user_data is the passed as argument to routine when it is fired
- *
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
+ * @brief RTEMS Timer Server Fire After
+ *
+ * This routine implements the rtems_timer_server_fire_after directive. It
+ * initiates the timer associated with ID to fire in ticks clock
+ * ticks. When the timer fires, the routine will be invoked by the
+ * Timer Server in the context of a task NOT IN THE CONTEXT of the
+ * clock tick interrupt.
+ *
+ * @param[in] id is the timer id
+ * @param[in] ticks is the interval until routine is fired
+ * @param[in] routine is the routine to schedule
+ * @param[in] user_data is the passed as argument to routine when it is fired
+ *
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error.
*/
rtems_status_code rtems_timer_server_fire_after(
rtems_id id,
@@ -343,22 +346,22 @@ rtems_status_code rtems_timer_server_fire_after(
);
/**
- * @brief RTEMS Timer Fire When
- *
- * This routine implements the rtems_timer_fire_when directive. It
- * initiates the timer associated with ID to fire at wall_time
- * When the timer fires, the routine will be invoked in the context
- * of the rtems_clock_tick directive which is normally invoked as
- * part of servicing a periodic interupt.
- *
- * @param[in] id is the timer id
- * @param[in] wall_time is the time of day to fire timer
- * @param[in] routine is the routine to schedule
- * @param[in] user_data is the passed as argument to routine when it is fired
- *
- * @return This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
+ * @brief RTEMS Timer Fire When
+ *
+ * This routine implements the rtems_timer_fire_when directive. It
+ * initiates the timer associated with ID to fire at wall_time
+ * When the timer fires, the routine will be invoked in the context
+ * of the rtems_clock_tick directive which is normally invoked as
+ * part of servicing a periodic interupt.
+ *
+ * @param[in] id is the timer id
+ * @param[in] wall_time is the time of day to fire timer
+ * @param[in] routine is the routine to schedule
+ * @param[in] user_data is the passed as argument to routine when it is fired
+ *
+ * @retval This method returns RTEMS_SUCCESSFUL if there was not an
+ * error. Otherwise, a status code is returned indicating the
+ * source of the error.
*/
rtems_status_code rtems_timer_fire_when(
rtems_id id,
@@ -435,16 +438,16 @@ typedef struct {
} rtems_timer_information;
/**
- * @brief RTEMS Get Timer Information
+ * @brief RTEMS Get Timer Information
*
- * This routine implements the rtems_timer_get_information directive.
- * This directive returns information about the timer.
+ * This routine implements the rtems_timer_get_information directive.
+ * This directive returns information about the timer.
*
- * @param[in] id is the timer id
- * @param[in] the_info is the pointer to timer information block
+ * @param[in] id is the timer id
+ * @param[in] the_info is the pointer to timer information block
*
- * @return RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
- * *the_info region information block filled in
+ * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
+ * *the_info region information block filled in
*/
rtems_status_code rtems_timer_get_information(
rtems_id id,
diff --git a/cpukit/rtems/include/rtems/rtems/types.h b/cpukit/rtems/include/rtems/rtems/types.h
index 52afa2611a..f9861aab8e 100644
--- a/cpukit/rtems/include/rtems/rtems/types.h
+++ b/cpukit/rtems/include/rtems/rtems/types.h
@@ -1,17 +1,18 @@
/**
* @file
*
- * @ingroup ClassicRTEMS
+ * @defgroup ClassicTypes Types
*
- * @brief Types used by the Classic API.
+ * @ingroup ClassicRTEMS
+ * @brief Types used by Classic API.
*/
-/* COPYRIGHT (c) 1989-2009.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2009.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_TYPES_H
@@ -39,9 +40,8 @@ extern "C" {
/**
* @addtogroup ClassicRTEMS
- *
- * @{
*/
+/**@{**/
#ifdef RTEMS_DEPRECATED_TYPES
/**
diff --git a/cpukit/rtems/inline/rtems/rtems/asr.inl b/cpukit/rtems/inline/rtems/rtems/asr.inl
index 3aabaaae5b..9f42120018 100644
--- a/cpukit/rtems/inline/rtems/rtems/asr.inl
+++ b/cpukit/rtems/inline/rtems/rtems/asr.inl
@@ -1,16 +1,21 @@
/**
* @file rtems/rtems/asr.inl
*
- * This include file contains the implemenation of all routines
- * associated with the asynchronous signal handler which are inlined.
+ * @defgroup ClassicASR ASR Support
+ *
+ * @ingroup ClassicRTEMS
+ * @brief Asynchronous Signal Handler
+ *
+ * This include file contains the implemenation of all routines
+ * associated with the asynchronous signal handler which are inlined.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_ASR_H
diff --git a/cpukit/rtems/inline/rtems/rtems/attr.inl b/cpukit/rtems/inline/rtems/rtems/attr.inl
index 75d62ad601..126259a067 100644
--- a/cpukit/rtems/inline/rtems/rtems/attr.inl
+++ b/cpukit/rtems/inline/rtems/rtems/attr.inl
@@ -29,7 +29,7 @@
*/
/**
- * @brief Attributes_Set
+ * @brief Sets the requested new_attributes in the attribute_set passed in.
*
* This function sets the requested new_attributes in the attribute_set
* passed in. The result is returned to the user.
@@ -43,7 +43,8 @@ RTEMS_INLINE_ROUTINE rtems_attribute _Attributes_Set (
}
/**
- * @brief Attributes_Clear
+ * @brief Clears the requested new_attributes in the attribute_set
+ * passed in.
*
* This function clears the requested new_attributes in the attribute_set
* passed in. The result is returned to the user.
@@ -57,7 +58,8 @@ RTEMS_INLINE_ROUTINE rtems_attribute _Attributes_Clear (
}
/**
- * @brief Attributes_Is_floating_point
+ * @brief Checks if the floating point attribute is
+ * enabled in the attribute_set.
*
* This function returns TRUE if the floating point attribute is
* enabled in the attribute_set and FALSE otherwise.
@@ -71,7 +73,8 @@ RTEMS_INLINE_ROUTINE bool _Attributes_Is_floating_point(
#if defined(RTEMS_MULTIPROCESSING)
/**
- * @brief Attributes_Is_global
+ * @brief Checks if the global object attribute is enabled in
+ * the attribute_set.
*
* This function returns TRUE if the global object attribute is
* enabled in the attribute_set and FALSE otherwise.
@@ -85,7 +88,7 @@ RTEMS_INLINE_ROUTINE bool _Attributes_Is_global(
#endif
/**
- * @brief Attributes_Is_priority
+ * @brief Checks if the priority attribute is enabled in the attribute_set.
*
* This function returns TRUE if the priority attribute is
* enabled in the attribute_set and FALSE otherwise.
@@ -98,7 +101,8 @@ RTEMS_INLINE_ROUTINE bool _Attributes_Is_priority(
}
/**
- * @brief Attributes_Is_binary_semaphore
+ * @brief Checks if the binary semaphore attribute is
+ * enabled in the attribute_set.
*
* This function returns TRUE if the binary semaphore attribute is
* enabled in the attribute_set and FALSE otherwise.
@@ -111,21 +115,23 @@ RTEMS_INLINE_ROUTINE bool _Attributes_Is_binary_semaphore(
}
/**
- * @brief Attributes_Is_simple_binary_semaphore
+ * @brief Checks if the simple binary semaphore attribute is
+ * enabled in the attribute_set
*
* This function returns TRUE if the simple binary semaphore attribute is
* enabled in the attribute_set and FALSE otherwise.
*/
RTEMS_INLINE_ROUTINE bool _Attributes_Is_simple_binary_semaphore(
rtems_attribute attribute_set
-)
+)
{
return
((attribute_set & RTEMS_SEMAPHORE_CLASS) == RTEMS_SIMPLE_BINARY_SEMAPHORE);
-}
+}
/**
- * @brief Attributes_Is_counting_semaphore
+ * @brief Checks if the counting semaphore attribute is
+ * enabled in the attribute_set
*
* This function returns TRUE if the counting semaphore attribute is
* enabled in the attribute_set and FALSE otherwise.
@@ -138,7 +144,8 @@ RTEMS_INLINE_ROUTINE bool _Attributes_Is_counting_semaphore(
}
/**
- * @brief Attributes_Is_inherit_priority
+ * @brief Checks if the priority inheritance attribute
+ * is enabled in the attribute_set
*
* This function returns TRUE if the priority inheritance attribute
* is enabled in the attribute_set and FALSE otherwise.
@@ -151,7 +158,8 @@ RTEMS_INLINE_ROUTINE bool _Attributes_Is_inherit_priority(
}
/**
- * @brief Attributes_Is_priority_ceiling
+ * @brief Checks if the priority ceiling attribute
+ * is enabled in the attribute_set
*
* This function returns TRUE if the priority ceiling attribute
* is enabled in the attribute_set and FALSE otherwise.
@@ -164,7 +172,8 @@ RTEMS_INLINE_ROUTINE bool _Attributes_Is_priority_ceiling(
}
/**
- * @brief Attributes_Is_barrier_automatic
+ * @brief Checks if the barrier automatic release
+ * attribute is enabled in the attribute_set
*
* This function returns TRUE if the barrier automatic release
* attribute is enabled in the attribute_set and FALSE otherwise.
@@ -177,7 +186,8 @@ RTEMS_INLINE_ROUTINE bool _Attributes_Is_barrier_automatic(
}
/**
- * @brief Attributes_Is_system_task
+ * @brief Checks if the system task attribute
+ * is enabled in the attribute_set.
*
* This function returns TRUE if the system task attribute
* is enabled in the attribute_set and FALSE otherwise.
diff --git a/cpukit/rtems/inline/rtems/rtems/barrier.inl b/cpukit/rtems/inline/rtems/rtems/barrier.inl
index 08508b9665..0d0ee4cf88 100644
--- a/cpukit/rtems/inline/rtems/rtems/barrier.inl
+++ b/cpukit/rtems/inline/rtems/rtems/barrier.inl
@@ -1,17 +1,22 @@
/**
* @file rtems/rtems/barrier.inl
*
+ * @defgroup ClassicBarrier Barriers
+ *
+ * @ingroup ClassicRTEMS
+ * @brief Inline Implementation from Barrier Manager
+ *
* This file contains the static inlin implementation of the inlined
* routines from the Barrier Manager.
*/
/*
- * COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+ * COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_BARRIER_H
diff --git a/cpukit/rtems/inline/rtems/rtems/dpmem.inl b/cpukit/rtems/inline/rtems/rtems/dpmem.inl
index c445603a9d..19a4addbca 100644
--- a/cpukit/rtems/inline/rtems/rtems/dpmem.inl
+++ b/cpukit/rtems/inline/rtems/rtems/dpmem.inl
@@ -26,7 +26,8 @@
*/
/**
- * @brief Dual_ported_memory_Allocate
+ * @brief Allocates a port control block from the inactive chain
+ * of free port control blocks.
*
* This routine allocates a port control block from the inactive chain
* of free port control blocks.
@@ -39,7 +40,8 @@ RTEMS_INLINE_ROUTINE Dual_ported_memory_Control
}
/**
- * @brief Dual_ported_memory_Free
+ * @brief Frees a port control block to the inactive chain
+ * of free port control blocks.
*
* This routine frees a port control block to the inactive chain
* of free port control blocks.
@@ -52,7 +54,7 @@ RTEMS_INLINE_ROUTINE void _Dual_ported_memory_Free (
}
/**
- * @brief Dual_ported_memory_Get
+ * @brief Maps port IDs to port control blocks.
*
* This function maps port IDs to port control blocks. If ID
* corresponds to a local port, then it returns the_port control
@@ -71,7 +73,7 @@ RTEMS_INLINE_ROUTINE Dual_ported_memory_Control *_Dual_ported_memory_Get (
}
/**
- * @brief Dual_ported_memory_Is_null
+ * @brief Checks if the_port is NULL.
*
* This function returns true if the_port is NULL and false otherwise.
*/
diff --git a/cpukit/rtems/inline/rtems/rtems/eventset.inl b/cpukit/rtems/inline/rtems/rtems/eventset.inl
index 22919eaff5..ee9447caa2 100644
--- a/cpukit/rtems/inline/rtems/rtems/eventset.inl
+++ b/cpukit/rtems/inline/rtems/rtems/eventset.inl
@@ -27,7 +27,7 @@
*/
/**
- * @brief Event_sets_Is_empty
+ * @brief Checks if on events are posted in the event_set.
*
* This function returns TRUE if on events are posted in the event_set,
* and FALSE otherwise.
@@ -40,7 +40,7 @@ RTEMS_INLINE_ROUTINE bool _Event_sets_Is_empty(
}
/**
- * @brief Event_sets_Post
+ * @brief Posts the given new_events into the event_set passed in.
*
* This routine posts the given new_events into the event_set
* passed in. The result is returned to the user in event_set.
@@ -54,7 +54,7 @@ RTEMS_INLINE_ROUTINE void _Event_sets_Post(
}
/**
- * @brief Event_sets_Get
+ * @brief Returns the events in event_condition that are set in event_set.
*
* This function returns the events in event_condition which are
* set in event_set.
@@ -68,7 +68,7 @@ RTEMS_INLINE_ROUTINE rtems_event_set _Event_sets_Get(
}
/**
- * @brief Event_sets_Clear
+ * @brief Removes the events in mask from the event_set passed in.
*
* This function removes the events in mask from the event_set
* passed in. The result is returned to the user in event_set.
diff --git a/cpukit/rtems/inline/rtems/rtems/message.inl b/cpukit/rtems/inline/rtems/rtems/message.inl
index 06a596ecc7..16c15c75a9 100644
--- a/cpukit/rtems/inline/rtems/rtems/message.inl
+++ b/cpukit/rtems/inline/rtems/rtems/message.inl
@@ -28,7 +28,7 @@
*/
/**
- * @brief Message_queue_Is_null
+ * @brief Check whether message queue is null.
*
* This function places the_message at the rear of the outstanding
* messages on the_message_queue.
@@ -42,7 +42,8 @@ RTEMS_INLINE_ROUTINE bool _Message_queue_Is_null (
/**
- * @brief Message_queue_Free
+ * @brief Deallocates a message queue control block into
+ * the inactive chain of free message queue control blocks.
*
* This routine deallocates a message queue control block into
* the inactive chain of free message queue control blocks.
@@ -55,7 +56,7 @@ RTEMS_INLINE_ROUTINE void _Message_queue_Free (
}
/**
- * @brief Message_queue_Get
+ * @brief Maps message queue IDs to message queue control blocks.
*
* This function maps message queue IDs to message queue control
* blocks. If ID corresponds to a local message queue, then it
diff --git a/cpukit/rtems/inline/rtems/rtems/modes.inl b/cpukit/rtems/inline/rtems/rtems/modes.inl
index d1ad842c54..034032154e 100644
--- a/cpukit/rtems/inline/rtems/rtems/modes.inl
+++ b/cpukit/rtems/inline/rtems/rtems/modes.inl
@@ -26,7 +26,7 @@
*/
/**
- * @brief Modes_Mask_changed
+ * @brief Checks if any of the mode flags in mask are set in mode_set.
*
* This function returns TRUE if any of the mode flags in mask
* are set in mode_set, and FALSE otherwise.
@@ -40,7 +40,7 @@ RTEMS_INLINE_ROUTINE bool _Modes_Mask_changed (
}
/**
- * @brief Modes_Is_asr_disabled
+ * @brief Checks if mode_set says that Asynchronous Signal Processing is disabled.
*
* This function returns TRUE if mode_set indicates that Asynchronous
* Signal Processing is disabled, and FALSE otherwise.
@@ -53,7 +53,7 @@ RTEMS_INLINE_ROUTINE bool _Modes_Is_asr_disabled (
}
/**
- * @brief Modes_Is_preempt
+ * @brief Checks if mode_set indicates that preemption is enabled.
*
* This function returns TRUE if mode_set indicates that preemption
* is enabled, and FALSE otherwise.
@@ -66,7 +66,7 @@ RTEMS_INLINE_ROUTINE bool _Modes_Is_preempt (
}
/**
- * @brief Modes_Is_timeslice
+ * @brief Checks if mode_set indicates that timeslicing is enabled.
*
* This function returns TRUE if mode_set indicates that timeslicing
* is enabled, and FALSE otherwise.
@@ -79,7 +79,7 @@ RTEMS_INLINE_ROUTINE bool _Modes_Is_timeslice (
}
/**
- * @brief Modes_Get_interrupt_level
+ * @brief Gets the interrupt level portion of the mode_set.
*
* This function returns the interrupt level portion of the mode_set.
*/
@@ -91,7 +91,7 @@ RTEMS_INLINE_ROUTINE ISR_Level _Modes_Get_interrupt_level (
}
/**
- * @brief Modes_Set_interrupt_level
+ * @brief Sets the current interrupt level to that specified in the mode_set.
*
* This routine sets the current interrupt level to that specified
* in the mode_set.
@@ -104,7 +104,8 @@ RTEMS_INLINE_ROUTINE void _Modes_Set_interrupt_level (
}
/**
- * @brief Modes_Change
+ * @brief Changes the modes in old_mode_set indicated by
+ * mask to the requested values in new_mode_set.
*
* This routine changes the modes in old_mode_set indicated by
* mask to the requested values in new_mode_set. The resulting
diff --git a/cpukit/rtems/inline/rtems/rtems/options.inl b/cpukit/rtems/inline/rtems/rtems/options.inl
index 4341b14599..c3c0a5bf9e 100644
--- a/cpukit/rtems/inline/rtems/rtems/options.inl
+++ b/cpukit/rtems/inline/rtems/rtems/options.inl
@@ -28,7 +28,7 @@
*/
/**
- * @brief Options_Is_no_wait
+ * @brief Checks if the RTEMS_NO_WAIT option is enabled in option_set.
*
* This function returns TRUE if the RTEMS_NO_WAIT option is enabled in
* option_set, and FALSE otherwise.
@@ -41,7 +41,7 @@ RTEMS_INLINE_ROUTINE bool _Options_Is_no_wait (
}
/**
- * @brief Options_Is_any
+ * @brief Checks if the RTEMS_EVENT_ANY option is enabled in OPTION_SET.
*
* This function returns TRUE if the RTEMS_EVENT_ANY option is enabled in
* OPTION_SET, and FALSE otherwise.
diff --git a/cpukit/rtems/inline/rtems/rtems/part.inl b/cpukit/rtems/inline/rtems/rtems/part.inl
index 6f921a900e..355ed49377 100644
--- a/cpukit/rtems/inline/rtems/rtems/part.inl
+++ b/cpukit/rtems/inline/rtems/rtems/part.inl
@@ -26,7 +26,7 @@
*/
/**
- * @brief Partition_Allocate_buffer
+ * @brief Allocate a buffer from the_partition.
*
* This function attempts to allocate a buffer from the_partition.
* If successful, it returns the address of the allocated buffer.
@@ -40,7 +40,7 @@ RTEMS_INLINE_ROUTINE void *_Partition_Allocate_buffer (
}
/**
- * @brief Partition_Free_buffer
+ * @brief Frees the_buffer to the_partition.
*
* This routine frees the_buffer to the_partition.
*/
@@ -53,7 +53,7 @@ RTEMS_INLINE_ROUTINE void _Partition_Free_buffer (
}
/**
- * @brief Partition_Is_buffer_on_boundary
+ * @brief Checks whether is on a valid buffer boundary for the_partition.
*
* This function returns TRUE if the_buffer is on a valid buffer
* boundary for the_partition, and FALSE otherwise.
@@ -74,7 +74,7 @@ RTEMS_INLINE_ROUTINE bool _Partition_Is_buffer_on_boundary (
}
/**
- * @brief Partition_Is_buffer_valid
+ * @brief Checks whether the_buffer is a valid buffer from the_partition.
*
* This function returns TRUE if the_buffer is a valid buffer from
* the_partition, otherwise FALSE is returned.
@@ -97,7 +97,7 @@ RTEMS_INLINE_ROUTINE bool _Partition_Is_buffer_valid (
}
/**
- * @brief Partition_Is_buffer_size_aligned
+ * @brief Checks if partition is buffer size aligned.
*
* This function returns TRUE if the use of the specified buffer_size
* will result in the allocation of buffers whose first byte is
@@ -111,7 +111,8 @@ RTEMS_INLINE_ROUTINE bool _Partition_Is_buffer_size_aligned (
}
/**
- * @brief Partition_Allocate
+ * @brief Allocates a partition control block from the
+ * inactive chain of free partition control blocks.
*
* This function allocates a partition control block from
* the inactive chain of free partition control blocks.
@@ -122,7 +123,8 @@ RTEMS_INLINE_ROUTINE Partition_Control *_Partition_Allocate ( void )
}
/**
- * @brief Partition_Free
+ * @brief Frees a partition control block to the
+ * inactive chain of free partition control blocks.
*
* This routine frees a partition control block to the
* inactive chain of free partition control blocks.
@@ -135,7 +137,7 @@ RTEMS_INLINE_ROUTINE void _Partition_Free (
}
/**
- * @brief Partition_Get
+ * @brief Maps partition IDs to partition control blocks.
*
* This function maps partition IDs to partition control blocks.
* If ID corresponds to a local partition, then it returns
@@ -155,7 +157,7 @@ RTEMS_INLINE_ROUTINE Partition_Control *_Partition_Get (
}
/**
- * @brief Partition_Is_null
+ * @brief Checks if the_partition is NULL.
*
* This function returns TRUE if the_partition is NULL
* and FALSE otherwise.
diff --git a/cpukit/rtems/inline/rtems/rtems/ratemon.inl b/cpukit/rtems/inline/rtems/rtems/ratemon.inl
index 6c40998809..30b0361451 100644
--- a/cpukit/rtems/inline/rtems/rtems/ratemon.inl
+++ b/cpukit/rtems/inline/rtems/rtems/ratemon.inl
@@ -26,7 +26,8 @@
*/
/**
- * @brief Rate_monotonic_Allocate
+ * @brief Allocates a period control block from
+ * the inactive chain of free period control blocks.
*
* This function allocates a period control block from
* the inactive chain of free period control blocks.
@@ -38,7 +39,8 @@ RTEMS_INLINE_ROUTINE Rate_monotonic_Control *_Rate_monotonic_Allocate( void )
}
/**
- * @brief Rate_monotonic_Free
+ * @brief Allocates a period control block from
+ * the inactive chain of free period control blocks.
*
* This routine allocates a period control block from
* the inactive chain of free period control blocks.
@@ -51,7 +53,7 @@ RTEMS_INLINE_ROUTINE void _Rate_monotonic_Free (
}
/**
- * @brief Rate_monotonic_Get
+ * @brief Maps period IDs to period control blocks.
*
* This function maps period IDs to period control blocks.
* If ID corresponds to a local period, then it returns
@@ -69,7 +71,7 @@ RTEMS_INLINE_ROUTINE Rate_monotonic_Control *_Rate_monotonic_Get (
}
/**
- * @brief Rate_monotonic_Is_active
+ * @brief Checks if the_period is in the ACTIVE state.
*
* This function returns TRUE if the_period is in the ACTIVE state,
* and FALSE otherwise.
@@ -82,7 +84,7 @@ RTEMS_INLINE_ROUTINE bool _Rate_monotonic_Is_active (
}
/**
- * @brief Rate_monotonic_Is_inactive
+ * @brief Checks if the_period is in the ACTIVE state.
*
* This function returns TRUE if the_period is in the ACTIVE state,
* and FALSE otherwise.
@@ -95,7 +97,7 @@ RTEMS_INLINE_ROUTINE bool _Rate_monotonic_Is_inactive (
}
/**
- * @brief Rate_monotonic_Is_expired
+ * @brief Checks if the_period is in the EXPIRED state.
*
* This function returns TRUE if the_period is in the EXPIRED state,
* and FALSE otherwise.
@@ -108,7 +110,7 @@ RTEMS_INLINE_ROUTINE bool _Rate_monotonic_Is_expired (
}
/**
- * @brief Rate_monotonic_Is_null
+ * @brief Checks if the_period is NULL.
*
* This function returns TRUE if the_period is NULL and FALSE otherwise.
*/
diff --git a/cpukit/rtems/inline/rtems/rtems/region.inl b/cpukit/rtems/inline/rtems/rtems/region.inl
index 3319630dc9..30e482cdc0 100644
--- a/cpukit/rtems/inline/rtems/rtems/region.inl
+++ b/cpukit/rtems/inline/rtems/rtems/region.inl
@@ -1,16 +1,21 @@
/**
* @file rtems/rtems/region.inl
*
- * This file contains the macro implementation of the inlined
- * routines from the Region Manager.
+ * @addtogroup ClassicRegion
+ *
+ * @ingroup ClassicRTEMS
+ * @brief Macro Implementation from Region Manager
+ *
+ * This file contains the macro implementation of the inlined
+ * routines from the Region Manager.
*/
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
+/* COPYRIGHT (c) 1989-2008.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_REGION_H
diff --git a/cpukit/rtems/inline/rtems/rtems/sem.inl b/cpukit/rtems/inline/rtems/rtems/sem.inl
index 7b6d0d928f..22699e67ba 100644
--- a/cpukit/rtems/inline/rtems/rtems/sem.inl
+++ b/cpukit/rtems/inline/rtems/rtems/sem.inl
@@ -26,7 +26,8 @@
*/
/**
- * @brief Semaphore_Allocate
+ * @brief Allocates a semaphore control block from
+ * the inactive chain of free semaphore control blocks.
*
* This function allocates a semaphore control block from
* the inactive chain of free semaphore control blocks.
@@ -37,7 +38,8 @@ RTEMS_INLINE_ROUTINE Semaphore_Control *_Semaphore_Allocate( void )
}
/**
- * @brief Semaphore_Free
+ * @brief Frees a semaphore control block to the
+ * inactive chain of free semaphore control blocks.
*
* This routine frees a semaphore control block to the
* inactive chain of free semaphore control blocks.
@@ -50,7 +52,7 @@ RTEMS_INLINE_ROUTINE void _Semaphore_Free (
}
/**
- * @brief Semaphore_Get
+ * @brief Maps semaphore IDs to semaphore control blocks.
*
* This function maps semaphore IDs to semaphore control blocks.
* If ID corresponds to a local semaphore, then it returns
@@ -70,7 +72,7 @@ RTEMS_INLINE_ROUTINE Semaphore_Control *_Semaphore_Get (
}
/**
- * @brief Semaphore_Get (Interrupts disabled)
+ * @brief Maps semaphore IDs to semaphore control blocks.
*
* This function maps semaphore IDs to semaphore control blocks.
* If ID corresponds to a local semaphore, then it returns
@@ -91,7 +93,7 @@ RTEMS_INLINE_ROUTINE Semaphore_Control *_Semaphore_Get_interrupt_disable (
}
/**
- * @brief Semaphore_Is_null
+ * @brief Checks if the_semaphore is NULL.
*
* This function returns TRUE if the_semaphore is NULL and FALSE otherwise.
*/
diff --git a/cpukit/rtems/inline/rtems/rtems/status.inl b/cpukit/rtems/inline/rtems/rtems/status.inl
index 1ad22fdfa7..caeb03da88 100644
--- a/cpukit/rtems/inline/rtems/rtems/status.inl
+++ b/cpukit/rtems/inline/rtems/rtems/status.inl
@@ -28,7 +28,7 @@
*/
/**
- * @brief rtems_is_status_successful
+ * @brief Checks if the status code is equal to RTEMS_SUCCESSFUL.
*
* This function returns TRUE if the status code is equal to RTEMS_SUCCESSFUL,
* and FALSE otherwise.
@@ -41,7 +41,7 @@ RTEMS_INLINE_ROUTINE bool rtems_is_status_successful(
}
/**
- * @brief rtems_are_statuses_equal
+ * @brief Checks if the status code1 is equal to code2.
*
* This function returns TRUE if the status code1 is equal to code2,
* and FALSE otherwise.
diff --git a/cpukit/rtems/inline/rtems/rtems/support.inl b/cpukit/rtems/inline/rtems/rtems/support.inl
index 117f9a9f0f..a302c45c0b 100644
--- a/cpukit/rtems/inline/rtems/rtems/support.inl
+++ b/cpukit/rtems/inline/rtems/rtems/support.inl
@@ -23,9 +23,8 @@
/**
* @addtogroup ClassicRTEMS
- *
- * @{
*/
+/**@{**/
/**
* @brief Returns @c true if the name is valid, and @c false otherwise.
diff --git a/cpukit/rtems/inline/rtems/rtems/tasks.inl b/cpukit/rtems/inline/rtems/rtems/tasks.inl
index 193b0ad79c..3bf82121d7 100644
--- a/cpukit/rtems/inline/rtems/rtems/tasks.inl
+++ b/cpukit/rtems/inline/rtems/rtems/tasks.inl
@@ -26,7 +26,7 @@
*/
/**
- * @brief RTEMS_tasks_Allocate
+ * @brief Allocates a task control block.
*
* This function allocates a task control block from
* the inactive chain of free task control blocks.
@@ -37,7 +37,7 @@ RTEMS_INLINE_ROUTINE Thread_Control *_RTEMS_tasks_Allocate( void )
}
/**
- * @brief RTEMS_tasks_Free
+ * @brief Frees a task control block.
*
* This routine frees a task control block to the
* inactive chain of free task control blocks.
@@ -46,14 +46,14 @@ RTEMS_INLINE_ROUTINE void _RTEMS_tasks_Free (
Thread_Control *the_task
)
{
- _Objects_Free(
+ _Objects_Free(
_Objects_Get_information_id( the_task->Object.id ),
&the_task->Object
);
}
/**
- * @brief RTEMS_tasks_Priority_to_Core
+ * @brief Converts an RTEMS API priority into a core priority.
*
* This function converts an RTEMS API priority into a core priority.
*/
@@ -65,7 +65,7 @@ RTEMS_INLINE_ROUTINE Priority_Control _RTEMS_tasks_Priority_to_Core(
}
/**
- * @brief RTEMS_tasks_Priority_is_valid
+ * @brief Checks whether the priority is a valid user task.
*
* This function returns TRUE if the_priority is a valid user task priority
* and FALSE otherwise.
diff --git a/cpukit/rtems/inline/rtems/rtems/timer.inl b/cpukit/rtems/inline/rtems/rtems/timer.inl
index 73f5221a86..f4067ae09a 100644
--- a/cpukit/rtems/inline/rtems/rtems/timer.inl
+++ b/cpukit/rtems/inline/rtems/rtems/timer.inl
@@ -1,17 +1,22 @@
/**
* @file rtems/rtems/timer.inl
*
+ * @defgroup ClassicTimer Timers
+ *
+ * @ingroup ClassicRTEMS
+ * @brief Inline Implementation from Timer Manager
+ *
* This file contains the static inline implementation of the inlined routines
* from the Timer Manager.
*/
/*
- * COPYRIGHT (c) 1989-2011.
- * On-Line Applications Research Corporation (OAR).
+ * COPYRIGHT (c) 1989-2011.
+ * On-Line Applications Research Corporation (OAR).
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RTEMS_TIMER_H
diff --git a/cpukit/rtems/mainpage.h b/cpukit/rtems/mainpage.h
index 5aee1ccc46..b772b37892 100644
--- a/cpukit/rtems/mainpage.h
+++ b/cpukit/rtems/mainpage.h
@@ -391,11 +391,10 @@
* of RTEMS' concepts and features are interrelated. Experienced RTEMS users
* will find that the manual organization facilitates its use as a reference
* document.
- *
*/
/**
- * @addtogroup ClassicRTEMS
+ * @addtogroup ClassicAPI
*
* The facilities provided by RTEMS are built upon a foundation of very
* powerful concepts. These concepts must be understood before the application
diff --git a/cpukit/rtems/src/eventsurrender.c b/cpukit/rtems/src/eventsurrender.c
index 05b8481a86..bfa29c425a 100644
--- a/cpukit/rtems/src/eventsurrender.c
+++ b/cpukit/rtems/src/eventsurrender.c
@@ -39,27 +39,28 @@ void _Event_Surrender(
_ISR_Disable( level );
_Event_sets_Post( event_in, &event->pending_events );
pending_events = event->pending_events;
- event_condition = the_thread->Wait.count;
-
- seized_events = _Event_sets_Get( pending_events, event_condition );
/*
- * No events were seized in this operation
+ * At this point the event condition is a speculative quantity. Later state
+ * checks will show if the thread actually waits for an event.
*/
- if ( _Event_sets_Is_empty( seized_events ) ) {
- _ISR_Enable( level );
- return;
- }
+ event_condition = the_thread->Wait.count;
- /*
- * If we are in an ISR and sending to the current thread, then
- * we have a critical section issue to deal with.
- */
- if ( _ISR_Is_in_progress() &&
- _Thread_Is_executing( the_thread ) &&
- ((*sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) ||
- (*sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED)) ) {
- if ( seized_events == event_condition || _Options_Is_any(option_set) ) {
+ seized_events = _Event_sets_Get( pending_events, event_condition );
+
+ if (
+ !_Event_sets_Is_empty( seized_events )
+ && ( seized_events == event_condition || _Options_Is_any( option_set ) )
+ ) {
+ /*
+ * If we are sending to the executing thread, then we have a critical
+ * section issue to deal with. The entity sending to the executing thread
+ * can be either the executing thread or an ISR. In case it is the
+ * executing thread, then the blocking operation state is not equal to
+ * THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED.
+ */
+ if ( _Thread_Is_executing( the_thread ) &&
+ *sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) {
event->pending_events = _Event_sets_Clear(
pending_events,
seized_events
@@ -67,16 +68,7 @@ void _Event_Surrender(
the_thread->Wait.count = 0;
*(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
*sync_state = THREAD_BLOCKING_OPERATION_SATISFIED;
- }
- _ISR_Enable( level );
- return;
- }
-
- /*
- * Otherwise, this is a normal send to another thread
- */
- if ( _States_Are_set( the_thread->current_state, wait_state ) ) {
- if ( seized_events == event_condition || _Options_Is_any( option_set ) ) {
+ } else if ( _States_Are_set( the_thread->current_state, wait_state ) ) {
event->pending_events = _Event_sets_Clear(
pending_events,
seized_events
diff --git a/cpukit/rtems/src/eventtimeout.c b/cpukit/rtems/src/eventtimeout.c
index 58dee84b1b..31eb04311e 100644
--- a/cpukit/rtems/src/eventtimeout.c
+++ b/cpukit/rtems/src/eventtimeout.c
@@ -49,13 +49,18 @@ void _Event_Timeout(
* a timeout is not allowed to occur.
*/
_ISR_Disable( level );
- #if defined(RTEMS_DEBUG)
- if ( !the_thread->Wait.count ) { /* verify thread is waiting */
- _Thread_Unnest_dispatch();
- _ISR_Enable( level );
- return;
- }
- #endif
+ /*
+ * Verify that the thread is still waiting for the event condition.
+ * This test is necessary to avoid state corruption if the timeout
+ * happens after the event condition is satisfied in
+ * _Event_Surrender(). A satisfied event condition is indicated with
+ * count set to zero.
+ */
+ if ( !the_thread->Wait.count ) {
+ _Thread_Unnest_dispatch();
+ _ISR_Enable( level );
+ return;
+ }
the_thread->Wait.count = 0;
if ( _Thread_Is_executing( the_thread ) ) {
diff --git a/cpukit/rtems/src/msgqcreate.c b/cpukit/rtems/src/msgqcreate.c
index e65dcacfe6..8a7abfa313 100644
--- a/cpukit/rtems/src/msgqcreate.c
+++ b/cpukit/rtems/src/msgqcreate.c
@@ -48,7 +48,6 @@ rtems_status_code rtems_message_queue_create(
CORE_message_queue_Attributes the_msgq_attributes;
#if defined(RTEMS_MULTIPROCESSING)
bool is_global;
- size_t max_packet_payload_size;
#endif
if ( !rtems_is_name_valid( name ) )
@@ -76,11 +75,14 @@ rtems_status_code rtems_message_queue_create(
* It seems reasonable to create a que with a large max size,
* and then just send smaller msgs from remote (or all) nodes.
*/
+ if ( is_global ) {
+ size_t max_packet_payload_size = _MPCI_table->maximum_packet_size
+ - MESSAGE_QUEUE_MP_PACKET_SIZE;
- max_packet_payload_size = _MPCI_table->maximum_packet_size
- - MESSAGE_QUEUE_MP_PACKET_SIZE;
- if ( is_global && max_packet_payload_size < max_message_size )
- return RTEMS_INVALID_SIZE;
+ if ( max_message_size > max_packet_payload_size ) {
+ return RTEMS_INVALID_SIZE;
+ }
+ }
#endif
#endif
diff --git a/cpukit/sapi/Makefile.am b/cpukit/sapi/Makefile.am
index 232028e63c..f9fd4f9696 100644
--- a/cpukit/sapi/Makefile.am
+++ b/cpukit/sapi/Makefile.am
@@ -38,7 +38,7 @@ libsapi_a_SOURCES = src/debug.c src/extension.c src/extensioncreate.c \
src/rtemsapi.c src/extensiondata.c src/getversionstring.c \
src/chainappendnotify.c src/chaingetnotify.c src/chaingetwait.c \
src/chainprependnotify.c src/rbheap.c src/interrdesc.c \
- src/fatal2.c
+ src/fatal2.c src/fatalsrcdesc.c
libsapi_a_CPPFLAGS = $(AM_CPPFLAGS)
include $(srcdir)/preinstall.am
diff --git a/cpukit/sapi/include/confdefs.h b/cpukit/sapi/include/confdefs.h
index 3939cf1e34..a5b7b7a4fe 100644
--- a/cpukit/sapi/include/confdefs.h
+++ b/cpukit/sapi/include/confdefs.h
@@ -1,28 +1,31 @@
/**
- * @file rtems/confdefs.h
+ * @file
*
- * This include file contains the configuration table template that will
- * be instantiated by an application based on the setting of a number
- * of macros. The macros are documented in the Configuring a System
- * chapter of the Classic API User's Guide
+ * @brief Configuration Table Template that will be Instantiated
+ * by an Application
*
- * The model is to estimate the memory required for each configured item
- * and sum those estimates. The estimate can be too high or too low for
- * a variety of reasons:
+ * This include file contains the configuration table template that will
+ * be instantiated by an application based on the setting of a number
+ * of macros. The macros are documented in the Configuring a System
+ * chapter of the Classic API User's Guide
*
- * Reasons estimate is too high:
- * + FP contexts (not all tasks are FP)
+ * The model is to estimate the memory required for each configured item
+ * and sum those estimates. The estimate can be too high or too low for
+ * a variety of reasons:
*
- * Reasons estimate is too low:
- * + stacks greater than minimum size
- * + messages
- * + application must account for device driver resources
- * + application must account for add-on library resource requirements
+ * Reasons estimate is too high:
+ * + FP contexts (not all tasks are FP)
*
- * NOTE: Eventually this may be able to take into account some of
- * the above. This procedure has evolved from just enough to
- * support the RTEMS Test Suites into something that can be
- * used remarkably reliably by most applications.
+ * Reasons estimate is too low:
+ * + stacks greater than minimum size
+ * + messages
+ * + application must account for device driver resources
+ * + application must account for add-on library resource requirements
+ *
+ * NOTE: Eventually this may be able to take into account some of
+ * the above. This procedure has evolved from just enough to
+ * support the RTEMS Test Suites into something that can be
+ * used remarkably reliably by most applications.
*/
/*
@@ -58,8 +61,8 @@ extern rtems_driver_address_table Device_drivers[];
#endif
/**
- * This macro determines whether the RTEMS reentrancy support for
- * the Newlib C Library is enabled.
+ * This macro determines whether the RTEMS reentrancy support for
+ * the Newlib C Library is enabled.
*/
#ifdef RTEMS_SCHEDSIM
#undef RTEMS_NEWLIB
@@ -107,62 +110,62 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * This macro defines the number of POSIX file descriptors allocated
- * and managed by libio. These are the "integer" file descriptors that
- * are used by calls like open(2) and read(2).
+ * This macro defines the number of POSIX file descriptors allocated
+ * and managed by libio. These are the "integer" file descriptors that
+ * are used by calls like open(2) and read(2).
*/
#ifndef CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS
#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 3
#endif
/**
- * Semaphore count used by the IO library.
+ * Semaphore count used by the IO library.
*/
#define CONFIGURE_LIBIO_SEMAPHORES 1
#ifdef CONFIGURE_INIT
/**
- * When instantiating the configuration tables, this variable is
- * initialized to specify the maximum number of file descriptors.
+ * When instantiating the configuration tables, this variable is
+ * initialized to specify the maximum number of file descriptors.
*/
uint32_t rtems_libio_number_iops = CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS;
#endif
/**
- * This macro determines if termios is disabled by this application.
- * This only means that resources will not be reserved. If you end
- * up using termios, it will fail.
+ * This macro determines if termios is disabled by this application.
+ * This only means that resources will not be reserved. If you end
+ * up using termios, it will fail.
*/
#ifdef CONFIGURE_TERMIOS_DISABLED
#define CONFIGURE_TERMIOS_SEMAPHORES 0
#else
/**
- * This macro specifies the number of serial or PTY ports that will
- * use termios.
+ * This macro specifies the number of serial or PTY ports that will
+ * use termios.
*/
#ifndef CONFIGURE_NUMBER_OF_TERMIOS_PORTS
#define CONFIGURE_NUMBER_OF_TERMIOS_PORTS 1
#endif
/**
- * This macro reserves the number of semaphores required by termios
- * based upon the number of communication ports that will use it.
+ * This macro reserves the number of semaphores required by termios
+ * based upon the number of communication ports that will use it.
*/
#define CONFIGURE_TERMIOS_SEMAPHORES \
((CONFIGURE_NUMBER_OF_TERMIOS_PORTS * 4) + 1)
#endif
/**
- * This macro specifies the number of PTYs that can be concurrently
- * active.
+ * This macro specifies the number of PTYs that can be concurrently
+ * active.
*/
#ifndef CONFIGURE_MAXIMUM_PTYS
#define CONFIGURE_MAXIMUM_PTYS 0
#endif
/**
- * This variable contains the maximum number of PTYs that can be
- * concurrently active.
+ * This variable contains the maximum number of PTYs that can be
+ * concurrently active.
*/
#ifdef CONFIGURE_INIT
int rtems_telnetd_maximum_ptys = CONFIGURE_MAXIMUM_PTYS;
@@ -175,11 +178,11 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
* If configured for SMP, then we need to know the maximum CPU cores.
*/
#if !defined(CONFIGURE_SMP_APPLICATION)
- #if !defined(CONFIGURE_SMP_MAXIMUM_PROCESSORS)
+ #if !defined(CONFIGURE_SMP_MAXIMUM_PROCESSORS)
#define CONFIGURE_SMP_MAXIMUM_PROCESSORS 1
#endif
#else
- #if !defined(CONFIGURE_SMP_MAXIMUM_PROCESSORS)
+ #if !defined(CONFIGURE_SMP_MAXIMUM_PROCESSORS)
#error "CONFIGURE_SMP_MAXIMUM_PROCESSORS not specified for SMP Application"
#endif
#endif
@@ -259,7 +262,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#error "Configured filesystems but root filesystem was not IMFS!"
#error "Filesystems could be disabled, DEVFS is root, or"
#error " miniIMFS is root!"
- #endif
+ #endif
#endif
/*
@@ -285,10 +288,10 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#include <rtems/imfs.h>
/**
- * This specifies the number of bytes per block for files within the IMFS.
- * There are a maximum number of blocks per file so this dictates the maximum
- * size of a file. This has to be balanced with the unused portion of each
- * block that might be wasted.
+ * This specifies the number of bytes per block for files within the IMFS.
+ * There are a maximum number of blocks per file so this dictates the maximum
+ * size of a file. This has to be balanced with the unused portion of each
+ * block that might be wasted.
*/
#ifndef CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK
#define CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK \
@@ -296,8 +299,8 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * This defines the miniIMFS file system table entry.
- */
+ * This defines the miniIMFS file system table entry.
+ */
#if !defined(CONFIGURE_FILESYSTEM_ENTRY_miniIMFS) && \
defined(CONFIGURE_FILESYSTEM_MINIIMFS)
#define CONFIGURE_FILESYSTEM_ENTRY_miniIMFS \
@@ -306,7 +309,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * Internall it is called FIFOs not pipes
+ * Internall it is called FIFOs not pipes
*/
#if defined(CONFIGURE_PIPES_ENABLED)
#define CONFIGURE_FIFOS_ENABLED
@@ -314,8 +317,8 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#ifndef RTEMS_SCHEDSIM
/**
- * This defines the IMFS file system table entry.
- */
+ * This defines the IMFS file system table entry.
+ */
#if !defined(CONFIGURE_FILESYSTEM_ENTRY_IMFS) && \
defined(CONFIGURE_FILESYSTEM_IMFS)
#if defined(CONFIGURE_FIFOS_ENABLED)
@@ -329,7 +332,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * This sets up the resources for the PIPES/FIFOs
+ * This sets up the resources for the PIPES/FIFOs
*/
#if defined(CONFIGURE_FIFOS_ENABLED)
#if !defined(CONFIGURE_MAXIMUM_FIFOS) && !defined(CONFIGURE_MAXIMUM_PIPES)
@@ -352,7 +355,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
/**
* DEVFS
- */
+ */
#if !defined(CONFIGURE_FILESYSTEM_ENTRY_DEVFS) && \
defined(CONFIGURE_FILESYSTEM_DEVFS)
#include <rtems/devfs.h>
@@ -363,9 +366,9 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#ifdef RTEMS_NETWORKING
/**
* FTPFS
- */
+ */
#if !defined(CONFIGURE_FILESYSTEM_ENTRY_FTPFS) && \
- defined(CONFIGURE_FILESYSTEM_FTPFS)
+ defined(CONFIGURE_FILESYSTEM_FTPFS)
#include <rtems/ftpfs.h>
#define CONFIGURE_FILESYSTEM_ENTRY_FTPFS \
{ RTEMS_FILESYSTEM_TYPE_FTPFS, rtems_ftpfs_initialize }
@@ -373,7 +376,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
/**
* TFTPFS
- */
+ */
#if !defined(CONFIGURE_FILESYSTEM_ENTRY_TFTPFS) && \
defined(CONFIGURE_FILESYSTEM_TFTPFS)
#include <rtems/tftp.h>
@@ -383,7 +386,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
/**
* NFS
- */
+ */
#if !defined(CONFIGURE_FILESYSTEM_ENTRY_NFS) && \
defined(CONFIGURE_FILESYSTEM_NFS)
#include <librtemsNfs.h>
@@ -394,7 +397,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
/**
* DOSFS
- */
+ */
#if !defined(CONFIGURE_FILESYSTEM_ENTRY_DOSFS) && \
defined(CONFIGURE_FILESYSTEM_DOSFS)
#include <rtems/dosfs.h>
@@ -404,7 +407,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
/**
* RFS
- */
+ */
#if !defined(CONFIGURE_FILESYSTEM_ENTRY_RFS) && \
defined(CONFIGURE_FILESYSTEM_RFS)
#include <rtems/rtems-rfs.h>
@@ -415,13 +418,13 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#ifdef CONFIGURE_INIT
/**
- * DEVFS variables.
+ * DEVFS variables.
*
- * The number of individual devices that may be registered
- * in the system or the CONFIGURE_MAXIMUM_DEVICES variable
- * is defaulted to 4 when a filesystem is enabled, unless
- * the bsp overwrides this. In which case the value is set
- * to BSP_MAXIMUM_DEVICES.
+ * The number of individual devices that may be registered
+ * in the system or the CONFIGURE_MAXIMUM_DEVICES variable
+ * is defaulted to 4 when a filesystem is enabled, unless
+ * the bsp overwrides this. In which case the value is set
+ * to BSP_MAXIMUM_DEVICES.
*/
#ifdef CONFIGURE_FILESYSTEM_DEVFS
#ifndef CONFIGURE_MAXIMUM_DEVICES
@@ -529,7 +532,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * This configures the stack checker user extension.
+ * This configures the stack checker user extension.
*/
#ifdef CONFIGURE_STACK_CHECKER_ENABLED
#define CONFIGURE_STACK_CHECKER_EXTENSION 1
@@ -538,34 +541,34 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * @brief Maximum Priority configuration
+ * @brief Maximum priority configuration.
*
- * This configures the maximum priority value that
- * a task may have.
+ * This configures the maximum priority value that
+ * a task may have.
*
- * The following applies to the data space requirements
- * of the Priority Scheduler.
+ * The following applies to the data space requirements
+ * of the Priority Scheduler.
*
- * By reducing the number of priorities in a system,
- * the amount of RAM required by RTEMS can be significantly
- * reduced. RTEMS allocates a Chain_Control structure per
- * priority and this structure contains 3 pointers. So
- * the default is (256 * 12) = 3K on 32-bit architectures.
+ * By reducing the number of priorities in a system,
+ * the amount of RAM required by RTEMS can be significantly
+ * reduced. RTEMS allocates a Chain_Control structure per
+ * priority and this structure contains 3 pointers. So
+ * the default is (256 * 12) = 3K on 32-bit architectures.
*
- * This must be one less than a power of 2 between
- * 4 and 256. Valid values along with the application
- * priority levels and memory saved when pointers are
- * 32-bits in size are:
+ * This must be one less than a power of 2 between
+ * 4 and 256. Valid values along with the application
+ * priority levels and memory saved when pointers are
+ * 32-bits in size are:
*
- * + 3, 2 application priorities, 3024 bytes saved
- * + 7, 5 application priorities, 2976 bytes saved
- * + 15, 13 application priorities, 2880 bytes saved
- * + 31, 29 application priorities, 2688 bytes saved
- * + 63, 61 application priorities, 2304 bytes saved
- * + 127, 125 application priorities, 1536 bytes saved
- * + 255, 253 application priorities, 0 bytes saved
+ * + 3, 2 application priorities, 3024 bytes saved
+ * + 7, 5 application priorities, 2976 bytes saved
+ * + 15, 13 application priorities, 2880 bytes saved
+ * + 31, 29 application priorities, 2688 bytes saved
+ * + 63, 61 application priorities, 2304 bytes saved
+ * + 127, 125 application priorities, 1536 bytes saved
+ * + 255, 253 application priorities, 0 bytes saved
*
- * It is specified in terms of Classic API priority values.
+ * It is specified in terms of Classic API priority values.
*/
#ifndef CONFIGURE_MAXIMUM_PRIORITY
#define CONFIGURE_MAXIMUM_PRIORITY PRIORITY_DEFAULT_MAXIMUM
@@ -574,7 +577,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
/*
* Scheduler configuration.
*
- * The scheduler configuration allows an application to select the
+ * The scheduler configuration allows an application to select the
* scheduling policy to use. The supported configurations are:
* CONFIGURE_SCHEDULER_USER - user provided scheduler
* CONFIGURE_SCHEDULER_PRIORITY - Deterministic Priority Scheduler
@@ -582,13 +585,13 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
* CONFIGURE_SCHEDULER_SIMPLE_SMP - Simple SMP Priority Scheduler
* CONFIGURE_SCHEDULER_EDF - EDF Scheduler
* CONFIGURE_SCHEDULER_CBS - CBS Scheduler
- *
- * If no configuration is specified by the application, then
+ *
+ * If no configuration is specified by the application, then
* CONFIGURE_SCHEDULER_PRIORITY is assumed to be the default.
*
* An application can define its own scheduling policy by defining
* CONFIGURE_SCHEDULER_USER and the following:
- * - CONFIGURE_SCHEDULER_ENTRY_POINTS
+ * - CONFIGURE_SCHEDULER_ENTRY_POINTS
* - CONFIGURE_MEMORY_FOR_SCHEDULER - base memory
* - CONFIGURE_MEMORY_PER_TASK_FOR_SCHEDULER - per task memory
*/
@@ -612,7 +615,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
#endif
-/*
+/*
* If the Priority Scheduler is selected, then configure for it.
*/
#if defined(CONFIGURE_SCHEDULER_PRIORITY)
@@ -630,7 +633,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
_Configure_From_workspace(sizeof(Scheduler_priority_Per_thread)) )
#endif
-/*
+/*
* If the Simple Priority Scheduler is selected, then configure for it.
*/
#if defined(CONFIGURE_SCHEDULER_SIMPLE)
@@ -705,7 +708,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
_Configure_From_workspace(sizeof(Scheduler_CBS_Per_thread)))
#endif
-/*
+/*
* Set up the scheduler entry points table. The scheduling code uses
* this code to know which scheduler is configured by the user.
*/
@@ -726,12 +729,12 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * @brief Idle task body configuration
+ * @brief Idle task body configuration.
*
- * There is a default IDLE thread body provided by RTEMS which
- * has the possibility of being CPU specific. There may be a
- * BSP specific override of the RTEMS default body and in turn,
- * the application may override and provide its own.
+ * There is a default IDLE thread body provided by RTEMS which
+ * has the possibility of being CPU specific. There may be a
+ * BSP specific override of the RTEMS default body and in turn,
+ * the application may override and provide its own.
*/
#ifndef CONFIGURE_IDLE_TASK_BODY
#if defined(BSP_IDLE_TASK_BODY)
@@ -752,7 +755,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * By default, use the minimum stack size requested by this port.
+ * By default, use the minimum stack size requested by this port.
*/
#ifndef CONFIGURE_MINIMUM_TASK_STACK_SIZE
#define CONFIGURE_MINIMUM_TASK_STACK_SIZE CPU_STACK_MINIMUM_SIZE
@@ -762,10 +765,10 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
(2 * CONFIGURE_MINIMUM_TASK_STACK_SIZE)
/**
- * @brief Idle task stack size configuration
+ * @brief Idle task stack size configuration.
*
- * By default, the IDLE task will have a stack of minimum size.
- * The BSP or application may override this value.
+ * By default, the IDLE task will have a stack of minimum size.
+ * The BSP or application may override this value.
*/
#ifndef CONFIGURE_IDLE_TASK_STACK_SIZE
#ifdef BSP_IDLE_TASK_STACK_SIZE
@@ -779,10 +782,10 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * @brief Interrupt stack size configuration
+ * @brief Interrupt stack size configuration.
*
- * By default, the interrupt stack will be of minimum size.
- * The BSP or application may override this value.
+ * By default, the interrupt stack will be of minimum size.
+ * The BSP or application may override this value.
*/
#ifndef CONFIGURE_INTERRUPT_STACK_SIZE
#ifdef BSP_INTERRUPT_STACK_SIZE
@@ -793,11 +796,11 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * This reserves memory for the interrupt stack if it is to be allocated
- * by RTEMS rather than the BSP.
+ * This reserves memory for the interrupt stack if it is to be allocated
+ * by RTEMS rather than the BSP.
*
- * @todo Try to get to the point where all BSPs support allocating the
- * memory from the Workspace.
+ * @todo Try to get to the point where all BSPs support allocating the
+ * memory from the Workspace.
*/
#if (CPU_ALLOCATE_INTERRUPT_STACK == 0)
#define CONFIGURE_INTERRUPT_STACK_MEMORY 0
@@ -807,7 +810,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * Configure the very much optional task stack allocator initialization
+ * Configure the very much optional task stack allocator initialization
*/
#ifndef CONFIGURE_TASK_STACK_ALLOCATOR_INIT
#define CONFIGURE_TASK_STACK_ALLOCATOR_INIT NULL
@@ -828,8 +831,8 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * Should the RTEMS Workspace and C Program Heap be cleared automatically
- * at system start up?
+ * Should the RTEMS Workspace and C Program Heap be cleared automatically
+ * at system start up?
*/
#ifndef CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY
#ifdef BSP_ZERO_WORKSPACE_AUTOMATICALLY
@@ -848,17 +851,17 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#ifdef CONFIGURE_INIT
/**
- * By default, RTEMS uses separate heaps for the RTEMS Workspace and
- * the C Program Heap. On many BSPs, these can be optionally
- * combined provided one larger memory pool. This is particularly
- * useful in combination with the unlimited objects configuration.
+ * By default, RTEMS uses separate heaps for the RTEMS Workspace and
+ * the C Program Heap. On many BSPs, these can be optionally
+ * combined provided one larger memory pool. This is particularly
+ * useful in combination with the unlimited objects configuration.
*/
#ifdef BSP_DEFAULT_UNIFIED_WORK_AREAS
#ifndef CONFIGURE_UNIFIED_WORK_AREAS
#define CONFIGURE_UNIFIED_WORK_AREAS
#endif
#endif
-
+
#ifdef CONFIGURE_UNIFIED_WORK_AREAS
Heap_Control *RTEMS_Malloc_Heap = &_Workspace_Area;
#else
@@ -869,8 +872,8 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#ifdef CONFIGURE_INIT
/**
- * This configures the malloc family statistics to be available.
- * By default only function call counts are kept.
+ * This configures the malloc family statistics to be available.
+ * By default only function call counts are kept.
*/
rtems_malloc_statistics_functions_t *rtems_malloc_statistics_helpers =
#ifndef CONFIGURE_MALLOC_STATISTICS
@@ -882,10 +885,10 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#ifdef CONFIGURE_INIT
/**
- * This configures the sbrk() support for the malloc family.
- * By default it is assumed that the BSP provides all available
- * RAM to the malloc family implementation so sbrk()'ing to get
- * more memory would always fail anyway.
+ * This configures the sbrk() support for the malloc family.
+ * By default it is assumed that the BSP provides all available
+ * RAM to the malloc family implementation so sbrk()'ing to get
+ * more memory would always fail anyway.
*/
const rtems_heap_extend_handler rtems_malloc_extend_handler =
#ifdef CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK
@@ -897,9 +900,9 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#ifdef CONFIGURE_INIT
/**
- * This configures the malloc family plugin which dirties memory
- * allocated. This is helpful for finding unitialized data structure
- * problems.
+ * This configures the malloc family plugin which dirties memory
+ * allocated. This is helpful for finding unitialized data structure
+ * problems.
*/
rtems_malloc_dirtier_t rtems_malloc_dirty_helper =
#if defined(CONFIGURE_MALLOC_DIRTY)
@@ -910,18 +913,18 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * This is a helper macro used in calculations in this file. It is used
- * to noted when an element is allocated from the RTEMS Workspace and adds
- * a factor to account for heap overhead plus an alignment factor that
- * may be applied.
+ * This is a helper macro used in calculations in this file. It is used
+ * to noted when an element is allocated from the RTEMS Workspace and adds
+ * a factor to account for heap overhead plus an alignment factor that
+ * may be applied.
*/
#define _Configure_From_workspace(_size) \
(ssize_t)((_size) + HEAP_BLOCK_HEADER_SIZE + CPU_HEAP_ALIGNMENT - 1)
/**
- * This is a helper macro used in stack space calculations in this file. It
- * may be provided by the application in case a special task stack allocator
- * is used. The default is allocation from the RTEMS Workspace.
+ * This is a helper macro used in stack space calculations in this file. It
+ * may be provided by the application in case a special task stack allocator
+ * is used. The default is allocation from the RTEMS Workspace.
*/
#ifdef CONFIGURE_TASK_STACK_FROM_ALLOCATOR
#define _Configure_From_stackspace(_stack_size) \
@@ -932,18 +935,18 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * Do not use the unlimited bit as part of the multiplication
- * for memory usage.
+ * Do not use the unlimited bit as part of the multiplication
+ * for memory usage.
*/
#define _Configure_Max_Objects(_max) \
rtems_resource_maximum_per_allocation(_max)
/**
- * This macro accounts for how memory for a set of configured objects is
- * allocated from the Executive Workspace.
+ * This macro accounts for how memory for a set of configured objects is
+ * allocated from the Executive Workspace.
*
- * NOTE: It does NOT attempt to address the more complex case of unlimited
- * objects.
+ * NOTE: It does NOT attempt to address the more complex case of unlimited
+ * objects.
*/
#define _Configure_Object_RAM(_number, _size) \
( _Configure_From_workspace(_Configure_Max_Objects(_number) * (_size)) + \
@@ -1153,9 +1156,9 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
RTEMS_ARRAY_SIZE(Device_drivers)
/**
- * This specifies the maximum number of device drivers that
- * can be installed in the system at one time. It must account
- * for both the statically and dynamically installed drivers.
+ * This specifies the maximum number of device drivers that
+ * can be installed in the system at one time. It must account
+ * for both the statically and dynamically installed drivers.
*/
#ifndef CONFIGURE_MAXIMUM_DRIVERS
#define CONFIGURE_MAXIMUM_DRIVERS CONFIGURE_NUMBER_OF_DRIVERS
@@ -1482,10 +1485,10 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * This macro calculates the memory required for task variables.
+ * This macro calculates the memory required for task variables.
*
- * @note Each task variable is individually allocated from the Workspace.
- * Hence, we do the multiplication on the configured size.
+ * NOTE: Each task variable is individually allocated from the Workspace.
+ * Hence, we do the multiplication on the configured size.
*/
#ifndef CONFIGURE_MAXIMUM_TASK_VARIABLES
#define CONFIGURE_MAXIMUM_TASK_VARIABLES 0
@@ -1659,8 +1662,8 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#include <rtems/posix/timer.h>
/**
- * Account for the object control structures plus the name
- * of the object to be duplicated.
+ * Account for the object control structures plus the name
+ * of the object to be duplicated.
*/
#define _Configure_POSIX_Named_Object_RAM(_number, _size) \
_Configure_Object_RAM( (_number), _size ) + \
@@ -1853,15 +1856,15 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#ifdef CONFIGURE_GNAT_RTEMS
/**
- * The GNAT run-time needs something less than (10) POSIX mutexes.
- * We may be able to get by with less but why bother.
+ * The GNAT run-time needs something less than (10) POSIX mutexes.
+ * We may be able to get by with less but why bother.
*/
#define CONFIGURE_GNAT_MUTEXES 10
/**
- * This is the maximum number of Ada tasks which can be concurrently
- * in existence. Twenty (20) are required to run all tests in the
- * ACATS (formerly ACVC).
+ * This is the maximum number of Ada tasks which can be concurrently
+ * in existence. Twenty (20) are required to run all tests in the
+ * ACATS (formerly ACVC).
*/
#ifndef CONFIGURE_MAXIMUM_ADA_TASKS
#define CONFIGURE_MAXIMUM_ADA_TASKS 20
@@ -1916,8 +1919,8 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#ifndef RTEMS_SCHEDSIM
/**
- * This macro specifies the amount of memory to be reserved for the
- * Newlib C Library reentrancy structure -- if we are using newlib.
+ * This macro specifies the amount of memory to be reserved for the
+ * Newlib C Library reentrancy structure -- if we are using newlib.
*/
#if (defined(RTEMS_NEWLIB) && !defined(CONFIGURE_DISABLE_NEWLIB_REENTRANCY))
@@ -1934,8 +1937,8 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * This is so we can account for tasks with stacks greater than minimum
- * size. This is in bytes.
+ * This is so we can account for tasks with stacks greater than minimum
+ * size. This is in bytes.
*/
#ifndef CONFIGURE_EXTRA_TASK_STACKS
#define CONFIGURE_EXTRA_TASK_STACKS 0
@@ -1948,10 +1951,10 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#ifndef CONFIGURE_EXECUTIVE_RAM_SIZE
/**
- * Account for allocating the following per object
- * + array of object control structures
- * + local pointer table -- pointer per object plus a zero'th
- * entry in the local pointer table.
+ * Account for allocating the following per object
+ * + array of object control structures
+ * + local pointer table -- pointer per object plus a zero'th
+ * entry in the local pointer table.
*/
#define CONFIGURE_MEMORY_FOR_TASKS(_tasks, _number_FP_tasks) \
@@ -1973,8 +1976,8 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
)
/**
- * This defines the amount of memory configured for the multiprocessing
- * support required by this application.
+ * This defines the amount of memory configured for the multiprocessing
+ * support required by this application.
*/
#ifdef CONFIGURE_MP_APPLICATION
#define CONFIGURE_MEMORY_FOR_MP \
@@ -1988,44 +1991,44 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * The following macro is used to calculate the memory allocated by RTEMS
- * for the message buffers associated with a particular message queue.
- * There is a fixed amount of overhead per message.
+ * The following macro is used to calculate the memory allocated by RTEMS
+ * for the message buffers associated with a particular message queue.
+ * There is a fixed amount of overhead per message.
*/
#define CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE(_messages, _size) \
_Configure_From_workspace( \
(_messages) * ((_size) + sizeof(CORE_message_queue_Buffer_control)))
/**
- * This macros is set to the amount of memory required for pending message
- * buffers in bytes. It should be constructed by adding together a
- * set of values determined by CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE.
+ * This macros is set to the amount of memory required for pending message
+ * buffers in bytes. It should be constructed by adding together a
+ * set of values determined by CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE.
*/
#ifndef CONFIGURE_MESSAGE_BUFFER_MEMORY
#define CONFIGURE_MESSAGE_BUFFER_MEMORY 0
#endif
/**
- * This macro is available just in case the confdefs.h file underallocates
- * memory for a particular application. This lets the user add some extra
- * memory in case something broken and underestimates.
+ * This macro is available just in case the confdefs.h file underallocates
+ * memory for a particular application. This lets the user add some extra
+ * memory in case something broken and underestimates.
*
- * It is also possible for cases where confdefs.h overallocates memory,
- * you could substract memory from the allocated. The estimate is just
- * that, an estimate, and assumes worst case alignment and padding on
- * each allocated element. So in some cases it could be too conservative.
+ * It is also possible for cases where confdefs.h overallocates memory,
+ * you could substract memory from the allocated. The estimate is just
+ * that, an estimate, and assumes worst case alignment and padding on
+ * each allocated element. So in some cases it could be too conservative.
*
- * @note Historically this was used for message buffers.
+ * NOTE: Historically this was used for message buffers.
*/
#ifndef CONFIGURE_MEMORY_OVERHEAD
#define CONFIGURE_MEMORY_OVERHEAD 0
#endif
/**
- * On architectures that use Simple Vectored Interrupts, it is RTEMS
- * responsibility to allocate the vector table. This avoids reserving
- * the memory on architectures that use the Programmable Interrupt
- * Controller Vectored Interrupts.
+ * On architectures that use Simple Vectored Interrupts, it is RTEMS
+ * responsibility to allocate the vector table. This avoids reserving
+ * the memory on architectures that use the Programmable Interrupt
+ * Controller Vectored Interrupts.
*/
#if (CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE)
/*
@@ -2047,15 +2050,15 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * RTEMS uses one instance of an internal mutex class. This accounts
- * for that mutex
+ * RTEMS uses one instance of an internal mutex class. This accounts
+ * for that mutex
*/
#define CONFIGURE_API_MUTEX_MEMORY \
_Configure_Object_RAM(1, sizeof(API_Mutex_Control))
/**
- * This calculates the amount of memory reserved for the IDLE tasks.
- * In an SMP system, each CPU core has its own idle task.
+ * This calculates the amount of memory reserved for the IDLE tasks.
+ * In an SMP system, each CPU core has its own idle task.
*/
#if defined(RTEMS_SMP)
#define CONFIGURE_IDLE_TASKS_COUNT CONFIGURE_SMP_MAXIMUM_PROCESSORS
@@ -2064,14 +2067,14 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * This defines the formula used to compute the amount of memory
- * reserved for IDLE task control structures.
+ * This defines the formula used to compute the amount of memory
+ * reserved for IDLE task control structures.
*/
#define CONFIGURE_MEMORY_FOR_IDLE_TASK \
CONFIGURE_MEMORY_FOR_TASKS(CONFIGURE_IDLE_TASKS_COUNT, 0)
/**
- * This macro accounts for general RTEMS system overhead.
+ * This macro accounts for general RTEMS system overhead.
*/
#define CONFIGURE_MEMORY_FOR_SYSTEM_OVERHEAD \
( CONFIGURE_MEMORY_FOR_IDLE_TASK + /* IDLE and stack */ \
@@ -2082,8 +2085,8 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
)
/**
- * This macro provides a summation of the various task and thread
- * requirements.
+ * This macro provides a summation of the various task and thread
+ * requirements.
*/
#define CONFIGURE_TOTAL_TASKS_AND_THREADS \
(CONFIGURE_TASKS + \
@@ -2091,8 +2094,8 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
CONFIGURE_MAXIMUM_GOROUTINES)
/**
- * This macro reserves the memory required by the statically configured
- * user extensions.
+ * This macro reserves the memory required by the statically configured
+ * user extensions.
*/
#define CONFIGURE_MEMORY_FOR_STATIC_EXTENSIONS \
(CONFIGURE_NUMBER_OF_INITIAL_EXTENSIONS == 0 ? 0 : \
@@ -2102,8 +2105,8 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
))
/**
- * This macro provides a summation of the memory required by the
- * Classic API as configured.
+ * This macro provides a summation of the memory required by the
+ * Classic API as configured.
*/
#define CONFIGURE_MEMORY_FOR_CLASSIC \
(CONFIGURE_MEMORY_FOR_TASK_VARIABLES(CONFIGURE_MAXIMUM_TASK_VARIABLES + \
@@ -2130,7 +2133,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * This calculates the memory required for the executive workspace.
+ * This calculates the memory required for the executive workspace.
*/
#define CONFIGURE_EXECUTIVE_RAM_SIZE \
(( \
@@ -2152,8 +2155,8 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
*/
/**
- * This accounts for any extra memory required by the Classic API
- * Initialization Task.
+ * This accounts for any extra memory required by the Classic API
+ * Initialization Task.
*/
#if (CONFIGURE_INIT_TASK_STACK_SIZE > CONFIGURE_MINIMUM_TASK_STACK_SIZE)
#define CONFIGURE_INITIALIZATION_THREADS_STACKS_CLASSIC_PART \
@@ -2163,8 +2166,8 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * This accounts for any extra memory required by the POSIX API
- * Initialization Thread.
+ * This accounts for any extra memory required by the POSIX API
+ * Initialization Thread.
*/
#if defined(RTEMS_POSIX_API) && \
(CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE > \
@@ -2177,8 +2180,8 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#endif
/**
- * This macro provides a summation of the various initialization task
- * and thread stack requirements.
+ * This macro provides a summation of the various initialization task
+ * and thread stack requirements.
*/
#define CONFIGURE_INITIALIZATION_THREADS_EXTRA_STACKS \
(CONFIGURE_INITIALIZATION_THREADS_STACKS_CLASSIC_PART + \
@@ -2238,7 +2241,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#ifdef CONFIGURE_INIT
/**
- * This is the Classic API Configuration Table.
+ * This is the Classic API Configuration Table.
*/
rtems_api_configuration_table Configuration_RTEMS_API = {
CONFIGURE_TASKS,
@@ -2257,7 +2260,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#ifdef RTEMS_POSIX_API
/**
- * This is the POSIX API Configuration Table.
+ * This is the POSIX API Configuration Table.
*/
posix_api_configuration_table Configuration_POSIX_API = {
CONFIGURE_MAXIMUM_POSIX_THREADS + CONFIGURE_MAXIMUM_ADA_TASKS +
@@ -2282,29 +2285,31 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
};
#endif
- /** This variable specifies the minimum stack size for tasks in an RTEMS
- * application.
+ /**
+ * This variable specifies the minimum stack size for tasks in an RTEMS
+ * application.
*
- * @note This is left as a simple uint32_t so it can be externed as
- * needed without requring being high enough logical to
- * include the full configuration table.
+ * NOTE: This is left as a simple uint32_t so it can be externed as
+ * needed without requring being high enough logical to
+ * include the full configuration table.
*/
uint32_t rtems_minimum_stack_size =
CONFIGURE_MINIMUM_TASK_STACK_SIZE;
- /** This variable specifies the maximum priority value that
- * a task may have. This must be a power of 2 between 4
- * and 256 and is specified in terms of Classic API
- * priority values.
+ /**
+ * This variable specifies the maximum priority value that
+ * a task may have. This must be a power of 2 between 4
+ * and 256 and is specified in terms of Classic API
+ * priority values.
*
- * @note This is left as a simple uint8_t so it can be externed as
- * needed without requring being high enough logical to
- * include the full configuration table.
+ * NOTE: This is left as a simple uint8_t so it can be externed as
+ * needed without requring being high enough logical to
+ * include the full configuration table.
*/
uint8_t rtems_maximum_priority = CONFIGURE_MAXIMUM_PRIORITY;
/**
- * This is the primary Configuration Table for this application.
+ * This is the primary Configuration Table for this application.
*/
const rtems_configuration_table Configuration = {
CONFIGURE_EXECUTIVE_RAM_SIZE, /* required RTEMS workspace */
@@ -2347,8 +2352,8 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#if defined(RTEMS_SMP)
/**
- * Instantiate the variable which specifies the number of CPUs
- * in an SMP configuration.
+ * Instantiate the variable which specifies the number of CPUs
+ * in an SMP configuration.
*/
#if defined(CONFIGURE_INIT)
uint32_t rtems_configuration_smp_maximum_processors = \
@@ -2411,11 +2416,11 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
#if defined(CONFIGURE_CONFDEFS_DEBUG) && defined(CONFIGURE_INIT)
/**
- * This is a debug mechanism, so if you need to, the executable will
- * have a structure with various partial values. Add to this as you
- * need to. Viewing this structure in gdb combined with dumping
- * the Configuration structures generated should help a lot in tracing
- * down errors and analyzing where over and under allocations are.
+ * This is a debug mechanism, so if you need to, the executable will
+ * have a structure with various partial values. Add to this as you
+ * need to. Viewing this structure in gdb combined with dumping
+ * the Configuration structures generated should help a lot in tracing
+ * down errors and analyzing where over and under allocations are.
*/
typedef struct {
uint32_t SYSTEM_OVERHEAD;
diff --git a/cpukit/sapi/include/rtems/cbs.h b/cpukit/sapi/include/rtems/cbs.h
index 9113204bdf..e0e619cdeb 100644
--- a/cpukit/sapi/include/rtems/cbs.h
+++ b/cpukit/sapi/include/rtems/cbs.h
@@ -1,8 +1,11 @@
/**
- * @file rtems/cbs.h
+ * @file
*
- * This include file contains all the constants and structures associated
- * with the CBS library in RTEMS.
+ * @brief Constants and Structures Associated
+ * with the CBS library in RTEMS
+ *
+ * This include file contains all the constants and structures associated
+ * with the CBS library in RTEMS.
*/
/*
diff --git a/cpukit/sapi/include/rtems/chain.h b/cpukit/sapi/include/rtems/chain.h
index 12d6e3b536..41b3154a11 100644
--- a/cpukit/sapi/include/rtems/chain.h
+++ b/cpukit/sapi/include/rtems/chain.h
@@ -1,9 +1,7 @@
/**
* @file
- *
- * @ingroup ClassicChains
- *
- * @brief Chain API.
+ *
+ * @brief Chain API
*/
/*
@@ -33,10 +31,9 @@ extern "C" {
*
* @ingroup ClassicRTEMS
*
- * @brief Chain API.
- *
- * @{
+ * @brief Chain API
*/
+/**@{**/
typedef Chain_Node rtems_chain_node;
@@ -60,9 +57,8 @@ typedef Chain_Control rtems_chain_control;
/**
* @addtogroup ClassicChains
- *
- * @{
*/
+/**@{**/
/**
* @brief Appends the @a node to the @a chain and sends the @a events to the
diff --git a/cpukit/sapi/include/rtems/config.h b/cpukit/sapi/include/rtems/config.h
index 983af84abf..58d2d92fb5 100644
--- a/cpukit/sapi/include/rtems/config.h
+++ b/cpukit/sapi/include/rtems/config.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/config.h
+ * @file
+ *
+ * @brief Table of User Defined Configuration Parameters
*
* This include file contains the table of user defined configuration
* parameters.
@@ -77,9 +79,10 @@ typedef struct {
/** This is the maximum number of proxies. */
uint32_t maximum_proxies;
- /** The MPCI Receive server is assumed to have a stack of at least
- * minimum stack size. This field specifies the amount of extra
- * stack this task will be given in bytes.
+ /**
+ * The MPCI Receive server is assumed to have a stack of at least
+ * minimum stack size. This field specifies the amount of extra
+ * stack this task will be given in bytes.
*/
uint32_t extra_mpci_receive_server_stack;
@@ -91,14 +94,14 @@ typedef struct {
/**
* @brief Task stack allocator initialization hook.
*
- * @param[in] stack_space_size Size of the stack space in bytes.
+ * @param[in] stack_space_size is the size of the stack space in bytes.
*/
typedef void (*rtems_stack_allocate_init_hook)( size_t stack_space_size );
/**
* @brief Task stack allocator hook.
*
- * @param[in] stack_size Size of the task stack in bytes.
+ * @param[in] stack_size is the Size of the task stack in bytes.
*
* @retval NULL Not enough memory.
* @retval other Pointer to task stack.
@@ -108,7 +111,7 @@ typedef void *(*rtems_stack_allocate_hook)( size_t stack_size );
/**
* @brief Task stack deallocator hook.
*
- * @param[in] addr Pointer to previously allocated task stack.
+ * @param[in] addr is a pointer to previously allocated task stack.
*/
typedef void (*rtems_stack_free_hook)( void *addr );
@@ -124,49 +127,58 @@ typedef void (*rtems_stack_free_hook)( void *addr );
* + required number of each object type for each API configured
*/
typedef struct {
- /** This field specifies the size in bytes of the RTEMS Workspace.
+ /**
+ * This field specifies the size in bytes of the RTEMS Workspace.
*/
uintptr_t work_space_size;
- /** This field specifies the size in bytes of the RTEMS thread stack space.
+ /**
+ * This field specifies the size in bytes of the RTEMS thread stack space.
*/
uintptr_t stack_space_size;
- /** This field specifies the maximum number of dynamically installed
- * used extensions.
+ /**
+ * This field specifies the maximum number of dynamically installed
+ * used extensions.
*/
uint32_t maximum_extensions;
- /** This field specifies the number of microseconds which elapse
- * between clock ticks. This is the basis for RTEMS timing.
+ /**
+ * This field specifies the number of microseconds which elapse
+ * between clock ticks. This is the basis for RTEMS timing.
*/
uint32_t microseconds_per_tick;
- /** This field specifies the number of nanoseconds which elapse
- * between clock ticks. This value is derived from the
- * microseconds_per_tick field and provided to avoid calculation at
- * run-time.
+ /**
+ * This field specifies the number of nanoseconds which elapse
+ * between clock ticks. This value is derived from the
+ * microseconds_per_tick field and provided to avoid calculation at
+ * run-time.
*/
uint32_t nanoseconds_per_tick;
- /** This field specifies the number of ticks in each task's timeslice.
+ /**
+ * This field specifies the number of ticks in each task's timeslice.
*/
uint32_t ticks_per_timeslice;
- /** This element points to the BSP's optional idle task which may override
- * the default one provided with RTEMS.
+ /**
+ * This element points to the BSP's optional idle task which may override
+ * the default one provided with RTEMS.
*/
Thread (*idle_task)( uintptr_t );
- /** This field specifies the size of the IDLE task's stack. If less than or
- * equal to the minimum stack size, then the IDLE task will have the minimum
- * stack size.
+ /**
+ * This field specifies the size of the IDLE task's stack. If less than or
+ * equal to the minimum stack size, then the IDLE task will have the minimum
+ * stack size.
*/
uint32_t idle_task_stack_size;
- /** This field specifies the size of the interrupt stack. If less than or
- * equal to the minimum stack size, then the interrupt stack will be of
- * minimum stack size.
+ /**
+ * This field specifies the size of the interrupt stack. If less than or
+ * equal to the minimum stack size, then the interrupt stack will be of
+ * minimum stack size.
*/
uint32_t interrupt_stack_size;
@@ -185,10 +197,11 @@ typedef struct {
*/
rtems_stack_free_hook stack_free_hook;
- /** If this element is TRUE, then RTEMS will zero the Executive Workspace.
- * When this element is FALSE, it is assumed that the BSP or invoking
- * environment has ensured that memory was cleared before RTEMS was
- * invoked.
+ /**
+ * If this element is TRUE, then RTEMS will zero the Executive Workspace.
+ * When this element is FALSE, it is assumed that the BSP or invoking
+ * environment has ensured that memory was cleared before RTEMS was
+ * invoked.
*/
bool do_zero_of_workspace;
@@ -220,23 +233,23 @@ typedef struct {
} rtems_configuration_table;
/**
- * This is the configuration table generated by confdefs.h.
+ * This is the configuration table generated by confdefs.h.
*/
extern const rtems_configuration_table Configuration;
#if defined(RTEMS_MULTIPROCESSING)
/**
- * This points to the multiprocessing configuration table.
+ * This points to the multiprocessing configuration table.
*/
SAPI_EXTERN rtems_multiprocessing_table *_Configuration_MP_table;
#endif
#if defined(RTEMS_MULTIPROCESSING)
/**
- * @brief RTEMS Multiprocessing Configuration Table
+ * @brief RTEMS multiprocessing configuration table.
*
- * This is the RTEMS Multiprocessing Configuration Table expected to
- * be generated by confdefs.h.
+ * This is the RTEMS Multiprocessing Configuration Table expected to
+ * be generated by confdefs.h.
*/
extern rtems_multiprocessing_table Multiprocessing_configuration;
#endif
@@ -292,7 +305,7 @@ extern const rtems_configuration_table Configuration;
#define rtems_configuration_get_stack_free_hook() \
(Configuration.stack_free_hook)
-/**
+ /**
* This macro assists in accessing the field which indicates whether
* RTEMS is responsible for zeroing the Executive Workspace.
*/
diff --git a/cpukit/sapi/include/rtems/extension.h b/cpukit/sapi/include/rtems/extension.h
index 3d54092a8c..d4f7fde532 100644
--- a/cpukit/sapi/include/rtems/extension.h
+++ b/cpukit/sapi/include/rtems/extension.h
@@ -1,8 +1,6 @@
/**
* @file
- *
- * @ingroup ClassicUserExtensions
- *
+ *
* @brief User Extensions API.
*/
@@ -39,7 +37,7 @@ typedef struct {
} Extension_Control;
/**
- * @brief Initialize Extension Manager
+ * @brief Initialize extension manager.
*
* This routine initializes all extension manager related data structures.
*/
@@ -172,9 +170,8 @@ typedef User_extensions_routine
* will operate correctly even if they utilize the C Library because the C
* Library's task delete extension is invoked after that of the other
* extensions.
- *
- * @{
*/
+/**@{**/
typedef User_extensions_thread_create_extension rtems_task_create_extension;
typedef User_extensions_thread_delete_extension rtems_task_delete_extension;
diff --git a/cpukit/sapi/include/rtems/fatal.h b/cpukit/sapi/include/rtems/fatal.h
index 64344b36b8..66236462d8 100644
--- a/cpukit/sapi/include/rtems/fatal.h
+++ b/cpukit/sapi/include/rtems/fatal.h
@@ -1,8 +1,6 @@
/**
* @file
*
- * @ingroup ClassicFatal
- *
* @brief Fatal API.
*/
@@ -32,9 +30,8 @@ extern "C" {
*
* @brief The Fatal Manager provides functions for fatal system states and or
* irrecoverable errors.
- *
- * @{
*/
+/**@{**/
/**
* @brief Exception frame.
@@ -42,9 +39,9 @@ extern "C" {
typedef CPU_Exception_frame rtems_exception_frame;
/**
- * @brief Prints the exception frame via printk().
+ * @brief Prints the exception frame via printk().
*
- * @see rtems_fatal() and RTEMS_FATAL_SOURCE_EXCEPTION.
+ * @see rtems_fatal() and RTEMS_FATAL_SOURCE_EXCEPTION.
*/
static inline void rtems_exception_frame_print(
const rtems_exception_frame *frame
@@ -57,9 +54,7 @@ static inline void rtems_exception_frame_print(
* @brief Invokes the internal error handler with a source of
* INTERNAL_ERROR_RTEMS_API and is internal set to false.
*
- * @param[in] the_error A 32-bit fatal error code.
- *
- * @return This function will not return.
+ * @param[in] the_error is a 32-bit fatal error code.
*
* @see _Internal_error_Occurred().
*/
@@ -70,10 +65,8 @@ void rtems_fatal_error_occurred(
/**
* @brief Invokes the internal error handler with is internal set to false.
*
- * @param[in] source The fatal source.
- * @param[in] error The fatal code.
- *
- * @return This function will not return.
+ * @param[in] source is the fatal source.
+ * @param[in] error is the fatal code.
*
* @see _Internal_error_Occurred().
*/
@@ -83,12 +76,22 @@ void rtems_fatal(
) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE;
/**
+ * @brief Returns a description for a fatal source.
+ *
+ * @param[in] source is the fatal source.
+ *
+ * @retval description The fatal source description.
+ * @retval ? The passed fatal source is invalid.
+ */
+const char *rtems_fatal_source_description( rtems_fatal_source source );
+
+/**
* @brief Returns a description for an internal error code.
*
- * @param[in] error The error code.
+ * @param[in] error is the error code.
*
- * @return The error code description or "?" in case the passed error code is
- * invalid.
+ * @retval description The error code description.
+ * @retval ? The passed error code is invalid.
*/
const char *rtems_internal_error_description( rtems_fatal_code error );
diff --git a/cpukit/sapi/include/rtems/init.h b/cpukit/sapi/include/rtems/init.h
index 8b5fab91fd..ad9a144910 100644
--- a/cpukit/sapi/include/rtems/init.h
+++ b/cpukit/sapi/include/rtems/init.h
@@ -1,17 +1,19 @@
/**
- * @file rtems/init.h
+ * @file
*
+ * @brief Constants and Structures Associated
+ * with the Initialization Manager
*
- * This include file contains all the constants and structures associated
- * with the Initialization Manager. This manager is responsible for
- * initializing RTEMS, creating and starting all configured initialization
- * tasks, invoking the initialization routine for each user-supplied device
- * driver, and initializing the optional multiprocessor layer.
+ * This include file contains all the constants and structures associated
+ * with the Initialization Manager. This manager is responsible for
+ * initializing RTEMS, creating and starting all configured initialization
+ * tasks, invoking the initialization routine for each user-supplied device
+ * driver, and initializing the optional multiprocessor layer.
*
- * This manager provides directives to:
+ * This manager provides directives to:
*
- * + initialize the RTEMS executive
- * + shutdown the RTEMS executive
+ * + initialize the RTEMS executive
+ * + shutdown the RTEMS executive
*/
/*
@@ -36,64 +38,64 @@ extern "C" {
#if defined(RTEMS_MULTIPROCESSING)
/**
- * The following defines the default Multiprocessing Configuration
- * Table. This table is used in a single processor system.
+ * The following defines the default Multiprocessing Configuration
+ * Table. This table is used in a single processor system.
*/
extern const rtems_multiprocessing_table
_Initialization_Default_multiprocessing_table;
#endif
/**
- * @brief rtems_initialize_data_structures
+ * @brief RTEMS data structures initialization.
*
- * This routine implements the portion of the RTEMS initializatin process
- * that involves initializing data structures to a state that scheduling
- * can occur in a consistent manner.
+ * This routine implements the portion of the RTEMS initializatin process
+ * that involves initializing data structures to a state that scheduling
+ * can occur in a consistent manner.
*/
void rtems_initialize_data_structures(void);
/**
- * @brief rtems_initialize_before_drivers
+ * @brief RTEMS initialization before the device drivers are initialized.
*
- * This routine implements the portion of RTEMS initialization that
- * is done immediately before device drivers are initialized.
+ * This routine implements the portion of RTEMS initialization that
+ * is done immediately before device drivers are initialized.
*/
void rtems_initialize_before_drivers(void);
/**
- * @brief rtems_initialize_device_drivers
+ * @brief RTEMS initialization that initializes all device drivers.
*
- * This routine implements the portion of RTEMS initialization that
- * initializes all device drivers.
+ * This routine implements the portion of RTEMS initialization that
+ * initializes all device drivers.
*/
void rtems_initialize_device_drivers(void);
/**
- * @brief Starts the multitasking.
+ * @brief Starts the multitasking.
*
- * This directive initiates multitasking and performs a context switch to the
- * first user application task and may enable interrupts as a side-effect of
- * that context switch. The context switch saves the executing context. The
- * application runs now. The directive rtems_shutdown_executive() will return
- * to the saved context. The exit() function will use this directive.
+ * This directive initiates multitasking and performs a context switch to the
+ * first user application task and may enable interrupts as a side-effect of
+ * that context switch. The context switch saves the executing context. The
+ * application runs now. The directive rtems_shutdown_executive() will return
+ * to the saved context. The exit() function will use this directive.
*
- * After a return to the saved context a fatal system state is reached. The
- * fatal source is RTEMS_FATAL_SOURCE_EXIT with a fatal code set to the value
- * passed to rtems_shutdown_executive().
+ * After a return to the saved context a fatal system state is reached. The
+ * fatal source is RTEMS_FATAL_SOURCE_EXIT with a fatal code set to the value
+ * passed to rtems_shutdown_executive().
*
- * This directive does not return.
+ * This directive does not return.
*/
void rtems_initialize_start_multitasking(void)
RTEMS_COMPILER_NO_RETURN_ATTRIBUTE;
/**
- * @brief Shutdown the RTEMS environment
+ * @brief Shutdown the RTEMS environment.
*
- * This routine implements the rtems_shutdown_executive directive. The
- * invocation of this directive results in the RTEMS environment being
- * shutdown and multitasking halted. From the application's perspective,
- * invocation of this directive results in the rtems_initialize_executive
- * directive exitting to the startup code which invoked it.
+ * This routine implements the rtems_shutdown_executive directive. The
+ * invocation of this directive results in the RTEMS environment being
+ * shutdown and multitasking halted. From the application's perspective,
+ * invocation of this directive results in the rtems_initialize_executive
+ * directive exitting to the startup code which invoked it.
*/
void rtems_shutdown_executive(
uint32_t result
diff --git a/cpukit/sapi/include/rtems/io.h b/cpukit/sapi/include/rtems/io.h
index 2a268fa51e..e598ca3ffc 100644
--- a/cpukit/sapi/include/rtems/io.h
+++ b/cpukit/sapi/include/rtems/io.h
@@ -1,9 +1,7 @@
/**
* @file
*
- * @ingroup ClassicIO
- *
- * @brief Classic Input/Output Manager API.
+ * @brief Classic Input/Output Manager API
*
* This file emulates the old Classic RTEMS IO manager directives
* which register and lookup names using the in-memory filesystem.
@@ -36,8 +34,8 @@ extern "C" {
*
* @ingroup ClassicRTEMS
*
- * @{
*/
+/**@{**/
typedef uint32_t rtems_device_major_number;
@@ -62,9 +60,8 @@ typedef struct {
/**
* @name Device Driver Maintainance
- *
- * @{
*/
+/**@{**/
/**
* @brief Returns @c RTEMS_IO_ERROR.
@@ -103,13 +100,13 @@ rtems_status_code rtems_io_register_driver(
);
/**
- * @brief Unregister a Driver from the Device Driver Table.
+ * @brief Unregister a driver from the device driver table.
*
- * @param[in] major is the device major number.
+ * @param[in] major is the device major number.
*
- * @retval RTEMS_SUCCESSFUL Device driver successfully unregistered.
- * @retval RTEMS_UNSATISFIED Invalid major number.
- * @retval RTEMS_CALLED_FROM_ISR Called from interrupt context.
+ * @retval RTEMS_SUCCESSFUL Device driver successfully unregistered.
+ * @retval RTEMS_UNSATISFIED Invalid major number.
+ * @retval RTEMS_CALLED_FROM_ISR Called from interrupt context.
*/
rtems_status_code rtems_io_unregister_driver(
rtems_device_major_number major
@@ -133,15 +130,15 @@ rtems_status_code rtems_io_register_name(
/** @} */
/**
- * @brief IO Driver Initialization
+ * @brief IO driver initialization.
*
- * This routine is the initialization directive of the IO manager.
+ * This routine is the initialization directive of the IO manager.
*
- * @param[in] major is the device drive number
- * @param[in] minor is the device number
- * @param[in] argument is the pointer to the argument(s)
+ * @param[in] major is the device drive number
+ * @param[in] minor is the device number
+ * @param[in] argument is the pointer to the argument(s)
*
- * @return status code
+ * @return status code
*/
rtems_status_code rtems_io_initialize(
rtems_device_major_number major,
@@ -150,15 +147,15 @@ rtems_status_code rtems_io_initialize(
);
/**
- * @brief Opening for The IO Manager
+ * @brief Opening for the IO manager.
*
- * Opens a device driver with the number @a major.
+ * Opens a device driver with the number @a major.
*
- * @param[in] major is the device driver number.
- * @param[in] minor is the device number.
- * @param[in] argument is the pointer to the argument(s).
+ * @param[in] major is the device driver number.
+ * @param[in] minor is the device number.
+ * @param[in] argument is the pointer to the argument(s).
*
- * @return Status code.
+ * @return Status code.
*/
rtems_status_code rtems_io_open(
rtems_device_major_number major,
@@ -167,15 +164,15 @@ rtems_status_code rtems_io_open(
);
/**
- * @brief Closing for The IO Manager
+ * @brief Closing for the IO manager.
*
- * This routine is the close directive of the IO manager.
+ * This routine is the close directive of the IO manager.
*
- * @param[in] major is the device driver number.
- * @param[in] minor is the device number.
- * @param[in] argument is the pointer to the argument(s).
+ * @param[in] major is the device driver number.
+ * @param[in] minor is the device number.
+ * @param[in] argument is the pointer to the argument(s).
*
- * @return Status code.
+ * @return Status code.
*/
rtems_status_code rtems_io_close(
rtems_device_major_number major,
@@ -184,15 +181,15 @@ rtems_status_code rtems_io_close(
);
/**
- * @brief Reading for The IO Manager
+ * @brief Reading for the IO manager.
*
- * This routine is the read directive of the IO manager.
+ * This routine is the read directive of the IO manager.
*
- * @param[in] major is the device driver number.
- * @param[in] minor is the device number.
- * @param[in] argument is the pointer to the argument(s).
+ * @param[in] major is the device driver number.
+ * @param[in] minor is the device number.
+ * @param[in] argument is the pointer to the argument(s).
*
- * @return Status code.
+ * @return Status code.
*/
rtems_status_code rtems_io_read(
rtems_device_major_number major,
@@ -201,15 +198,15 @@ rtems_status_code rtems_io_read(
);
/**
- * @brief Writing for The IO Manager
+ * @brief Writing for the IO manager.
*
- * This routine is the write directive of the IO manager.
+ * This routine is the write directive of the IO manager.
*
- * @param[in] major is the device driver number.
- * @param[in] minor is the device number.
- * @param[in] argument is the pointer to the argument(s).
+ * @param[in] major is the device driver number.
+ * @param[in] minor is the device number.
+ * @param[in] argument is the pointer to the argument(s).
*
- * @return Status code.
+ * @return Status code.
*/
rtems_status_code rtems_io_write(
rtems_device_major_number major,
@@ -218,15 +215,15 @@ rtems_status_code rtems_io_write(
);
/**
- * @brief Control for The IO Manager
+ * @brief Control for the IO manager.
*
- * This routine is the control directive of the IO manager.
+ * This routine is the control directive of the IO manager.
*
- * @param[in] major is the device driver number.
- * @param[in] minor is the device number.
- * @param[in] argument is the pointer to the argument(s).
+ * @param[in] major is the device driver number.
+ * @param[in] minor is the device number.
+ * @param[in] argument is the pointer to the argument(s).
*
- * @return Status code.
+ * @return Status code.
*/
rtems_status_code rtems_io_control(
rtems_device_major_number major,
@@ -258,18 +255,18 @@ SAPI_IO_EXTERN uint32_t _IO_Number_of_drivers;
SAPI_IO_EXTERN rtems_driver_address_table *_IO_Driver_address_table;
/**
- * @brief Initialization of Device Drivers
+ * @brief Initialization of device drivers.
*
- * @note The IO manager has been extended to support runtime driver
- * registration. The driver table is now allocated in the
- * workspace.
+ * NOTE: The IO manager has been extended to support runtime driver
+ * registration. The driver table is now allocated in the
+ * workspace.
*/
void _IO_Manager_initialization( void );
/**
- * @brief Initialization of All Device Drivers
+ * @brief Initialization of all device drivers.
*
- * Initializes all device drivers.
+ * Initializes all device drivers.
*/
void _IO_Initialize_all_drivers( void );
diff --git a/cpukit/sapi/include/rtems/mptables.h b/cpukit/sapi/include/rtems/mptables.h
index c46a367a33..fcef585461 100644
--- a/cpukit/sapi/include/rtems/mptables.h
+++ b/cpukit/sapi/include/rtems/mptables.h
@@ -1,5 +1,8 @@
/**
- * @file rtems/mptables.h
+ * @file
+ *
+ * @brief Executive's Pre-Initialized Tables used in a
+ * Multiprocessor Configuration
*
* This include file contains the executive's pre-initialized tables
* used in a multiprocessor configuration.
diff --git a/cpukit/sapi/include/rtems/rbheap.h b/cpukit/sapi/include/rtems/rbheap.h
index 39bbc69a3f..22a6cf08f3 100644
--- a/cpukit/sapi/include/rtems/rbheap.h
+++ b/cpukit/sapi/include/rtems/rbheap.h
@@ -2,8 +2,6 @@
* @file
*
* @brief Red-Black Tree Heap API
- *
- * @ingroup RBHeap
*/
/*
@@ -34,6 +32,8 @@ extern "C" {
/**
* @defgroup RBHeap Red-Black Tree Heap
*
+ * @ingroup ClassicRTEMS
+ *
* @brief Red-Black Tree Heap API.
*
* The red-black tree heap provides a memory allocator suitable to implement
@@ -45,9 +45,8 @@ extern "C" {
* by other tasks. The allocated and free memory parts of the managed area are
* called chunks. Each chunk needs a descriptor which is stored outside of the
* managed area.
- *
- * @{
*/
+/**@{*/
/**
* @brief Red-black heap chunk descriptor.
diff --git a/cpukit/sapi/include/rtems/rbtree.h b/cpukit/sapi/include/rtems/rbtree.h
index 4d150deee7..03a55eb992 100644
--- a/cpukit/sapi/include/rtems/rbtree.h
+++ b/cpukit/sapi/include/rtems/rbtree.h
@@ -1,11 +1,12 @@
/**
- * @file rtems/rbtree.h
- *
- * This include file contains all the constants and structures associated
- * with the RBTree API in RTEMS. The rbtree is a Red Black Tree that
- * is part of the Super Core. This is the published interface to that
- * code.
- *
+ * @file
+ *
+ * @brief Constants and Structures Associated with the RBTree API in RTEMS
+ *
+ * This include file contains all the constants and structures associated
+ * with the RBTree API in RTEMS. The rbtree is a Red Black Tree that
+ * is part of the Super Core. This is the published interface to that
+ * code.
*/
/*
@@ -50,13 +51,13 @@ typedef RBTree_Control rtems_rbtree_control;
typedef RBTree_Compare_function rtems_rbtree_compare_function;
/**
- * @brief RBTree initializer for an empty rbtree with designator @a name.
+ * @brief RBTree initializer for an empty rbtree with designator @a name.
*/
#define RTEMS_RBTREE_INITIALIZER_EMPTY(name) \
RBTREE_INITIALIZER_EMPTY(name)
/**
- * @brief RBTree definition for an empty rbtree with designator @a name.
+ * @brief RBTree definition for an empty rbtree with designator @a name.
*/
#define RTEMS_RBTREE_DEFINE_EMPTY(name) \
RBTREE_DEFINE_EMPTY(name)
diff --git a/cpukit/sapi/include/rtems/sptables.h b/cpukit/sapi/include/rtems/sptables.h
index d6480acdfe..f32729c7eb 100644
--- a/cpukit/sapi/include/rtems/sptables.h
+++ b/cpukit/sapi/include/rtems/sptables.h
@@ -1,8 +1,10 @@
/**
- * @file rtems/sptables.h
+ * @file
+ *
+ * @brief Pre-Initialized Tables Used when in a Single Processor Configuration
*
- * This include file contains the executive's pre-initialized tables
- * used when in a single processor configuration.
+ * This include file contains the executive's pre-initialized tables
+ * used when in a single processor configuration.
*/
/*
diff --git a/cpukit/sapi/include/rtems/timespec.h b/cpukit/sapi/include/rtems/timespec.h
index d502de3eac..b67e95c2d3 100644
--- a/cpukit/sapi/include/rtems/timespec.h
+++ b/cpukit/sapi/include/rtems/timespec.h
@@ -1,11 +1,9 @@
/**
- * @file rtems/sapi/timespec.h
+ * @file
*
- * @ingroup
+ * @brief Timespec API
*
- * @brief Timespec API
- *
- * This include file contains API for manipulating timespecs.
+ * This include file contains API for manipulating timespecs.
*/
/*
@@ -28,9 +26,10 @@
* @ingroup ClassicRTEMS
*
* @brief Timespec API
+ *
+ * @{
*
*/
-/**@{*/
#include <stdbool.h> /* bool */
#include <stdint.h> /* uint32_t */
@@ -42,11 +41,11 @@ extern "C" {
#include <rtems/timespec.inl>
+/** @} */
+
#ifdef __cplusplus
}
#endif
-/**@}*/
-
#endif
/* end of include file */
diff --git a/cpukit/sapi/inline/rtems/cbs.inl b/cpukit/sapi/inline/rtems/cbs.inl
index d4fb6a8d9d..01d7779318 100644
--- a/cpukit/sapi/inline/rtems/cbs.inl
+++ b/cpukit/sapi/inline/rtems/cbs.inl
@@ -1,8 +1,10 @@
/**
- * @file cbs.inl
- *
- * This include file contains all the constants and structures associated
- * with the CBS library.
+ * @file
+ *
+ * @brief Constants and Structures Associated with the CBS Library
+ *
+ * This include file contains all the constants and structures associated
+ * with the CBS library.
*
*/
@@ -22,11 +24,11 @@
#include <rtems/score/schedulercbs.h>
/**
- * @brief rtems cbs init
+ * @brief Initialize the CBS library.
*
- * Initializes the CBS library.
+ * Initializes the CBS library.
*
- * @return status code.
+ * @return status code.
*/
RTEMS_INLINE_ROUTINE int rtems_cbs_initialize ( void )
{
@@ -34,11 +36,11 @@ RTEMS_INLINE_ROUTINE int rtems_cbs_initialize ( void )
}
/**
- * @brief rtems cbs cleanup
+ * @brief Cleanup resources associated to the CBS Library
*
- * Cleanup resources associated to the CBS Library.
+ * Cleanup resources associated to the CBS Library.
*
- * @return status code.
+ * @return status code.
*/
RTEMS_INLINE_ROUTINE int rtems_cbs_cleanup ( void )
{
@@ -46,11 +48,11 @@ RTEMS_INLINE_ROUTINE int rtems_cbs_cleanup ( void )
}
/**
- * @brief rtems cbs create server
+ * @brief Create a new server with specified parameters.
*
- * Create a new server with specified parameters.
+ * Create a new server with specified parameters.
*
- * @return status code.
+ * @return status code.
*/
RTEMS_INLINE_ROUTINE int rtems_cbs_create_server (
rtems_cbs_parameters *params,
@@ -66,11 +68,11 @@ RTEMS_INLINE_ROUTINE int rtems_cbs_create_server (
}
/**
- * @brief rtems cbs attach thread
+ * @brief Attach a task to an already existing server.
*
- * Attach a task to an already existing server.
+ * Attach a task to an already existing server.
*
- * @return status code.
+ * @return status code.
*/
RTEMS_INLINE_ROUTINE int rtems_cbs_attach_thread (
rtems_cbs_server_id server_id,
@@ -81,11 +83,11 @@ RTEMS_INLINE_ROUTINE int rtems_cbs_attach_thread (
}
/**
- * @brief rtems cbs detach thread
+ * @brief Detach from the CBS server.
*
- * Detach from the CBS Server.
+ * Detach from the CBS Server.
*
- * @return status code.
+ * @return status code.
*/
RTEMS_INLINE_ROUTINE int rtems_cbs_detach_thread (
rtems_cbs_server_id server_id,
@@ -96,11 +98,11 @@ RTEMS_INLINE_ROUTINE int rtems_cbs_detach_thread (
}
/**
- * @brief rtems cbs destroy server
+ * @brief Detach all tasks from a server and destroy it.
*
- * Detach all tasks from a server and destroy it.
+ * Detach all tasks from a server and destroy it.
*
- * @return status code.
+ * @return status code.
*/
RTEMS_INLINE_ROUTINE int rtems_cbs_destroy_server (
rtems_cbs_server_id server_id
@@ -110,12 +112,12 @@ RTEMS_INLINE_ROUTINE int rtems_cbs_destroy_server (
}
/**
- * @brief rtems cbs get server id
+ * @brief Get CBS server id.
*
- * Get a thread server id, or RTEMS_CBS_E_NOT_FOUND if it is not
- * attached to any server.
+ * Get a thread server id, or RTEMS_CBS_E_NOT_FOUND if it is not
+ * attached to any server.
*
- * @return status code.
+ * @return status code.
*/
RTEMS_INLINE_ROUTINE int rtems_cbs_get_server_id (
rtems_id task_id,
@@ -126,11 +128,11 @@ RTEMS_INLINE_ROUTINE int rtems_cbs_get_server_id (
}
/**
- * @brief rtems cbs get parameters
+ * @brief Get CBS parameters.
*
- * Retrieve CBS scheduling parameters.
+ * Retrieve CBS scheduling parameters.
*
- * @return status code.
+ * @return status code.
*/
RTEMS_INLINE_ROUTINE int rtems_cbs_get_parameters (
rtems_cbs_server_id server_id,
@@ -141,11 +143,11 @@ RTEMS_INLINE_ROUTINE int rtems_cbs_get_parameters (
}
/**
- * @brief rtems cbs set parameters
+ * @brief Set CBS parameters.
*
- * Change CBS scheduling parameters.
+ * Change CBS scheduling parameters.
*
- * @return status code.
+ * @return status code.
*/
RTEMS_INLINE_ROUTINE int rtems_cbs_set_parameters (
rtems_cbs_server_id server_id,
@@ -156,11 +158,11 @@ RTEMS_INLINE_ROUTINE int rtems_cbs_set_parameters (
}
/**
- * @brief rtems cbs get execution time
+ * @brief Get the CBS get execution time.
*
- * Retrieve time info relative to the current server.
+ * Retrieve time info relative to the current server.
*
- * @return status code.
+ * @return status code.
*/
RTEMS_INLINE_ROUTINE int rtems_cbs_get_execution_time (
rtems_cbs_server_id server_id,
@@ -172,11 +174,11 @@ RTEMS_INLINE_ROUTINE int rtems_cbs_get_execution_time (
}
/**
- * @brief rtems cbs get remaining budget
+ * @brief Get the remaining CBS budget.
*
- * Retrieve remaining budget for the current server instance.
+ * Retrieve remaining budget for the current server instance.
*
- * @return status code.
+ * @return status code.
*/
RTEMS_INLINE_ROUTINE int rtems_cbs_get_remaining_budget (
rtems_cbs_server_id server_id,
@@ -187,12 +189,12 @@ RTEMS_INLINE_ROUTINE int rtems_cbs_get_remaining_budget (
}
/**
- * @brief rtems cbs get approved budget
+ * @brief Get the approved CBS budget.
*
- * Retrieve the budget that has been approved for the subsequent
- * server instances.
+ * Retrieve the budget that has been approved for the subsequent
+ * server instances.
*
- * @return status code.
+ * @return status code.
*/
RTEMS_INLINE_ROUTINE int rtems_cbs_get_approved_budget (
rtems_cbs_server_id server_id,
diff --git a/cpukit/sapi/inline/rtems/chain.inl b/cpukit/sapi/inline/rtems/chain.inl
index a1bfc2f32e..3fa03769ea 100644
--- a/cpukit/sapi/inline/rtems/chain.inl
+++ b/cpukit/sapi/inline/rtems/chain.inl
@@ -1,9 +1,7 @@
/**
* @file
*
- * @ingroup ClassicChains
- *
- * @brief Chain API.
+ * @brief Chain API
*/
/*
@@ -28,22 +26,21 @@
/**
* @addtogroup ClassicChains
- *
- * @{
*/
+/**@{**/
/**
- * @brief Initialize a Chain Header
+ * @brief Initialize a chain Header.
*
- * This routine initializes @a the_chain structure to manage the
- * contiguous array of @a number_nodes nodes which starts at
- * @a starting_address. Each node is of @a node_size bytes.
+ * This routine initializes @a the_chain structure to manage the
+ * contiguous array of @a number_nodes nodes which starts at
+ * @a starting_address. Each node is of @a node_size bytes.
*
- * @param[in] the_chain specifies the chain to initialize
- * @param[in] starting_address is the starting address of the array
- * of elements
- * @param[in] number_nodes is the number of nodes that will be in the chain
- * @param[in] node_size is the size of each node
+ * @param[in] the_chain specifies the chain to initialize
+ * @param[in] starting_address is the starting address of the array
+ * of elements
+ * @param[in] number_nodes is the number of nodes that will be in the chain
+ * @param[in] node_size is the size of each node
*/
RTEMS_INLINE_ROUTINE void rtems_chain_initialize(
rtems_chain_control *the_chain,
@@ -56,11 +53,11 @@ RTEMS_INLINE_ROUTINE void rtems_chain_initialize(
}
/**
- * @brief Initialize this Chain as Empty
+ * @brief Initialize this chain as empty.
*
- * This routine initializes the specified chain to contain zero nodes.
+ * This routine initializes the specified chain to contain zero nodes.
*
- * @param[in] the_chain is the chain to be initialized.
+ * @param[in] the_chain is the chain to be initialized.
*/
RTEMS_INLINE_ROUTINE void rtems_chain_initialize_empty(
rtems_chain_control *the_chain
@@ -70,12 +67,12 @@ RTEMS_INLINE_ROUTINE void rtems_chain_initialize_empty(
}
/**
- * @brief Set off chain
+ * @brief Set off chain.
*
- * This function sets the next and previous fields of the @a node to NULL
- * indicating the @a node is not part of a chain.
+ * This function sets the next and previous fields of the @a node to NULL
+ * indicating the @a node is not part of a chain.
*
- * @param[in] node the node set to off chain.
+ * @param[in] node the node set to off chain.
*/
RTEMS_INLINE_ROUTINE void rtems_chain_set_off_chain(
rtems_chain_node *node
@@ -85,14 +82,15 @@ RTEMS_INLINE_ROUTINE void rtems_chain_set_off_chain(
}
/**
- * @brief Is the Node off Chain
+ * @brief Is the node off chain.
*
- * This function returns true if the @a node is not on a chain. A @a node is
- * off chain if the next and previous fields are set to NULL.
+ * This function returns true if the @a node is not on a chain. A @a node is
+ * off chain if the next and previous fields are set to NULL.
*
- * @param[in] node is the node off chain.
+ * @param[in] node is the node off chain.
*
- * @return This function returns true if the @a node is off chain.
+ * @retval true The node is off chain.
+ * @retval false The node is not off chain.
*/
RTEMS_INLINE_ROUTINE bool rtems_chain_is_node_off_chain(
const rtems_chain_node *node
@@ -102,13 +100,14 @@ RTEMS_INLINE_ROUTINE bool rtems_chain_is_node_off_chain(
}
/**
- * @brief Is the Chain Node Pointer NULL
- *
- * This function returns true if the_node is NULL and false otherwise.
+ * @brief Is the chain node pointer NULL.
*
- * @param[in] the_node is the node pointer to check.
+ * This function returns true if the_node is NULL and false otherwise.
*
- * @return This method returns true if the_node is NULL and false otherwise.
+ * @param[in] the_node is the node pointer to check.
+ *
+ * @retval true The chain node pointer is NULL.
+ * @retval false The chain node pointer is not NULL.
*/
RTEMS_INLINE_ROUTINE bool rtems_chain_is_null_node(
const rtems_chain_node *the_node
@@ -118,13 +117,13 @@ RTEMS_INLINE_ROUTINE bool rtems_chain_is_null_node(
}
/**
- * @brief Return pointer to Chain Head
+ * @brief Return pointer to Chain Head
*
- * This function returns a pointer to the first node on the chain.
+ * This function returns a pointer to the first node on the chain.
*
- * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_chain is the chain to be operated upon.
*
- * @return This method returns the permanent node of the chain.
+ * @return This method returns the permanent node of the chain.
*/
RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_head(
rtems_chain_control *the_chain
@@ -133,13 +132,14 @@ RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_head(
return _Chain_Head( the_chain );
}
-/** @brief Return pointer to immutable Chain Head
+/**
+ * @brief Return pointer to immutable Chain Head
*
- * This function returns a pointer to the head node on the chain.
+ * This function returns a pointer to the head node on the chain.
*
- * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_chain is the chain to be operated upon.
*
- * @return This method returns the permanent head node of the chain.
+ * @return This method returns the permanent head node of the chain.
*/
RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_head(
const rtems_chain_control *the_chain
@@ -149,13 +149,13 @@ RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_head(
}
/**
- * @brief Return pointer to Chain Tail
+ * @brief Return pointer to Chain Tail
*
- * This function returns a pointer to the tail node on the chain.
+ * This function returns a pointer to the tail node on the chain.
*
- * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_chain is the chain to be operated upon.
*
- * @return This method returns the permanent tail node of the chain.
+ * @return This method returns the permanent tail node of the chain.
*/
RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_tail(
rtems_chain_control *the_chain
@@ -164,13 +164,14 @@ RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_tail(
return _Chain_Tail( the_chain );
}
-/** @brief Return pointer to immutable Chain Tail
+/**
+ * @brief Return pointer to immutable Chain Tail
*
- * This function returns a pointer to the tail node on the chain.
+ * This function returns a pointer to the tail node on the chain.
*
- * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_chain is the chain to be operated upon.
*
- * @return This method returns the permanent tail node of the chain.
+ * @return This method returns the permanent tail node of the chain.
*/
RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_tail(
const rtems_chain_control *the_chain
@@ -180,14 +181,14 @@ RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_tail(
}
/**
- * @brief Return pointer to Chain's First node after the permanent head.
+ * @brief Return pointer to Chain's First node after the permanent head.
*
- * This function returns a pointer to the first node on the chain after the
- * head.
+ * This function returns a pointer to the first node on the chain after the
+ * head.
*
- * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_chain is the chain to be operated upon.
*
- * @return This method returns the first node of the chain.
+ * @return This method returns the first node of the chain.
*/
RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_first(
rtems_chain_control *the_chain
@@ -196,14 +197,15 @@ RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_first(
return _Chain_First( the_chain );
}
-/** @brief Return pointer to immutable Chain's First node
+/**
+ * @brief Return pointer to immutable Chain's First node
*
- * This function returns a pointer to the first node on the chain after the
- * head.
+ * This function returns a pointer to the first node on the chain after the
+ * head.
*
- * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_chain is the chain to be operated upon.
*
- * @return This method returns the first node of the chain.
+ * @return This method returns the first node of the chain.
*/
RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_first(
const rtems_chain_control *the_chain
@@ -213,14 +215,14 @@ RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_first(
}
/**
- * @brief Return pointer to Chain's Last node before the permanent tail.
+ * @brief Return pointer to Chain's Last node before the permanent tail.
*
- * This function returns a pointer to the last node on the chain just before
- * the tail.
+ * This function returns a pointer to the last node on the chain just before
+ * the tail.
*
- * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_chain is the chain to be operated upon.
*
- * @return This method returns the last node of the chain.
+ * @return This method returns the last node of the chain.
*/
RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_last(
rtems_chain_control *the_chain
@@ -229,14 +231,15 @@ RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_last(
return _Chain_Last( the_chain );
}
-/** @brief Return pointer to immutable Chain's Last node
+/**
+ * @brief Return pointer to immutable Chain's Last node
*
- * This function returns a pointer to the last node on the chain just before
- * the tail.
+ * This function returns a pointer to the last node on the chain just before
+ * the tail.
*
- * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_chain is the chain to be operated upon.
*
- * @return This method returns the last node of the chain.
+ * @return This method returns the last node of the chain.
*/
RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_last(
const rtems_chain_control *the_chain
@@ -246,13 +249,13 @@ RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_last(
}
/**
- * @brief Return pointer the next node from this node
+ * @brief Return pointer the next node from this node
*
- * This function returns a pointer to the next node after this node.
+ * This function returns a pointer to the next node after this node.
*
- * @param[in] the_node is the node to be operated upon.
+ * @param[in] the_node is the node to be operated upon.
*
- * @return This method returns the next node on the chain.
+ * @return This method returns the next node on the chain.
*/
RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_next(
rtems_chain_node *the_node
@@ -261,13 +264,14 @@ RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_next(
return _Chain_Next( the_node );
}
-/** @brief Return pointer the immutable next node from this node
+/**
+ * @brief Return pointer the immutable next node from this node
*
- * This function returns a pointer to the next node after this node.
+ * This function returns a pointer to the next node after this node.
*
- * @param[in] the_node is the node to be operated upon.
+ * @param[in] the_node is the node to be operated upon.
*
- * @return This method returns the next node on the chain.
+ * @return This method returns the next node on the chain.
*/
RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_next(
const rtems_chain_node *the_node
@@ -277,13 +281,13 @@ RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_next(
}
/**
- * @brief Return pointer the previous node from this node
+ * @brief Return pointer the previous node from this node
*
- * This function returns a pointer to the previous node on this chain.
+ * This function returns a pointer to the previous node on this chain.
*
- * @param[in] the_node is the node to be operated upon.
+ * @param[in] the_node is the node to be operated upon.
*
- * @return This method returns the previous node on the chain.
+ * @return This method returns the previous node on the chain.
*/
RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_previous(
rtems_chain_node *the_node
@@ -292,13 +296,14 @@ RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_previous(
return _Chain_Previous( the_node );
}
-/** @brief Return pointer the immutable previous node from this node
+/**
+ * @brief Return pointer the immutable previous node from this node.
*
- * This function returns a pointer to the previous node on this chain.
+ * This function returns a pointer to the previous node on this chain.
*
- * @param[in] the_node is the node to be operated upon.
+ * @param[in] the_node is the node to be operated upon.
*
- * @return This method returns the previous node on the chain.
+ * @return This method returns the previous node on the chain.
*/
RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_previous(
const rtems_chain_node *the_node
@@ -308,16 +313,16 @@ RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_previous(
}
/**
- * @brief Are Two Nodes Equal
+ * @brief Are Two nodes equal.
*
- * This function returns true if @a left and @a right are equal,
- * and false otherwise.
+ * This function returns true if @a left and @a right are equal,
+ * and false otherwise.
*
- * @param[in] left is the node on the left hand side of the comparison.
- * @param[in] right is the node on the left hand side of the comparison.
+ * @param[in] left is the node on the left hand side of the comparison.
+ * @param[in] right is the node on the left hand side of the comparison.
*
- * @return This function returns true if @a left and @a right are equal,
- * and false otherwise.
+ * @retval true @a left is equal to @a right.
+ * @retval false @a left is not equal to @a right
*/
RTEMS_INLINE_ROUTINE bool rtems_chain_are_nodes_equal(
const rtems_chain_node *left,
@@ -328,15 +333,15 @@ RTEMS_INLINE_ROUTINE bool rtems_chain_are_nodes_equal(
}
/**
- * @brief Is the Chain Empty
+ * @brief Is the chain empty
*
- * This function returns true if there a no nodes on @a the_chain and
- * false otherwise.
+ * This function returns true if there a no nodes on @a the_chain and
+ * false otherwise.
*
- * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_chain is the chain to be operated upon.
*
- * @return This function returns true if there a no nodes on @a the_chain and
- * false otherwise.
+ * @retval true The chain is empty.
+ * @retval false The chain is not empty.
*/
RTEMS_INLINE_ROUTINE bool rtems_chain_is_empty(
const rtems_chain_control *the_chain
@@ -346,16 +351,16 @@ RTEMS_INLINE_ROUTINE bool rtems_chain_is_empty(
}
/**
- * @brief Is this the First Node on the Chain
+ * @brief Is this the first node on the chain.
*
- * This function returns true if the_node is the first node on a chain and
- * false otherwise.
+ * This function returns true if the_node is the first node on a chain and
+ * false otherwise.
*
- * @param[in] the_node is the node the caller wants to know if it is
- * the first node on a chain.
+ * @param[in] the_node is the node the caller wants to know if it is
+ * the first node on a chain.
*
- * @return This function returns true if @a the_node is the first node on
- * a chain and false otherwise.
+ * @retval true @a the_node is the first node on a chain.
+ * @retval false @a the_node is not the first node on a chain.
*/
RTEMS_INLINE_ROUTINE bool rtems_chain_is_first(
const rtems_chain_node *the_node
@@ -365,15 +370,15 @@ RTEMS_INLINE_ROUTINE bool rtems_chain_is_first(
}
/**
- * @brief Is this the Last Node on the Chain
+ * @brief Is this the last node on the chain.
*
- * This function returns true if @a the_node is the last node on a chain and
- * false otherwise.
+ * This function returns true if @a the_node is the last node on a chain and
+ * false otherwise.
*
- * @param[in] the_node is the node to check as the last node.
+ * @param[in] the_node is the node to check as the last node.
*
- * @return This function returns true if @a the_node is the last node on
- * a chain and false otherwise.
+ * @retval true @a the_node is the last node on a chain.
+ * @retval false @a the_node is not the last node on a chain
*/
RTEMS_INLINE_ROUTINE bool rtems_chain_is_last(
const rtems_chain_node *the_node
@@ -383,15 +388,15 @@ RTEMS_INLINE_ROUTINE bool rtems_chain_is_last(
}
/**
- * @brief Does this Chain have only One Node
+ * @brief Does this chain have only one node.
*
- * This function returns true if there is only one node on @a the_chain and
- * false otherwise.
+ * This function returns true if there is only one node on @a the_chain and
+ * false otherwise.
*
- * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_chain is the chain to be operated upon.
*
- * @return This function returns true if there is only one node on
- * @a the_chain and false otherwise.
+ * @retval true The chain has only one node.
+ * @retval false The chain has more than one nodes.
*/
RTEMS_INLINE_ROUTINE bool rtems_chain_has_only_one_node(
const rtems_chain_control *the_chain
@@ -401,16 +406,16 @@ RTEMS_INLINE_ROUTINE bool rtems_chain_has_only_one_node(
}
/**
- * @brief Is this Node the Chain Head
+ * @brief Is this node the chain head.
*
- * This function returns true if @a the_node is the head of the_chain and
- * false otherwise.
+ * This function returns true if @a the_node is the head of the_chain and
+ * false otherwise.
*
- * @param[in] the_chain is the chain to be operated upon.
- * @param[in] the_node is the node to check for being the Chain Head.
+ * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_node is the node to check for being the Chain Head.
*
- * @return This function returns true if @a the_node is the head of
- * @a the_chain and false otherwise.
+ * @retval true @a the_node is the head of @a the_chain.
+ * @retval false @a the_node is not the head of @a the_chain.
*/
RTEMS_INLINE_ROUTINE bool rtems_chain_is_head(
const rtems_chain_control *the_chain,
@@ -421,13 +426,16 @@ RTEMS_INLINE_ROUTINE bool rtems_chain_is_head(
}
/**
- * @brief Is this Node the Chail Tail
+ * @brief Is this node the chain tail.
*
- * This function returns true if the_node is the tail of the_chain and
- * false otherwise.
+ * This function returns true if the_node is the tail of the_chain and
+ * false otherwise.
*
- * @param[in] the_chain is the chain to be operated upon.
- * @param[in] the_node is the node to check for being the Chain Tail.
+ * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_node is the node to check for being the Chain Tail.
+ *
+ * @retval true @a the_node is the tail of @a the_chain.
+ * @retval false @a the_node is not the tail of @a the_chain.
*/
RTEMS_INLINE_ROUTINE bool rtems_chain_is_tail(
const rtems_chain_control *the_chain,
@@ -438,13 +446,13 @@ RTEMS_INLINE_ROUTINE bool rtems_chain_is_tail(
}
/**
- * @brief Extract the specified node from a chain
+ * @brief Extract the specified node from a chain.
*
- * This routine extracts @a the_node from the chain on which it resides.
- * It disables interrupts to ensure the atomicity of the
- * extract operation.
+ * This routine extracts @a the_node from the chain on which it resides.
+ * It disables interrupts to ensure the atomicity of the
+ * extract operation.
*
- * @arg the_node specifies the node to extract
+ * @arg the_node specifies the node to extract
*/
RTEMS_INLINE_ROUTINE void rtems_chain_extract(
rtems_chain_node *the_node
@@ -454,12 +462,12 @@ RTEMS_INLINE_ROUTINE void rtems_chain_extract(
}
/**
- * @brief Extract the specified node from a chain (unprotected).
+ * @brief Extract the specified node from a chain (unprotected).
*
- * This routine extracts @a the_node from the chain on which it resides.
+ * This routine extracts @a the_node from the chain on which it resides.
*
- * @note It does NOT disable interrupts to ensure the atomicity of the
- * append operation.
+ * NOTE: It does NOT disable interrupts to ensure the atomicity of the
+ * append operation.
*/
RTEMS_INLINE_ROUTINE void rtems_chain_extract_unprotected(
rtems_chain_node *the_node
@@ -469,16 +477,16 @@ RTEMS_INLINE_ROUTINE void rtems_chain_extract_unprotected(
}
/**
- * @brief Obtain the first node on a chain
+ * @brief Obtain the first node on a chain.
*
- * This function removes the first node from @a the_chain and returns
- * a pointer to that node. If @a the_chain is empty, then NULL is returned.
+ * This function removes the first node from @a the_chain and returns
+ * a pointer to that node. If @a the_chain is empty, then NULL is returned.
*
- * @return This method returns a pointer a node. If a node was removed,
- * then a pointer to that node is returned. If @a the_chain was
- * empty, then NULL is returned.
+ * @return This method returns a pointer a node. If a node was removed,
+ * then a pointer to that node is returned. If @a the_chain was
+ * empty, then NULL is returned.
*
- * @note It disables interrupts to ensure the atomicity of the get operation.
+ * NOTE: It disables interrupts to ensure the atomicity of the get operation.
*/
RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_get(
rtems_chain_control *the_chain
@@ -498,13 +506,13 @@ RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_get_unprotected(
}
/**
- * @brief Insert a node on a chain
+ * @brief Insert a node on a chain
*
- * This routine inserts @a the_node on a chain immediately following
- * @a after_node.
+ * This routine inserts @a the_node on a chain immediately following
+ * @a after_node.
*
- * @note It disables interrupts to ensure the atomicity
- * of the extract operation.
+ * NOTE: It disables interrupts to ensure the atomicity
+ * of the extract operation.
*/
RTEMS_INLINE_ROUTINE void rtems_chain_insert(
rtems_chain_node *after_node,
@@ -526,12 +534,12 @@ RTEMS_INLINE_ROUTINE void rtems_chain_insert_unprotected(
}
/**
- * @brief Append a node on the end of a chain
+ * @brief Append a node on the end of a chain.
*
- * This routine appends @a the_node onto the end of @a the_chain.
+ * This routine appends @a the_node onto the end of @a the_chain.
*
- * @note It disables interrupts to ensure the atomicity of the
- * append operation.
+ * NOTE: It disables interrupts to ensure the atomicity of the
+ * append operation.
*/
RTEMS_INLINE_ROUTINE void rtems_chain_append(
rtems_chain_control *the_chain,
@@ -542,12 +550,12 @@ RTEMS_INLINE_ROUTINE void rtems_chain_append(
}
/**
- * @brief Append a node on the end of a chain (unprotected)
+ * @brief Append a node on the end of a chain (unprotected).
*
- * This routine appends @a the_node onto the end of @a the_chain.
+ * This routine appends @a the_node onto the end of @a the_chain.
*
- * @note It does NOT disable interrupts to ensure the atomicity of the
- * append operation.
+ * NOTE: It does NOT disable interrupts to ensure the atomicity of the
+ * append operation.
*/
RTEMS_INLINE_ROUTINE void rtems_chain_append_unprotected(
rtems_chain_control *the_chain,
@@ -557,15 +565,16 @@ RTEMS_INLINE_ROUTINE void rtems_chain_append_unprotected(
_Chain_Append_unprotected( the_chain, the_node );
}
-/** @brief Prepend a Node
+/**
+ * @brief Prepend a node.
*
- * This routine prepends the_node onto the front of the_chain.
+ * This routine prepends the_node onto the front of the_chain.
*
- * @param[in] the_chain is the chain to be operated upon.
- * @param[in] the_node is the node to be prepended.
+ * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_node is the node to be prepended.
*
- * @note It disables interrupts to ensure the atomicity of the
- * prepend operation.
+ * NOTE: It disables interrupts to ensure the atomicity of the
+ * prepend operation.
*/
RTEMS_INLINE_ROUTINE void rtems_chain_prepend(
rtems_chain_control *the_chain,
@@ -575,15 +584,16 @@ RTEMS_INLINE_ROUTINE void rtems_chain_prepend(
_Chain_Prepend( the_chain, the_node );
}
-/** @brief Prepend a Node (unprotected)
+/**
+ * @brief Prepend a node (unprotected).
*
- * This routine prepends the_node onto the front of the_chain.
+ * This routine prepends the_node onto the front of the_chain.
*
- * @param[in] the_chain is the chain to be operated upon.
- * @param[in] the_node is the node to be prepended.
+ * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_node is the node to be prepended.
*
- * @note It does NOT disable interrupts to ensure the atomicity of the
- * prepend operation.
+ * NOTE: It does NOT disable interrupts to ensure the atomicity of the
+ * prepend operation.
*/
RTEMS_INLINE_ROUTINE void rtems_chain_prepend_unprotected(
rtems_chain_control *the_chain,
diff --git a/cpukit/sapi/inline/rtems/extension.inl b/cpukit/sapi/inline/rtems/extension.inl
index 968b62b58e..0d0cfc2320 100644
--- a/cpukit/sapi/inline/rtems/extension.inl
+++ b/cpukit/sapi/inline/rtems/extension.inl
@@ -3,7 +3,7 @@
*
* @ingroup ClassicUserExtensions
*
- * @brief User Extensions API.
+ * @brief User Extensions API
*/
/*
diff --git a/cpukit/sapi/inline/rtems/rbtree.inl b/cpukit/sapi/inline/rtems/rbtree.inl
index dc53fa0381..20e7aa3890 100644
--- a/cpukit/sapi/inline/rtems/rbtree.inl
+++ b/cpukit/sapi/inline/rtems/rbtree.inl
@@ -1,18 +1,20 @@
/**
- * @file rtems/rbtree.inl
+ * @file
+ *
+ * @brief Constants and Structures Associated with the RBTree API in RTEMS
*
- * This include file contains all the constants and structures associated
- * with the RBTree API in RTEMS. The rbtree is a Red Black Tree that
- * is part of the Super Core. This is the published interface to that
- * code.
+ * This include file contains all the constants and structures associated
+ * with the RBTree API in RTEMS. The rbtree is a Red Black Tree that
+ * is part of the Super Core. This is the published interface to that
+ * code.
*/
/*
- * Copyright (c) 2010-2012 Gedare Bloom.
+ * Copyright (c) 2010-2012 Gedare Bloom.
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
#ifndef _RTEMS_RBTREE_H
@@ -25,11 +27,11 @@
#include <rtems/score/rbtree.inl>
/**
- * @brief Initialize a RBTree Header
+ * @brief Initialize a RBTree header.
*
- * This routine initializes @a the_rbtree structure to manage the
- * contiguous array of @a number_nodes nodes which starts at
- * @a starting_address. Each node is of @a node_size bytes.
+ * This routine initializes @a the_rbtree structure to manage the
+ * contiguous array of @a number_nodes nodes which starts at
+ * @a starting_address. Each node is of @a node_size bytes.
*/
RTEMS_INLINE_ROUTINE void rtems_rbtree_initialize(
rtems_rbtree_control *the_rbtree,
@@ -45,9 +47,9 @@ RTEMS_INLINE_ROUTINE void rtems_rbtree_initialize(
}
/**
- * @brief Initialize this RBTree as Empty
+ * @brief Initialize this RBTree as Empty
*
- * This routine initializes @a the_rbtree to contain zero nodes.
+ * This routine initializes @a the_rbtree to contain zero nodes.
*/
RTEMS_INLINE_ROUTINE void rtems_rbtree_initialize_empty(
rtems_rbtree_control *the_rbtree,
@@ -59,10 +61,10 @@ RTEMS_INLINE_ROUTINE void rtems_rbtree_initialize_empty(
}
/**
- * @brief Set off rbtree
+ * @brief Set off RBtree.
*
- * This function sets the next and previous fields of the @a node to NULL
- * indicating the @a node is not part of any rbtree.
+ * This function sets the next and previous fields of the @a node to NULL
+ * indicating the @a node is not part of any rbtree.
*/
RTEMS_INLINE_ROUTINE void rtems_rbtree_set_off_rbtree(
rtems_rbtree_node *node
@@ -72,10 +74,10 @@ RTEMS_INLINE_ROUTINE void rtems_rbtree_set_off_rbtree(
}
/**
- * @brief Is the Node off RBTree
+ * @brief Is the Node off RBTree.
*
- * This function returns true if the @a node is not on a rbtree. A @a node is
- * off rbtree if the next and previous fields are set to NULL.
+ * This function returns true if the @a node is not on a rbtree. A @a node is
+ * off rbtree if the next and previous fields are set to NULL.
*/
RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_node_off_rbtree(
const rtems_rbtree_node *node
@@ -85,9 +87,9 @@ RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_node_off_rbtree(
}
/**
- * @brief Is the RBTree Node Pointer NULL
+ * @brief Is the RBTree Node Pointer NULL.
*
- * This function returns true if @a the_node is NULL and false otherwise.
+ * This function returns true if @a the_node is NULL and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_null_node(
const rtems_rbtree_node *the_node
@@ -97,9 +99,9 @@ RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_null_node(
}
/**
- * @brief Return pointer to RBTree Root
+ * @brief Return pointer to RBTree root.
*
- * This function returns a pointer to the root node of @a the_rbtree.
+ * This function returns a pointer to the root node of @a the_rbtree.
*/
RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_root(
const rtems_rbtree_control *the_rbtree
@@ -109,9 +111,9 @@ RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_root(
}
/**
- * @brief Return pointer to RBTree Minimum
+ * @brief Return pointer to RBTree Minimum
*
- * This function returns a pointer to the minimum node of @a the_rbtree.
+ * This function returns a pointer to the minimum node of @a the_rbtree.
*/
RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_min(
const rtems_rbtree_control *the_rbtree
@@ -121,9 +123,9 @@ RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_min(
}
/**
- * @brief Return pointer to RBTree Maximum
+ * @brief Return pointer to RBTree maximum.
*
- * This function returns a pointer to the maximum node of @a the_rbtree.
+ * This function returns a pointer to the maximum node of @a the_rbtree.
*/
RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_max(
const rtems_rbtree_control *the_rbtree
@@ -133,9 +135,9 @@ RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_max(
}
/**
- * @brief Return pointer to the left child node from this node
+ * @brief Return pointer to the left child node from this node.
*
- * This function returns a pointer to the left child node of @a the_node.
+ * This function returns a pointer to the left child node of @a the_node.
*/
RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_left(
const rtems_rbtree_node *the_node
@@ -145,9 +147,9 @@ RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_left(
}
/**
- * @brief Return pointer to the right child node from this node
+ * @brief Return pointer to the right child node from this node.
*
- * This function returns a pointer to the right child node of @a the_node.
+ * This function returns a pointer to the right child node of @a the_node.
*/
RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_right(
const rtems_rbtree_node *the_node
@@ -157,9 +159,9 @@ RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_right(
}
/**
- * @brief Return pointer to the parent child node from this node
+ * @brief Return pointer to the parent child node from this node.
*
- * This function returns a pointer to the parent node of @a the_node.
+ * This function returns a pointer to the parent node of @a the_node.
*/
RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_parent(
const rtems_rbtree_node *the_node
@@ -169,10 +171,10 @@ RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_parent(
}
/**
- * @brief Are Two Nodes Equal
+ * @brief Are two nodes equal.
*
- * This function returns true if @a left and @a right are equal,
- * and false otherwise.
+ * This function returns true if @a left and @a right are equal,
+ * and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool rtems_rbtree_are_nodes_equal(
const rtems_rbtree_node *left,
@@ -183,10 +185,10 @@ RTEMS_INLINE_ROUTINE bool rtems_rbtree_are_nodes_equal(
}
/**
- * @brief Is the RBTree Empty
+ * @brief Is the RBTree empty.
*
- * This function returns true if there a no nodes on @a the_rbtree and
- * false otherwise.
+ * This function returns true if there a no nodes on @a the_rbtree and
+ * false otherwise.
*/
RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_empty(
const rtems_rbtree_control *the_rbtree
@@ -196,10 +198,10 @@ RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_empty(
}
/**
- * @brief Is this the Minimum Node on the RBTree
+ * @brief Is this the minimum node on the RBTree.
*
- * This function returns true if @a the_node is the min node on @a the_rbtree
- * and false otherwise.
+ * This function returns true if @a the_node is the min node on @a the_rbtree
+ * and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_min(
const rtems_rbtree_control *the_rbtree,
@@ -210,10 +212,10 @@ RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_min(
}
/**
- * @brief Is this the Maximum Node on the RBTree
+ * @brief Is this the maximum node on the RBTree.
*
- * This function returns true if @a the_node is the max node on @a the_rbtree
- * and false otherwise.
+ * This function returns true if @a the_node is the max node on @a the_rbtree
+ * and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_max(
const rtems_rbtree_control *the_rbtree,
@@ -225,10 +227,10 @@ RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_max(
/**
- * @brief Does this RBTree have only One Node
+ * @brief Does this RBTree have only one node.
*
- * This function returns true if there is only one node on @a the_rbtree and
- * false otherwise.
+ * This function returns true if there is only one node on @a the_rbtree and
+ * false otherwise.
*/
RTEMS_INLINE_ROUTINE bool rtems_rbtree_has_only_one_node(
const rtems_rbtree_control *the_rbtree
@@ -238,10 +240,10 @@ RTEMS_INLINE_ROUTINE bool rtems_rbtree_has_only_one_node(
}
/**
- * @brief Is this Node the RBTree Root
+ * @brief Is this node the RBTree root.
*
- * This function returns true if @a the_node is the root of @a the_rbtree and
- * false otherwise.
+ * This function returns true if @a the_node is the root of @a the_rbtree and
+ * false otherwise.
*/
RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_root(
const rtems_rbtree_control *the_rbtree,
@@ -255,25 +257,25 @@ RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_root(
* @copydoc _RBTree_Find_unprotected()
*/
RTEMS_INLINE_ROUTINE rtems_rbtree_node* rtems_rbtree_find_unprotected(
- rtems_rbtree_control *the_rbtree,
- rtems_rbtree_node *the_node
+ const rtems_rbtree_control *the_rbtree,
+ const rtems_rbtree_node *the_node
)
{
return _RBTree_Find_unprotected( the_rbtree, the_node );
}
-/** @brief Find the node with given key in the tree
+/** @brief Find the node with given key in the tree.
*
- * This function returns a pointer to the node having key equal to the key
- * of @a the_node if it exists within @a the_rbtree, and NULL if not.
- * @a the_node has to be made up before a search.
+ * This function returns a pointer to the node having key equal to the key
+ * of @a the_node if it exists within @a the_rbtree, and NULL if not.
+ * @a the_node has to be made up before a search.
*
- * @note If the tree is not unique and contains duplicate keys, the set
- * of duplicate keys acts as FIFO.
+ * @note If the tree is not unique and contains duplicate keys, the set
+ * of duplicate keys acts as FIFO.
*/
RTEMS_INLINE_ROUTINE rtems_rbtree_node* rtems_rbtree_find(
- rtems_rbtree_control *the_rbtree,
- rtems_rbtree_node *the_node
+ const rtems_rbtree_control *the_rbtree,
+ const rtems_rbtree_node *the_node
)
{
return _RBTree_Find( the_rbtree, the_node );
@@ -331,10 +333,10 @@ RTEMS_INLINE_ROUTINE void rtems_rbtree_extract_unprotected(
}
/**
- * @brief Extract the specified node from a rbtree
+ * @brief Extract the specified node from a rbtree.
*
- * This routine extracts @a the_node from @a the_rbtree on which it resides.
- * It disables interrupts to ensure the atomicity of the extract operation.
+ * This routine extracts @a the_node from @a the_rbtree on which it resides.
+ * It disables interrupts to ensure the atomicity of the extract operation.
*/
RTEMS_INLINE_ROUTINE void rtems_rbtree_extract(
rtems_rbtree_control *the_rbtree,
@@ -345,10 +347,10 @@ RTEMS_INLINE_ROUTINE void rtems_rbtree_extract(
}
/**
- * @brief Obtain the min node on a rbtree
+ * @brief Obtain the min node on a rbtree.
*
- * This function removes the min node from @a the_rbtree and returns
- * a pointer to that node. If @a the_rbtree is empty, then NULL is returned.
+ * This function removes the min node from @a the_rbtree and returns
+ * a pointer to that node. If @a the_rbtree is empty, then NULL is returned.
*/
RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_get_min_unprotected(
@@ -359,11 +361,11 @@ RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_get_min_unprotected(
}
/**
- * @brief Obtain the min node on a rbtree
+ * @brief Obtain the min node on a rbtree.
*
- * This function removes the min node from @a the_rbtree and returns
- * a pointer to that node. If @a the_rbtree is empty, then NULL is returned.
- * It disables interrupts to ensure the atomicity of the get operation.
+ * This function removes the min node from @a the_rbtree and returns
+ * a pointer to that node. If @a the_rbtree is empty, then NULL is returned.
+ * It disables interrupts to ensure the atomicity of the get operation.
*/
RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_get_min(
rtems_rbtree_control *the_rbtree
@@ -373,10 +375,10 @@ RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_get_min(
}
/**
- * @brief Obtain the max node on a rbtree
+ * @brief Obtain the max node on a rbtree.
*
- * This function removes the max node from @a the_rbtree and returns
- * a pointer to that node. If @a the_rbtree is empty, then NULL is returned.
+ * This function removes the max node from @a the_rbtree and returns
+ * a pointer to that node. If @a the_rbtree is empty, then NULL is returned.
*/
RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_get_max_unprotected(
@@ -387,11 +389,11 @@ RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_get_max_unprotected(
}
/**
- * @brief Obtain the max node on a rbtree
+ * @brief Obtain the max node on a rbtree.
*
- * This function removes the max node from @a the_rbtree and returns
- * a pointer to that node. If @a the_rbtree is empty, then NULL is returned.
- * It disables interrupts to ensure the atomicity of the get operation.
+ * This function removes the max node from @a the_rbtree and returns
+ * a pointer to that node. If @a the_rbtree is empty, then NULL is returned.
+ * It disables interrupts to ensure the atomicity of the get operation.
*/
RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_get_max(
rtems_rbtree_control *the_rbtree
@@ -401,11 +403,11 @@ RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_get_max(
}
/**
- * @brief Peek at the min node on a rbtree
+ * @brief Peek at the min node on a rbtree.
*
- * This function returns a pointer to the min node from @a the_rbtree
- * without changing the tree. If @a the_rbtree is empty,
- * then NULL is returned.
+ * This function returns a pointer to the min node from @a the_rbtree
+ * without changing the tree. If @a the_rbtree is empty,
+ * then NULL is returned.
*/
RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_peek_min(
const rtems_rbtree_control *the_rbtree
@@ -415,11 +417,11 @@ RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_peek_min(
}
/**
- * @brief Peek at the max node on a rbtree
+ * @brief Peek at the max node on a rbtree.
*
- * This function returns a pointer to the max node from @a the_rbtree
- * without changing the tree. If @a the_rbtree is empty,
- * then NULL is returned.
+ * This function returns a pointer to the max node from @a the_rbtree
+ * without changing the tree. If @a the_rbtree is empty,
+ * then NULL is returned.
*/
RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_peek_max(
const rtems_rbtree_control *the_rbtree
@@ -439,11 +441,11 @@ RTEMS_INLINE_ROUTINE rtems_rbtree_control *rtems_rbtree_find_header_unprotected(
}
/**
- * @brief Find the control header of the tree containing a given node.
+ * @brief Find the control header of the tree containing a given node.
*
- * This routine finds the rtems_rbtree_control structure of the tree
- * containing @a the_node.
- * It disables interrupts to ensure the atomicity of the find operation.
+ * This routine finds the rtems_rbtree_control structure of the tree
+ * containing @a the_node.
+ * It disables interrupts to ensure the atomicity of the find operation.
*/
RTEMS_INLINE_ROUTINE rtems_rbtree_control *rtems_rbtree_find_header(
rtems_rbtree_node *the_node
@@ -464,15 +466,15 @@ RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_insert_unprotected(
}
/**
- * @brief Insert a node on a rbtree
+ * @brief Insert a node on a rbtree.
*
- * This routine inserts @a the_node on @a the_rbtree.
- * It disables interrupts to ensure the atomicity of the insert operation.
+ * This routine inserts @a the_node on @a the_rbtree.
+ * It disables interrupts to ensure the atomicity of the insert operation.
*
- * @retval 0 Successfully inserted.
- * @retval -1 NULL @a the_node.
- * @retval RBTree_Node* if one with equal key to the key of @a the_node exists
- * in an unique @a the_rbtree.
+ * @retval 0 Successfully inserted.
+ * @retval -1 NULL @a the_node.
+ * @retval RBTree_Node* if one with equal key to the key of @a the_node exists
+ * in an unique @a the_rbtree.
*/
RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_insert(
rtems_rbtree_control *the_rbtree,
@@ -482,7 +484,8 @@ RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_insert(
return _RBTree_Insert( the_rbtree, the_node );
}
-/** @brief Determines whether the tree is unique
+/**
+ * @brief Determines whether the tree is unique.
*/
RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_unique(
const rtems_rbtree_control *the_rbtree
diff --git a/cpukit/sapi/inline/rtems/timespec.inl b/cpukit/sapi/inline/rtems/timespec.inl
index 9874b65153..31d445c45d 100644
--- a/cpukit/sapi/inline/rtems/timespec.inl
+++ b/cpukit/sapi/inline/rtems/timespec.inl
@@ -1,9 +1,7 @@
/**
- * @file rtems/sapi/timespec.inl
+ * @file
*
- * @ingroup
- *
- * @brief Timespec API.
+ * @brief Timespec API
*/
/*
@@ -26,19 +24,18 @@
/**
* @addtogroup TimespecAPI Timespec
- *
- * @{
*/
+/**@{**/
/**
- * @brief Is Timespec Valid
+ * @brief Is timespec valid
*
- * This method determines the validity of a timespec.
+ * This method determines the validity of a timespec.
*
- * @param[in] time is the timespec instance to validate.
+ * @param[in] time is the timespec instance to validate.
*
- * @return This method returns true if @a time is valid and
- * false otherwise.
+ * @retval true The timespec is valid.
+ * @retval false The timespec is not valid.
*/
RTEMS_INLINE_ROUTINE bool rtems_timespec_is_valid(
const struct timespec *time
@@ -48,15 +45,16 @@ RTEMS_INLINE_ROUTINE bool rtems_timespec_is_valid(
}
/**
- * @brief Timespec Less Than Operator
+ * @brief Timespec less than operator.
*
- * This method is the less than operator for timespecs.
+ * This method is the less than operator for timespecs.
*
- * @param[in] lhs is the left hand side timespec
- * @param[in] rhs is the right hand side timespec
+ * @param[in] lhs is the left hand side timespec
+ * @param[in] rhs is the right hand side timespec
*
- * @return This method returns true if @a lhs is less than the @a rhs and
- * false otherwise.
+ * @retval true @a lhs is less than @a rhs.
+ * @retval false @a lhs is not less than @a rhs.
+ *
*/
RTEMS_INLINE_ROUTINE bool rtems_timespec_less_than(
const struct timespec *lhs,
@@ -67,15 +65,15 @@ RTEMS_INLINE_ROUTINE bool rtems_timespec_less_than(
}
/**
- * @brief Add to a Timespec
+ * @brief Add to a timespec.
*
- * This routine adds two timespecs. The second argument is added
- * to the first.
+ * This routine adds two timespecs. The second argument is added
+ * to the first.
*
- * @param[in] time is the base time to be added to
- * @param[in] add is the timespec to add to the first argument
+ * @param[in] time is the base time to be added to
+ * @param[in] add is the timespec to add to the first argument
*
- * @return This method returns the number of seconds @a time increased by.
+ * @return This method returns the number of seconds @a time increased by.
*/
RTEMS_INLINE_ROUTINE uint32_t rtems_timespec_add_to(
struct timespec *time,
@@ -86,14 +84,14 @@ RTEMS_INLINE_ROUTINE uint32_t rtems_timespec_add_to(
}
/**
- * @brief Convert Timespec to Number of Ticks
+ * @brief Convert timespec to number of ticks.
*
- * This routine convert the @a time timespec to the corresponding number
- * of clock ticks.
+ * This routine convert the @a time timespec to the corresponding number
+ * of clock ticks.
*
- * @param[in] time is the time to be converted
+ * @param[in] time is the time to be converted
*
- * @return This method returns the number of ticks computed.
+ * @return This method returns the number of ticks computed.
*/
RTEMS_INLINE_ROUTINE uint32_t rtems_timespec_to_ticks(
const struct timespec *time
@@ -103,13 +101,13 @@ RTEMS_INLINE_ROUTINE uint32_t rtems_timespec_to_ticks(
}
/**
- * @brief Convert Ticks to Timespec
+ * @brief Convert ticks to timespec.
*
- * This routine converts the @a ticks value to the corresponding
- * timespec format @a time.
+ * This routine converts the @a ticks value to the corresponding
+ * timespec format @a time.
*
- * @param[in] time is the timespec format time result
- * @param[in] ticks is the number of ticks to convert
+ * @param[in] time is the timespec format time result
+ * @param[in] ticks is the number of ticks to convert
*/
RTEMS_INLINE_ROUTINE void rtems_timespec_from_ticks(
@@ -121,16 +119,16 @@ RTEMS_INLINE_ROUTINE void rtems_timespec_from_ticks(
}
/**
- * @brief Subtract Two Timespec
+ * @brief Subtract two timespec.
*
- * This routine subtracts two timespecs. @a result is set to
- * @a end - @a start.
+ * This routine subtracts two timespecs. @a result is set to
+ * @a end - @a start.
*
- * @param[in] start is the starting time
- * @param[in] end is the ending time
- * @param[in] result is the difference between starting and ending time.
+ * @param[in] start is the starting time
+ * @param[in] end is the ending time
+ * @param[in] result is the difference between starting and ending time.
*
- * @return This method fills in @a result.
+ * @return This method fills in @a result.
*/
RTEMS_INLINE_ROUTINE void rtems_timespec_subtract(
const struct timespec *start,
@@ -142,17 +140,17 @@ RTEMS_INLINE_ROUTINE void rtems_timespec_subtract(
}
/**
- * @brief Divide Timespec By Integer
+ * @brief Divide timespec by integer.
*
- * This routine divides a timespec by an integer value. The expected
- * use is to assist in benchmark calculations where you typically
- * divide a duration by a number of iterations.
+ * This routine divides a timespec by an integer value. The expected
+ * use is to assist in benchmark calculations where you typically
+ * divide a duration by a number of iterations.
*
- * @param[in] time is the total
- * @param[in] iterations is the number of iterations
- * @param[in] result is the average time.
+ * @param[in] time is the total
+ * @param[in] iterations is the number of iterations
+ * @param[in] result is the average time.
*
- * @return This method fills in @a result.
+ * @return This method fills in @a result.
*/
RTEMS_INLINE_ROUTINE void rtems_timespec_divide_by_integer(
const struct timespec *time,
@@ -164,17 +162,17 @@ RTEMS_INLINE_ROUTINE void rtems_timespec_divide_by_integer(
}
/**
- * @brief Divide Timespec
+ * @brief Divide timespec.
*
- * This routine divides a timespec by another timespec. The
- * intended use is for calculating percentages to three decimal points.
+ * This routine divides a timespec by another timespec. The
+ * intended use is for calculating percentages to three decimal points.
*
- * @param[in] lhs is the left hand number
- * @param[in] rhs is the right hand number
- * @param[in] ival_percentage is the integer portion of the average
- * @param[in] fval_percentage is the thousandths of percentage
+ * @param[in] lhs is the left hand number
+ * @param[in] rhs is the right hand number
+ * @param[in] ival_percentage is the integer portion of the average
+ * @param[in] fval_percentage is the thousandths of percentage
*
- * @return This method fills in @a result.
+ * @return This method fills in @a result.
*/
RTEMS_INLINE_ROUTINE void rtems_timespec_divide(
const struct timespec *lhs,
@@ -187,14 +185,14 @@ RTEMS_INLINE_ROUTINE void rtems_timespec_divide(
}
/**
- * @brief Set Timespec to Seconds Nanosecond
+ * @brief Set timespec to seconds nanosecond.
*
- * This method sets the timespec to the specified seconds and nanoseconds
- * value.
+ * This method sets the timespec to the specified seconds and nanoseconds
+ * value.
*
- * @param[in] _time points to the timespec instance to validate.
- * @param[in] _seconds is the seconds portion of the timespec
- * @param[in] _nanoseconds is the nanoseconds portion of the timespec
+ * @param[in] _time points to the timespec instance to validate.
+ * @param[in] _seconds is the seconds portion of the timespec
+ * @param[in] _nanoseconds is the nanoseconds portion of the timespec
*/
RTEMS_INLINE_ROUTINE void rtems_timespec_set(
struct timespec *_time,
@@ -206,12 +204,12 @@ RTEMS_INLINE_ROUTINE void rtems_timespec_set(
}
/**
- * @brief Zero Timespec
+ * @brief Zero timespec.
*
- * This method sets the timespec to zero.
- * value.
+ * This method sets the timespec to zero.
+ * value.
*
- * @param[in] _time points to the timespec instance to zero.
+ * @param[in] _time points to the timespec instance to zero.
*/
RTEMS_INLINE_ROUTINE void rtems_timespec_zero(
struct timespec *_time
@@ -221,13 +219,13 @@ RTEMS_INLINE_ROUTINE void rtems_timespec_zero(
}
/**
- * @brief Get Seconds Portion of Timespec
+ * @brief Get seconds portion of timespec.
*
- * This method returns the seconds portion of the specified timespec
+ * This method returns the seconds portion of the specified timespec
*
- * @param[in] _time points to the timespec
+ * @param[in] _time points to the timespec
*
- * @return The seconds portion of @a _time.
+ * @return The seconds portion of @a _time.
*/
RTEMS_INLINE_ROUTINE time_t rtems_timespec_get_seconds(
struct timespec *_time
@@ -237,13 +235,13 @@ RTEMS_INLINE_ROUTINE time_t rtems_timespec_get_seconds(
}
/**
- * @brief Get Nanoseconds Portion of Timespec
+ * @brief Get nanoseconds portion of timespec.
*
- * This method returns the nanoseconds portion of the specified timespec
+ * This method returns the nanoseconds portion of the specified timespec
*
- * @param[in] _time points to the timespec
+ * @param[in] _time points to the timespec
*
- * @return The nanoseconds portion of @a _time.
+ * @return The nanoseconds portion of @a _time.
*/
RTEMS_INLINE_ROUTINE uint32_t rtems_timespec_get_nanoseconds(
struct timespec *_time
@@ -252,17 +250,16 @@ RTEMS_INLINE_ROUTINE uint32_t rtems_timespec_get_nanoseconds(
return _Timespec_Get_nanoseconds( _time );
}
-
/**
- * @brief Timespec Greater Than Operator
+ * @brief Timespec greater than operator.
*
- * This method is the greater than operator for timespecs.
+ * This method is the greater than operator for timespecs.
*
- * @param[in] lhs is the left hand side timespec
- * @param[in] rhs is the right hand side timespec
+ * @param[in] _lhs is the left hand side timespec
+ * @param[in] _rhs is the right hand side timespec
*
- * @return This method returns true if @a lhs is greater than the @a rhs and
- * false otherwise.
+ * @retval true @a _lhs is greater than @a _rhs.
+ * @retval false @a _lhs is not greater than @a _rhs.
*/
RTEMS_INLINE_ROUTINE bool rtems_timespec_greater_than(
const struct timespec *_lhs,
@@ -274,13 +271,13 @@ RTEMS_INLINE_ROUTINE bool rtems_timespec_greater_than(
/**
* @brief Timespec equal to Operator
*
- * This method is the is equal to than operator for timespecs.
+ * This method is the is equal to than operator for timespecs.
*
- * @param[in] lhs is the left hand side timespec
- * @param[in] rhs is the right hand side timespec
+ * @param[in] lhs is the left hand side timespec
+ * @param[in] rhs is the right hand side timespec
*
- * @return This method returns true if @a lhs is equal to @a rhs and
- * false otherwise.
+ * @retval true @a lhs is equal to @a rhs.
+ * @retval false @a lhs is not equal to @a rhs.
*/
RTEMS_INLINE_ROUTINE bool rtems_timespec_equal_to(
const struct timespec *lhs,
diff --git a/cpukit/sapi/src/fatalsrcdesc.c b/cpukit/sapi/src/fatalsrcdesc.c
new file mode 100644
index 0000000000..fbe8485853
--- /dev/null
+++ b/cpukit/sapi/src/fatalsrcdesc.c
@@ -0,0 +1,53 @@
+/**
+ * @file
+ *
+ * @brief Implementation of rtems_fatal_source_description()
+ *
+ * @ingroup ClassicFatal
+ */
+
+/*
+ * Copyright (c) 2013 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#if HAVE_CONFIG_H
+ #include "config.h"
+#endif
+
+#include <rtems/fatal.h>
+
+static const char *const fatal_source_desc [] = {
+ "INTERNAL_ERROR_CORE",
+ "INTERNAL_ERROR_RTEMS_API",
+ "INTERNAL_ERROR_POSIX_API",
+ "RTEMS_FATAL_SOURCE_BDBUF",
+ "RTEMS_FATAL_SOURCE_APPLICATION",
+ "RTEMS_FATAL_SOURCE_EXIT",
+ "RTEMS_FATAL_SOURCE_BSP_GENERIC",
+ "RTEMS_FATAL_SOURCE_BSP_SPECIFIC",
+ "RTEMS_FATAL_SOURCE_ASSERT",
+ "RTEMS_FATAL_SOURCE_STACK_CHECKER",
+ "RTEMS_FATAL_SOURCE_EXCEPTION"
+};
+
+const char *rtems_fatal_source_description( rtems_fatal_source source )
+{
+ size_t i = source;
+ const char *desc = "?";
+
+ if ( i < RTEMS_ARRAY_SIZE( fatal_source_desc ) ) {
+ desc = fatal_source_desc [i];
+ }
+
+ return desc;
+}
diff --git a/cpukit/score/cpu/arm/Makefile.am b/cpukit/score/cpu/arm/Makefile.am
index f0ddbd679b..56a5fdd465 100644
--- a/cpukit/score/cpu/arm/Makefile.am
+++ b/cpukit/score/cpu/arm/Makefile.am
@@ -6,6 +6,7 @@ include_rtems_scoredir = $(includedir)/rtems/score
include_rtems_score_HEADERS = rtems/score/cpu.h
include_rtems_score_HEADERS += rtems/score/cpu_asm.h
include_rtems_score_HEADERS += rtems/score/arm.h
+include_rtems_score_HEADERS += rtems/score/armv4.h
include_rtems_score_HEADERS += rtems/score/armv7m.h
include_rtems_score_HEADERS += rtems/score/types.h
@@ -19,10 +20,12 @@ libscorecpu_a_SOURCES += arm_exc_interrupt.S
libscorecpu_a_SOURCES += arm_exc_handler_low.S
libscorecpu_a_SOURCES += arm_exc_handler_high.c
libscorecpu_a_SOURCES += arm-exception-frame-print.c
+libscorecpu_a_SOURCES += arm-exception-default.c
+libscorecpu_a_SOURCES += armv4-exception-default.S
libscorecpu_a_SOURCES += armv7m-context-initialize.c
libscorecpu_a_SOURCES += armv7m-context-restore.c
libscorecpu_a_SOURCES += armv7m-context-switch.c
-libscorecpu_a_SOURCES += armv7m-exception-frame-print.c
+libscorecpu_a_SOURCES += armv7m-exception-default.c
libscorecpu_a_SOURCES += armv7m-exception-handler-get.c
libscorecpu_a_SOURCES += armv7m-exception-handler-set.c
libscorecpu_a_SOURCES += armv7m-exception-priority-get.c
diff --git a/cpukit/score/cpu/arm/armv7m-exception-frame-print.c b/cpukit/score/cpu/arm/arm-exception-default.c
index 86931b2b24..ec29f23431 100644
--- a/cpukit/score/cpu/arm/armv7m-exception-frame-print.c
+++ b/cpukit/score/cpu/arm/arm-exception-default.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2013 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Obere Lagerstr. 30
@@ -17,12 +17,9 @@
#endif
#include <rtems/score/cpu.h>
+#include <rtems/fatal.h>
-#ifdef ARM_MULTILIB_ARCH_V7M
-
-void _CPU_Exception_frame_print( const CPU_Exception_frame *frame )
+void _ARM_Exception_default( CPU_Exception_frame *frame )
{
- /* TODO */
+ rtems_fatal( RTEMS_FATAL_SOURCE_EXCEPTION, (rtems_fatal_code) frame );
}
-
-#endif /* ARM_MULTILIB_ARCH_V7M */
diff --git a/cpukit/score/cpu/arm/arm-exception-frame-print.c b/cpukit/score/cpu/arm/arm-exception-frame-print.c
index 4d89f69f76..53d31adb73 100644
--- a/cpukit/score/cpu/arm/arm-exception-frame-print.c
+++ b/cpukit/score/cpu/arm/arm-exception-frame-print.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2012-2013 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Obere Lagerstr. 30
@@ -17,12 +17,46 @@
#endif
#include <rtems/score/cpu.h>
-
-#ifdef ARM_MULTILIB_ARCH_V4
+#include <rtems/bspIo.h>
void _CPU_Exception_frame_print( const CPU_Exception_frame *frame )
{
- /* TODO */
+ printk(
+ "\n"
+ "R0 = 0x%08x R8 = 0x%08x\n"
+ "R1 = 0x%08x R9 = 0x%08x\n"
+ "R2 = 0x%08x R10 = 0x%08x\n"
+ "R3 = 0x%08x R11 = 0x%08x\n"
+ "R4 = 0x%08x R12 = 0x%08x\n"
+ "R5 = 0x%08x SP = 0x%08x\n"
+ "R6 = 0x%08x LR = 0x%08x\n"
+ "R7 = 0x%08x PC = 0x%08x\n"
+#if defined(ARM_MULTILIB_ARCH_V4)
+ "CPSR = 0x%08x VEC = 0x%08x\n",
+#elif defined(ARM_MULTILIB_ARCH_V7M)
+ "XPSR = 0x%08x VEC = 0x%08x\n",
+#endif
+ frame->register_r0,
+ frame->register_r1,
+ frame->register_r2,
+ frame->register_r3,
+ frame->register_r4,
+ frame->register_r5,
+ frame->register_r6,
+ frame->register_r7,
+ frame->register_r8,
+ frame->register_r9,
+ frame->register_r10,
+ frame->register_r11,
+ frame->register_r12,
+ frame->register_sp,
+ frame->register_lr,
+ frame->register_pc,
+#if defined(ARM_MULTILIB_ARCH_V4)
+ frame->register_cpsr,
+#elif defined(ARM_MULTILIB_ARCH_V7M)
+ frame->register_xpsr,
+#endif
+ frame->vector
+ );
}
-
-#endif /* ARM_MULTILIB_ARCH_V4 */
diff --git a/cpukit/score/cpu/arm/arm_exc_abort.S b/cpukit/score/cpu/arm/arm_exc_abort.S
index 59ab5d2988..f4cf6724b8 100644
--- a/cpukit/score/cpu/arm/arm_exc_abort.S
+++ b/cpukit/score/cpu/arm/arm_exc_abort.S
@@ -28,13 +28,13 @@
#ifdef ARM_MULTILIB_ARCH_V4
-.extern rtems_fatal_error_occurred
+.extern _ARM_Exception_default
-.globl arm_exc_data_abort_set_handler
-.globl arm_exc_data_abort
+.globl _ARMV4_Exception_data_abort_set_handler
+.globl _ARMV4_Exception_data_abort
-.globl arm_exc_prefetch_abort_set_handler
-.globl arm_exc_prefetch_abort
+.globl _ARMV4_Exception_prefetch_abort_set_handler
+.globl _ARMV4_Exception_prefetch_abort
.section ".bss"
@@ -50,7 +50,7 @@ prefetch_abort_handler:
.thumb_func
#endif
-arm_exc_data_abort_set_handler:
+_ARMV4_Exception_data_abort_set_handler:
ldr r1, =data_abort_handler
str r0, [r1]
#ifdef __thumb__
@@ -63,7 +63,7 @@ arm_exc_data_abort_set_handler:
.thumb_func
#endif
-arm_exc_prefetch_abort_set_handler:
+_ARMV4_Exception_prefetch_abort_set_handler:
ldr r1, =prefetch_abort_handler
str r0, [r1]
#ifdef __thumb__
@@ -74,20 +74,22 @@ arm_exc_prefetch_abort_set_handler:
.arm
-arm_exc_prefetch_abort:
+_ARMV4_Exception_prefetch_abort:
/* Save context and load handler */
- sub sp, #16
+ sub sp, #20
stmdb sp!, {r0-r12}
+ mov r4, #3
ldr r6, =prefetch_abort_handler
b save_more_context
-arm_exc_data_abort:
+_ARMV4_Exception_data_abort:
/* Save context and load handler */
- sub sp, #16
+ sub sp, #20
stmdb sp!, {r0-r12}
+ mov r4, #4
ldr r6, =data_abort_handler
save_more_context:
@@ -95,22 +97,21 @@ save_more_context:
/* Save more context */
mov r2, lr
mrs r3, spsr
- mrs r4, cpsr
+ mrs r7, cpsr
orr r5, r3, #ARM_PSR_I
bic r5, #ARM_PSR_T
msr cpsr, r5
mov r0, sp
mov r1, lr
- msr cpsr, r4
- add r5, sp, #68
- stmdb r5!, {r0-r3}
+ msr cpsr, r7
+ add r5, sp, #72
+ stmdb r5!, {r0-r4}
/* Call high level handler */
ldr r2, [r6]
cmp r2, #0
- ldreq r2, =rtems_fatal_error_occurred
- movne r0, sp
- moveq r0, #0xaa
+ ldreq r2, =_ARM_Exception_default
+ mov r0, sp
#ifndef __thumb__
mov lr, pc
mov pc, r2
@@ -121,11 +122,11 @@ save_more_context:
#endif /* __thumb__ */
/* Restore context */
- ldmia r5!, {r0-r3}
+ ldmia r5!, {r0-r4}
mov lr, r2
msr spsr, r3
ldmia sp!, {r0-r12}
- add sp, #16
+ add sp, #20
/* Return from interrupt */
subs pc, lr, #8
diff --git a/cpukit/score/cpu/arm/arm_exc_handler_high.c b/cpukit/score/cpu/arm/arm_exc_handler_high.c
index 5f0fdd05f1..9e9449bdd8 100644
--- a/cpukit/score/cpu/arm/arm_exc_handler_high.c
+++ b/cpukit/score/cpu/arm/arm_exc_handler_high.c
@@ -42,7 +42,7 @@ static void _defaultExcHandler (CPU_Exception_frame *ctx)
printk("----------------------------------------------------------\n\r");
#if 1
printk("Exception 0x%x caught at PC 0x%x by thread %d\n",
- ctx->register_ip, ctx->register_lr - 4,
+ ctx->vector, ctx->register_lr - 4,
_Thread_Executing->Object.id);
#endif
printk("----------------------------------------------------------\n\r");
diff --git a/cpukit/score/cpu/arm/arm_exc_interrupt.S b/cpukit/score/cpu/arm/arm_exc_interrupt.S
index 8d7cfbc1c2..82f3007f5c 100644
--- a/cpukit/score/cpu/arm/arm_exc_interrupt.S
+++ b/cpukit/score/cpu/arm/arm_exc_interrupt.S
@@ -50,8 +50,8 @@
.extern bsp_interrupt_dispatch
.arm
-.globl arm_exc_interrupt
-arm_exc_interrupt:
+.globl _ARMV4_Exception_interrupt
+_ARMV4_Exception_interrupt:
/* Save exchange registers to exchange area */
stmdb sp, EXCHANGE_LIST
diff --git a/cpukit/score/cpu/arm/armv4-exception-default.S b/cpukit/score/cpu/arm/armv4-exception-default.S
new file mode 100644
index 0000000000..e5520d5817
--- /dev/null
+++ b/cpukit/score/cpu/arm/armv4-exception-default.S
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2013 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#ifdef HAVE_CONFIG_H
+ #include "config.h"
+#endif
+
+#include <rtems/asm.h>
+#include <rtems/system.h>
+
+#ifdef ARM_MULTILIB_ARCH_V4
+
+.extern _ARM_Exception_default
+
+.globl _ARMV4_Exception_undef_default
+.globl _ARMV4_Exception_swi_default
+.globl _ARMV4_Exception_data_abort_default
+.globl _ARMV4_Exception_pref_abort_default
+.globl _ARMV4_Exception_reserved_default
+.globl _ARMV4_Exception_irq_default
+.globl _ARMV4_Exception_fiq_default
+
+.section ".text"
+
+.arm
+
+_ARMV4_Exception_undef_default:
+
+ /* Save context and load vector */
+ sub sp, #20
+ stmdb sp!, {r0-r12}
+ mov r4, #1
+
+ b save_more_context
+
+_ARMV4_Exception_swi_default:
+
+ /* Save context and load vector */
+ sub sp, #20
+ stmdb sp!, {r0-r12}
+ mov r4, #2
+
+ b save_more_context
+
+_ARMV4_Exception_pref_abort_default:
+
+ /* Save context and load vector */
+ sub sp, #20
+ stmdb sp!, {r0-r12}
+ mov r4, #3
+
+ b save_more_context
+
+_ARMV4_Exception_data_abort_default:
+
+ /* Save context and load vector */
+ sub sp, #20
+ stmdb sp!, {r0-r12}
+ mov r4, #4
+
+_ARMV4_Exception_reserved_default:
+
+ /* Save context and load vector */
+ sub sp, #20
+ stmdb sp!, {r0-r12}
+ mov r4, #5
+
+_ARMV4_Exception_irq_default:
+
+ /* Save context and load vector */
+ sub sp, #20
+ stmdb sp!, {r0-r12}
+ mov r4, #6
+
+_ARMV4_Exception_fiq_default:
+
+ /* Save context and load vector */
+ sub sp, #20
+ stmdb sp!, {r0-r12}
+ mov r4, #7
+
+save_more_context:
+
+ /* Save more context */
+ mov r2, lr
+ mrs r3, spsr
+ mrs r7, cpsr
+ orr r5, r3, #ARM_PSR_I
+ bic r5, #ARM_PSR_T
+ msr cpsr, r5
+ mov r0, sp
+ mov r1, lr
+ msr cpsr, r7
+ add r5, sp, #72
+ stmdb r5!, {r0-r4}
+
+ /* Call high level handler */
+ mov r0, sp
+ SWITCH_FROM_ARM_TO_THUMB r1
+ bl _ARM_Exception_default
+
+ /* Just in case */
+twiddle:
+ b twiddle
+
+#endif /* ARM_MULTILIB_ARCH_V4 */
diff --git a/cpukit/score/cpu/arm/armv7m-context-initialize.c b/cpukit/score/cpu/arm/armv7m-context-initialize.c
index 640adae03d..892df4d8c8 100644
--- a/cpukit/score/cpu/arm/armv7m-context-initialize.c
+++ b/cpukit/score/cpu/arm/armv7m-context-initialize.c
@@ -24,12 +24,11 @@
#include <string.h>
+#include <rtems/score/armv7m.h>
#include <rtems/score/thread.h>
#ifdef ARM_MULTILIB_ARCH_V7M
-#include <rtems/score/armv7m.h>
-
void _CPU_Context_Initialize(
Context_Control *context,
void *stack_area_begin,
diff --git a/cpukit/score/cpu/arm/armv7m-context-restore.c b/cpukit/score/cpu/arm/armv7m-context-restore.c
index 477904953b..a9afdf37e0 100644
--- a/cpukit/score/cpu/arm/armv7m-context-restore.c
+++ b/cpukit/score/cpu/arm/armv7m-context-restore.c
@@ -22,12 +22,11 @@
#include "config.h"
#endif
+#include <rtems/score/armv7m.h>
#include <rtems/score/percpu.h>
#ifdef ARM_MULTILIB_ARCH_V7M
-#include <rtems/score/armv7m.h>
-
void __attribute__((naked)) _CPU_Context_restore(
Context_Control *heir
)
diff --git a/cpukit/score/cpu/arm/armv7m-context-switch.c b/cpukit/score/cpu/arm/armv7m-context-switch.c
index 0fd3c206d0..9814ed07a1 100644
--- a/cpukit/score/cpu/arm/armv7m-context-switch.c
+++ b/cpukit/score/cpu/arm/armv7m-context-switch.c
@@ -22,12 +22,11 @@
#include "config.h"
#endif
+#include <rtems/score/armv7m.h>
#include <rtems/score/percpu.h>
#ifdef ARM_MULTILIB_ARCH_V7M
-#include <rtems/score/armv7m.h>
-
void __attribute__((naked)) _CPU_Context_switch(
Context_Control *executing,
Context_Control *heir
diff --git a/cpukit/score/cpu/arm/armv7m-exception-default.c b/cpukit/score/cpu/arm/armv7m-exception-default.c
new file mode 100644
index 0000000000..fbd1039028
--- /dev/null
+++ b/cpukit/score/cpu/arm/armv7m-exception-default.c
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2013 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#ifdef HAVE_CONFIG_H
+ #include "config.h"
+#endif
+
+#include <rtems/score/armv7m.h>
+
+#ifdef ARM_MULTILIB_ARCH_V7M
+
+void __attribute__((naked)) _ARMV7M_Exception_default( void )
+{
+ __asm__ volatile (
+ "sub sp, %[cpufsz]\n"
+ "stm sp, {r0-r12}\n"
+ "mov r2, lr\n"
+ "mrs r1, msp\n"
+ "mrs r0, psp\n"
+ "cmn r2, #3\n"
+ "itt ne\n"
+ "movne r0, r1\n"
+ "addne r0, %[cpufsz]\n"
+ "add r2, r0, %[v7mlroff]\n"
+ "add r1, sp, %[cpulroff]\n"
+ "ldm r2, {r3-r5}\n"
+ "stm r1, {r3-r5}\n"
+ "mrs r1, ipsr\n"
+ "str r1, [sp, %[cpuvecoff]]\n"
+ "mov r0, sp\n"
+ "b _ARM_Exception_default\n"
+ :
+ : [cpufsz] "i" (sizeof(CPU_Exception_frame)),
+ [v7mfsz] "i" (sizeof(ARMV7M_Exception_frame)),
+ [cpuspoff] "J" (offsetof(CPU_Exception_frame, register_sp)),
+ [cpulroff] "i" (offsetof(CPU_Exception_frame, register_lr)),
+ [v7mlroff] "i" (offsetof(ARMV7M_Exception_frame, register_lr)),
+ [cpuvecoff] "J" (offsetof(CPU_Exception_frame, vector))
+ );
+}
+
+#endif /* ARM_MULTILIB_ARCH_V7M */
diff --git a/cpukit/score/cpu/arm/armv7m-exception-handler-get.c b/cpukit/score/cpu/arm/armv7m-exception-handler-get.c
index cf25cafe77..cf100778b8 100644
--- a/cpukit/score/cpu/arm/armv7m-exception-handler-get.c
+++ b/cpukit/score/cpu/arm/armv7m-exception-handler-get.c
@@ -22,12 +22,11 @@
#include "config.h"
#endif
+#include <rtems/score/armv7m.h>
#include <rtems/score/cpu.h>
#ifdef ARM_MULTILIB_ARCH_V7M
-#include <rtems/score/armv7m.h>
-
ARMV7M_Exception_handler _ARMV7M_Get_exception_handler( int index )
{
return _ARMV7M_SCB->vtor [index];
diff --git a/cpukit/score/cpu/arm/armv7m-exception-handler-set.c b/cpukit/score/cpu/arm/armv7m-exception-handler-set.c
index ea3fce3ca5..0de3a222c0 100644
--- a/cpukit/score/cpu/arm/armv7m-exception-handler-set.c
+++ b/cpukit/score/cpu/arm/armv7m-exception-handler-set.c
@@ -22,12 +22,10 @@
#include "config.h"
#endif
-#include <rtems/score/cpu.h>
+#include <rtems/score/armv7m.h>
#ifdef ARM_MULTILIB_ARCH_V7M
-#include <rtems/score/armv7m.h>
-
void _ARMV7M_Set_exception_handler(
int index,
ARMV7M_Exception_handler handler
diff --git a/cpukit/score/cpu/arm/armv7m-exception-priority-get.c b/cpukit/score/cpu/arm/armv7m-exception-priority-get.c
index 79224e184f..6a1df1df43 100644
--- a/cpukit/score/cpu/arm/armv7m-exception-priority-get.c
+++ b/cpukit/score/cpu/arm/armv7m-exception-priority-get.c
@@ -21,12 +21,10 @@
#include "config.h"
#endif
-#include <rtems/score/cpu.h>
+#include <rtems/score/armv7m.h>
#ifdef ARM_MULTILIB_ARCH_V7M
-#include <rtems/score/armv7m.h>
-
int _ARMV7M_Get_exception_priority( int vector )
{
if ( _ARMV7M_Is_vector_an_irq( vector ) ) {
diff --git a/cpukit/score/cpu/arm/armv7m-exception-priority-handler.c b/cpukit/score/cpu/arm/armv7m-exception-priority-handler.c
index de0b020f23..7b3ff50dbe 100644
--- a/cpukit/score/cpu/arm/armv7m-exception-priority-handler.c
+++ b/cpukit/score/cpu/arm/armv7m-exception-priority-handler.c
@@ -22,12 +22,10 @@
#include "config.h"
#endif
-#include <rtems/score/cpu.h>
+#include <rtems/score/armv7m.h>
#ifdef ARM_MULTILIB_ARCH_V7M
-#include <rtems/score/armv7m.h>
-
void _ARMV7M_Set_exception_priority_and_handler(
int index,
int priority,
diff --git a/cpukit/score/cpu/arm/armv7m-exception-priority-set.c b/cpukit/score/cpu/arm/armv7m-exception-priority-set.c
index 085ce2dd96..76dd6d3d7f 100644
--- a/cpukit/score/cpu/arm/armv7m-exception-priority-set.c
+++ b/cpukit/score/cpu/arm/armv7m-exception-priority-set.c
@@ -22,12 +22,10 @@
#include "config.h"
#endif
-#include <rtems/score/cpu.h>
+#include <rtems/score/armv7m.h>
#ifdef ARM_MULTILIB_ARCH_V7M
-#include <rtems/score/armv7m.h>
-
void _ARMV7M_Set_exception_priority( int vector, int priority )
{
if ( _ARMV7M_Is_vector_an_irq( vector ) ) {
diff --git a/cpukit/score/cpu/arm/armv7m-initialize.c b/cpukit/score/cpu/arm/armv7m-initialize.c
index cb3c19656d..236a0970e9 100644
--- a/cpukit/score/cpu/arm/armv7m-initialize.c
+++ b/cpukit/score/cpu/arm/armv7m-initialize.c
@@ -22,12 +22,10 @@
#include "config.h"
#endif
-#include <rtems/score/cpu.h>
+#include <rtems/score/armv7m.h>
#ifdef ARM_MULTILIB_ARCH_V7M
-#include <rtems/score/armv7m.h>
-
void _CPU_Initialize( void )
{
/*
diff --git a/cpukit/score/cpu/arm/armv7m-isr-dispatch.c b/cpukit/score/cpu/arm/armv7m-isr-dispatch.c
index 7c2cd7370c..3cfe7d7ca5 100644
--- a/cpukit/score/cpu/arm/armv7m-isr-dispatch.c
+++ b/cpukit/score/cpu/arm/armv7m-isr-dispatch.c
@@ -22,12 +22,11 @@
#include "config.h"
#endif
+#include <rtems/score/armv7m.h>
#include <rtems/score/percpu.h>
#ifdef ARM_MULTILIB_ARCH_V7M
-#include <rtems/score/armv7m.h>
-
static void __attribute__((naked)) _ARMV7M_Thread_dispatch( void )
{
__asm__ volatile (
diff --git a/cpukit/score/cpu/arm/armv7m-isr-enter-leave.c b/cpukit/score/cpu/arm/armv7m-isr-enter-leave.c
index 1bce10ae77..5af0a8120d 100644
--- a/cpukit/score/cpu/arm/armv7m-isr-enter-leave.c
+++ b/cpukit/score/cpu/arm/armv7m-isr-enter-leave.c
@@ -22,12 +22,11 @@
#include "config.h"
#endif
+#include <rtems/score/armv7m.h>
#include <rtems/score/thread.h>
#ifdef ARM_MULTILIB_ARCH_V7M
-#include <rtems/score/armv7m.h>
-
void _ARMV7M_Interrupt_service_enter( void )
{
++_Thread_Dispatch_disable_level;
diff --git a/cpukit/score/cpu/arm/armv7m-isr-level-get.c b/cpukit/score/cpu/arm/armv7m-isr-level-get.c
index 887e30843d..7ba13ac111 100644
--- a/cpukit/score/cpu/arm/armv7m-isr-level-get.c
+++ b/cpukit/score/cpu/arm/armv7m-isr-level-get.c
@@ -22,12 +22,10 @@
#include "config.h"
#endif
-#include <rtems/score/cpu.h>
+#include <rtems/score/armv7m.h>
#ifdef ARM_MULTILIB_ARCH_V7M
-#include <rtems/score/armv7m.h>
-
uint32_t _CPU_ISR_Get_level( void )
{
return 0;
diff --git a/cpukit/score/cpu/arm/armv7m-isr-level-set.c b/cpukit/score/cpu/arm/armv7m-isr-level-set.c
index 2f4c36312e..81cb9fdbd3 100644
--- a/cpukit/score/cpu/arm/armv7m-isr-level-set.c
+++ b/cpukit/score/cpu/arm/armv7m-isr-level-set.c
@@ -22,12 +22,10 @@
#include "config.h"
#endif
-#include <rtems/score/cpu.h>
+#include <rtems/score/armv7m.h>
#ifdef ARM_MULTILIB_ARCH_V7M
-#include <rtems/score/armv7m.h>
-
void _CPU_ISR_Set_level( uint32_t level )
{
_ARMV7M_Set_basepri( 0 );
diff --git a/cpukit/score/cpu/arm/armv7m-isr-vector-install.c b/cpukit/score/cpu/arm/armv7m-isr-vector-install.c
index 82b8e02e2b..ef813e318b 100644
--- a/cpukit/score/cpu/arm/armv7m-isr-vector-install.c
+++ b/cpukit/score/cpu/arm/armv7m-isr-vector-install.c
@@ -22,12 +22,11 @@
#include "config.h"
#endif
+#include <rtems/score/armv7m.h>
#include <rtems/score/isr.h>
#ifdef ARM_MULTILIB_ARCH_V7M
-#include <rtems/score/armv7m.h>
-
void _CPU_ISR_install_vector(
uint32_t vector,
proc_ptr new_handler,
diff --git a/cpukit/score/cpu/arm/armv7m-multitasking-start-stop.c b/cpukit/score/cpu/arm/armv7m-multitasking-start-stop.c
index d27bf8b009..f3e96e343c 100644
--- a/cpukit/score/cpu/arm/armv7m-multitasking-start-stop.c
+++ b/cpukit/score/cpu/arm/armv7m-multitasking-start-stop.c
@@ -22,12 +22,10 @@
#include "config.h"
#endif
-#include <rtems/score/cpu.h>
+#include <rtems/score/armv7m.h>
#ifdef ARM_MULTILIB_ARCH_V7M
-#include <rtems/score/armv7m.h>
-
void __attribute__((naked)) _ARMV7M_Start_multitasking(
Context_Control *bsp,
Context_Control *heir
diff --git a/cpukit/score/cpu/arm/preinstall.am b/cpukit/score/cpu/arm/preinstall.am
index 92ba4687fc..fb8881df93 100644
--- a/cpukit/score/cpu/arm/preinstall.am
+++ b/cpukit/score/cpu/arm/preinstall.am
@@ -39,6 +39,10 @@ $(PROJECT_INCLUDE)/rtems/score/arm.h: rtems/score/arm.h $(PROJECT_INCLUDE)/rtems
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/arm.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/arm.h
+$(PROJECT_INCLUDE)/rtems/score/armv4.h: rtems/score/armv4.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/armv4.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/armv4.h
+
$(PROJECT_INCLUDE)/rtems/score/armv7m.h: rtems/score/armv7m.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/armv7m.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/armv7m.h
diff --git a/cpukit/score/cpu/arm/rtems/asm.h b/cpukit/score/cpu/arm/rtems/asm.h
index e6951dbb28..e0009285da 100644
--- a/cpukit/score/cpu/arm/rtems/asm.h
+++ b/cpukit/score/cpu/arm/rtems/asm.h
@@ -1,21 +1,17 @@
/**
* @file
*
- * @ingroup ScoreCPU
+ * @brief ARM Assembler Support API
*
- * @brief ARM assembler support API.
- */
-
-/*
- * This include file attempts to address the problems
- * caused by incompatible flavors of assemblers and
- * toolsets. It primarily addresses variations in the
- * use of leading underscores on symbols and the requirement
- * that register names be preceded by a %.
+ * This include file attempts to address the problems
+ * caused by incompatible flavors of assemblers and
+ * toolsets. It primarily addresses variations in the
+ * use of leading underscores on symbols and the requirement
+ * that register names be preceded by a %.
*
*
- * NOTE: The spacing in the use of these macros
- * is critical to them working as advertised.
+ * NOTE: The spacing in the use of these macros
+ * is critical to them working as advertised.
*/
/*
@@ -53,10 +49,9 @@
*
* @ingroup ScoreCPU
*
- * @brief ARM assembler support.
- *
- * @{
+ * @brief ARM Assembler Support
*/
+/**@{**/
/*
* Recent versions of GNU cpp define variables which indicate the
diff --git a/cpukit/score/cpu/arm/rtems/score/arm.h b/cpukit/score/cpu/arm/rtems/score/arm.h
index c4f7cf2324..8f8c837b41 100644
--- a/cpukit/score/cpu/arm/rtems/score/arm.h
+++ b/cpukit/score/cpu/arm/rtems/score/arm.h
@@ -1,9 +1,7 @@
/**
* @file
*
- * @ingroup ScoreCPU
- *
- * @brief ARM assembler support API.
+ * @brief ARM Assembler Support API
*/
/*
@@ -28,9 +26,8 @@ extern "C" {
/**
* @addtogroup ScoreCPU
- *
- * @{
*/
+/**@{**/
/*
* This file contains the information required to build
diff --git a/cpukit/score/cpu/arm/rtems/score/armv4.h b/cpukit/score/cpu/arm/rtems/score/armv4.h
new file mode 100644
index 0000000000..dfd57bb3bb
--- /dev/null
+++ b/cpukit/score/cpu/arm/rtems/score/armv4.h
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2013 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Dornierstr. 4
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#ifndef RTEMS_SCORE_ARMV4_H
+#define RTEMS_SCORE_ARMV4_H
+
+#include <rtems/score/cpu.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#ifdef ARM_MULTILIB_ARCH_V4
+
+void bsp_interrupt_dispatch( void );
+
+void _ARMV4_Exception_interrupt( void );
+
+typedef void ARMV4_Exception_abort_handler( CPU_Exception_frame *frame );
+
+void _ARMV4_Exception_data_abort_set_handler(
+ ARMV4_Exception_abort_handler handler
+);
+
+void _ARMV4_Exception_data_abort( void );
+
+void _ARMV4_Exception_prefetch_abort_set_handler(
+ ARMV4_Exception_abort_handler handler
+);
+
+void _ARMV4_Exception_prefetch_abort( void );
+
+void _ARMV4_Exception_undef_default( void );
+
+void _ARMV4_Exception_swi_default( void );
+
+void _ARMV4_Exception_data_abort_default( void );
+
+void _ARMV4_Exception_pref_abort_default( void );
+
+void _ARMV4_Exception_reserved_default( void );
+
+void _ARMV4_Exception_irq_default( void );
+
+void _ARMV4_Exception_fiq_default( void );
+
+static inline uint32_t _ARMV4_Status_irq_enable( void )
+{
+ uint32_t arm_switch_reg;
+ uint32_t psr;
+
+ RTEMS_COMPILER_MEMORY_BARRIER();
+
+ __asm__ volatile (
+ ARM_SWITCH_TO_ARM
+ "mrs %[psr], cpsr\n"
+ "bic %[arm_switch_reg], %[psr], #0x80\n"
+ "msr cpsr, %[arm_switch_reg]\n"
+ ARM_SWITCH_BACK
+ : [arm_switch_reg] "=&r" (arm_switch_reg), [psr] "=&r" (psr)
+ );
+
+ return psr;
+}
+
+static inline void _ARMV4_Status_restore( uint32_t psr )
+{
+ ARM_SWITCH_REGISTERS;
+
+ __asm__ volatile (
+ ARM_SWITCH_TO_ARM
+ "msr cpsr, %[psr]\n"
+ ARM_SWITCH_BACK
+ : ARM_SWITCH_OUTPUT
+ : [psr] "r" (psr)
+ );
+
+ RTEMS_COMPILER_MEMORY_BARRIER();
+}
+
+#endif /* ARM_MULTILIB_ARCH_V4 */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* RTEMS_SCORE_ARMV4_H */
diff --git a/cpukit/score/cpu/arm/rtems/score/armv7m.h b/cpukit/score/cpu/arm/rtems/score/armv7m.h
index 62f69ff490..3a41a0c707 100644
--- a/cpukit/score/cpu/arm/rtems/score/armv7m.h
+++ b/cpukit/score/cpu/arm/rtems/score/armv7m.h
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief ARMV7M Architecture Support
+ */
+
/*
* Copyright (c) 2011 Sebastian Huber. All rights reserved.
*
@@ -15,13 +21,14 @@
#ifndef RTEMS_SCORE_ARMV7M_H
#define RTEMS_SCORE_ARMV7M_H
-#include <stdint.h>
-#include <stdbool.h>
+#include <rtems/score/cpu.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
+#ifdef ARM_MULTILIB_ARCH_V7M
+
typedef struct {
uint32_t reserved_0;
uint32_t ictr;
@@ -58,6 +65,21 @@ typedef struct {
uint32_t icsr;
ARMV7M_Exception_handler *vtor;
+
+#define ARMV7M_SCB_AIRCR_VECTKEY (0x05fa << 16)
+#define ARMV7M_SCB_AIRCR_ENDIANESS (1U << 15)
+#define ARMV7M_SCB_AIRCR_PRIGROUP_SHIFT 8
+#define ARMV7M_SCB_AIRCR_PRIGROUP_MASK \
+ ((0x7U) << ARMV7M_SCB_AIRCR_PRIGROUP_SHIFT)
+#define ARMV7M_SCB_AIRCR_PRIGROUP(val) \
+ (((val) << ARMV7M_SCB_AIRCR_PRIGROUP_SHIFT) & ARMV7M_SCB_AIRCR_PRIGROUP_MASK)
+#define ARMV7M_SCB_AIRCR_PRIGROUP_GET(reg) \
+ (((val) & ARMV7M_SCB_AIRCR_PRIGROUP_MASK) >> ARMV7M_SCB_AIRCR_PRIGROUP_SHIFT)
+#define ARMV7M_SCB_AIRCR_PRIGROUP_SET(reg, val) \
+ (((reg) & ~ARMV7M_SCB_AIRCR_PRIGROUP_MASK) | ARMV7M_SCB_AIRCR_PRIGROUP(val))
+#define ARMV7M_SCB_AIRCR_SYSRESETREQ (1U << 2)
+#define ARMV7M_SCB_AIRCR_VECTCLRACTIVE (1U << 1)
+#define ARMV7M_SCB_AIRCR_VECTRESET (1U << 0)
uint32_t aircr;
uint32_t scr;
uint32_t ccr;
@@ -458,8 +480,7 @@ void _ARMV7M_Set_exception_handler(
);
/**
- * @brief ARMV7M Set Exception Priority and Handler
- *
+ * @brief ARMV7M set exception priority and handler.
*/
void _ARMV7M_Set_exception_priority_and_handler(
int index,
@@ -467,6 +488,8 @@ void _ARMV7M_Set_exception_priority_and_handler(
ARMV7M_Exception_handler handler
);
+void _ARMV7M_Exception_default( void );
+
void _ARMV7M_Interrupt_service_enter( void );
void _ARMV7M_Interrupt_service_leave( void );
@@ -475,6 +498,8 @@ void _ARMV7M_Pendable_service_call( void );
void _ARMV7M_Supervisor_call( void );
+#endif /* ARM_MULTILIB_ARCH_V7M */
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/cpukit/score/cpu/arm/rtems/score/cpu.h b/cpukit/score/cpu/arm/rtems/score/cpu.h
index c1ffb0765d..bbcded682c 100644
--- a/cpukit/score/cpu/arm/rtems/score/cpu.h
+++ b/cpukit/score/cpu/arm/rtems/score/cpu.h
@@ -1,9 +1,7 @@
/**
* @file
*
- * @ingroup ScoreCPU
- *
- * @brief ARM architecture support API.
+ * @brief ARM Architecture Support API
*/
/*
@@ -42,9 +40,8 @@
* @ingroup ScoreCPU
*
* @brief ARM specific support.
- *
- * @{
*/
+/**@{**/
#ifdef __thumb__
#define ARM_SWITCH_REGISTERS uint32_t arm_switch_reg
@@ -62,9 +59,8 @@
/**
* @name Program Status Register
- *
- * @{
*/
+/**@{**/
#define ARM_PSR_N (1 << 31)
#define ARM_PSR_Z (1 << 30)
@@ -97,9 +93,8 @@
/**
* @addtogroup ScoreCPU
- *
- * @{
*/
+/**@{**/
/* If someone uses THUMB we assume she wants minimal code size */
#ifdef __thumb__
@@ -227,9 +222,8 @@ extern "C" {
/**
* @addtogroup ScoreCPU
- *
- * @{
*/
+/**@{**/
typedef struct {
#if defined(ARM_MULTILIB_ARCH_V4)
@@ -399,8 +393,7 @@ void _CPU_Context_Initialize(
} while (0);
/**
- * @brief CPU Initialize
- *
+ * @brief CPU initialization.
*/
void _CPU_Initialize( void );
@@ -411,8 +404,7 @@ void _CPU_ISR_install_vector(
);
/**
- * @brief CPU Context Switch
- *
+ * @brief CPU switch context.
*/
void _CPU_Context_switch( Context_Control *run, Context_Control *heir );
@@ -482,35 +474,12 @@ static inline uint16_t CPU_swap_u16( uint16_t value )
/** @} */
-#if defined(ARM_MULTILIB_ARCH_V4)
-
/**
* @addtogroup ScoreCPUARM
- *
- * @{
*/
+/**@{**/
-typedef struct {
- uint32_t r0;
- uint32_t r1;
- uint32_t r2;
- uint32_t r3;
- uint32_t r4;
- uint32_t r5;
- uint32_t r6;
- uint32_t r7;
- uint32_t r8;
- uint32_t r9;
- uint32_t r10;
- uint32_t r11;
- uint32_t r12;
- uint32_t sp;
- uint32_t lr;
- uint32_t pc;
- uint32_t cpsr;
-} arm_cpu_context;
-
-typedef void arm_exc_abort_handler( arm_cpu_context *context );
+#if defined(ARM_MULTILIB_ARCH_V4)
typedef enum {
ARM_EXCEPTION_RESET = 0,
@@ -521,81 +490,45 @@ typedef enum {
ARM_EXCEPTION_RESERVED = 5,
ARM_EXCEPTION_IRQ = 6,
ARM_EXCEPTION_FIQ = 7,
- MAX_EXCEPTIONS = 8
+ MAX_EXCEPTIONS = 8,
+ ARM_EXCEPTION_MAKE_ENUM_32_BIT = 0xffffffff
} Arm_symbolic_exception_name;
-static inline uint32_t arm_status_irq_enable( void )
-{
- uint32_t arm_switch_reg;
- uint32_t psr;
-
- RTEMS_COMPILER_MEMORY_BARRIER();
-
- __asm__ volatile (
- ARM_SWITCH_TO_ARM
- "mrs %[psr], cpsr\n"
- "bic %[arm_switch_reg], %[psr], #0x80\n"
- "msr cpsr, %[arm_switch_reg]\n"
- ARM_SWITCH_BACK
- : [arm_switch_reg] "=&r" (arm_switch_reg), [psr] "=&r" (psr)
- );
-
- return psr;
-}
-
-static inline void arm_status_restore( uint32_t psr )
-{
- ARM_SWITCH_REGISTERS;
-
- __asm__ volatile (
- ARM_SWITCH_TO_ARM
- "msr cpsr, %[psr]\n"
- ARM_SWITCH_BACK
- : ARM_SWITCH_OUTPUT
- : [psr] "r" (psr)
- );
-
- RTEMS_COMPILER_MEMORY_BARRIER();
-}
-
-void arm_exc_data_abort_set_handler( arm_exc_abort_handler handler );
-
-void arm_exc_data_abort( void );
-
-void arm_exc_prefetch_abort_set_handler( arm_exc_abort_handler handler );
-
-void arm_exc_prefetch_abort( void );
-
-void bsp_interrupt_dispatch( void );
-
-void arm_exc_interrupt( void );
-
-void arm_exc_undefined( void );
-
-/** @} */
+#endif /* defined(ARM_MULTILIB_ARCH_V4) */
-/* XXX This is out of date */
typedef struct {
uint32_t register_r0;
uint32_t register_r1;
uint32_t register_r2;
uint32_t register_r3;
- uint32_t register_ip;
- uint32_t register_lr;
+ uint32_t register_r4;
+ uint32_t register_r5;
+ uint32_t register_r6;
+ uint32_t register_r7;
+ uint32_t register_r8;
+ uint32_t register_r9;
+ uint32_t register_r10;
+ uint32_t register_r11;
+ uint32_t register_r12;
+ uint32_t register_sp;
+ void *register_lr;
+ void *register_pc;
+#if defined(ARM_MULTILIB_ARCH_V4)
+ uint32_t register_cpsr;
+ Arm_symbolic_exception_name vector;
+#elif defined(ARM_MULTILIB_ARCH_V7M)
+ uint32_t register_xpsr;
+ uint32_t vector;
+#endif
} CPU_Exception_frame;
typedef CPU_Exception_frame CPU_Interrupt_frame;
-#else /* !defined(ARM_MULTILIB_ARCH_V4) */
-
-typedef void CPU_Interrupt_frame;
-
-/* FIXME */
-typedef CPU_Interrupt_frame CPU_Exception_frame;
+void _CPU_Exception_frame_print( const CPU_Exception_frame *frame );
-#endif /* !defined(ARM_MULTILIB_ARCH_V4) */
+void _ARM_Exception_default( CPU_Exception_frame *frame );
-void _CPU_Exception_frame_print( const CPU_Exception_frame *frame );
+/** @} */
#ifdef __cplusplus
}
diff --git a/cpukit/score/cpu/arm/rtems/score/cpu_asm.h b/cpukit/score/cpu/arm/rtems/score/cpu_asm.h
index 16c40125ec..59bfae079f 100644
--- a/cpukit/score/cpu/arm/rtems/score/cpu_asm.h
+++ b/cpukit/score/cpu/arm/rtems/score/cpu_asm.h
@@ -3,7 +3,7 @@
*
* @ingroup ScoreCPU
*
- * @brief ARM assembler support API.
+ * @brief ARM Assembler Support API
*/
/*
diff --git a/cpukit/score/cpu/arm/rtems/score/types.h b/cpukit/score/cpu/arm/rtems/score/types.h
index f6de605b89..8e7195304b 100644
--- a/cpukit/score/cpu/arm/rtems/score/types.h
+++ b/cpukit/score/cpu/arm/rtems/score/types.h
@@ -1,9 +1,7 @@
/**
* @file
*
- * @ingroup ScoreCPU
- *
- * @brief ARM architecture types API.
+ * @brief ARM Architecture Types API
*/
/*
@@ -32,9 +30,8 @@ extern "C" {
/**
* @addtogroup ScoreCPU
- *
- * @{
*/
+/**@{**/
/*
* This section defines the basic types for this processor.
diff --git a/cpukit/score/cpu/avr/avr/boot.h b/cpukit/score/cpu/avr/avr/boot.h
index 96453b5bfd..863143b226 100644
--- a/cpukit/score/cpu/avr/avr/boot.h
+++ b/cpukit/score/cpu/avr/avr/boot.h
@@ -1,104 +1,114 @@
-/* Copyright (c) 2002,2003,2004,2005,2006,2007,2008,2009 Eric B. Weddington
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
+/**
+ * @file
+ *
+ * @brief Bootloader Support Utilities
+ *
+ * The macros in this module provide a C language interface to the
+ * bootloader support functionality of certain AVR processors. These
+ * macros are designed to work with all sizes of flash memory.
+ *
+ * Global interrupts are not automatically disabled for these macros. It
+ * is left up to the programmer to do this. See the code example below.
+ * Also see the processor datasheet for caveats on having global interrupts
+ * enabled during writing of the Flash.
+ *
+ * \note Not all AVR processors provide bootloader support. See your
+ * processor datasheet to see if it provides bootloader support.
+ *
+ * From email with Marek: On smaller devices (all except ATmega64/128),
+ * __SPM_REG is in the I/O space, accessible with the shorter "in" and "out"
+ * instructions - since the boot loader has a limited size, this could be an
+ * important optimization.
+ *
+ * API Usage Example
+ * The following code shows typical usage of the boot API.
+ *
+ *
+ * #include <inttypes.h>
+ * #include <avr/interrupt.h>
+ * #include <avr/pgmspace.h>
+ *
+ * void boot_program_page (uint32_t page, uint8_t *buf)
+ * {
+ * uint16_t i;
+ * uint8_t sreg;
+ *
+ * // Disable interrupts.
+ *
+ * sreg = SREG;
+ * cli();
+ *
+ * eeprom_busy_wait ();
+ *
+ * boot_page_erase (page);
+ * boot_spm_busy_wait (); // Wait until the memory is erased.
+ *
+ * for (i=0; i<SPM_PAGESIZE; i+=2)
+ * {
+ * // Set up little-endian word.
+ *
+ * uint16_t w = *buf++;
+ * w += (*buf++) << 8;
+ *
+ * boot_page_fill (page + i, w);
+ * }
+ *
+ * boot_page_write (page); // Store buffer in flash page.
+ * boot_spm_busy_wait(); // Wait until the memory is written.
+ *
+ * // Reenable RWW-section again. We need this if we want to jump back
+ * // to the application after bootloading.
+ *
+ * boot_rww_enable ();
+ *
+ * // Re-enable interrupts (if they were ever enabled).
+ *
+ * SREG = sreg;
+ * }
+ */
+
+/*
+ * Copyright (c) 2002,2003,2004,2005,2006,2007,2008,2009 Eric B. Weddington
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_BOOT_H_
#define _AVR_BOOT_H_ 1
-/** \file */
-/** \defgroup avr_boot <avr/boot.h>: Bootloader Support Utilities
- \code
- #include <avr/io.h>
- #include <avr/boot.h>
- \endcode
-
- The macros in this module provide a C language interface to the
- bootloader support functionality of certain AVR processors. These
- macros are designed to work with all sizes of flash memory.
-
- Global interrupts are not automatically disabled for these macros. It
- is left up to the programmer to do this. See the code example below.
- Also see the processor datasheet for caveats on having global interrupts
- enabled during writing of the Flash.
-
- \note Not all AVR processors provide bootloader support. See your
- processor datasheet to see if it provides bootloader support.
-
- \todo From email with Marek: On smaller devices (all except ATmega64/128),
- __SPM_REG is in the I/O space, accessible with the shorter "in" and "out"
- instructions - since the boot loader has a limited size, this could be an
- important optimization.
-
- \par API Usage Example
- The following code shows typical usage of the boot API.
-
- \code
- #include <inttypes.h>
- #include <avr/interrupt.h>
- #include <avr/pgmspace.h>
-
- void boot_program_page (uint32_t page, uint8_t *buf)
- {
- uint16_t i;
- uint8_t sreg;
-
- // Disable interrupts.
-
- sreg = SREG;
- cli();
-
- eeprom_busy_wait ();
-
- boot_page_erase (page);
- boot_spm_busy_wait (); // Wait until the memory is erased.
-
- for (i=0; i<SPM_PAGESIZE; i+=2)
- {
- // Set up little-endian word.
-
- uint16_t w = *buf++;
- w += (*buf++) << 8;
-
- boot_page_fill (page + i, w);
- }
-
- boot_page_write (page); // Store buffer in flash page.
- boot_spm_busy_wait(); // Wait until the memory is written.
-
- // Reenable RWW-section again. We need this if we want to jump back
- // to the application after bootloading.
-
- boot_rww_enable ();
-
- // Re-enable interrupts (if they were ever enabled).
-
- SREG = sreg;
- }\endcode */
+/**
+ * @defgroup avr_boot Bootloader Support Utilities
+ *
+ * @ingroup avr
+ */
+/**@{*/
#include <avr/eeprom.h>
#include <avr/io.h>
@@ -382,11 +392,11 @@
If bits 5..2 in R0 are cleared (zero), the corresponding Boot Lock bit
will be programmed if an SPM instruction is executed within four cycles
- after BLBSET and SPMEN (or SELFPRGEN) are set in SPMCR. The Z-pointer is
- don't care during this operation, but for future compatibility it is
- recommended to load the Z-pointer with $0001 (same as used for reading the
- Lock bits). For future compatibility It is also recommended to set bits 7,
- 6, 1, and 0 in R0 to 1 when writing the Lock bits. When programming the
+ after BLBSET and SPMEN (or SELFPRGEN) are set in SPMCR. The Z-pointer is
+ don't care during this operation, but for future compatibility it is
+ recommended to load the Z-pointer with $0001 (same as used for reading the
+ Lock bits). For future compatibility It is also recommended to set bits 7,
+ 6, 1, and 0 in R0 to 1 when writing the Lock bits. When programming the
Lock bits the entire Flash can be read during the operation. */
#define __boot_lock_bits_set(lock_bits) \
@@ -430,8 +440,8 @@
/*
Reading lock and fuse bits:
- Similarly to writing the lock bits above, set BLBSET and SPMEN (or
- SELFPRGEN) bits in __SPMREG, and then (within four clock cycles) issue an
+ Similarly to writing the lock bits above, set BLBSET and SPMEN (or
+ SELFPRGEN) bits in __SPMREG, and then (within four clock cycles) issue an
LPM instruction.
Z address: contents:
@@ -525,13 +535,13 @@
/** \ingroup avr_boot
\def boot_page_fill(address, data)
- Fill the bootloader temporary page buffer for flash
- address with data word.
+ Fill the bootloader temporary page buffer for flash
+ address with data word.
- \note The address is a byte address. The data is a word. The AVR
+ \note The address is a byte address. The data is a word. The AVR
writes data to the buffer a word at a time, but addresses the buffer
per byte! So, increment your address by 2 between calls, and send 2
- data bytes in a word format! The LSB of the data is written to the lower
+ data bytes in a word format! The LSB of the data is written to the lower
address; the MSB of the data is written to the higher address.*/
/** \ingroup avr_boot
@@ -544,9 +554,9 @@
/** \ingroup avr_boot
\def boot_page_write(address)
- Write the bootloader temporary page buffer
+ Write the bootloader temporary page buffer
to flash page that contains address.
-
+
\note address is a byte address in flash, not a word address. */
/** \ingroup avr_boot
@@ -581,7 +591,7 @@
instruction sequences after LPM.
FLASHEND is defined in the ioXXXX.h file.
- USHRT_MAX is defined in <limits.h>. */
+ USHRT_MAX is defined in <limits.h>. */
#if defined(__AVR_ATmega161__) || defined(__AVR_ATmega163__) \
|| defined(__AVR_ATmega323__)
@@ -673,4 +683,5 @@ do { \
boot_lock_bits_set (lock_bits); \
} while (0)
+/**@}*/
#endif /* _AVR_BOOT_H_ */
diff --git a/cpukit/score/cpu/avr/avr/common.h b/cpukit/score/cpu/avr/avr/common.h
index 0901a6c741..1acfe26889 100644
--- a/cpukit/score/cpu/avr/avr/common.h
+++ b/cpukit/score/cpu/avr/avr/common.h
@@ -1,53 +1,65 @@
-/* Copyright (c) 2007 Eric B. Weddington
- All rights reserved.
+/**
+ * @file
+ *
+ * @brief Common Symbols and Define Undefined Registers
+ *
+ * This purpose of this header is to define registers that have not been
+ * previously defined in the individual device IO header files, and to define
+ * other symbols that are common across AVR device families.
+ *
+ * This file is designed to be included in <avr/io.h> after the individual
+ * device IO header files, and after <avr/sfr_defs.h>
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
+/*
+ * Copyright (c) 2007 Eric B. Weddington
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_COMMON_H
#define _AVR_COMMON_H
-#include <avr/sfr_defs.h>
-
-/*
-This purpose of this header is to define registers that have not been
-previously defined in the individual device IO header files, and to define
-other symbols that are common across AVR device families.
-
-This file is designed to be included in <avr/io.h> after the individual
-device IO header files, and after <avr/sfr_defs.h>
+/**
+ * @defgroup Avr_common Common Data
+ *
+ * @ingroup avr
+ */
+/**@{*/
-*/
+#include <avr/sfr_defs.h>
/*------------ Registers Not Previously Defined ------------*/
-/*
+/*
These are registers that are not previously defined in the individual
IO header files, OR they are defined here because they are used in parts of
avr-libc even if a device is not selected but a general architecture has
@@ -58,7 +70,7 @@ been selected.
/*
Stack pointer register.
-AVR architecture 1 has no RAM, thus no stack pointer.
+AVR architecture 1 has no RAM, thus no stack pointer.
All other architectures do have a stack pointer. Some devices have only
less than 256 bytes of possible RAM locations (128 Bytes of SRAM
@@ -75,7 +87,7 @@ for them.
# ifndef SP
# define SP _SFR_MEM16(0x3D)
# endif
-#elif __AVR_ARCH__ != 1
+#elif __AVR_ARCH__ != 1
# ifndef SPL
# define SPL _SFR_IO8(0x3D)
# endif
@@ -192,7 +204,7 @@ keep the EEPROM-related definitions here.
/*------------ Common Symbols ------------*/
-/*
+/*
Generic definitions for registers that are common across multiple AVR devices
and families.
*/
@@ -319,4 +331,5 @@ and families.
# endif
#endif
+/**@}*/
#endif /* _AVR_COMMON_H */
diff --git a/cpukit/score/cpu/avr/avr/crc16.h b/cpukit/score/cpu/avr/avr/crc16.h
index 63e043b7a8..fe6dfd4346 100644
--- a/cpukit/score/cpu/avr/avr/crc16.h
+++ b/cpukit/score/cpu/avr/avr/crc16.h
@@ -1,38 +1,54 @@
-/* Copyright (c) 2005 Joerg Wunsch
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
+/**
+ * @file
+ *
+ * @brief Moved to <util/crc16.h>
+ */
+
+/*
+ * Copyright (c) 2005 Joerg Wunsch
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_CRC16_H_
#define _AVR_CRC16_H_
+/**
+ * @defgroup Avr_crc16 crc16
+ *
+ * @ingroup avr
+ */
+/**@{*/
+
#warning "This file has been moved to <util/crc16.h>."
#include <util/crc16.h>
+/**@}*/
#endif /* _AVR_CRC16_H_ */
diff --git a/cpukit/score/cpu/avr/avr/delay.h b/cpukit/score/cpu/avr/avr/delay.h
index 42f10c1912..ad9db108eb 100644
--- a/cpukit/score/cpu/avr/avr/delay.h
+++ b/cpukit/score/cpu/avr/avr/delay.h
@@ -1,38 +1,55 @@
-/* Copyright (c) 2005 Joerg Wunsch
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
+/**
+ * @file
+ *
+ * @brief Moved to <util/delay.h>
+ */
+
+/*
+ * Copyright (c) 2005 Joerg Wunsch
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_DELAY_H_
#define _AVR_DELAY_H_
+/**
+ * @defgroup AvrDelay Delay
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
#warning "This file has been moved to <util/delay.h>."
#include <util/delay.h>
+/** @} */
#endif /* _AVR_DELAY_H_ */
diff --git a/cpukit/score/cpu/avr/avr/eeprom.h b/cpukit/score/cpu/avr/avr/eeprom.h
index ab21d2dbe0..448248dc37 100644
--- a/cpukit/score/cpu/avr/avr/eeprom.h
+++ b/cpukit/score/cpu/avr/avr/eeprom.h
@@ -1,34 +1,78 @@
-/* Copyright (c) 2002, 2003, 2004, 2007 Marek Michalkiewicz
- Copyright (c) 2005, 2006 Bjoern Haase
- Copyright (c) 2008 Atmel Corporation
- Copyright (c) 2008 Wouter van Gulik
- Copyright (c) 2009 Dmitry Xmelkov
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
+/**
+ * @file
+ *
+ * @brief Data EEPROM Contained in the AVR Microcontrollers
+ *
+ * This header file declares the interface to some simple library
+ * routines suitable for handling the data EEPROM contained in the
+ * AVR microcontrollers. The implementation uses a simple polled
+ * mode interface. Applications that require interrupt-controlled
+ * EEPROM access to ensure that no time will be wasted in spinloops
+ * will have to deploy their own implementation.
+ *
+ * \par Notes:
+ *
+ * - In addition to the write functions there is a set of update ones.
+ * This functions read each byte first and skip the burning if the
+ * old value is the same with new. The scaning direction is from
+ * high address to low, to obtain quick return in common cases.
+ *
+ * - All of the read/write functions first make sure the EEPROM is
+ * ready to be accessed. Since this may cause long delays if a
+ * write operation is still pending, time-critical applications
+ * should first poll the EEPROM e. g. using eeprom_is_ready() before
+ * attempting any actual I/O. But this functions are not wait until
+ * SELFPRGEN in SPMCSR becomes zero. Do this manually, if your
+ * softwate contains the Flash burning.
+ *
+ * - As these functions modify IO registers, they are known to be
+ * non-reentrant. If any of these functions are used from both,
+ * standard and interrupt context, the applications must ensure
+ * proper protection (e.g. by disabling interrupts before accessing
+ * them).
+ *
+ * - All write functions force erase_and_write programming mode.
+ *
+ * - For Xmega the EEPROM start address is 0, like other architectures.
+ * The reading functions add the 0x2000 value to use EEPROM mapping into
+ * data space.
+ */
+
+/*
+ * Copyright (c) 2002, 2003, 2004, 2007 Marek Michalkiewicz
+ * Copyright (c) 2005, 2006 Bjoern Haase
+ * Copyright (c) 2008 Atmel Corporation
+ * Copyright (c) 2008 Wouter van Gulik
+ * Copyright (c) 2009 Dmitry Xmelkov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_EEPROM_H_
@@ -409,43 +453,12 @@
#include <stddef.h> /* size_t */
#include <stdint.h>
-/** \defgroup avr_eeprom <avr/eeprom.h>: EEPROM handling
- \code #include <avr/eeprom.h> \endcode
-
- This header file declares the interface to some simple library
- routines suitable for handling the data EEPROM contained in the
- AVR microcontrollers. The implementation uses a simple polled
- mode interface. Applications that require interrupt-controlled
- EEPROM access to ensure that no time will be wasted in spinloops
- will have to deploy their own implementation.
-
- \par Notes:
-
- - In addition to the write functions there is a set of update ones.
- This functions read each byte first and skip the burning if the
- old value is the same with new. The scaning direction is from
- high address to low, to obtain quick return in common cases.
-
- - All of the read/write functions first make sure the EEPROM is
- ready to be accessed. Since this may cause long delays if a
- write operation is still pending, time-critical applications
- should first poll the EEPROM e. g. using eeprom_is_ready() before
- attempting any actual I/O. But this functions are not wait until
- SELFPRGEN in SPMCSR becomes zero. Do this manually, if your
- softwate contains the Flash burning.
-
- - As these functions modify IO registers, they are known to be
- non-reentrant. If any of these functions are used from both,
- standard and interrupt context, the applications must ensure
- proper protection (e.g. by disabling interrupts before accessing
- them).
-
- - All write functions force erase_and_write programming mode.
-
- - For Xmega the EEPROM start address is 0, like other architectures.
- The reading functions add the 0x2000 value to use EEPROM mapping into
- data space.
+/**
+ * @defgroup avr_eeprom EEPROM handling
+ *
+ * @ingroup avr
*/
+/**@{*/
#ifdef __cplusplus
extern "C" {
@@ -486,7 +499,7 @@ extern "C" {
\ingroup avr_eeprom
Loops until the eeprom is no longer busy.
\returns Nothing.
- */
+ */
#define eeprom_busy_wait() do {} while (!eeprom_is_ready())
@@ -602,4 +615,6 @@ void eeprom_update_block (const void *__src, void *__dst, size_t __n);
#endif /* !__ASSEMBLER__ */
#endif /* E2END || defined(__DOXYGEN__) || defined(__COMPILING_AVR_LIBC__) */
+
+/**@}*/
#endif /* !_AVR_EEPROM_H_ */
diff --git a/cpukit/score/cpu/avr/avr/io.h b/cpukit/score/cpu/avr/avr/io.h
index d4198f14ae..22ac57d84f 100644
--- a/cpukit/score/cpu/avr/avr/io.h
+++ b/cpukit/score/cpu/avr/avr/io.h
@@ -1,100 +1,109 @@
-/* Copyright (c) 2002,2003,2005,2006,2007 Marek Michalkiewicz, Joerg Wunsch
- Copyright (c) 2007 Eric B. Weddington
- All rights reserved.
+/**
+ * @file
+ *
+ * @brief AVR device-specific IO Definitions
+ *
+ * This header file includes the apropriate IO definitions for the
+ * device that has been specified by the <tt>-mmcu=</tt> compiler
+ * command-line switch. This is done by diverting to the appropriate
+ * file <tt>&lt;avr/io</tt><em>XXXX</em><tt>.h&gt;</tt> which should
+ * never be included directly. Some register names common to all
+ * AVR devices are defined directly within <tt>&lt;avr/common.h&gt;</tt>,
+ * which is included in <tt>&lt;avr/io.h&gt;</tt>,
+ * but most of the details come from the respective include file.
+ *
+ * Note that this file always includes the following files:
+ * \code
+ * #include <avr/sfr_defs.h>
+ * #include <avr/portpins.h>
+ * #include <avr/common.h>
+ * #include <avr/version.h>
+ * \endcode
+ * See \ref avr_sfr for more details about that header file.
+ *
+ * Included are definitions of the IO register set and their
+ * respective bit values as specified in the Atmel documentation.
+ * Note that inconsistencies in naming conventions,
+ * so even identical functions sometimes get different names on
+ * different devices.
+ *
+ * Also included are the specific names useable for interrupt
+ * function definitions as documented
+ * \ref avr_signames "here".
+ *
+ * Finally, the following macros are defined:
+ *
+ * - \b RAMEND
+ * <br>
+ * The last on-chip RAM address.
+ * <br>
+ * - \b XRAMEND
+ * <br>
+ * The last possible RAM location that is addressable. This is equal to
+ * RAMEND for devices that do not allow for external RAM. For devices
+ * that allow external RAM, this will be larger than RAMEND.
+ * <br>
+ * - \b E2END
+ * <br>
+ * The last EEPROM address.
+ * <br>
+ * - \b FLASHEND
+ * <br>
+ * The last byte address in the Flash program space.
+ * <br>
+ * - \b SPM_PAGESIZE
+ * <br>
+ * For devices with bootloader support, the flash pagesize
+ * (in bytes) to be used for the \c SPM instruction.
+ * - \b E2PAGESIZE
+ * <br>
+ * The size of the EEPROM page.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/** \file */
-/** \defgroup avr_io <avr/io.h>: AVR device-specific IO definitions
- \code #include <avr/io.h> \endcode
-
- This header file includes the apropriate IO definitions for the
- device that has been specified by the <tt>-mmcu=</tt> compiler
- command-line switch. This is done by diverting to the appropriate
- file <tt>&lt;avr/io</tt><em>XXXX</em><tt>.h&gt;</tt> which should
- never be included directly. Some register names common to all
- AVR devices are defined directly within <tt>&lt;avr/common.h&gt;</tt>,
- which is included in <tt>&lt;avr/io.h&gt;</tt>,
- but most of the details come from the respective include file.
-
- Note that this file always includes the following files:
- \code
- #include <avr/sfr_defs.h>
- #include <avr/portpins.h>
- #include <avr/common.h>
- #include <avr/version.h>
- \endcode
- See \ref avr_sfr for more details about that header file.
-
- Included are definitions of the IO register set and their
- respective bit values as specified in the Atmel documentation.
- Note that inconsistencies in naming conventions,
- so even identical functions sometimes get different names on
- different devices.
-
- Also included are the specific names useable for interrupt
- function definitions as documented
- \ref avr_signames "here".
-
- Finally, the following macros are defined:
-
- - \b RAMEND
- <br>
- The last on-chip RAM address.
- <br>
- - \b XRAMEND
- <br>
- The last possible RAM location that is addressable. This is equal to
- RAMEND for devices that do not allow for external RAM. For devices
- that allow external RAM, this will be larger than RAMEND.
- <br>
- - \b E2END
- <br>
- The last EEPROM address.
- <br>
- - \b FLASHEND
- <br>
- The last byte address in the Flash program space.
- <br>
- - \b SPM_PAGESIZE
- <br>
- For devices with bootloader support, the flash pagesize
- (in bytes) to be used for the \c SPM instruction.
- - \b E2PAGESIZE
- <br>
- The size of the EEPROM page.
-
-*/
+/*
+ * Copyright (c) 2002,2003,2005,2006,2007 Marek Michalkiewicz, Joerg Wunsch
+ * Copyright (c) 2007 Eric B. Weddington
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
#define _AVR_IO_H_
+/**
+ * @defgroup avr_io Input Output
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
#include <avr/sfr_defs.h>
#if defined (__AVR_AT94K__)
@@ -416,4 +425,5 @@
/* Include lock.h after individual IO header files. */
#include <avr/lock.h>
+/** @} */
#endif /* _AVR_IO_H_ */
diff --git a/cpukit/score/cpu/avr/avr/io1200.h b/cpukit/score/cpu/avr/avr/io1200.h
index fdb934ff4e..ae2aa17542 100644
--- a/cpukit/score/cpu/avr/avr/io1200.h
+++ b/cpukit/score/cpu/avr/avr/io1200.h
@@ -1,40 +1,52 @@
-/* Copyright (c) 2002, Marek Michalkiewicz
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
+/**
+ * @file avr/io1200.h
+ *
+ * @brief Definitions for AT90S1200
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
-/* avr/io1200.h - definitions for AT90S1200 */
+/*
+ * Copyright (c) 2002, Marek Michalkiewicz
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO1200_H_
#define _AVR_IO1200_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_io1200 AT90S1200 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +56,7 @@
# define _AVR_IOXXX_H_ "io1200.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef __ASSEMBLER__
# warning "MCU not supported by the C compiler"
@@ -266,4 +278,5 @@
#define SIGNATURE_2 0x01
+/**@}*/
#endif /* _AVR_IO1200_H_ */
diff --git a/cpukit/score/cpu/avr/avr/io2333.h b/cpukit/score/cpu/avr/avr/io2333.h
index 044f5a6b8b..63c7fab337 100644
--- a/cpukit/score/cpu/avr/avr/io2333.h
+++ b/cpukit/score/cpu/avr/avr/io2333.h
@@ -46,8 +46,11 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
-/* I/O registers */
-
+/**
+ * @name I/O Registers
+ *
+ */
+/**@{**/
/* UART Baud Rate Register high */
#define UBRRH _SFR_IO8(0x03)
@@ -171,9 +174,13 @@
/* General Interrupt MaSK register */
#define GIMSK _SFR_IO8(0x3B)
+/** @} */
-/* Interrupt vectors */
-
+/**
+ * @name Interrupt Vectors
+ *
+ */
+/**@{**/
/* External Interrupt 0 */
#define INT0_vect _VECTOR(1)
#define SIG_INTERRUPT0 _VECTOR(1)
@@ -227,6 +234,7 @@
#define SIG_COMPARATOR _VECTOR(13)
#define _VECTORS_SIZE 28
+/** @} */
/*
The Register Bit names are represented by their bit number (0-7).
@@ -434,10 +442,15 @@
#define EEWE 1
#define EERE 0
-/* Constants */
+/**
+ * @name Constants
+ *
+ */
+/**@{**/
#define RAMEND 0xDF /*Last On-Chip SRAM location*/
#define XRAMEND RAMEND
#define E2END 0x7F
#define FLASHEND 0x7FF
+/** @} */
#endif /* _AVR_IO2333_H_ */
diff --git a/cpukit/score/cpu/avr/avr/io2343.h b/cpukit/score/cpu/avr/avr/io2343.h
index bb193917c5..bee4ad4fa7 100644
--- a/cpukit/score/cpu/avr/avr/io2343.h
+++ b/cpukit/score/cpu/avr/avr/io2343.h
@@ -1,40 +1,52 @@
-/* Copyright (c) 2002, Marek Michalkiewicz
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
+/**
+ * @file avr/io2343.h
+ *
+ * @brief Definitions for AT90S2343
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
-/* avr/io2343.h - definitions for AT90S2343 */
+/*
+ * Copyright (c) 2002, Marek Michalkiewicz
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO2343_H_
#define _AVR_IO2343_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_io2343 AT90S2343 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +56,7 @@
# define _AVR_IOXXX_H_ "io2343.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* I/O registers */
@@ -205,4 +217,5 @@
#define SIGNATURE_2 0x03
+/**@}*/
#endif /* _AVR_IO2343_H_ */
diff --git a/cpukit/score/cpu/avr/avr/io43u32x.h b/cpukit/score/cpu/avr/avr/io43u32x.h
index c31a187d94..ed36ff1010 100644
--- a/cpukit/score/cpu/avr/avr/io43u32x.h
+++ b/cpukit/score/cpu/avr/avr/io43u32x.h
@@ -1,40 +1,52 @@
-/* Copyright (c) 2003,2005 Keith Gudger
- All rights reserved.
+/**
+ * @file avr/io43u32x.h
+ *
+ * @brief Definitions for AT43USB32x
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/io43u32x.h - definitions for AT43USB32x */
+/*
+ * Copyright (c) 2003,2005 Keith Gudger
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO43U32X_H_
#define _AVR_IO43U32X_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_io43u32x AT43USB32x Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +56,7 @@
# define _AVR_IOXXX_H_ "io43u32x.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* I/O registers */
@@ -70,7 +82,7 @@
#define DDRE _SFR_IO8(0x02)
/* Data Register, Port E */
-#define PORTE _SFR_IO8(0x03)
+#define PORTE _SFR_IO8(0x03)
/* SPI Control Register */
#define SPCR _SFR_IO8(0x0D)
@@ -432,4 +444,5 @@
but no RAMPZ causes gcrt1.S build to fail, so assume 64K for now... */
#define FLASHEND 0x0FFFF
+/**@}*/
#endif /* _AVR_43USB32X_H_ */
diff --git a/cpukit/score/cpu/avr/avr/io43u35x.h b/cpukit/score/cpu/avr/avr/io43u35x.h
index d803fa99c0..66a06d867a 100644
--- a/cpukit/score/cpu/avr/avr/io43u35x.h
+++ b/cpukit/score/cpu/avr/avr/io43u35x.h
@@ -46,8 +46,11 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
-/* I/O registers */
-
+/**
+ * @name I/O Registers
+ *
+ */
+/**@{**/
/* ADC Data Register */
#ifndef __ASSEMBLER__
#define ADC _SFR_IO16(0x02)
@@ -179,9 +182,13 @@
/* General Interrupt Mask register */
#define GIMSK _SFR_IO8(0x3B)
+/** @} */
-/* Interrupt vectors */
-
+/**
+ * @name Interrupt Vectors
+ *
+ */
+/**@{**/
#define SIG_INTERRUPT0 _VECTOR(1) /* suspend/resume */
#define SIG_INTERRUPT1 _VECTOR(2)
#define SIG_TIMER1_CAPT1 _VECTOR(3)
@@ -196,10 +203,11 @@
#define SIG_USB_INT _VECTOR(12)
#define _VECTORS_SIZE 52
+/** @} */
/*
- The Register Bit names are represented by their bit number (0-7).
-*/
+ * The Register Bit names are represented by their bit number (0-7).
+ */
/* Timer/Counter Interrupt MaSK register */
#define TICIE1 3
@@ -418,10 +426,15 @@
#define ADPS1 1
#define ADPS0 0
-/* Constants */
+/**
+ * @name Constants
+ *
+ */
+/**@{**/
#define RAMEND 0x045F /*Last On-Chip SRAM Location*/
#define XRAMEND RAMEND
#define E2END 0x0000
#define FLASHEND 0x5FFF
+/** @} */
#endif /* _AVR_43USB355_H_ */
diff --git a/cpukit/score/cpu/avr/avr/io4414.h b/cpukit/score/cpu/avr/avr/io4414.h
index 9c8362c061..96c400030d 100644
--- a/cpukit/score/cpu/avr/avr/io4414.h
+++ b/cpukit/score/cpu/avr/avr/io4414.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for AT90S4414
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2002, Marek Michalkiewicz
All rights reserved.
@@ -46,6 +54,14 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
+/**
+ * @defgroup AvrDef_io4414 AT90S4414 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* I/O registers */
/* Analog Comparator Control and Status Register */
@@ -480,5 +496,6 @@
#define SIGNATURE_1 0x92
#define SIGNATURE_2 0x01
+/** @} */
#endif /* _AVR_IO4414_H_ */
diff --git a/cpukit/score/cpu/avr/avr/io4433.h b/cpukit/score/cpu/avr/avr/io4433.h
index d0a57e3075..62cbb00cd3 100644
--- a/cpukit/score/cpu/avr/avr/io4433.h
+++ b/cpukit/score/cpu/avr/avr/io4433.h
@@ -1,40 +1,52 @@
-/* Copyright (c) 2002, Marek Michalkiewicz
- All rights reserved.
+/**
+ * @file avr/io4433.h
+ *
+ * @brief Definitions for AT90S4433
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/io4433.h - definitions for AT90S4433 */
+/*
+ * Copyright (c) 2002, Marek Michalkiewicz
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO4433_H_
#define _AVR_IO4433_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_io4433 AT90S4433 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +56,7 @@
# define _AVR_IOXXX_H_ "io4433.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* I/O registers */
@@ -468,5 +480,5 @@
#define SIGNATURE_1 0x92
#define SIGNATURE_2 0x03
-
+/**@}*/
#endif /* _AVR_IO4433_H_ */
diff --git a/cpukit/score/cpu/avr/avr/io4434.h b/cpukit/score/cpu/avr/avr/io4434.h
index d3719f8fcb..72bc72680d 100644
--- a/cpukit/score/cpu/avr/avr/io4434.h
+++ b/cpukit/score/cpu/avr/avr/io4434.h
@@ -1,40 +1,52 @@
-/* Copyright (c) 2002, Marek Michalkiewicz
- All rights reserved.
+/**
+ * @file avr/io4434.h
+ *
+ * @brief Definitions for AT90S4434
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/io4434.h - definitions for AT90S4434 */
+/*
+ * Copyright (c) 2002 Marek Michalkiewicz
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO4434_H_
#define _AVR_IO4434_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_io4434 AT90S4434 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +56,7 @@
# define _AVR_IOXXX_H_ "io4434.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* I/O registers */
@@ -562,5 +574,5 @@
#define SIGNATURE_1 0x93
#define SIGNATURE_2 0x03
-
+/**@}*/
#endif /* _AVR_IO4434_H_ */
diff --git a/cpukit/score/cpu/avr/avr/io76c711.h b/cpukit/score/cpu/avr/avr/io76c711.h
index 60e3b744a3..e0c68e2267 100644
--- a/cpukit/score/cpu/avr/avr/io76c711.h
+++ b/cpukit/score/cpu/avr/avr/io76c711.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for AT76C711
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2002, Marek Michalkiewicz
All rights reserved.
@@ -46,6 +54,14 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
+/**
+ * @defgroup AvrDef_io76c711 AT76C711 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* I/O registers */
/* 0x00-0x0C reserved */
@@ -489,4 +505,7 @@
0x8000 - 0xBFFF - program SRAM (read/write), would be nice if other
AVR devices did that as well (no need to use LPM!)
*/
+
+/** @} */
+
#endif /* _AVR_IO76C711_H_ */
diff --git a/cpukit/score/cpu/avr/avr/io8534.h b/cpukit/score/cpu/avr/avr/io8534.h
index f25cfd269f..c873a71430 100644
--- a/cpukit/score/cpu/avr/avr/io8534.h
+++ b/cpukit/score/cpu/avr/avr/io8534.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for AT90C8534
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2002, Marek Michalkiewicz
All rights reserved.
@@ -46,6 +54,14 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
+/**
+ * @defgroup AvrDef_io8534 AT90C8534 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* I/O registers */
/* 0x00..0x03 reserved */
@@ -212,4 +228,6 @@
#define E2END 0x1FF
#define FLASHEND 0x1FFF
+/** @} */
+
#endif /* _AVR_IO8534_H_ */
diff --git a/cpukit/score/cpu/avr/avr/io8535.h b/cpukit/score/cpu/avr/avr/io8535.h
index f0c419b8f5..cf31f00c32 100644
--- a/cpukit/score/cpu/avr/avr/io8535.h
+++ b/cpukit/score/cpu/avr/avr/io8535.h
@@ -1,41 +1,46 @@
-/* Copyright (c) 2002, Marek Michalkiewicz
- All rights reserved.
+/**
+ * @file avr/io8535.h
+ *
+ * @brief Definitions for AT90S8535
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/io8535.h - definitions for AT90S8535 */
+/*
+ * Copyright (c) 2002, Marek Michalkiewicz
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO8535_H_
#define _AVR_IO8535_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
-
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
#endif
@@ -44,7 +49,15 @@
# define _AVR_IOXXX_H_ "io8535.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
+
+/**
+ * @defgroup AvrDef_io8535 AT90S8535 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
/* I/O registers */
@@ -563,5 +576,5 @@
#define SIGNATURE_1 0x93
#define SIGNATURE_2 0x03
-
+/** @} */
#endif /* _AVR_IO8535_H_ */
diff --git a/cpukit/score/cpu/avr/avr/io86r401.h b/cpukit/score/cpu/avr/avr/io86r401.h
index 5fa29c25b4..56f2d568f3 100644
--- a/cpukit/score/cpu/avr/avr/io86r401.h
+++ b/cpukit/score/cpu/avr/avr/io86r401.h
@@ -1,39 +1,52 @@
-/* Copyright (c) 2002, Colin O'Flynn
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-/* avr/io86r401.h - definitions for AT86RF401 */
+/**
+ * @file avr/io86r401.h
+ *
+ * @brief Definitions for AT86RF401
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2002, Colin O'Flynn
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO86RF401_H_
#define _AVR_IO86RF401_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_io86r401 AT86RF401 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -83,7 +96,7 @@
#define BTCNT _SFR_IO8(0x20)
-/*
+/*
NOTE: EEPROM name's changed to have D in front on them, per datasheet, but
you may want to remove the leading D.
*/
@@ -304,5 +317,5 @@ you may want to remove the leading D.
#define SIGNATURE_1 0x91
#define SIGNATURE_2 0x81
-
+/**@}*/
#endif /* _AVR_IO86RF401_H_ */
diff --git a/cpukit/score/cpu/avr/avr/io90pwm1.h b/cpukit/score/cpu/avr/avr/io90pwm1.h
index ccf77afd07..6c3aad03a5 100644
--- a/cpukit/score/cpu/avr/avr/io90pwm1.h
+++ b/cpukit/score/cpu/avr/avr/io90pwm1.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for AT90PWM1
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2005, Andrey Pashchenko
Copyright (c) 2007, Anatoly Sokolov
All rights reserved.
@@ -47,6 +55,14 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
+/**
+ * @defgroup AvrDef_io90pwm1 AT90PWM1 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* I/O registers */
/* Reserved [0x00..0x02] */
@@ -1116,5 +1132,6 @@
#define __BOOT_LOCK_BITS_0_EXIST
#define __BOOT_LOCK_BITS_1_EXIST
+/** @} */
#endif /* _AVR_IOPWM1_H_ */
diff --git a/cpukit/score/cpu/avr/avr/io90pwm216.h b/cpukit/score/cpu/avr/avr/io90pwm216.h
index 70682e7bcd..c6befa4081 100644
--- a/cpukit/score/cpu/avr/avr/io90pwm216.h
+++ b/cpukit/score/cpu/avr/avr/io90pwm216.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for AT90PWM216
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2007, Atmel Corporation
All rights reserved.
@@ -46,6 +54,14 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
+/**
+ * @defgroup AvrDef_io90pwm216 AT90PWM216 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* I/O registers */
/* Port B Input Pins Address */
@@ -1176,5 +1192,6 @@
#define SIGNATURE_1 0x94
#define SIGNATURE_2 0x83
+/** @} */
#endif /* _AVR_IO90PWM216_H_ */
diff --git a/cpukit/score/cpu/avr/avr/io90pwm2b.h b/cpukit/score/cpu/avr/avr/io90pwm2b.h
index 14a3893366..22d0c1c379 100644
--- a/cpukit/score/cpu/avr/avr/io90pwm2b.h
+++ b/cpukit/score/cpu/avr/avr/io90pwm2b.h
@@ -1,38 +1,42 @@
-/* Copyright (c) 2007 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-/* avr/io90pwm2b.h - definitions for AT90PWM2B */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/io90pwm2b.h
+ *
+ * @brief Definitions for AT90PWM2B
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2007 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -42,12 +46,20 @@
# define _AVR_IOXXX_H_ "io90pwm2b.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_IO90PWM2B_H_
#define _AVR_IO90PWM2B_H_ 1
+/**
+ * @defgroup Avr_io90pwm2b AT90PWM2B Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* Registers and associated bit numbers */
#define PINB _SFR_IO8(0x03)
@@ -79,7 +91,7 @@
#define PORTB5 5
#define PORTB6 6
#define PORTB7 7
-
+
#define PINC _SFR_IO8(0x06)
#define PINC0 0
#define PINC1 1
@@ -817,7 +829,7 @@
#define STP0 0
#define STP1 1
#define F1617 2
-#define FEM 3
+#define FEM 3
#define MUBRR _SFR_MEM16(0xCC)
@@ -1362,7 +1374,7 @@
#define FUSE_SPIEN (unsigned char)~_BV(5) /* Enable Serial programming and Data Downloading */
#define FUSE_DWEN (unsigned char)~_BV(6) /* debugWIRE Enable */
#define FUSE_RSTDISBL (unsigned char)~_BV(7) /* External Reset Disable */
-#define HFUSE_DEFAULT (FUSE_SPIEN)
+#define HFUSE_DEFAULT (FUSE_SPIEN)
/* Extended Fuse Byte */
@@ -1379,7 +1391,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -1388,4 +1400,5 @@
#define SIGNATURE_2 0x83
+/** @} */
#endif /* _AVR_IO90PWM2B_H_ */
diff --git a/cpukit/score/cpu/avr/avr/io90pwm3b.h b/cpukit/score/cpu/avr/avr/io90pwm3b.h
index 0d648fb47d..5b1a7537cb 100644
--- a/cpukit/score/cpu/avr/avr/io90pwm3b.h
+++ b/cpukit/score/cpu/avr/avr/io90pwm3b.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for AT90PWM3B
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2007 Atmel Corporation
All rights reserved.
@@ -48,6 +56,14 @@
#ifndef _AVR_IO90PWM3B_H_
#define _AVR_IO90PWM3B_H_ 1
+/**
+ * @defgroup AvrDef_io90pwm3b AT90PWM3B Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* Registers and associated bit numbers */
#define PINB _SFR_IO8(0x03)
@@ -1387,5 +1403,6 @@
#define SIGNATURE_1 0x93
#define SIGNATURE_2 0x83
+/** @} */
#endif /* _AVR_IO90PWM3B_H_ */
diff --git a/cpukit/score/cpu/avr/avr/io90pwm81.h b/cpukit/score/cpu/avr/avr/io90pwm81.h
index cc013b96b0..b2faea85f6 100644
--- a/cpukit/score/cpu/avr/avr/io90pwm81.h
+++ b/cpukit/score/cpu/avr/avr/io90pwm81.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for AT90PWM81
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2009 Atmel Corporation
All rights reserved.
@@ -43,6 +51,13 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
+/**
+ * @defgroup AvrDef_io90pwm81 AT90PWM81 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
#ifndef _AVR_AT90PWM81_H_
#define _AVR_AT90PWM81_H_ 1
@@ -1019,6 +1034,7 @@
#define SIGNATURE_1 0x93
#define SIGNATURE_2 0x88
+/** @} */
#endif /* _AVR_AT90PWM81_H_ */
diff --git a/cpukit/score/cpu/avr/avr/io90pwmx.h b/cpukit/score/cpu/avr/avr/io90pwmx.h
index f2db6097f7..b66b65c541 100644
--- a/cpukit/score/cpu/avr/avr/io90pwmx.h
+++ b/cpukit/score/cpu/avr/avr/io90pwmx.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for AT90PWM2(B) and AT90PWM3(B)
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2005, Andrey Pashchenko
All rights reserved.
@@ -46,6 +54,14 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
+/**
+ * @defgroup io90pwmx AT90PWM2(B) and AT90PWM3(B) Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* I/O registers */
/* Port B Input Pins Address */
@@ -1366,5 +1382,6 @@
#define __BOOT_LOCK_BITS_0_EXIST
#define __BOOT_LOCK_BITS_1_EXIST
+/** @} */
#endif /* _AVR_IO90PWMX_H_ */
diff --git a/cpukit/score/cpu/avr/avr/io90scr100.h b/cpukit/score/cpu/avr/avr/io90scr100.h
index 4451ec8b5d..cb9f59247a 100644
--- a/cpukit/score/cpu/avr/avr/io90scr100.h
+++ b/cpukit/score/cpu/avr/avr/io90scr100.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/io90scr100.h - definitions for AT90SCR100 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/io90scr100.h
+ *
+ * @brief Definitions for AT90SCR100
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "io90scr100.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_AT90SCR100_H_
#define _AVR_AT90SCR100_H_ 1
+/**
+ * @defgroup Avr_io90scr100 AT90SCR100 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Registers and associated bit numbers. */
@@ -1693,5 +1704,5 @@
#define SIGNATURE_2 0xC1
+/**@}*/
#endif /* _AVR_AT90SCR100_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/ioa6289.h b/cpukit/score/cpu/avr/avr/ioa6289.h
index b5bde6ae40..d51e3a965a 100644
--- a/cpukit/score/cpu/avr/avr/ioa6289.h
+++ b/cpukit/score/cpu/avr/avr/ioa6289.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2008 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/ioa6289.h - definitions for ATA6289 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/ioa6289.h
+ *
+ * @brief Definitions for ATA6289
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2008 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,19 @@
# define _AVR_IOXXX_H_ "ioa6289.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATA6289_H_
#define _AVR_ATA6289_H_ 1
+/**
+ * @defgroup Avr_ioa6289 ATA6289 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
/* Registers and associated bit numbers. */
@@ -839,5 +851,5 @@
#define SIGNATURE_2 0x82
+/** @} */
#endif /* _AVR_ATA6289_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/ioat94k.h b/cpukit/score/cpu/avr/avr/ioat94k.h
index 68a9fe2cf5..dc0cab6890 100644
--- a/cpukit/score/cpu/avr/avr/ioat94k.h
+++ b/cpukit/score/cpu/avr/avr/ioat94k.h
@@ -1,41 +1,46 @@
-/* Copyright (c) 2002, Marek Michalkiewicz
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
+/**
+ * @file avr/ioat94k.h
+ *
+ * @brief Definitions for AT94K Series FPSLIC(tm)
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
-/* avr/ioat94k.h - definitions for AT94K series FPSLIC(tm) */
+/*
+ * Copyright (c) 2002 Marek Michalkiewicz
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOAT94K_H_
#define _AVR_IOAT94K_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
-
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
#endif
@@ -44,7 +49,14 @@
# define _AVR_IOXXX_H_ "ioat94k.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
+
+/**
+ * @defgroup Avr_ioat94k AT94K Series FPSLIC(tm) Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* I/O registers */
@@ -209,33 +221,33 @@
/* Interrupt vectors */
-#define SIG_FPGA_INTERRUPT0 _VECTOR(1) /* FPGA_INT0 */
+#define SIG_FPGA_INTERRUPT0 _VECTOR(1) /* FPGA_INT0 */
#define SIG_INTERRUPT0 _VECTOR(2) /* EXT_INT0 */
-#define SIG_FPGA_INTERRUPT1 _VECTOR(3) /* FPGA_INT1 */
+#define SIG_FPGA_INTERRUPT1 _VECTOR(3) /* FPGA_INT1 */
#define SIG_INTERRUPT1 _VECTOR(4) /* EXT_INT1 */
-#define SIG_FPGA_INTERRUPT2 _VECTOR(5) /* FPGA_INT2 */
+#define SIG_FPGA_INTERRUPT2 _VECTOR(5) /* FPGA_INT2 */
#define SIG_INTERRUPT2 _VECTOR(6) /* EXT_INT2 */
-#define SIG_FPGA_INTERRUPT3 _VECTOR(7) /* FPGA_INT3 */
+#define SIG_FPGA_INTERRUPT3 _VECTOR(7) /* FPGA_INT3 */
#define SIG_INTERRUPT3 _VECTOR(8) /* EXT_INT3 */
-#define SIG_OUTPUT_COMPARE2 _VECTOR(9) /* TIM2_COMP */
-#define SIG_OVERFLOW2 _VECTOR(10) /* TIM2_OVF */
-#define SIG_INPUT_CAPTURE1 _VECTOR(11) /* TIM1_CAPT */
-#define SIG_OUTPUT_COMPARE1A _VECTOR(12) /* TIM1_COMPA */
-#define SIG_OUTPUT_COMPARE1B _VECTOR(13) /* TIM1_COMPB */
-#define SIG_OVERFLOW1 _VECTOR(14) /* TIM1_OVF */
-#define SIG_OUTPUT_COMPARE0 _VECTOR(15) /* TIM0_COMP */
-#define SIG_OVERFLOW0 _VECTOR(16) /* TIM0_OVF */
-#define SIG_FPGA_INTERRUPT4 _VECTOR(17) /* FPGA_INT4 */
-#define SIG_FPGA_INTERRUPT5 _VECTOR(18) /* FPGA_INT5 */
-#define SIG_FPGA_INTERRUPT6 _VECTOR(19) /* FPGA_INT6 */
-#define SIG_FPGA_INTERRUPT7 _VECTOR(20) /* FPGA_INT7 */
+#define SIG_OUTPUT_COMPARE2 _VECTOR(9) /* TIM2_COMP */
+#define SIG_OVERFLOW2 _VECTOR(10) /* TIM2_OVF */
+#define SIG_INPUT_CAPTURE1 _VECTOR(11) /* TIM1_CAPT */
+#define SIG_OUTPUT_COMPARE1A _VECTOR(12) /* TIM1_COMPA */
+#define SIG_OUTPUT_COMPARE1B _VECTOR(13) /* TIM1_COMPB */
+#define SIG_OVERFLOW1 _VECTOR(14) /* TIM1_OVF */
+#define SIG_OUTPUT_COMPARE0 _VECTOR(15) /* TIM0_COMP */
+#define SIG_OVERFLOW0 _VECTOR(16) /* TIM0_OVF */
+#define SIG_FPGA_INTERRUPT4 _VECTOR(17) /* FPGA_INT4 */
+#define SIG_FPGA_INTERRUPT5 _VECTOR(18) /* FPGA_INT5 */
+#define SIG_FPGA_INTERRUPT6 _VECTOR(19) /* FPGA_INT6 */
+#define SIG_FPGA_INTERRUPT7 _VECTOR(20) /* FPGA_INT7 */
#define SIG_UART0_RECV _VECTOR(21) /* UART0_RXC */
#define SIG_UART0_DATA _VECTOR(22) /* UART0_DRE */
#define SIG_UART0_TRANS _VECTOR(23) /* UART0_TXC */
-#define SIG_FPGA_INTERRUPT8 _VECTOR(24) /* FPGA_INT8 */
-#define SIG_FPGA_INTERRUPT9 _VECTOR(25) /* FPGA_INT9 */
-#define SIG_FPGA_INTERRUPT10 _VECTOR(26) /* FPGA_INT10 */
-#define SIG_FPGA_INTERRUPT11 _VECTOR(27) /* FPGA_INT11 */
+#define SIG_FPGA_INTERRUPT8 _VECTOR(24) /* FPGA_INT8 */
+#define SIG_FPGA_INTERRUPT9 _VECTOR(25) /* FPGA_INT9 */
+#define SIG_FPGA_INTERRUPT10 _VECTOR(26) /* FPGA_INT10 */
+#define SIG_FPGA_INTERRUPT11 _VECTOR(27) /* FPGA_INT11 */
#define SIG_UART1_RECV _VECTOR(28) /* UART1_RXC */
#define SIG_UART1_DATA _VECTOR(29) /* UART1_DRE */
#define SIG_UART1_TRANS _VECTOR(30) /* UART1_TXC */
@@ -553,4 +565,5 @@
#define FLASHEND 0x7FFF
#endif
+/**@}*/
#endif /* _AVR_IOAT94K_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iocan32.h b/cpukit/score/cpu/avr/avr/iocan32.h
index 8833f653f0..512b45d7b5 100644
--- a/cpukit/score/cpu/avr/avr/iocan32.h
+++ b/cpukit/score/cpu/avr/avr/iocan32.h
@@ -1,39 +1,54 @@
-/* Copyright (c) 2004,2005, Anatoly Sokolov <aesok@pautinka.net>
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* iocan32.h - definitions for CAN32 */
+/**
+ * @file iocan32.h
+ *
+ * @brief Definitions for CAN32
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2004,2005, Anatoly Sokolov <aesok@pautinka.net>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOCAN32_H_
#define _AVR_IOCAN32_H_ 1
+/**
+ * @defgroup AvrDef_CAN32 CAN32 Defintions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
#include <avr/iocanxx.h>
/* Constants */
@@ -81,7 +96,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -90,4 +105,5 @@
#define SIGNATURE_2 0x81
+/** @} */
#endif /* _AVR_IOCAN32_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iocanxx.h b/cpukit/score/cpu/avr/avr/iocanxx.h
index 70c073a640..a593539cb1 100644
--- a/cpukit/score/cpu/avr/avr/iocanxx.h
+++ b/cpukit/score/cpu/avr/avr/iocanxx.h
@@ -1,48 +1,60 @@
-/* Copyright (c) 2004,2005,2006 Colin O'Flynn <coflynn@newae.com>
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* This file is based largely on:
- - iom128.h by Peter Jansen (bit defines)
- - iom169.h by Juergen Schilling <juergen.schilling@honeywell.com>
- (register addresses)
- - AT90CAN128 Datasheet (bit defines and register addresses)
- - Appnote on Mega128 --> AT90Can128 Conversion (for what registers I need
- to change) */
-
-/* iocanxx.h - definitions for AT90CAN32, AT90CAN64 and AT90CAN128 */
+/**
+ * @file iocanxx.h
+ *
+ * @brief Definitions for AT90CAN32, AT90CAN64 and AT90CAN128
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ *
+ * This file is based largely on:
+ * - iom128.h by Peter Jansen (bit defines)
+ * - iom169.h by Juergen Schilling <juergen.schilling@honeywell.com>
+ * (register addresses)
+ * - AT90CAN128 Datasheet (bit defines and register addresses)
+ * - Appnote on Mega128 --> AT90Can128 Conversion (for what registers I need
+ * to change)
+ */
+
+/*
+ * Copyright (c) 2004,2005,2006 Colin O'Flynn <coflynn@newae.com>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOCANXX_H_
#define _AVR_IOCANXX_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_iocanxx AT90CAN32, AT90CAN64, AT90CAN128 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -52,7 +64,7 @@
# define _AVR_IOXXX_H_ "iocanxx.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* I/O registers and bit definitions. */
@@ -951,9 +963,9 @@
#define ADPS0 0
/* End Register Bits */
-/*
- The ADHSM bit has been removed from all documentation,
- as being not needed at all since the comparator has proven
+/*
+ The ADHSM bit has been removed from all documentation,
+ as being not needed at all since the comparator has proven
to be fast enough even without feeding it more power.
*/
@@ -1974,4 +1986,5 @@
/* End Verbatim */
+/**@}*/
#endif /* _AVR_IOCANXX_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom103.h b/cpukit/score/cpu/avr/avr/iom103.h
index 0f4816ff07..6ca791b100 100644
--- a/cpukit/score/cpu/avr/avr/iom103.h
+++ b/cpukit/score/cpu/avr/avr/iom103.h
@@ -1,41 +1,46 @@
-/* Copyright (c) 2002, Marek Michalkiewicz
- All rights reserved.
+/**
+ * @file avr/iom103.h
+ *
+ * @brief Definitions for ATmega103
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iom103.h - definitions for ATmega103 */
+/*
+ * Copyright (c) 2002, Marek Michalkiewicz
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOM103_H_
#define _AVR_IOM103_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
-
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
#endif
@@ -44,7 +49,15 @@
# define _AVR_IOXXX_H_ "iom103.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
+
+/**
+ * @defgroup AvrDef_iom103 ATmega103 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
/* I/O registers */
@@ -670,5 +683,5 @@
#define SIGNATURE_1 0x97
#define SIGNATURE_2 0x01
-
+/** @} */
#endif /* _AVR_IOM103_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom128.h b/cpukit/score/cpu/avr/avr/iom128.h
index 0a41879f23..7eeb3f57e6 100644
--- a/cpukit/score/cpu/avr/avr/iom128.h
+++ b/cpukit/score/cpu/avr/avr/iom128.h
@@ -1,44 +1,56 @@
-/* Copyright (c) 2002, Peter Jansen
- Copyright (c) 2007, Atmel Corporation
- All rights reserved.
+/**
+ * @file avr/iom128.h
+ *
+ * @brief Definitions for ATmega128
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ *
+ * As of 2002-08-27:
+ * - This should be up to date with data sheet 2467E-AVR-05/02
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iom128.h - defines for ATmega128
-
- As of 2002-08-27:
- - This should be up to date with data sheet 2467E-AVR-05/02 */
+/*
+ * Copyright (c) 2002, Peter Jansen
+ * Copyright (c) 2007, Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOM128_H_
#define _AVR_IOM128_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_iom128 ATmega128 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -48,7 +60,7 @@
# define _AVR_IOXXX_H_ "iom128.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* I/O registers */
@@ -793,9 +805,9 @@
#define WDP1 1
#define WDP0 0
-/*
- The ADHSM bit has been removed from all documentation,
- as being not needed at all since the comparator has proven
+/*
+ The ADHSM bit has been removed from all documentation,
+ as being not needed at all since the comparator has proven
to be fast enough even without feeding it more power.
*/
@@ -965,7 +977,7 @@
#define PINA5 5
#define PINA4 4
#define PINA3 3
-#define PINA2 2
+#define PINA2 2
#define PINA1 1
#define PINA0 0
@@ -995,7 +1007,7 @@
#define PINB5 5
#define PINB4 4
#define PINB3 3
-#define PINB2 2
+#define PINB2 2
#define PINB1 1
#define PINB0 0
@@ -1025,7 +1037,7 @@
#define PINC5 5
#define PINC4 4
#define PINC3 3
-#define PINC2 2
+#define PINC2 2
#define PINC1 1
#define PINC0 0
@@ -1055,7 +1067,7 @@
#define PIND5 5
#define PIND4 4
#define PIND3 3
-#define PIND2 2
+#define PIND2 2
#define PIND1 1
#define PIND0 0
@@ -1085,7 +1097,7 @@
#define PINE5 5
#define PINE4 4
#define PINE3 3
-#define PINE2 2
+#define PINE2 2
#define PINE1 1
#define PINE0 0
@@ -1115,7 +1127,7 @@
#define PINF5 5
#define PINF4 4
#define PINF3 3
-#define PINF2 2
+#define PINF2 2
#define PINF1 1
#define PINF0 0
@@ -1136,7 +1148,7 @@
/* Port G Input Pins - PING */
#define PING4 4
#define PING3 3
-#define PING2 2
+#define PING2 2
#define PING1 1
#define PING0 0
@@ -1190,7 +1202,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -1199,4 +1211,5 @@
#define SIGNATURE_2 0x02
+/**@}*/
#endif /* _AVR_IOM128_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom1280.h b/cpukit/score/cpu/avr/avr/iom1280.h
index 5bed7c9a43..a6aff362b8 100644
--- a/cpukit/score/cpu/avr/avr/iom1280.h
+++ b/cpukit/score/cpu/avr/avr/iom1280.h
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATmega1280
+ */
+
/* Copyright (c) 2005 Anatoly Sokolov
All rights reserved.
@@ -36,6 +42,14 @@
#include <avr/iomxx0_1.h>
+/**
+ * @defgroup AvrDef_iom1280 ATmega1280 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* Constants */
#define SPM_PAGESIZE 256
#define RAMEND 0x21FF
@@ -89,5 +103,6 @@
#define SIGNATURE_1 0x97
#define SIGNATURE_2 0x03
+/** @} */
#endif /* _AVR_IOM1280_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom1281.h b/cpukit/score/cpu/avr/avr/iom1281.h
index 39f6916ed1..8b764c675e 100644
--- a/cpukit/score/cpu/avr/avr/iom1281.h
+++ b/cpukit/score/cpu/avr/avr/iom1281.h
@@ -1,39 +1,52 @@
-/* Copyright (c) 2005 Anatoly Sokolov
- All rights reserved.
+/**
+ * @file avr/iom1281.h
+ *
+ * @brief Definitions for ATmega1281
+ */
+
+/*
+ * Copyright (c) 2005 Anatoly Sokolov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iom1281.h - definitions for ATmega1281 */
#ifndef _AVR_IOM1281_H_
#define _AVR_IOM1281_H_ 1
+/**
+ * @defgroup Avr_iom1281 ATmega1281 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
+
#include <avr/iomxx0_1.h>
/* Constants */
@@ -81,7 +94,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -89,5 +102,5 @@
#define SIGNATURE_1 0x97
#define SIGNATURE_2 0x04
-
+/**@}*/
#endif /* _AVR_IOM1281_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom1284p.h b/cpukit/score/cpu/avr/avr/iom1284p.h
index 0e5a6f5cd6..3076de21c6 100644
--- a/cpukit/score/cpu/avr/avr/iom1284p.h
+++ b/cpukit/score/cpu/avr/avr/iom1284p.h
@@ -1,1131 +1,1141 @@
-/* Copyright (c) 2007 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-/* avr/iom1284p.h - definitions for ATmega1284P. */
-
-/* This file should only be included from <avr/io.h>, never directly. */
-
-#ifndef _AVR_IO_H_
-# error "Include <avr/io.h> instead of this file."
-#endif
-
-#ifndef _AVR_IOXXX_H_
-# define _AVR_IOXXX_H_ "iom1284p.h"
-#else
-# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
-
-
-#ifndef _AVR_IOM1284P_H_
-#define _AVR_IOM1284P_H_ 1
-
-
-/* Registers and associated bit numbers */
-
-#define PINA _SFR_IO8(0x00)
-#define PINA0 0
-#define PINA1 1
-#define PINA2 2
-#define PINA3 3
-#define PINA4 4
-#define PINA5 5
-#define PINA6 6
-#define PINA7 7
-
-#define DDRA _SFR_IO8(0x01)
-#define DDA0 0
-#define DDA1 1
-#define DDA2 2
-#define DDA3 3
-#define DDA4 4
-#define DDA5 5
-#define DDA6 6
-#define DDA7 7
-
-#define PORTA _SFR_IO8(0x02)
-#define PORTA0 0
-#define PORTA1 1
-#define PORTA2 2
-#define PORTA3 3
-#define PORTA4 4
-#define PORTA5 5
-#define PORTA6 6
-#define PORTA7 7
-
-#define PINB _SFR_IO8(0x03)
-#define PINB0 0
-#define PINB1 1
-#define PINB2 2
-#define PINB3 3
-#define PINB4 4
-#define PINB5 5
-#define PINB6 6
-#define PINB7 7
-
-#define DDRB _SFR_IO8(0x04)
-#define DDB0 0
-#define DDB1 1
-#define DDB2 2
-#define DDB3 3
-#define DDB4 4
-#define DDB5 5
-#define DDB6 6
-#define DDB7 7
-
-#define PORTB _SFR_IO8(0x05)
-#define PORTB0 0
-#define PORTB1 1
-#define PORTB2 2
-#define PORTB3 3
-#define PORTB4 4
-#define PORTB5 5
-#define PORTB6 6
-#define PORTB7 7
-
-#define PINC _SFR_IO8(0x06)
-#define PINC0 0
-#define PINC1 1
-#define PINC2 2
-#define PINC3 3
-#define PINC4 4
-#define PINC5 5
-#define PINC6 6
-#define PINC7 7
-
-#define DDRC _SFR_IO8(0x07)
-#define DDC0 0
-#define DDC1 1
-#define DDC2 2
-#define DDC3 3
-#define DDC4 4
-#define DDC5 5
-#define DDC6 6
-#define DDC7 7
-
-#define PORTC _SFR_IO8(0x08)
-#define PORTC0 0
-#define PORTC1 1
-#define PORTC2 2
-#define PORTC3 3
-#define PORTC4 4
-#define PORTC5 5
-#define PORTC6 6
-#define PORTC7 7
-
-#define PIND _SFR_IO8(0x09)
-#define PIND0 0
-#define PIND1 1
-#define PIND2 2
-#define PIND3 3
-#define PIND4 4
-#define PIND5 5
-#define PIND6 6
-#define PIND7 7
-
-#define DDRD _SFR_IO8(0x0A)
-#define DDD0 0
-#define DDD1 1
-#define DDD2 2
-#define DDD3 3
-#define DDD4 4
-#define DDD5 5
-#define DDD6 6
-#define DDD7 7
-
-#define PORTD _SFR_IO8(0x0B)
-#define PORTD0 0
-#define PORTD1 1
-#define PORTD2 2
-#define PORTD3 3
-#define PORTD4 4
-#define PORTD5 5
-#define PORTD6 6
-#define PORTD7 7
-
-#define TIFR0 _SFR_IO8(0x15)
-#define TOV0 0
-#define OCF0A 1
-#define OCF0B 2
-
-#define TIFR1 _SFR_IO8(0x16)
-#define TOV1 0
-#define OCF1A 1
-#define OCF1B 2
-#define ICF1 5
-
-#define TIFR2 _SFR_IO8(0x17)
-#define TOV2 0
-#define OCF2A 1
-#define OCF2B 2
-
-#define TIFR3 _SFR_IO8(0x18)
-#define TOV3 0
-#define OCF3A 1
-#define OCF3B 2
-#define ICF3 5
-
-#define PCIFR _SFR_IO8(0x1B)
-#define PCIF0 0
-#define PCIF1 1
-#define PCIF2 2
-#define PCIF3 3
-
-#define EIFR _SFR_IO8(0x1C)
-#define INTF0 0
-#define INTF1 1
-#define INTF2 2
-
-#define EIMSK _SFR_IO8(0x1D)
-#define INT0 0
-#define INT1 1
-#define INT2 2
-
-#define GPIOR0 _SFR_IO8(0x1E)
-#define GPIOR00 0
-#define GPIOR01 1
-#define GPIOR02 2
-#define GPIOR03 3
-#define GPIOR04 4
-#define GPIOR05 5
-#define GPIOR06 6
-#define GPIOR07 7
-
-#define EECR _SFR_IO8(0x1F)
-#define EERE 0
-#define EEPE 1
-#define EEMPE 2
-#define EERIE 3
-#define EEPM0 4
-#define EEPM1 5
-
-#define EEDR _SFR_IO8(0x20)
-#define EEDR0 0
-#define EEDR1 1
-#define EEDR2 2
-#define EEDR3 3
-#define EEDR4 4
-#define EEDR5 5
-#define EEDR6 6
-#define EEDR7 7
-
-#define EEAR _SFR_IO16(0x21)
-
-#define EEARL _SFR_IO8(0x21)
-#define EEAR0 0
-#define EEAR1 1
-#define EEAR2 2
-#define EEAR3 3
-#define EEAR4 4
-#define EEAR5 5
-#define EEAR6 6
-#define EEAR7 7
-
-#define EEARH _SFR_IO8(0x22)
-#define EEAR8 0
-#define EEAR9 1
-#define EEAR10 2
-#define EEAR11 3
-
-#define GTCCR _SFR_IO8(0x23)
-#define PSRSYNC 0
-#define PSRASY 1
-#define TSM 7
-
-#define TCCR0A _SFR_IO8(0x24)
-#define WGM00 0
-#define WGM01 1
-#define COM0B0 4
-#define COM0B1 5
-#define COM0A0 6
-#define COM0A1 7
-
-#define TCCR0B _SFR_IO8(0x25)
-#define CS00 0
-#define CS01 1
-#define CS02 2
-#define WGM02 3
-#define FOC0B 6
-#define FOC0A 7
-
-#define TCNT0 _SFR_IO8(0x26)
-#define TCNT0_0 0
-#define TCNT0_1 1
-#define TCNT0_2 2
-#define TCNT0_3 3
-#define TCNT0_4 4
-#define TCNT0_5 5
-#define TCNT0_6 6
-#define TCNT0_7 7
-
-#define OCR0A _SFR_IO8(0x27)
-#define OCR0A_0 0
-#define OCR0A_1 1
-#define OCR0A_2 2
-#define OCR0A_3 3
-#define OCR0A_4 4
-#define OCR0A_5 5
-#define OCR0A_6 6
-#define OCR0A_7 7
-
-#define OCR0B _SFR_IO8(0x28)
-#define OCR0B_0 0
-#define OCR0B_1 1
-#define OCR0B_2 2
-#define OCR0B_3 3
-#define OCR0B_4 4
-#define OCR0B_5 5
-#define OCR0B_6 6
-#define OCR0B_7 7
-
-#define GPIOR1 _SFR_IO8(0x2A)
-#define GPIOR10 0
-#define GPIOR11 1
-#define GPIOR12 2
-#define GPIOR13 3
-#define GPIOR14 4
-#define GPIOR15 5
-#define GPIOR16 6
-#define GPIOR17 7
-
-#define GPIOR2 _SFR_IO8(0x2B)
-#define GPIOR20 0
-#define GPIOR21 1
-#define GPIOR22 2
-#define GPIOR23 3
-#define GPIOR24 4
-#define GPIOR25 5
-#define GPIOR26 6
-#define GPIOR27 7
-
-#define SPCR _SFR_IO8(0x2C)
-#define SPR0 0
-#define SPR1 1
-#define CPHA 2
-#define CPOL 3
-#define MSTR 4
-#define DORD 5
-#define SPE 6
-#define SPIE 7
-
-#define SPSR _SFR_IO8(0x2D)
-#define SPI2X 0
-#define WCOL 6
-#define SPIF 7
-
-#define SPDR _SFR_IO8(0x2E)
-#define SPDR0 0
-#define SPDR1 1
-#define SPDR2 2
-#define SPDR3 3
-#define SPDR4 4
-#define SPDR5 5
-#define SPDR6 6
-#define SPDR7 7
-
-#define ACSR _SFR_IO8(0x30)
-#define ACIS0 0
-#define ACIS1 1
-#define ACIC 2
-#define ACIE 3
-#define ACI 4
-#define ACO 5
-#define ACBG 6
-#define ACD 7
-
-#define OCDR _SFR_IO8(0x31)
-#define OCDR0 0
-#define OCDR1 1
-#define OCDR2 2
-#define OCDR3 3
-#define OCDR4 4
-#define OCDR5 5
-#define OCDR6 6
-#define OCDR7 7
-
-#define SMCR _SFR_IO8(0x33)
-#define SE 0
-#define SM0 1
-#define SM1 2
-#define SM2 3
-
-#define MCUSR _SFR_IO8(0x34)
-#define PORF 0
-#define EXTRF 1
-#define BORF 2
-#define WDRF 3
-#define JTRF 4
-
-#define MCUCR _SFR_IO8(0x35)
-#define IVCE 0
-#define IVSEL 1
-#define PUD 4
-#define BODSE 5
-#define BODS 6
-#define JTD 7
-
-#define SPMCSR _SFR_IO8(0x37)
-#define SPMEN 0
-#define PGERS 1
-#define PGWRT 2
-#define BLBSET 3
-#define RWWSRE 4
-#define SIGRD 5
-#define RWWSB 6
-#define SPMIE 7
-
-#define RAMPZ _SFR_IO8(0x3B)
-#define RAMPZ0 0
-
-#define WDTCSR _SFR_MEM8(0x60)
-#define WDP0 0
-#define WDP1 1
-#define WDP2 2
-#define WDE 3
-#define WDCE 4
-#define WDP3 5
-#define WDIE 6
-#define WDIF 7
-
-#define CLKPR _SFR_MEM8(0x61)
-#define CLKPS0 0
-#define CLKPS1 1
-#define CLKPS2 2
-#define CLKPS3 3
-#define CLKPCE 7
-
-#define PRR0 _SFR_MEM8(0x64)
-#define PRADC 0
-#define PRUSART0 1
-#define PRSPI 2
-#define PRTIM1 3
-#define PRUSART1 4
-#define PRTIM0 5
-#define PRTIM2 6
-#define PRTWI 7
-
-#define PRR1 _SFR_MEM8(0x65)
-#define PRTIM3 0
-
-#define OSCCAL _SFR_MEM8(0x66)
-#define CAL0 0
-#define CAL1 1
-#define CAL2 2
-#define CAL3 3
-#define CAL4 4
-#define CAL5 5
-#define CAL6 6
-#define CAL7 7
-
-#define PCICR _SFR_MEM8(0x68)
-#define PCIE0 0
-#define PCIE1 1
-#define PCIE2 2
-#define PCIE3 3
-
-#define EICRA _SFR_MEM8(0x69)
-#define ISC00 0
-#define ISC01 1
-#define ISC10 2
-#define ISC11 3
-#define ISC20 4
-#define ISC21 5
-
-#define PCMSK0 _SFR_MEM8(0x6B)
-#define PCINT0 0
-#define PCINT1 1
-#define PCINT2 2
-#define PCINT3 3
-#define PCINT4 4
-#define PCINT5 5
-#define PCINT6 6
-#define PCINT7 7
-
-#define PCMSK1 _SFR_MEM8(0x6C)
-#define PCINT8 0
-#define PCINT9 1
-#define PCINT10 2
-#define PCINT11 3
-#define PCINT12 4
-#define PCINT13 5
-#define PCINT14 6
-#define PCINT15 7
-
-#define PCMSK2 _SFR_MEM8(0x6D)
-#define PCINT16 0
-#define PCINT17 1
-#define PCINT18 2
-#define PCINT19 3
-#define PCINT20 4
-#define PCINT21 5
-#define PCINT22 6
-#define PCINT23 7
-
-#define TIMSK0 _SFR_MEM8(0x6E)
-#define TOIE0 0
-#define OCIE0A 1
-#define OCIE0B 2
-
-#define TIMSK1 _SFR_MEM8(0x6F)
-#define TOIE1 0
-#define OCIE1A 1
-#define OCIE1B 2
-#define ICIE1 5
-
-#define TIMSK2 _SFR_MEM8(0x70)
-#define TOIE2 0
-#define OCIE2A 1
-#define OCIE2B 2
-
-#define TIMSK3 _SFR_MEM8(0x71)
-#define TOIE3 0
-#define OCIE3A 1
-#define OCIE3B 2
-#define ICIE3 5
-
-#define PCMSK3 _SFR_MEM8(0x73)
-#define PCINT24 0
-#define PCINT25 1
-#define PCINT26 2
-#define PCINT27 3
-#define PCINT28 4
-#define PCINT29 5
-#define PCINT30 6
-#define PCINT31 7
-
-#ifndef __ASSEMBLER__
-#define ADC _SFR_MEM16(0x78)
-#endif
-#define ADCW _SFR_MEM16(0x78)
-
-#define ADCL _SFR_MEM8(0x78)
-#define ADCL0 0
-#define ADCL1 1
-#define ADCL2 2
-#define ADCL3 3
-#define ADCL4 4
-#define ADCL5 5
-#define ADCL6 6
-#define ADCL7 7
-
-#define ADCH _SFR_MEM8(0x79)
-#define ADCH0 0
-#define ADCH1 1
-#define ADCH2 2
-#define ADCH3 3
-#define ADCH4 4
-#define ADCH5 5
-#define ADCH6 6
-#define ADCH7 7
-
-#define ADCSRA _SFR_MEM8(0x7A)
-#define ADPS0 0
-#define ADPS1 1
-#define ADPS2 2
-#define ADIE 3
-#define ADIF 4
-#define ADATE 5
-#define ADSC 6
-#define ADEN 7
-
-#define ADCSRB _SFR_MEM8(0x7B)
-#define ADTS0 0
-#define ADTS1 1
-#define ADTS2 2
-#define ACME 6
-
-#define ADMUX _SFR_MEM8(0x7C)
-#define MUX0 0
-#define MUX1 1
-#define MUX2 2
-#define MUX3 3
-#define MUX4 4
-#define ADLAR 5
-#define REFS0 6
-#define REFS1 7
-
-#define DIDR0 _SFR_MEM8(0x7E)
-#define ADC0D 0
-#define ADC1D 1
-#define ADC2D 2
-#define ADC3D 3
-#define ADC4D 4
-#define ADC5D 5
-#define ADC6D 6
-#define ADC7D 7
-
-#define DIDR1 _SFR_MEM8(0x7F)
-#define AIN0D 0
-#define AIN1D 1
-
-#define TCCR1A _SFR_MEM8(0x80)
-#define WGM10 0
-#define WGM11 1
-#define COM1B0 4
-#define COM1B1 5
-#define COM1A0 6
-#define COM1A1 7
-
-#define TCCR1B _SFR_MEM8(0x81)
-#define CS10 0
-#define CS11 1
-#define CS12 2
-#define WGM12 3
-#define WGM13 4
-#define ICES1 6
-#define ICNC1 7
-
-#define TCCR1C _SFR_MEM8(0x82)
-#define FOC1B 6
-#define FOC1A 7
-
-#define TCNT1 _SFR_MEM16(0x84)
-
-#define TCNT1L _SFR_MEM8(0x84)
-#define TCNT1L0 0
-#define TCNT1L1 1
-#define TCNT1L2 2
-#define TCNT1L3 3
-#define TCNT1L4 4
-#define TCNT1L5 5
-#define TCNT1L6 6
-#define TCNT1L7 7
-
-#define TCNT1H _SFR_MEM8(0x85)
-#define TCNT1H0 0
-#define TCNT1H1 1
-#define TCNT1H2 2
-#define TCNT1H3 3
-#define TCNT1H4 4
-#define TCNT1H5 5
-#define TCNT1H6 6
-#define TCNT1H7 7
-
-#define ICR1 _SFR_MEM16(0x86)
-
-#define ICR1L _SFR_MEM8(0x86)
-#define ICR1L0 0
-#define ICR1L1 1
-#define ICR1L2 2
-#define ICR1L3 3
-#define ICR1L4 4
-#define ICR1L5 5
-#define ICR1L6 6
-#define ICR1L7 7
-
-#define ICR1H _SFR_MEM8(0x87)
-#define ICR1H0 0
-#define ICR1H1 1
-#define ICR1H2 2
-#define ICR1H3 3
-#define ICR1H4 4
-#define ICR1H5 5
-#define ICR1H6 6
-#define ICR1H7 7
-
-#define OCR1A _SFR_MEM16(0x88)
-
-#define OCR1AL _SFR_MEM8(0x88)
-#define OCR1AL0 0
-#define OCR1AL1 1
-#define OCR1AL2 2
-#define OCR1AL3 3
-#define OCR1AL4 4
-#define OCR1AL5 5
-#define OCR1AL6 6
-#define OCR1AL7 7
-
-#define OCR1AH _SFR_MEM8(0x89)
-#define OCR1AH0 0
-#define OCR1AH1 1
-#define OCR1AH2 2
-#define OCR1AH3 3
-#define OCR1AH4 4
-#define OCR1AH5 5
-#define OCR1AH6 6
-#define OCR1AH7 7
-
-#define OCR1B _SFR_MEM16(0x8A)
-
-#define OCR1BL _SFR_MEM8(0x8A)
-#define OCR1AL0 0
-#define OCR1AL1 1
-#define OCR1AL2 2
-#define OCR1AL3 3
-#define OCR1AL4 4
-#define OCR1AL5 5
-#define OCR1AL6 6
-#define OCR1AL7 7
-
-#define OCR1BH _SFR_MEM8(0x8B)
-#define OCR1AH0 0
-#define OCR1AH1 1
-#define OCR1AH2 2
-#define OCR1AH3 3
-#define OCR1AH4 4
-#define OCR1AH5 5
-#define OCR1AH6 6
-#define OCR1AH7 7
-
-#define TCCR3A _SFR_MEM8(0x90)
-#define WGM30 0
-#define WGM31 1
-#define COM3B0 4
-#define COM3B1 5
-#define COM3A0 6
-#define COM3A1 7
-
-#define TCCR3B _SFR_MEM8(0x91)
-#define CS30 0
-#define CS31 1
-#define CS32 2
-#define WGM32 3
-#define WGM33 4
-#define ICES3 6
-#define ICNC3 7
-
-#define TCCR3C _SFR_MEM8(0x92)
-#define FOC3B 6
-#define FOC3A 7
-
-#define TCNT3 _SFR_MEM16(0x94)
-
-#define TCNT3L _SFR_MEM8(0x94)
-#define TCNT3L0 0
-#define TCNT3L1 1
-#define TCNT3L2 2
-#define TCNT3L3 3
-#define TCNT3L4 4
-#define TCNT3L5 5
-#define TCNT3L6 6
-#define TCNT3L7 7
-
-#define TCNT3H _SFR_MEM8(0x95)
-#define TCNT3H0 0
-#define TCNT3H1 1
-#define TCNT3H2 2
-#define TCNT3H3 3
-#define TCNT3H4 4
-#define TCNT3H5 5
-#define TCNT3H6 6
-#define TCNT3H7 7
-
-#define ICR3 _SFR_MEM16(0x96)
-
-#define ICR3L _SFR_MEM8(0x96)
-#define ICR3L0 0
-#define ICR3L1 1
-#define ICR3L2 2
-#define ICR3L3 3
-#define ICR3L4 4
-#define ICR3L5 5
-#define ICR3L6 6
-#define ICR3L7 7
-
-#define ICR3H _SFR_MEM8(0x97)
-#define ICR3H0 0
-#define ICR3H1 1
-#define ICR3H2 2
-#define ICR3H3 3
-#define ICR3H4 4
-#define ICR3H5 5
-#define ICR3H6 6
-#define ICR3H7 7
-
-#define OCR3A _SFR_MEM16(0x98)
-
-#define OCR3AL _SFR_MEM8(0x98)
-#define OCR3AL0 0
-#define OCR3AL1 1
-#define OCR3AL2 2
-#define OCR3AL3 3
-#define OCR3AL4 4
-#define OCR3AL5 5
-#define OCR3AL6 6
-#define OCR3AL7 7
-
-#define OCR3AH _SFR_MEM8(0x99)
-#define OCR3AH0 0
-#define OCR3AH1 1
-#define OCR3AH2 2
-#define OCR3AH3 3
-#define OCR3AH4 4
-#define OCR3AH5 5
-#define OCR3AH6 6
-#define OCR3AH7 7
-
-#define OCR3B _SFR_MEM16(0x9A)
-
-#define OCR3BL _SFR_MEM8(0x9A)
-#define OCR3AL0 0
-#define OCR3AL1 1
-#define OCR3AL2 2
-#define OCR3AL3 3
-#define OCR3AL4 4
-#define OCR3AL5 5
-#define OCR3AL6 6
-#define OCR3AL7 7
-
-#define OCR3BH _SFR_MEM8(0x9B)
-#define OCR3AH0 0
-#define OCR3AH1 1
-#define OCR3AH2 2
-#define OCR3AH3 3
-#define OCR3AH4 4
-#define OCR3AH5 5
-#define OCR3AH6 6
-#define OCR3AH7 7
-
-#define TCCR2A _SFR_MEM8(0xB0)
-#define WGM20 0
-#define WGM21 1
-#define COM2B0 4
-#define COM2B1 5
-#define COM2A0 6
-#define COM2A1 7
-
-#define TCCR2B _SFR_MEM8(0xB1)
-#define CS20 0
-#define CS21 1
-#define CS22 2
-#define WGM22 3
-#define FOC2B 6
-#define FOC2A 7
-
-#define TCNT2 _SFR_MEM8(0xB2)
-#define TCNT2_0 0
-#define TCNT2_1 1
-#define TCNT2_2 2
-#define TCNT2_3 3
-#define TCNT2_4 4
-#define TCNT2_5 5
-#define TCNT2_6 6
-#define TCNT2_7 7
-
-#define OCR2A _SFR_MEM8(0xB3)
-#define OCR2_0 0
-#define OCR2_1 1
-#define OCR2_2 2
-#define OCR2_3 3
-#define OCR2_4 4
-#define OCR2_5 5
-#define OCR2_6 6
-#define OCR2_7 7
-
-#define OCR2B _SFR_MEM8(0xB4)
-#define OCR2_0 0
-#define OCR2_1 1
-#define OCR2_2 2
-#define OCR2_3 3
-#define OCR2_4 4
-#define OCR2_5 5
-#define OCR2_6 6
-#define OCR2_7 7
-
-#define ASSR _SFR_MEM8(0xB6)
-#define TCR2BUB 0
-#define TCR2AUB 1
-#define OCR2BUB 2
-#define OCR2AUB 3
-#define TCN2UB 4
-#define AS2 5
-#define EXCLK 6
-
-#define TWBR _SFR_MEM8(0xB8)
-#define TWBR0 0
-#define TWBR1 1
-#define TWBR2 2
-#define TWBR3 3
-#define TWBR4 4
-#define TWBR5 5
-#define TWBR6 6
-#define TWBR7 7
-
-#define TWSR _SFR_MEM8(0xB9)
-#define TWPS0 0
-#define TWPS1 1
-#define TWS3 3
-#define TWS4 4
-#define TWS5 5
-#define TWS6 6
-#define TWS7 7
-
-#define TWAR _SFR_MEM8(0xBA)
-#define TWGCE 0
-#define TWA0 1
-#define TWA1 2
-#define TWA2 3
-#define TWA3 4
-#define TWA4 5
-#define TWA5 6
-#define TWA6 7
-
-#define TWDR _SFR_MEM8(0xBB)
-#define TWD0 0
-#define TWD1 1
-#define TWD2 2
-#define TWD3 3
-#define TWD4 4
-#define TWD5 5
-#define TWD6 6
-#define TWD7 7
-
-#define TWCR _SFR_MEM8(0xBC)
-#define TWIE 0
-#define TWEN 2
-#define TWWC 3
-#define TWSTO 4
-#define TWSTA 5
-#define TWEA 6
-#define TWINT 7
-
-#define TWAMR _SFR_MEM8(0xBD)
-#define TWAM0 1
-#define TWAM1 2
-#define TWAM2 3
-#define TWAM3 4
-#define TWAM4 5
-#define TWAM5 6
-#define TWAM6 7
-
-#define UCSR0A _SFR_MEM8(0xC0)
-#define MPCM0 0
-#define U2X0 1
-#define UPE0 2
-#define DOR0 3
-#define FE0 4
-#define UDRE0 5
-#define TXC0 6
-#define RXC0 7
-
-#define UCSR0B _SFR_MEM8(0xC1)
-#define TXB80 0
-#define RXB80 1
-#define UCSZ02 2
-#define TXEN0 3
-#define RXEN0 4
-#define UDRIE0 5
-#define TXCIE0 6
-#define RXCIE0 7
-
-#define UCSR0C _SFR_MEM8(0xC2)
-#define UCPOL0 0
-#define UCSZ00 1
-#define UCSZ01 2
-#define USBS0 3
-#define UPM00 4
-#define UPM01 5
-#define UMSEL00 6
-#define UMSEL01 7
-
-#define UBRR0 _SFR_MEM16(0xC4)
-
-#define UBRR0L _SFR_MEM8(0xC4)
-#define UBRR0_0 0
-#define UBRR0_1 1
-#define UBRR0_2 2
-#define UBRR0_3 3
-#define UBRR0_4 4
-#define UBRR0_5 5
-#define UBRR0_6 6
-#define UBRR0_7 7
-
-#define UBRR0H _SFR_MEM8(0xC5)
-#define UBRR0_8 0
-#define UBRR0_9 1
-#define UBRR0_10 2
-#define UBRR0_11 3
-
-#define UDR0 _SFR_MEM8(0xC6)
-#define UDR0_0 0
-#define UDR0_1 1
-#define UDR0_2 2
-#define UDR0_3 3
-#define UDR0_4 4
-#define UDR0_5 5
-#define UDR0_6 6
-#define UDR0_7 7
-
-#define UCSR1A _SFR_MEM8(0xC8)
-#define MPCM1 0
-#define U2X1 1
-#define UPE1 2
-#define DOR1 3
-#define FE1 4
-#define UDRE1 5
-#define TXC1 6
-#define RXC1 7
-
-#define UCSR1B _SFR_MEM8(0xC9)
-#define TXB81 0
-#define RXB81 1
-#define UCSZ12 2
-#define TXEN1 3
-#define RXEN1 4
-#define UDRIE1 5
-#define TXCIE1 6
-#define RXCIE1 7
-
-#define UCSR1C _SFR_MEM8(0xCA)
-#define UCPOL1 0
-#define UCSZ10 1
-#define UCSZ11 2
-#define USBS1 3
-#define UPM10 4
-#define UPM11 5
-#define UMSEL10 6
-#define UMSEL11 7
-
-#define UBRR1 _SFR_MEM16(0xCC)
-
-#define UBRR1L _SFR_MEM8(0xCC)
-#define UBRR1_0 0
-#define UBRR1_1 1
-#define UBRR1_2 2
-#define UBRR1_3 3
-#define UBRR1_4 4
-#define UBRR1_5 5
-#define UBRR1_6 6
-#define UBRR1_7 7
-
-#define UBRR1H _SFR_MEM8(0xCD)
-#define UBRR1_8 0
-#define UBRR1_9 1
-#define UBRR1_10 2
-#define UBRR1_11 3
-
-#define UDR1 _SFR_MEM8(0xCE)
-#define UDR1_0 0
-#define UDR1_1 1
-#define UDR1_2 2
-#define UDR1_3 3
-#define UDR1_4 4
-#define UDR1_5 5
-#define UDR1_6 6
-#define UDR1_7 7
-
-
-/* Interrupt Vectors */
-/* Interrupt Vector 0 is the reset vector. */
-
-#define INT0_vect _VECTOR(1) /* External Interrupt Request 0 */
-#define INT1_vect _VECTOR(2) /* External Interrupt Request 1 */
-#define INT2_vect _VECTOR(3) /* External Interrupt Request 2 */
-#define PCINT0_vect _VECTOR(4) /* Pin Change Interrupt Request 0 */
-#define PCINT1_vect _VECTOR(5) /* Pin Change Interrupt Request 1 */
-#define PCINT2_vect _VECTOR(6) /* Pin Change Interrupt Request 2 */
-#define PCINT3_vect _VECTOR(7) /* Pin Change Interrupt Request 3 */
-#define WDT_vect _VECTOR(8) /* Watchdog Time-out Interrupt */
-#define TIMER2_COMPA_vect _VECTOR(9) /* Timer/Counter2 Compare Match A */
-#define TIMER2_COMPB_vect _VECTOR(10) /* Timer/Counter2 Compare Match B */
-#define TIMER2_OVF_vect _VECTOR(11) /* Timer/Counter2 Overflow */
-#define TIMER1_CAPT_vect _VECTOR(12) /* Timer/Counter1 Capture Event */
-#define TIMER1_COMPA_vect _VECTOR(13) /* Timer/Counter1 Compare Match A */
-#define TIMER1_COMPB_vect _VECTOR(14) /* Timer/Counter1 Compare Match B */
-#define TIMER1_OVF_vect _VECTOR(15) /* Timer/Counter1 Overflow */
-#define TIMER0_COMPA_vect _VECTOR(16) /* Timer/Counter0 Compare Match A */
-#define TIMER0_COMPB_vect _VECTOR(17) /* Timer/Counter0 Compare Match B */
-#define TIMER0_OVF_vect _VECTOR(18) /* Timer/Counter0 Overflow */
-#define SPI_STC_vect _VECTOR(19) /* SPI Serial Transfer Complete */
-#define USART0_RX_vect _VECTOR(20) /* USART0, Rx Complete */
-#define USART0_UDRE_vect _VECTOR(21) /* USART0 Data register Empty */
-#define USART0_TX_vect _VECTOR(22) /* USART0, Tx Complete */
-#define ANALOG_COMP_vect _VECTOR(23) /* Analog Comparator */
-#define ADC_vect _VECTOR(24) /* ADC Conversion Complete */
-#define EE_READY_vect _VECTOR(25) /* EEPROM Ready */
-#define TWI_vect _VECTOR(26) /* 2-wire Serial Interface */
-#define SPM_READY_vect _VECTOR(27) /* Store Program Memory Read */
-#define USART1_RX_vect _VECTOR(28) /* USART1 RX complete */
-#define USART1_UDRE_vect _VECTOR(29) /* USART1 Data Register Empty */
-#define USART1_TX_vect _VECTOR(30) /* USART1 TX complete */
-#define TIMER3_CAPT_vect _VECTOR(31) /* Timer/Counter3 Capture Event */
-#define TIMER3_COMPA_vect _VECTOR(32) /* Timer/Counter3 Compare Match A */
-#define TIMER3_COMPB_vect _VECTOR(33) /* Timer/Counter3 Compare Match B */
-#define TIMER3_OVF_vect _VECTOR(34) /* Timer/Counter3 Overflow */
-
-#define _VECTORS_SIZE (35 * 4)
-
-
-/* Constants */
-#define SPM_PAGESIZE 256
-#define RAMEND 0x40FF /* Last On-Chip SRAM Location */
-#define XRAMSIZE 0
-#define XRAMEND RAMEND
-#define E2END 0xFFF
-#define E2PAGESIZE 8
-#define FLASHEND 0x1FFFF
-
-
-/* Fuses */
-#define FUSE_MEMORY_SIZE 3
-
-/* Low Fuse Byte */
-#define FUSE_CKSEL0 (unsigned char)~_BV(0) /* Select Clock Source */
-#define FUSE_CKSEL1 (unsigned char)~_BV(1) /* Select Clock Source */
-#define FUSE_CKSEL2 (unsigned char)~_BV(2) /* Select Clock Source */
-#define FUSE_CKSEL3 (unsigned char)~_BV(3) /* Select Clock Source */
-#define FUSE_SUT0 (unsigned char)~_BV(4) /* Select start-up time */
-#define FUSE_SUT1 (unsigned char)~_BV(5) /* Select start-up time */
-#define FUSE_CKOUT (unsigned char)~_BV(6) /* Clock output */
-#define FUSE_CKDIV8 (unsigned char)~_BV(7) /* Divide clock by 8 */
-#define LFUSE_DEFAULT (FUSE_CKSEL0 & FUSE_CKSEL2 & FUSE_CKSEL3 & FUSE_SUT0 & FUSE_SUT1 & FUSE_CKDIV8)
-
-/* High Fuse Byte */
-#define FUSE_BOOTRST (unsigned char)~_BV(0) /* Select Reset Vector */
-#define FUSE_BOOTSZ0 (unsigned char)~_BV(1) /* Select Boot Size */
-#define FUSE_BOOTSZ1 (unsigned char)~_BV(2) /* Select Boot Size */
-#define FUSE_EESAVE (unsigned char)~_BV(3) /* EEPROM memory is preserved through chip erase */
-#define FUSE_WDTON (unsigned char)~_BV(4) /* Watchdog timer always on */
-#define FUSE_SPIEN (unsigned char)~_BV(5) /* Enable Serial programming and Data Downloading */
-#define FUSE_JTAGEN (unsigned char)~_BV(6) /* Enable JTAG */
-#define FUSE_OCDEN (unsigned char)~_BV(7) /* Enable OCD */
-#define HFUSE_DEFAULT (FUSE_BOOTSZ0 & FUSE_SPIEN & FUSE_JTAGEN)
-
-/* Extended Fuse Byte */
-#define FUSE_BODLEVEL0 (unsigned char)~_BV(0) /* Brown-out Detector trigger level */
-#define FUSE_BODLEVEL1 (unsigned char)~_BV(1) /* Brown-out Detector trigger level */
-#define FUSE_BODLEVEL2 (unsigned char)~_BV(2) /* Brown-out Detector trigger level */
-#define EFUSE_DEFAULT (0xFF)
-
-
-/* Lock Bits */
-#define __LOCK_BITS_EXIST
-#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
-
-
-/* Signature */
-#define SIGNATURE_0 0x1E
-#define SIGNATURE_1 0x97
-#define SIGNATURE_2 0x05
-
-
-#endif /* _AVR_IOM1284P_H_ */
+/**
+ * @file avr/iom1284p.h
+ *
+ * @brief Definitions for ATmega1284P
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2007 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _AVR_IO_H_
+# error "Include <avr/io.h> instead of this file."
+#endif
+
+#ifndef _AVR_IOXXX_H_
+# define _AVR_IOXXX_H_ "iom1284p.h"
+#else
+# error "Attempt to include more than one <avr/ioXXX.h> file."
+#endif
+
+
+#ifndef _AVR_IOM1284P_H_
+#define _AVR_IOM1284P_H_ 1
+
+/**
+ * @defgroup Avr_iom1284p ATmega1284P Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
+
+/* Registers and associated bit numbers */
+
+#define PINA _SFR_IO8(0x00)
+#define PINA0 0
+#define PINA1 1
+#define PINA2 2
+#define PINA3 3
+#define PINA4 4
+#define PINA5 5
+#define PINA6 6
+#define PINA7 7
+
+#define DDRA _SFR_IO8(0x01)
+#define DDA0 0
+#define DDA1 1
+#define DDA2 2
+#define DDA3 3
+#define DDA4 4
+#define DDA5 5
+#define DDA6 6
+#define DDA7 7
+
+#define PORTA _SFR_IO8(0x02)
+#define PORTA0 0
+#define PORTA1 1
+#define PORTA2 2
+#define PORTA3 3
+#define PORTA4 4
+#define PORTA5 5
+#define PORTA6 6
+#define PORTA7 7
+
+#define PINB _SFR_IO8(0x03)
+#define PINB0 0
+#define PINB1 1
+#define PINB2 2
+#define PINB3 3
+#define PINB4 4
+#define PINB5 5
+#define PINB6 6
+#define PINB7 7
+
+#define DDRB _SFR_IO8(0x04)
+#define DDB0 0
+#define DDB1 1
+#define DDB2 2
+#define DDB3 3
+#define DDB4 4
+#define DDB5 5
+#define DDB6 6
+#define DDB7 7
+
+#define PORTB _SFR_IO8(0x05)
+#define PORTB0 0
+#define PORTB1 1
+#define PORTB2 2
+#define PORTB3 3
+#define PORTB4 4
+#define PORTB5 5
+#define PORTB6 6
+#define PORTB7 7
+
+#define PINC _SFR_IO8(0x06)
+#define PINC0 0
+#define PINC1 1
+#define PINC2 2
+#define PINC3 3
+#define PINC4 4
+#define PINC5 5
+#define PINC6 6
+#define PINC7 7
+
+#define DDRC _SFR_IO8(0x07)
+#define DDC0 0
+#define DDC1 1
+#define DDC2 2
+#define DDC3 3
+#define DDC4 4
+#define DDC5 5
+#define DDC6 6
+#define DDC7 7
+
+#define PORTC _SFR_IO8(0x08)
+#define PORTC0 0
+#define PORTC1 1
+#define PORTC2 2
+#define PORTC3 3
+#define PORTC4 4
+#define PORTC5 5
+#define PORTC6 6
+#define PORTC7 7
+
+#define PIND _SFR_IO8(0x09)
+#define PIND0 0
+#define PIND1 1
+#define PIND2 2
+#define PIND3 3
+#define PIND4 4
+#define PIND5 5
+#define PIND6 6
+#define PIND7 7
+
+#define DDRD _SFR_IO8(0x0A)
+#define DDD0 0
+#define DDD1 1
+#define DDD2 2
+#define DDD3 3
+#define DDD4 4
+#define DDD5 5
+#define DDD6 6
+#define DDD7 7
+
+#define PORTD _SFR_IO8(0x0B)
+#define PORTD0 0
+#define PORTD1 1
+#define PORTD2 2
+#define PORTD3 3
+#define PORTD4 4
+#define PORTD5 5
+#define PORTD6 6
+#define PORTD7 7
+
+#define TIFR0 _SFR_IO8(0x15)
+#define TOV0 0
+#define OCF0A 1
+#define OCF0B 2
+
+#define TIFR1 _SFR_IO8(0x16)
+#define TOV1 0
+#define OCF1A 1
+#define OCF1B 2
+#define ICF1 5
+
+#define TIFR2 _SFR_IO8(0x17)
+#define TOV2 0
+#define OCF2A 1
+#define OCF2B 2
+
+#define TIFR3 _SFR_IO8(0x18)
+#define TOV3 0
+#define OCF3A 1
+#define OCF3B 2
+#define ICF3 5
+
+#define PCIFR _SFR_IO8(0x1B)
+#define PCIF0 0
+#define PCIF1 1
+#define PCIF2 2
+#define PCIF3 3
+
+#define EIFR _SFR_IO8(0x1C)
+#define INTF0 0
+#define INTF1 1
+#define INTF2 2
+
+#define EIMSK _SFR_IO8(0x1D)
+#define INT0 0
+#define INT1 1
+#define INT2 2
+
+#define GPIOR0 _SFR_IO8(0x1E)
+#define GPIOR00 0
+#define GPIOR01 1
+#define GPIOR02 2
+#define GPIOR03 3
+#define GPIOR04 4
+#define GPIOR05 5
+#define GPIOR06 6
+#define GPIOR07 7
+
+#define EECR _SFR_IO8(0x1F)
+#define EERE 0
+#define EEPE 1
+#define EEMPE 2
+#define EERIE 3
+#define EEPM0 4
+#define EEPM1 5
+
+#define EEDR _SFR_IO8(0x20)
+#define EEDR0 0
+#define EEDR1 1
+#define EEDR2 2
+#define EEDR3 3
+#define EEDR4 4
+#define EEDR5 5
+#define EEDR6 6
+#define EEDR7 7
+
+#define EEAR _SFR_IO16(0x21)
+
+#define EEARL _SFR_IO8(0x21)
+#define EEAR0 0
+#define EEAR1 1
+#define EEAR2 2
+#define EEAR3 3
+#define EEAR4 4
+#define EEAR5 5
+#define EEAR6 6
+#define EEAR7 7
+
+#define EEARH _SFR_IO8(0x22)
+#define EEAR8 0
+#define EEAR9 1
+#define EEAR10 2
+#define EEAR11 3
+
+#define GTCCR _SFR_IO8(0x23)
+#define PSRSYNC 0
+#define PSRASY 1
+#define TSM 7
+
+#define TCCR0A _SFR_IO8(0x24)
+#define WGM00 0
+#define WGM01 1
+#define COM0B0 4
+#define COM0B1 5
+#define COM0A0 6
+#define COM0A1 7
+
+#define TCCR0B _SFR_IO8(0x25)
+#define CS00 0
+#define CS01 1
+#define CS02 2
+#define WGM02 3
+#define FOC0B 6
+#define FOC0A 7
+
+#define TCNT0 _SFR_IO8(0x26)
+#define TCNT0_0 0
+#define TCNT0_1 1
+#define TCNT0_2 2
+#define TCNT0_3 3
+#define TCNT0_4 4
+#define TCNT0_5 5
+#define TCNT0_6 6
+#define TCNT0_7 7
+
+#define OCR0A _SFR_IO8(0x27)
+#define OCR0A_0 0
+#define OCR0A_1 1
+#define OCR0A_2 2
+#define OCR0A_3 3
+#define OCR0A_4 4
+#define OCR0A_5 5
+#define OCR0A_6 6
+#define OCR0A_7 7
+
+#define OCR0B _SFR_IO8(0x28)
+#define OCR0B_0 0
+#define OCR0B_1 1
+#define OCR0B_2 2
+#define OCR0B_3 3
+#define OCR0B_4 4
+#define OCR0B_5 5
+#define OCR0B_6 6
+#define OCR0B_7 7
+
+#define GPIOR1 _SFR_IO8(0x2A)
+#define GPIOR10 0
+#define GPIOR11 1
+#define GPIOR12 2
+#define GPIOR13 3
+#define GPIOR14 4
+#define GPIOR15 5
+#define GPIOR16 6
+#define GPIOR17 7
+
+#define GPIOR2 _SFR_IO8(0x2B)
+#define GPIOR20 0
+#define GPIOR21 1
+#define GPIOR22 2
+#define GPIOR23 3
+#define GPIOR24 4
+#define GPIOR25 5
+#define GPIOR26 6
+#define GPIOR27 7
+
+#define SPCR _SFR_IO8(0x2C)
+#define SPR0 0
+#define SPR1 1
+#define CPHA 2
+#define CPOL 3
+#define MSTR 4
+#define DORD 5
+#define SPE 6
+#define SPIE 7
+
+#define SPSR _SFR_IO8(0x2D)
+#define SPI2X 0
+#define WCOL 6
+#define SPIF 7
+
+#define SPDR _SFR_IO8(0x2E)
+#define SPDR0 0
+#define SPDR1 1
+#define SPDR2 2
+#define SPDR3 3
+#define SPDR4 4
+#define SPDR5 5
+#define SPDR6 6
+#define SPDR7 7
+
+#define ACSR _SFR_IO8(0x30)
+#define ACIS0 0
+#define ACIS1 1
+#define ACIC 2
+#define ACIE 3
+#define ACI 4
+#define ACO 5
+#define ACBG 6
+#define ACD 7
+
+#define OCDR _SFR_IO8(0x31)
+#define OCDR0 0
+#define OCDR1 1
+#define OCDR2 2
+#define OCDR3 3
+#define OCDR4 4
+#define OCDR5 5
+#define OCDR6 6
+#define OCDR7 7
+
+#define SMCR _SFR_IO8(0x33)
+#define SE 0
+#define SM0 1
+#define SM1 2
+#define SM2 3
+
+#define MCUSR _SFR_IO8(0x34)
+#define PORF 0
+#define EXTRF 1
+#define BORF 2
+#define WDRF 3
+#define JTRF 4
+
+#define MCUCR _SFR_IO8(0x35)
+#define IVCE 0
+#define IVSEL 1
+#define PUD 4
+#define BODSE 5
+#define BODS 6
+#define JTD 7
+
+#define SPMCSR _SFR_IO8(0x37)
+#define SPMEN 0
+#define PGERS 1
+#define PGWRT 2
+#define BLBSET 3
+#define RWWSRE 4
+#define SIGRD 5
+#define RWWSB 6
+#define SPMIE 7
+
+#define RAMPZ _SFR_IO8(0x3B)
+#define RAMPZ0 0
+
+#define WDTCSR _SFR_MEM8(0x60)
+#define WDP0 0
+#define WDP1 1
+#define WDP2 2
+#define WDE 3
+#define WDCE 4
+#define WDP3 5
+#define WDIE 6
+#define WDIF 7
+
+#define CLKPR _SFR_MEM8(0x61)
+#define CLKPS0 0
+#define CLKPS1 1
+#define CLKPS2 2
+#define CLKPS3 3
+#define CLKPCE 7
+
+#define PRR0 _SFR_MEM8(0x64)
+#define PRADC 0
+#define PRUSART0 1
+#define PRSPI 2
+#define PRTIM1 3
+#define PRUSART1 4
+#define PRTIM0 5
+#define PRTIM2 6
+#define PRTWI 7
+
+#define PRR1 _SFR_MEM8(0x65)
+#define PRTIM3 0
+
+#define OSCCAL _SFR_MEM8(0x66)
+#define CAL0 0
+#define CAL1 1
+#define CAL2 2
+#define CAL3 3
+#define CAL4 4
+#define CAL5 5
+#define CAL6 6
+#define CAL7 7
+
+#define PCICR _SFR_MEM8(0x68)
+#define PCIE0 0
+#define PCIE1 1
+#define PCIE2 2
+#define PCIE3 3
+
+#define EICRA _SFR_MEM8(0x69)
+#define ISC00 0
+#define ISC01 1
+#define ISC10 2
+#define ISC11 3
+#define ISC20 4
+#define ISC21 5
+
+#define PCMSK0 _SFR_MEM8(0x6B)
+#define PCINT0 0
+#define PCINT1 1
+#define PCINT2 2
+#define PCINT3 3
+#define PCINT4 4
+#define PCINT5 5
+#define PCINT6 6
+#define PCINT7 7
+
+#define PCMSK1 _SFR_MEM8(0x6C)
+#define PCINT8 0
+#define PCINT9 1
+#define PCINT10 2
+#define PCINT11 3
+#define PCINT12 4
+#define PCINT13 5
+#define PCINT14 6
+#define PCINT15 7
+
+#define PCMSK2 _SFR_MEM8(0x6D)
+#define PCINT16 0
+#define PCINT17 1
+#define PCINT18 2
+#define PCINT19 3
+#define PCINT20 4
+#define PCINT21 5
+#define PCINT22 6
+#define PCINT23 7
+
+#define TIMSK0 _SFR_MEM8(0x6E)
+#define TOIE0 0
+#define OCIE0A 1
+#define OCIE0B 2
+
+#define TIMSK1 _SFR_MEM8(0x6F)
+#define TOIE1 0
+#define OCIE1A 1
+#define OCIE1B 2
+#define ICIE1 5
+
+#define TIMSK2 _SFR_MEM8(0x70)
+#define TOIE2 0
+#define OCIE2A 1
+#define OCIE2B 2
+
+#define TIMSK3 _SFR_MEM8(0x71)
+#define TOIE3 0
+#define OCIE3A 1
+#define OCIE3B 2
+#define ICIE3 5
+
+#define PCMSK3 _SFR_MEM8(0x73)
+#define PCINT24 0
+#define PCINT25 1
+#define PCINT26 2
+#define PCINT27 3
+#define PCINT28 4
+#define PCINT29 5
+#define PCINT30 6
+#define PCINT31 7
+
+#ifndef __ASSEMBLER__
+#define ADC _SFR_MEM16(0x78)
+#endif
+#define ADCW _SFR_MEM16(0x78)
+
+#define ADCL _SFR_MEM8(0x78)
+#define ADCL0 0
+#define ADCL1 1
+#define ADCL2 2
+#define ADCL3 3
+#define ADCL4 4
+#define ADCL5 5
+#define ADCL6 6
+#define ADCL7 7
+
+#define ADCH _SFR_MEM8(0x79)
+#define ADCH0 0
+#define ADCH1 1
+#define ADCH2 2
+#define ADCH3 3
+#define ADCH4 4
+#define ADCH5 5
+#define ADCH6 6
+#define ADCH7 7
+
+#define ADCSRA _SFR_MEM8(0x7A)
+#define ADPS0 0
+#define ADPS1 1
+#define ADPS2 2
+#define ADIE 3
+#define ADIF 4
+#define ADATE 5
+#define ADSC 6
+#define ADEN 7
+
+#define ADCSRB _SFR_MEM8(0x7B)
+#define ADTS0 0
+#define ADTS1 1
+#define ADTS2 2
+#define ACME 6
+
+#define ADMUX _SFR_MEM8(0x7C)
+#define MUX0 0
+#define MUX1 1
+#define MUX2 2
+#define MUX3 3
+#define MUX4 4
+#define ADLAR 5
+#define REFS0 6
+#define REFS1 7
+
+#define DIDR0 _SFR_MEM8(0x7E)
+#define ADC0D 0
+#define ADC1D 1
+#define ADC2D 2
+#define ADC3D 3
+#define ADC4D 4
+#define ADC5D 5
+#define ADC6D 6
+#define ADC7D 7
+
+#define DIDR1 _SFR_MEM8(0x7F)
+#define AIN0D 0
+#define AIN1D 1
+
+#define TCCR1A _SFR_MEM8(0x80)
+#define WGM10 0
+#define WGM11 1
+#define COM1B0 4
+#define COM1B1 5
+#define COM1A0 6
+#define COM1A1 7
+
+#define TCCR1B _SFR_MEM8(0x81)
+#define CS10 0
+#define CS11 1
+#define CS12 2
+#define WGM12 3
+#define WGM13 4
+#define ICES1 6
+#define ICNC1 7
+
+#define TCCR1C _SFR_MEM8(0x82)
+#define FOC1B 6
+#define FOC1A 7
+
+#define TCNT1 _SFR_MEM16(0x84)
+
+#define TCNT1L _SFR_MEM8(0x84)
+#define TCNT1L0 0
+#define TCNT1L1 1
+#define TCNT1L2 2
+#define TCNT1L3 3
+#define TCNT1L4 4
+#define TCNT1L5 5
+#define TCNT1L6 6
+#define TCNT1L7 7
+
+#define TCNT1H _SFR_MEM8(0x85)
+#define TCNT1H0 0
+#define TCNT1H1 1
+#define TCNT1H2 2
+#define TCNT1H3 3
+#define TCNT1H4 4
+#define TCNT1H5 5
+#define TCNT1H6 6
+#define TCNT1H7 7
+
+#define ICR1 _SFR_MEM16(0x86)
+
+#define ICR1L _SFR_MEM8(0x86)
+#define ICR1L0 0
+#define ICR1L1 1
+#define ICR1L2 2
+#define ICR1L3 3
+#define ICR1L4 4
+#define ICR1L5 5
+#define ICR1L6 6
+#define ICR1L7 7
+
+#define ICR1H _SFR_MEM8(0x87)
+#define ICR1H0 0
+#define ICR1H1 1
+#define ICR1H2 2
+#define ICR1H3 3
+#define ICR1H4 4
+#define ICR1H5 5
+#define ICR1H6 6
+#define ICR1H7 7
+
+#define OCR1A _SFR_MEM16(0x88)
+
+#define OCR1AL _SFR_MEM8(0x88)
+#define OCR1AL0 0
+#define OCR1AL1 1
+#define OCR1AL2 2
+#define OCR1AL3 3
+#define OCR1AL4 4
+#define OCR1AL5 5
+#define OCR1AL6 6
+#define OCR1AL7 7
+
+#define OCR1AH _SFR_MEM8(0x89)
+#define OCR1AH0 0
+#define OCR1AH1 1
+#define OCR1AH2 2
+#define OCR1AH3 3
+#define OCR1AH4 4
+#define OCR1AH5 5
+#define OCR1AH6 6
+#define OCR1AH7 7
+
+#define OCR1B _SFR_MEM16(0x8A)
+
+#define OCR1BL _SFR_MEM8(0x8A)
+#define OCR1AL0 0
+#define OCR1AL1 1
+#define OCR1AL2 2
+#define OCR1AL3 3
+#define OCR1AL4 4
+#define OCR1AL5 5
+#define OCR1AL6 6
+#define OCR1AL7 7
+
+#define OCR1BH _SFR_MEM8(0x8B)
+#define OCR1AH0 0
+#define OCR1AH1 1
+#define OCR1AH2 2
+#define OCR1AH3 3
+#define OCR1AH4 4
+#define OCR1AH5 5
+#define OCR1AH6 6
+#define OCR1AH7 7
+
+#define TCCR3A _SFR_MEM8(0x90)
+#define WGM30 0
+#define WGM31 1
+#define COM3B0 4
+#define COM3B1 5
+#define COM3A0 6
+#define COM3A1 7
+
+#define TCCR3B _SFR_MEM8(0x91)
+#define CS30 0
+#define CS31 1
+#define CS32 2
+#define WGM32 3
+#define WGM33 4
+#define ICES3 6
+#define ICNC3 7
+
+#define TCCR3C _SFR_MEM8(0x92)
+#define FOC3B 6
+#define FOC3A 7
+
+#define TCNT3 _SFR_MEM16(0x94)
+
+#define TCNT3L _SFR_MEM8(0x94)
+#define TCNT3L0 0
+#define TCNT3L1 1
+#define TCNT3L2 2
+#define TCNT3L3 3
+#define TCNT3L4 4
+#define TCNT3L5 5
+#define TCNT3L6 6
+#define TCNT3L7 7
+
+#define TCNT3H _SFR_MEM8(0x95)
+#define TCNT3H0 0
+#define TCNT3H1 1
+#define TCNT3H2 2
+#define TCNT3H3 3
+#define TCNT3H4 4
+#define TCNT3H5 5
+#define TCNT3H6 6
+#define TCNT3H7 7
+
+#define ICR3 _SFR_MEM16(0x96)
+
+#define ICR3L _SFR_MEM8(0x96)
+#define ICR3L0 0
+#define ICR3L1 1
+#define ICR3L2 2
+#define ICR3L3 3
+#define ICR3L4 4
+#define ICR3L5 5
+#define ICR3L6 6
+#define ICR3L7 7
+
+#define ICR3H _SFR_MEM8(0x97)
+#define ICR3H0 0
+#define ICR3H1 1
+#define ICR3H2 2
+#define ICR3H3 3
+#define ICR3H4 4
+#define ICR3H5 5
+#define ICR3H6 6
+#define ICR3H7 7
+
+#define OCR3A _SFR_MEM16(0x98)
+
+#define OCR3AL _SFR_MEM8(0x98)
+#define OCR3AL0 0
+#define OCR3AL1 1
+#define OCR3AL2 2
+#define OCR3AL3 3
+#define OCR3AL4 4
+#define OCR3AL5 5
+#define OCR3AL6 6
+#define OCR3AL7 7
+
+#define OCR3AH _SFR_MEM8(0x99)
+#define OCR3AH0 0
+#define OCR3AH1 1
+#define OCR3AH2 2
+#define OCR3AH3 3
+#define OCR3AH4 4
+#define OCR3AH5 5
+#define OCR3AH6 6
+#define OCR3AH7 7
+
+#define OCR3B _SFR_MEM16(0x9A)
+
+#define OCR3BL _SFR_MEM8(0x9A)
+#define OCR3AL0 0
+#define OCR3AL1 1
+#define OCR3AL2 2
+#define OCR3AL3 3
+#define OCR3AL4 4
+#define OCR3AL5 5
+#define OCR3AL6 6
+#define OCR3AL7 7
+
+#define OCR3BH _SFR_MEM8(0x9B)
+#define OCR3AH0 0
+#define OCR3AH1 1
+#define OCR3AH2 2
+#define OCR3AH3 3
+#define OCR3AH4 4
+#define OCR3AH5 5
+#define OCR3AH6 6
+#define OCR3AH7 7
+
+#define TCCR2A _SFR_MEM8(0xB0)
+#define WGM20 0
+#define WGM21 1
+#define COM2B0 4
+#define COM2B1 5
+#define COM2A0 6
+#define COM2A1 7
+
+#define TCCR2B _SFR_MEM8(0xB1)
+#define CS20 0
+#define CS21 1
+#define CS22 2
+#define WGM22 3
+#define FOC2B 6
+#define FOC2A 7
+
+#define TCNT2 _SFR_MEM8(0xB2)
+#define TCNT2_0 0
+#define TCNT2_1 1
+#define TCNT2_2 2
+#define TCNT2_3 3
+#define TCNT2_4 4
+#define TCNT2_5 5
+#define TCNT2_6 6
+#define TCNT2_7 7
+
+#define OCR2A _SFR_MEM8(0xB3)
+#define OCR2_0 0
+#define OCR2_1 1
+#define OCR2_2 2
+#define OCR2_3 3
+#define OCR2_4 4
+#define OCR2_5 5
+#define OCR2_6 6
+#define OCR2_7 7
+
+#define OCR2B _SFR_MEM8(0xB4)
+#define OCR2_0 0
+#define OCR2_1 1
+#define OCR2_2 2
+#define OCR2_3 3
+#define OCR2_4 4
+#define OCR2_5 5
+#define OCR2_6 6
+#define OCR2_7 7
+
+#define ASSR _SFR_MEM8(0xB6)
+#define TCR2BUB 0
+#define TCR2AUB 1
+#define OCR2BUB 2
+#define OCR2AUB 3
+#define TCN2UB 4
+#define AS2 5
+#define EXCLK 6
+
+#define TWBR _SFR_MEM8(0xB8)
+#define TWBR0 0
+#define TWBR1 1
+#define TWBR2 2
+#define TWBR3 3
+#define TWBR4 4
+#define TWBR5 5
+#define TWBR6 6
+#define TWBR7 7
+
+#define TWSR _SFR_MEM8(0xB9)
+#define TWPS0 0
+#define TWPS1 1
+#define TWS3 3
+#define TWS4 4
+#define TWS5 5
+#define TWS6 6
+#define TWS7 7
+
+#define TWAR _SFR_MEM8(0xBA)
+#define TWGCE 0
+#define TWA0 1
+#define TWA1 2
+#define TWA2 3
+#define TWA3 4
+#define TWA4 5
+#define TWA5 6
+#define TWA6 7
+
+#define TWDR _SFR_MEM8(0xBB)
+#define TWD0 0
+#define TWD1 1
+#define TWD2 2
+#define TWD3 3
+#define TWD4 4
+#define TWD5 5
+#define TWD6 6
+#define TWD7 7
+
+#define TWCR _SFR_MEM8(0xBC)
+#define TWIE 0
+#define TWEN 2
+#define TWWC 3
+#define TWSTO 4
+#define TWSTA 5
+#define TWEA 6
+#define TWINT 7
+
+#define TWAMR _SFR_MEM8(0xBD)
+#define TWAM0 1
+#define TWAM1 2
+#define TWAM2 3
+#define TWAM3 4
+#define TWAM4 5
+#define TWAM5 6
+#define TWAM6 7
+
+#define UCSR0A _SFR_MEM8(0xC0)
+#define MPCM0 0
+#define U2X0 1
+#define UPE0 2
+#define DOR0 3
+#define FE0 4
+#define UDRE0 5
+#define TXC0 6
+#define RXC0 7
+
+#define UCSR0B _SFR_MEM8(0xC1)
+#define TXB80 0
+#define RXB80 1
+#define UCSZ02 2
+#define TXEN0 3
+#define RXEN0 4
+#define UDRIE0 5
+#define TXCIE0 6
+#define RXCIE0 7
+
+#define UCSR0C _SFR_MEM8(0xC2)
+#define UCPOL0 0
+#define UCSZ00 1
+#define UCSZ01 2
+#define USBS0 3
+#define UPM00 4
+#define UPM01 5
+#define UMSEL00 6
+#define UMSEL01 7
+
+#define UBRR0 _SFR_MEM16(0xC4)
+
+#define UBRR0L _SFR_MEM8(0xC4)
+#define UBRR0_0 0
+#define UBRR0_1 1
+#define UBRR0_2 2
+#define UBRR0_3 3
+#define UBRR0_4 4
+#define UBRR0_5 5
+#define UBRR0_6 6
+#define UBRR0_7 7
+
+#define UBRR0H _SFR_MEM8(0xC5)
+#define UBRR0_8 0
+#define UBRR0_9 1
+#define UBRR0_10 2
+#define UBRR0_11 3
+
+#define UDR0 _SFR_MEM8(0xC6)
+#define UDR0_0 0
+#define UDR0_1 1
+#define UDR0_2 2
+#define UDR0_3 3
+#define UDR0_4 4
+#define UDR0_5 5
+#define UDR0_6 6
+#define UDR0_7 7
+
+#define UCSR1A _SFR_MEM8(0xC8)
+#define MPCM1 0
+#define U2X1 1
+#define UPE1 2
+#define DOR1 3
+#define FE1 4
+#define UDRE1 5
+#define TXC1 6
+#define RXC1 7
+
+#define UCSR1B _SFR_MEM8(0xC9)
+#define TXB81 0
+#define RXB81 1
+#define UCSZ12 2
+#define TXEN1 3
+#define RXEN1 4
+#define UDRIE1 5
+#define TXCIE1 6
+#define RXCIE1 7
+
+#define UCSR1C _SFR_MEM8(0xCA)
+#define UCPOL1 0
+#define UCSZ10 1
+#define UCSZ11 2
+#define USBS1 3
+#define UPM10 4
+#define UPM11 5
+#define UMSEL10 6
+#define UMSEL11 7
+
+#define UBRR1 _SFR_MEM16(0xCC)
+
+#define UBRR1L _SFR_MEM8(0xCC)
+#define UBRR1_0 0
+#define UBRR1_1 1
+#define UBRR1_2 2
+#define UBRR1_3 3
+#define UBRR1_4 4
+#define UBRR1_5 5
+#define UBRR1_6 6
+#define UBRR1_7 7
+
+#define UBRR1H _SFR_MEM8(0xCD)
+#define UBRR1_8 0
+#define UBRR1_9 1
+#define UBRR1_10 2
+#define UBRR1_11 3
+
+#define UDR1 _SFR_MEM8(0xCE)
+#define UDR1_0 0
+#define UDR1_1 1
+#define UDR1_2 2
+#define UDR1_3 3
+#define UDR1_4 4
+#define UDR1_5 5
+#define UDR1_6 6
+#define UDR1_7 7
+
+
+/* Interrupt Vectors */
+/* Interrupt Vector 0 is the reset vector. */
+
+#define INT0_vect _VECTOR(1) /* External Interrupt Request 0 */
+#define INT1_vect _VECTOR(2) /* External Interrupt Request 1 */
+#define INT2_vect _VECTOR(3) /* External Interrupt Request 2 */
+#define PCINT0_vect _VECTOR(4) /* Pin Change Interrupt Request 0 */
+#define PCINT1_vect _VECTOR(5) /* Pin Change Interrupt Request 1 */
+#define PCINT2_vect _VECTOR(6) /* Pin Change Interrupt Request 2 */
+#define PCINT3_vect _VECTOR(7) /* Pin Change Interrupt Request 3 */
+#define WDT_vect _VECTOR(8) /* Watchdog Time-out Interrupt */
+#define TIMER2_COMPA_vect _VECTOR(9) /* Timer/Counter2 Compare Match A */
+#define TIMER2_COMPB_vect _VECTOR(10) /* Timer/Counter2 Compare Match B */
+#define TIMER2_OVF_vect _VECTOR(11) /* Timer/Counter2 Overflow */
+#define TIMER1_CAPT_vect _VECTOR(12) /* Timer/Counter1 Capture Event */
+#define TIMER1_COMPA_vect _VECTOR(13) /* Timer/Counter1 Compare Match A */
+#define TIMER1_COMPB_vect _VECTOR(14) /* Timer/Counter1 Compare Match B */
+#define TIMER1_OVF_vect _VECTOR(15) /* Timer/Counter1 Overflow */
+#define TIMER0_COMPA_vect _VECTOR(16) /* Timer/Counter0 Compare Match A */
+#define TIMER0_COMPB_vect _VECTOR(17) /* Timer/Counter0 Compare Match B */
+#define TIMER0_OVF_vect _VECTOR(18) /* Timer/Counter0 Overflow */
+#define SPI_STC_vect _VECTOR(19) /* SPI Serial Transfer Complete */
+#define USART0_RX_vect _VECTOR(20) /* USART0, Rx Complete */
+#define USART0_UDRE_vect _VECTOR(21) /* USART0 Data register Empty */
+#define USART0_TX_vect _VECTOR(22) /* USART0, Tx Complete */
+#define ANALOG_COMP_vect _VECTOR(23) /* Analog Comparator */
+#define ADC_vect _VECTOR(24) /* ADC Conversion Complete */
+#define EE_READY_vect _VECTOR(25) /* EEPROM Ready */
+#define TWI_vect _VECTOR(26) /* 2-wire Serial Interface */
+#define SPM_READY_vect _VECTOR(27) /* Store Program Memory Read */
+#define USART1_RX_vect _VECTOR(28) /* USART1 RX complete */
+#define USART1_UDRE_vect _VECTOR(29) /* USART1 Data Register Empty */
+#define USART1_TX_vect _VECTOR(30) /* USART1 TX complete */
+#define TIMER3_CAPT_vect _VECTOR(31) /* Timer/Counter3 Capture Event */
+#define TIMER3_COMPA_vect _VECTOR(32) /* Timer/Counter3 Compare Match A */
+#define TIMER3_COMPB_vect _VECTOR(33) /* Timer/Counter3 Compare Match B */
+#define TIMER3_OVF_vect _VECTOR(34) /* Timer/Counter3 Overflow */
+
+#define _VECTORS_SIZE (35 * 4)
+
+
+/* Constants */
+#define SPM_PAGESIZE 256
+#define RAMEND 0x40FF /* Last On-Chip SRAM Location */
+#define XRAMSIZE 0
+#define XRAMEND RAMEND
+#define E2END 0xFFF
+#define E2PAGESIZE 8
+#define FLASHEND 0x1FFFF
+
+
+/* Fuses */
+#define FUSE_MEMORY_SIZE 3
+
+/* Low Fuse Byte */
+#define FUSE_CKSEL0 (unsigned char)~_BV(0) /* Select Clock Source */
+#define FUSE_CKSEL1 (unsigned char)~_BV(1) /* Select Clock Source */
+#define FUSE_CKSEL2 (unsigned char)~_BV(2) /* Select Clock Source */
+#define FUSE_CKSEL3 (unsigned char)~_BV(3) /* Select Clock Source */
+#define FUSE_SUT0 (unsigned char)~_BV(4) /* Select start-up time */
+#define FUSE_SUT1 (unsigned char)~_BV(5) /* Select start-up time */
+#define FUSE_CKOUT (unsigned char)~_BV(6) /* Clock output */
+#define FUSE_CKDIV8 (unsigned char)~_BV(7) /* Divide clock by 8 */
+#define LFUSE_DEFAULT (FUSE_CKSEL0 & FUSE_CKSEL2 & FUSE_CKSEL3 & FUSE_SUT0 & FUSE_SUT1 & FUSE_CKDIV8)
+
+/* High Fuse Byte */
+#define FUSE_BOOTRST (unsigned char)~_BV(0) /* Select Reset Vector */
+#define FUSE_BOOTSZ0 (unsigned char)~_BV(1) /* Select Boot Size */
+#define FUSE_BOOTSZ1 (unsigned char)~_BV(2) /* Select Boot Size */
+#define FUSE_EESAVE (unsigned char)~_BV(3) /* EEPROM memory is preserved through chip erase */
+#define FUSE_WDTON (unsigned char)~_BV(4) /* Watchdog timer always on */
+#define FUSE_SPIEN (unsigned char)~_BV(5) /* Enable Serial programming and Data Downloading */
+#define FUSE_JTAGEN (unsigned char)~_BV(6) /* Enable JTAG */
+#define FUSE_OCDEN (unsigned char)~_BV(7) /* Enable OCD */
+#define HFUSE_DEFAULT (FUSE_BOOTSZ0 & FUSE_SPIEN & FUSE_JTAGEN)
+
+/* Extended Fuse Byte */
+#define FUSE_BODLEVEL0 (unsigned char)~_BV(0) /* Brown-out Detector trigger level */
+#define FUSE_BODLEVEL1 (unsigned char)~_BV(1) /* Brown-out Detector trigger level */
+#define FUSE_BODLEVEL2 (unsigned char)~_BV(2) /* Brown-out Detector trigger level */
+#define EFUSE_DEFAULT (0xFF)
+
+
+/* Lock Bits */
+#define __LOCK_BITS_EXIST
+#define __BOOT_LOCK_BITS_0_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
+
+
+/* Signature */
+#define SIGNATURE_0 0x1E
+#define SIGNATURE_1 0x97
+#define SIGNATURE_2 0x05
+
+/**@}*/
+#endif /* _AVR_IOM1284P_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom16.h b/cpukit/score/cpu/avr/avr/iom16.h
index a9ac82b42f..6d6e9e3e2c 100644
--- a/cpukit/score/cpu/avr/avr/iom16.h
+++ b/cpukit/score/cpu/avr/avr/iom16.h
@@ -1,40 +1,52 @@
-/* Copyright (c) 2004 Eric B. Weddington
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iom16.h - definitions for ATmega16 */
+/**
+ * @file avr/iom16.h
+ *
+ * @brief Definitions for ATmega16
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2004 Eric B. Weddington
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOM16_H_
#define _AVR_IOM16_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_iom16 ATmega16 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +56,7 @@
# define _AVR_IOXXX_H_ "iom16.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* Registers and associated bit numbers */
@@ -368,9 +380,9 @@
#define COM1A0 6
#define COM1A1 7
-/*
- The ADHSM bit has been removed from all documentation,
- as being not needed at all since the comparator has proven
+/*
+ The ADHSM bit has been removed from all documentation,
+ as being not needed at all since the comparator has proven
to be fast enough even without feeding it more power.
*/
@@ -601,7 +613,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -609,5 +621,5 @@
#define SIGNATURE_1 0x94
#define SIGNATURE_2 0x03
-
+/**@}*/
#endif /* _AVR_IOM16_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom161.h b/cpukit/score/cpu/avr/avr/iom161.h
index 8a12acf428..af7bebeec1 100644
--- a/cpukit/score/cpu/avr/avr/iom161.h
+++ b/cpukit/score/cpu/avr/avr/iom161.h
@@ -1,40 +1,52 @@
-/* Copyright (c) 2002, Marek Michalkiewicz
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
+/**
+ * @file avr/iom161.h
+ *
+ * @brief Definitions for ATmega161
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
-/* avr/iom161.h - definitions for ATmega161 */
+/*
+ * Copyright (c) 2002, Marek Michalkiewicz
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOM161_H_
#define _AVR_IOM161_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_iom161 ATmega161 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +56,7 @@
# define _AVR_IOXXX_H_ "iom161.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* I/O registers */
@@ -660,7 +672,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -669,4 +681,5 @@
#define SIGNATURE_2 0x01
+/**@}*/
#endif /* _AVR_IOM161_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom162.h b/cpukit/score/cpu/avr/avr/iom162.h
index bdd90de0c9..d10a59aff7 100644
--- a/cpukit/score/cpu/avr/avr/iom162.h
+++ b/cpukit/score/cpu/avr/avr/iom162.h
@@ -1,40 +1,52 @@
-/* Copyright (c) 2002, Nils Kristian Strom <nilsst@omegav.ntnu.no>
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* iom162.h - definitions for ATmega162 */
+/**
+ * @file iom162.h
+ *
+ * @brief Definitions for ATmega162
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2002, Nils Kristian Strom <nilsst@omegav.ntnu.no>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOM162_H_
#define _AVR_IOM162_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_iom162 ATmega162 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +56,7 @@
# define _AVR_IOXXX_H_ "iom162.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* Memory mapped I/O registers */
@@ -163,7 +175,7 @@
#define UCSR1A _SFR_IO8(0x02) /* USART 1 Control and Status Register A */
#define UCSR1B _SFR_IO8(0x01) /* USART 1 Control and Status Register B */
#define UBRR1L _SFR_IO8(0x00) /* USART 0 Baud Rate Register High Byte */
-
+
/* Interrupt vectors (byte addresses) */
@@ -456,7 +468,7 @@
-/* SPMCR bit definitions */
+/* SPMCR bit definitions */
#define SPMIE 7
#define RWWSB 6
@@ -939,7 +951,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -948,4 +960,5 @@
#define SIGNATURE_2 0x04
+/**@}*/
#endif /* _AVR_IOM162_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom163.h b/cpukit/score/cpu/avr/avr/iom163.h
index 276c7423fc..2dabcd8d40 100644
--- a/cpukit/score/cpu/avr/avr/iom163.h
+++ b/cpukit/score/cpu/avr/avr/iom163.h
@@ -1,40 +1,52 @@
-/* Copyright (c) 2002, Marek Michalkiewicz
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
+/**
+ * @file avr/iom163.h
+ *
+ * @brief Definitions for ATmega163
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
-/* avr/iom163.h - definitions for ATmega163 */
+/*
+ * Copyright (c) 2007 Anatoly Sokolov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOM163_H_
#define _AVR_IOM163_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_iom163 ATmega163 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +56,7 @@
# define _AVR_IOXXX_H_ "iom163.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* I/O registers */
@@ -626,7 +638,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -635,4 +647,5 @@
#define SIGNATURE_2 0x02
+/**@}*/
#endif /* _AVR_IOM163_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom164.h b/cpukit/score/cpu/avr/avr/iom164.h
index 9b97f21df6..160663da88 100644
--- a/cpukit/score/cpu/avr/avr/iom164.h
+++ b/cpukit/score/cpu/avr/avr/iom164.h
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATmega164
+ */
+
/* Copyright (c) 2005, 2006 Anatoly Sokolov
All rights reserved.
@@ -36,6 +42,14 @@
#include <avr/iomxx4.h>
+/**
+ * @defgroup AvrDef_iom164 ATmega164 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* Constants */
#define SPM_PAGESIZE 128
#define RAMEND 0x04FF
@@ -89,5 +103,6 @@
#define SIGNATURE_1 0x94
#define SIGNATURE_2 0x0A
+/** @} */
#endif /* _AVR_IOM164_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom165.h b/cpukit/score/cpu/avr/avr/iom165.h
index a15eea43c2..72cbc39fec 100644
--- a/cpukit/score/cpu/avr/avr/iom165.h
+++ b/cpukit/score/cpu/avr/avr/iom165.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATmega165
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2004,2005,2006 Eric B. Weddington
All rights reserved.
@@ -46,6 +54,14 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
+/**
+ * @defgroup AvrDef_iom165 ATmega165 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* Registers and associated bit numbers */
#define PINA _SFR_IO8(0x00)
@@ -815,5 +831,6 @@
#define SIGNATURE_1 0x94
#define SIGNATURE_2 0x07
+/** @} */
#endif /* _AVR_IOM165_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom168.h b/cpukit/score/cpu/avr/avr/iom168.h
index 9470d22a39..7f1dee2345 100644
--- a/cpukit/score/cpu/avr/avr/iom168.h
+++ b/cpukit/score/cpu/avr/avr/iom168.h
@@ -1,37 +1,51 @@
-/* Copyright (c) 2004, Theodore A. Roth
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
+/**
+ * @file
+ *
+ * @brief Definitions for iom168
+ */
+
+/*
+ * Copyright (c) 2004, Theodore A. Roth
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOM168_H_
#define _AVR_IOM168_H_ 1
+/**
+ * @defgroup Avr_iom168 iom168 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
+
#include <avr/iomx8.h>
/* Constants */
@@ -78,7 +92,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -86,5 +100,5 @@
#define SIGNATURE_1 0x94
#define SIGNATURE_2 0x06
-
+/**@}*/
#endif /* _AVR_IOM168_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom168p.h b/cpukit/score/cpu/avr/avr/iom168p.h
index 7c62bc3a29..987d489434 100644
--- a/cpukit/score/cpu/avr/avr/iom168p.h
+++ b/cpukit/score/cpu/avr/avr/iom168p.h
@@ -1,38 +1,43 @@
-/* Copyright (c) 2007 Atmel Corporation
- All rights reserved.
+/**
+ * @file avr/iom168p.h
+ *
+ * @brief Definitions for ATmega168P
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2007 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-/* avr/iom168p.h - definitions for ATmega168P. */
-
-/* This file should only be included from <avr/io.h>, never directly. */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -42,12 +47,19 @@
# define _AVR_IOXXX_H_ "iom168p.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_IOM168P_H_
#define _AVR_IOM168P_H_ 1
+/**
+ * @defgroup Avr_iom168p ATmega168P Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
+
/* Registers and associated bit numbers */
#define PINB _SFR_IO8(0x03)
@@ -330,7 +342,7 @@
#define WDRF 3
#define MCUCR _SFR_IO8(0x35)
-#define IVCE 0
+#define IVCE 0
#define IVSEL 1
#define PUD 4
#define BODSE 5
@@ -795,7 +807,7 @@
#define TIMER2_OVF_vect _VECTOR(9) /* Timer/Counter2 Overflow */
#define TIMER1_CAPT_vect _VECTOR(10) /* Timer/Counter1 Capture Event */
#define TIMER1_COMPA_vect _VECTOR(11) /* Timer/Counter1 Compare Match A */
-#define TIMER1_COMPB_vect _VECTOR(12) /* Timer/Counter1 Compare Match B */
+#define TIMER1_COMPB_vect _VECTOR(12) /* Timer/Counter1 Compare Match B */
#define TIMER1_OVF_vect _VECTOR(13) /* Timer/Counter1 Overflow */
#define TIMER0_COMPA_vect _VECTOR(14) /* TimerCounter0 Compare Match A */
#define TIMER0_COMPB_vect _VECTOR(15) /* TimerCounter0 Compare Match B */
@@ -861,7 +873,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -869,5 +881,5 @@
#define SIGNATURE_1 0x94
#define SIGNATURE_2 0x0B
-
+/**@}*/
#endif /* _AVR_IOM168P_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom169.h b/cpukit/score/cpu/avr/avr/iom169.h
index 88a757e2ec..64910dd115 100644
--- a/cpukit/score/cpu/avr/avr/iom169.h
+++ b/cpukit/score/cpu/avr/avr/iom169.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATmega169
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2002, 2003, 2004, 2005
Juergen Schilling <juergen.schilling@honeywell.com>
Eric B. Weddington
@@ -50,6 +58,14 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
+/**
+ * @defgroup AvrDef_iom169 ATmega169 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* I/O registers */
/* Port A */
@@ -1102,5 +1118,6 @@
#define SIGNATURE_1 0x94
#define SIGNATURE_2 0x05
+/** @} */
#endif /* _AVR_IOM169_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom169p.h b/cpukit/score/cpu/avr/avr/iom169p.h
index 6aad286fc7..3d7995a3f5 100644
--- a/cpukit/score/cpu/avr/avr/iom169p.h
+++ b/cpukit/score/cpu/avr/avr/iom169p.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATmega169P
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2002, 2003, 2004, 2005, 2006
Juergen Schilling <juergen.schilling@honeywell.com>
Eric B. Weddington <ericw@evcohs.com>
@@ -49,6 +57,14 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
+/**
+ * @defgroup AvrDef_iom169p ATmega169P Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* I/O registers */
/* Port A */
@@ -1025,5 +1041,6 @@
#define SIGNATURE_1 0x94
#define SIGNATURE_2 0x05
+/** @} */
#endif /* _AVR_IOM169P_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom169pa.h b/cpukit/score/cpu/avr/avr/iom169pa.h
index a2403f0546..4f457db5dd 100644
--- a/cpukit/score/cpu/avr/avr/iom169pa.h
+++ b/cpukit/score/cpu/avr/avr/iom169pa.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iom169pa.h - definitions for ATmega169PA */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iom169pa.h
+ *
+ * @brief Definitions for ATmega169PA
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,8 +46,15 @@
# define _AVR_IOXXX_H_ "iom169pa.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
+/**
+ * @defgroup AvrDef_iom169pa ATmega169PA Defintions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
#ifndef _AVR_ATmega169PA_H_
#define _AVR_ATmega169PA_H_ 1
@@ -1467,5 +1479,5 @@
#define ADC0_PIN PINF
#define ADC0_BIT 0
+/** @} */
#endif /* _AVR_ATmega169PA_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iom16a.h b/cpukit/score/cpu/avr/avr/iom16a.h
index 707c3b1803..ddfb220b99 100644
--- a/cpukit/score/cpu/avr/avr/iom16a.h
+++ b/cpukit/score/cpu/avr/avr/iom16a.h
@@ -47,9 +47,11 @@
#ifndef _AVR_ATmega16A_H_
#define _AVR_ATmega16A_H_ 1
-
-/* Registers and associated bit numbers. */
-
+/**
+ * @name Registers and Associated Bit Numbers
+ *
+ */
+/**@{**/
#define TWBR _SFR_IO8(0x00)
#define TWBR0 0
#define TWBR1 1
@@ -654,8 +656,13 @@
#define OCR0_6 6
#define OCR0_7 7
+/** @} */
-/* Interrupt vectors */
+/**
+ * @name Interrupt Vectors
+ *
+ */
+/**@{**/
/* Vector 0 is the reset vector */
#define INT0_vect_num 1
#define INT0_vect _VECTOR(1) /* External Interrupt Request 0 */
@@ -668,9 +675,11 @@
#define TIMER1_CAPT_vect_num 5
#define TIMER1_CAPT_vect _VECTOR(5) /* Timer/Counter1 Capture Event */
#define TIMER1_COMPA_vect_num 6
-#define TIMER1_COMPA_vect _VECTOR(6) /* Timer/Counter1 Compare Match A */
+/* Timer/Counter1 Compare Match A */
+#define TIMER1_COMPA_vect _VECTOR(6)
#define TIMER1_COMPB_vect_num 7
-#define TIMER1_COMPB_vect _VECTOR(7) /* Timer/Counter1 Compare Match B */
+/* Timer/Counter1 Compare Match B */
+#define TIMER1_COMPB_vect _VECTOR(7)
#define TIMER1_OVF_vect_num 8
#define TIMER1_OVF_vect _VECTOR(8) /* Timer/Counter1 Overflow */
#define TIMER0_OVF_vect_num 9
@@ -700,9 +709,13 @@
#define _VECTOR_SIZE 4 /* Size of individual vector. */
#define _VECTORS_SIZE (21 * _VECTOR_SIZE)
+/** @} */
-
-/* Constants */
+/**
+ * @name Constants
+ *
+ */
+/**@{**/
#define SPM_PAGESIZE (128)
#define RAMSTART (0x60)
#define RAMSIZE (1024)
@@ -713,9 +726,13 @@
#define E2END (0x1FF)
#define E2PAGESIZE (4)
#define FLASHEND (0x3FFF)
+/** @} */
-
-/* Fuses */
+/**
+ * @name Fuses
+ *
+ */
+/**@{**/
#define FUSE_MEMORY_SIZE 2
/* Low Fuse Byte */
@@ -726,34 +743,50 @@
#define FUSE_SUT0 (unsigned char)~_BV(4) /* Select start-up time */
#define FUSE_SUT1 (unsigned char)~_BV(5) /* Select start-up time */
#define FUSE_BODEN (unsigned char)~_BV(6) /* Brown out detector enable */
-#define FUSE_BODLEVEL (unsigned char)~_BV(7) /* Brown out detector trigger level */
-#define LFUSE_DEFAULT (FUSE_SUT1 & FUSE_SUT0 & FUSE_CKSEL3 & FUSE_CKSEL2 & FUSE_CKSEL1)
+/* Brown out detector trigger level */
+#define FUSE_BODLEVEL (unsigned char)~_BV(7)
+#define LFUSE_DEFAULT (FUSE_SUT1 & FUSE_SUT0 & FUSE_CKSEL3 & \
+ FUSE_CKSEL2 & FUSE_CKSEL1)
/* High Fuse Byte */
#define FUSE_BOOTRST (unsigned char)~_BV(0) /* Select Reset Vector */
#define FUSE_BOOTSZ0 (unsigned char)~_BV(1) /* Select Boot Size */
#define FUSE_BOOTSZ1 (unsigned char)~_BV(2) /* Select Boot Size */
-#define FUSE_EESAVE (unsigned char)~_BV(3) /* EEPROM memory is preserved through chip erase */
+/* EEPROM memory is preserved through chip erase */
+#define FUSE_EESAVE (unsigned char)~_BV(3)
#define FUSE_CKOPT (unsigned char)~_BV(4) /* Oscillator Options */
-#define FUSE_SPIEN (unsigned char)~_BV(5) /* Enable Serial programming and Data Downloading */
+/* Enable Serial programming and Data Downloading */
+#define FUSE_SPIEN (unsigned char)~_BV(5)
#define FUSE_JTAGEN (unsigned char)~_BV(6) /* Enable JTAG */
#define FUSE_OCDEN (unsigned char)~_BV(7) /* Enable OCD */
#define HFUSE_DEFAULT (FUSE_JTAGEN & FUSE_SPIEN & FUSE_BOOTSZ1 & FUSE_BOOTSZ0)
+/** @} */
-
-/* Lock Bits */
+/**
+ * @name Lock Bits
+ *
+ */
+/**@{**/
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
#define __BOOT_LOCK_BITS_1_EXIST
+/** @} */
-
-/* Signature */
+/**
+ * @name Signature
+ *
+ */
+/**@{**/
#define SIGNATURE_0 0x1E
#define SIGNATURE_1 0x94
#define SIGNATURE_2 0x03
+/** @} */
-
-/* Device Pin Definitions */
+/**
+ * @name Device Pin Definitions
+ *
+ */
+/**@{**/
#define MOSI_DDR DDRB
#define MOSI_PORT PORTB
#define MOSI_PIN PINB
@@ -898,6 +931,7 @@
#define SS_PORT PORTB
#define SS_PIN PINB
#define SS_BIT 4
+/** @} */
#endif /* _AVR_ATmega16A_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom16hva.h b/cpukit/score/cpu/avr/avr/iom16hva.h
index cae9194539..7dcad90e37 100644
--- a/cpukit/score/cpu/avr/avr/iom16hva.h
+++ b/cpukit/score/cpu/avr/avr/iom16hva.h
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATmega16HVA
+ */
+
/* Copyright (c) 2007, Anatoly Sokolov
All rights reserved.
@@ -36,6 +42,14 @@
#include <avr/iomxxhva.h>
+/**
+ * @defgroup AvrDef_iom16hva ATmega16HVA Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* Constants */
#define SPM_PAGESIZE 128
#define RAMEND 0x2FF
@@ -70,5 +84,6 @@
#define SIGNATURE_1 0x94
#define SIGNATURE_2 0x0C
+/** @} */
#endif /* _AVR_IOM16HVA_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom16hva2.h b/cpukit/score/cpu/avr/avr/iom16hva2.h
index 2f1893ff20..bca3d20d87 100644
--- a/cpukit/score/cpu/avr/avr/iom16hva2.h
+++ b/cpukit/score/cpu/avr/avr/iom16hva2.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iom16hva2.h - definitions for ATmega16HVA2 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iom16hva2.h
+ *
+ * @brief Definitions for ATmega16HVA2
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iom16hva2.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATmega16HVA2_H_
#define _AVR_ATmega16HVA2_H_ 1
+/**
+ * @defgroup Avr_iom16hva2 ATmega16HVA2 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Registers and associated bit numbers. */
@@ -809,7 +820,7 @@
#define PI_DDR DDRI
#define PI_PORT PORTI
#define PI_PIN PINI
-#define PI_BIT
+#define PI_BIT
#define NI_DDR DDRNI
#define NI_PORT PORTNI
@@ -866,5 +877,5 @@
#define OC_PIN PINOC
#define OC_BIT OC
+/**@}*/
#endif /* _AVR_ATmega16HVA2_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iom16hvb.h b/cpukit/score/cpu/avr/avr/iom16hvb.h
index ea3ab57001..ad6720eb45 100644
--- a/cpukit/score/cpu/avr/avr/iom16hvb.h
+++ b/cpukit/score/cpu/avr/avr/iom16hvb.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iom16hvb.h - definitions for ATmega16HVB */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iom16hvb.h
+ *
+ * @brief Definitions for ATmega16HVB
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iom16hvb.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATmega16HVB_H_
#define _AVR_ATmega16HVB_H_ 1
+/**
+ * @defgroup Avr_iom16hvb ATmega16HVB Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Registers and associated bit numbers. */
@@ -977,7 +988,7 @@
#define PI_DDR DDRI
#define PI_PORT PORTI
#define PI_PIN PINI
-#define PI_BIT
+#define PI_BIT
#define NI_DDR DDRNI
#define NI_PORT PORTNI
@@ -1034,5 +1045,5 @@
#define OC_PIN PINOC
#define OC_BIT OC
+/**@}*/
#endif /* _AVR_ATmega16HVB_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iom16m1.h b/cpukit/score/cpu/avr/avr/iom16m1.h
index a7cb85e16a..4ca8f1e40c 100644
--- a/cpukit/score/cpu/avr/avr/iom16m1.h
+++ b/cpukit/score/cpu/avr/avr/iom16m1.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iom16m1.h - definitions for ATmega16M1 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iom16m1.h
+ *
+ * @brief Definitions for ATmega16M1
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iom16m1.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATmega16M1_H_
#define _AVR_ATmega16M1_H_ 1
+/**
+ * @defgroup Avr_iom16m1 ATmega16M1 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Registers and associated bit numbers. */
@@ -1542,6 +1553,5 @@
#define SIGNATURE_1 0x94
#define SIGNATURE_2 0x84
-
+/**@}*/
#endif /* _AVR_ATmega16M1_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iom16u2.h b/cpukit/score/cpu/avr/avr/iom16u2.h
index 346dda6d85..bae63fa594 100644
--- a/cpukit/score/cpu/avr/avr/iom16u2.h
+++ b/cpukit/score/cpu/avr/avr/iom16u2.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iom16u2.h - definitions for ATmega16U2 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iom16u2.h
+ *
+ * @brief Definitions for ATmega16U2
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iom16u2.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATmega16U2_H_
#define _AVR_ATmega16U2_H_ 1
+/**
+ * @defgroup Avr_iom16u2 ATmega16U2 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Registers and associated bit numbers. */
@@ -973,7 +984,7 @@
#define SIGNATURE_1 0x94
#define SIGNATURE_2 0x89
+/**@}*/
/* Device Pin Definitions */
#endif /* _AVR_ATmega16U2_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iom16u4.h b/cpukit/score/cpu/avr/avr/iom16u4.h
index d87bfd2a7a..79e577919b 100644
--- a/cpukit/score/cpu/avr/avr/iom16u4.h
+++ b/cpukit/score/cpu/avr/avr/iom16u4.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iom16u4.h - definitions for ATmega16U4 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file aavr/iom16u4.h
+ *
+ * @brief Definitions for ATmega16U4
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iom16u4.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATmega16U4_H_
#define _AVR_ATmega16U4_H_ 1
+/**
+ * @defgroup Avr_iom16u4 ATmega16U4 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Registers and associated bit numbers. */
@@ -1351,6 +1362,5 @@
#define SIGNATURE_1 0x94
#define SIGNATURE_2 0x88
-
+/**@}*/
#endif /* _AVR_ATmega16U4_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iom2560.h b/cpukit/score/cpu/avr/avr/iom2560.h
index 99cfca51e6..461f93611f 100644
--- a/cpukit/score/cpu/avr/avr/iom2560.h
+++ b/cpukit/score/cpu/avr/avr/iom2560.h
@@ -36,17 +36,24 @@
#include <avr/iomxx0_1.h>
-/* Constants */
+/**
+ * @name Constants
+ *
+ */
+/**@{**/
#define SPM_PAGESIZE 256
#define RAMEND 0x21FF
#define XRAMEND 0xFFFF
#define E2END 0xFFF
#define E2PAGESIZE 8
#define FLASHEND 0x3FFFF
+/** @} */
-
-/* Fuses */
-
+/**
+ * @name Fuses
+ *
+ */
+/**@{**/
#define FUSE_MEMORY_SIZE 3
/* Low Fuse Byte */
@@ -58,7 +65,8 @@
#define FUSE_SUT1 (unsigned char)~_BV(5)
#define FUSE_CKOUT (unsigned char)~_BV(6)
#define FUSE_CKDIV8 (unsigned char)~_BV(7)
-#define LFUSE_DEFAULT (FUSE_CKSEL0 & FUSE_CKSEL2 & FUSE_CKSEL3 & FUSE_SUT0 & FUSE_CKDIV8)
+#define LFUSE_DEFAULT (FUSE_CKSEL0 & FUSE_CKSEL2 & FUSE_CKSEL3 & \
+ FUSE_SUT0 & FUSE_CKDIV8)
/* High Fuse Byte */
#define FUSE_BOOTRST (unsigned char)~_BV(0)
@@ -76,18 +84,26 @@
#define FUSE_BODLEVEL1 (unsigned char)~_BV(1)
#define FUSE_BODLEVEL2 (unsigned char)~_BV(2)
#define EFUSE_DEFAULT (0xFF)
+/** @} */
-
-/* Lock Bits */
+/**
+ * @name Lock Bits
+ *
+ */
+/**@{**/
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
#define __BOOT_LOCK_BITS_1_EXIST
+/** @} */
-
-/* Signature */
+/**
+ * @name Signature
+ *
+ */
+/**@{**/
#define SIGNATURE_0 0x1E
#define SIGNATURE_1 0x98
#define SIGNATURE_2 0x01
-
+/** @} */
#endif /* _AVR_IOM2560_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom32.h b/cpukit/score/cpu/avr/avr/iom32.h
index 7338261d75..88465252d6 100644
--- a/cpukit/score/cpu/avr/avr/iom32.h
+++ b/cpukit/score/cpu/avr/avr/iom32.h
@@ -1,40 +1,52 @@
-/* Copyright (c) 2002, Steinar Haugen
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
+/**
+ * @file avr/iom32.h
+ *
+ * @brief Definitions for ATmega32
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
-/* avr/iom32.h - definitions for ATmega32 */
+/*
+ * Copyright (c) 2002, Steinar Haugen
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOM32_H_
#define _AVR_IOM32_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_iom32 ATmega32 Definitons
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +56,7 @@
# define _AVR_IOXXX_H_ "iom32.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* I/O registers */
@@ -683,7 +695,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -691,5 +703,5 @@
#define SIGNATURE_1 0x95
#define SIGNATURE_2 0x02
-
+/**@}*/
#endif /* _AVR_IOM32_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom323.h b/cpukit/score/cpu/avr/avr/iom323.h
index 8f6a4d1516..d631ab5e06 100644
--- a/cpukit/score/cpu/avr/avr/iom323.h
+++ b/cpukit/score/cpu/avr/avr/iom323.h
@@ -1,40 +1,52 @@
-/* Copyright (c) 2002, Marek Michalkiewicz
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
+/**
+ * @file avr/iom323.h
+ *
+ * @brief Definitions for ATmega323
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
-/* avr/iom323.h - definitions for ATmega323 */
+/*
+ * Copyright (c) 2002 Marek Michalkiewicz
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOM323_H_
#define _AVR_IOM323_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_iom323 ATmega323 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +56,7 @@
# define _AVR_IOXXX_H_ "iom323.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* I/O registers */
@@ -675,7 +687,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -683,5 +695,5 @@
#define SIGNATURE_1 0x95
#define SIGNATURE_2 0x01
-
+/**@}*/
#endif /* _AVR_IOM323_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom324.h b/cpukit/score/cpu/avr/avr/iom324.h
index 788113fd5f..09fbd51f66 100644
--- a/cpukit/score/cpu/avr/avr/iom324.h
+++ b/cpukit/score/cpu/avr/avr/iom324.h
@@ -1,39 +1,51 @@
-/* Copyright (c) 2005, 2006 Anatoly Sokolov
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-/* avr/iom324.h - definitions for ATmega324 */
-
+/**
+ * @file avr/iom324.h
+ *
+ * @brief Definitions for ATmega324
+ */
+
+/*
+ * Copyright (c) 2005, 2006 Anatoly Sokolov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOM324_H_
#define _AVR_IOM324_H_ 1
+/**
+ * @defgroup Avr_iom324 ATmega324 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
+
#include <avr/iomxx4.h>
/* Constants */
@@ -81,13 +93,13 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature (ATmega324P) */
#define SIGNATURE_0 0x1E
#define SIGNATURE_1 0x95
-#define SIGNATURE_2 0x08
-
+#define SIGNATURE_2 0x08
+/**@}*/
#endif /* _AVR_IOM324_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom325.h b/cpukit/score/cpu/avr/avr/iom325.h
index d22911c8e9..7d4f582aaf 100644
--- a/cpukit/score/cpu/avr/avr/iom325.h
+++ b/cpukit/score/cpu/avr/avr/iom325.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATmega325 and ATmega325P
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2004, 2005, 2006, 2007 Eric B. Weddington
All rights reserved.
@@ -46,6 +54,14 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
+/**
+ * @defgroup AvrDef_iom325 ATmega325 and ATmega325P Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* Registers and associated bit numbers */
#define PINA _SFR_IO8(0x00)
@@ -816,5 +832,6 @@
#define SIGNATURE_1 0x95
#define SIGNATURE_2 0x05
+/** @} */
#endif /* _AVR_IOM325_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom3250.h b/cpukit/score/cpu/avr/avr/iom3250.h
index 21d0ad123e..6c3cb35a0f 100644
--- a/cpukit/score/cpu/avr/avr/iom3250.h
+++ b/cpukit/score/cpu/avr/avr/iom3250.h
@@ -46,8 +46,11 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
-/* Registers and associated bit numbers */
-
+/**
+ * @name Registers and Associated Bit Numbers
+ *
+ */
+/**@{**/
#define PINA _SFR_IO8(0x00)
#define PINA7 7
#define PINA6 6
@@ -295,12 +298,15 @@
#define EEARL _SFR_IO8(0x21)
#define EEARH _SFR_IO8(0X22)
-/* 6-char sequence denoting where to find the EEPROM registers in memory space.
- Adresses denoted in hex syntax with uppercase letters. Used by the EEPROM
- subroutines.
- First two letters: EECR address.
- Second two letters: EEDR address.
- Last two letters: EEAR address. */
+/*
+ * 6-char sequence denoting where to find the EEPROM registers in
+ * memory space.
+ * Adresses denoted in hex syntax with uppercase letters. Used by the EEPROM
+ * subroutines.
+ * First two letters: EECR address.
+ * Second two letters: EEDR address.
+ * Last two letters: EEAR address.
+ */
#define __EEPROM_REG_LOCATIONS__ 1F2021
#define GTCCR _SFR_IO8(0x23)
@@ -751,9 +757,13 @@
#define PJ0 0
/* Reserved [0xDE..0xFF] */
+/** @} */
-
-/* Interrupt vectors */
+/**
+ * @name Interrupt Vectors
+ *
+ */
+/**@{**/
/* Vector 0 is the reset vector */
/* External Interrupt Request 0 */
#define INT0_vect _VECTOR(1)
@@ -851,19 +861,26 @@
#define SIG_PIN_CHANGE3 _VECTOR(24)
#define _VECTORS_SIZE 100
+/** @} */
-
-/* Constants */
+/**
+ * @name Constants
+ *
+ */
+/**@{**/
#define SPM_PAGESIZE 128
#define RAMEND 0x8FF
#define XRAMEND RAMEND
#define E2END 0x3FF
#define E2PAGESIZE 4
#define FLASHEND 0x7FFF
+/** @} */
-
-/* Fuses */
-
+/**
+ * @name Fuses
+ *
+ */
+/**@{**/
#define FUSE_MEMORY_SIZE 3
/* Low Fuse Byte */
@@ -875,7 +892,8 @@
#define FUSE_SUT1 (unsigned char)~_BV(5)
#define FUSE_CKOUT (unsigned char)~_BV(6)
#define FUSE_CKDIV8 (unsigned char)~_BV(7)
-#define LFUSE_DEFAULT (FUSE_CKSEL0 & FUSE_CKSEL2 & FUSE_CKSEL3 & FUSE_SUT0 & FUSE_CKDIV8)
+#define LFUSE_DEFAULT (FUSE_CKSEL0 & FUSE_CKSEL2 & FUSE_CKSEL3 & \
+ FUSE_SUT0 & FUSE_CKDIV8)
/* High Fuse Byte */
#define FUSE_BOOTRST (unsigned char)~_BV(0)
@@ -893,18 +911,26 @@
#define FUSE_BODLEVEL0 (unsigned char)~_BV(1)
#define FUSE_BODLEVEL1 (unsigned char)~_BV(2)
#define EFUSE_DEFAULT (0xFF)
+/** @} */
-
-/* Lock Bits */
+/**
+ * @name Lock Bits
+ *
+ */
+/**@{**/
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
#define __BOOT_LOCK_BITS_1_EXIST
+/** @} */
-
-/* Signature */
+/**
+ * @name Signature
+ *
+ */
+/**@{**/
#define SIGNATURE_0 0x1E
#define SIGNATURE_1 0x95
#define SIGNATURE_2 0x06
-
+/** @} */
#endif /* _AVR_IOM3250_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom328p.h b/cpukit/score/cpu/avr/avr/iom328p.h
index 179f0a5e2d..b2bb6b58bf 100644
--- a/cpukit/score/cpu/avr/avr/iom328p.h
+++ b/cpukit/score/cpu/avr/avr/iom328p.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATmega328P
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2007 Atmel Corporation
All rights reserved.
@@ -48,6 +56,14 @@
#ifndef _AVR_IOM328P_H_
#define _AVR_IOM328P_H_ 1
+/**
+ * @defgroup AvrDef_iom328p ATmega328P Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* Registers and associated bit numbers */
#define PINB _SFR_IO8(0x03)
@@ -870,5 +886,6 @@
#define SIGNATURE_1 0x95
#define SIGNATURE_2 0x0F
+/** @} */
#endif /* _AVR_IOM328P_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom329.h b/cpukit/score/cpu/avr/avr/iom329.h
index fc96d00a7e..a7b5efdfd1 100644
--- a/cpukit/score/cpu/avr/avr/iom329.h
+++ b/cpukit/score/cpu/avr/avr/iom329.h
@@ -46,8 +46,11 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
-/* Registers and associated bit numbers */
-
+/**
+ * @name Registers and Associated Bit Numbers
+ *
+ */
+/**@{**/
#define PINA _SFR_IO8(0x00)
#define PINA7 7
#define PINA6 6
@@ -291,12 +294,15 @@
#define EEARL _SFR_IO8(0x21)
#define EEARH _SFR_IO8(0X22)
-/* 6-char sequence denoting where to find the EEPROM registers in memory space.
- Adresses denoted in hex syntax with uppercase letters. Used by the EEPROM
- subroutines.
- First two letters: EECR address.
- Second two letters: EEDR address.
- Last two letters: EEAR address. */
+/*
+ * 6-char sequence denoting where to find the EEPROM registers in
+ * memory space.
+ * Adresses denoted in hex syntax with uppercase letters. Used by the EEPROM
+ * subroutines.
+ * First two letters: EECR address.
+ * Second two letters: EEDR address.
+ * Last two letters: EEAR address.
+ */
#define __EEPROM_REG_LOCATIONS__ 1F2021
#define GTCCR _SFR_IO8(0x23)
@@ -852,8 +858,13 @@
#define SEG324 0
/* Reserved [0xFF] */
+/** @} */
-/* Interrupt vectors */
+/**
+ * @name Interrupt Vectors
+ *
+ */
+/**@{**/
/* Vector 0 is the reset vector */
/* External Interrupt Request 0 */
#define INT0_vect _VECTOR(1)
@@ -944,19 +955,26 @@
#define SIG_LCD _VECTOR(22)
#define _VECTORS_SIZE 92
+/** @} */
-
-/* Constants */
+/**
+ * @name Constants
+ *
+ */
+/**@{**/
#define SPM_PAGESIZE 128
#define RAMEND 0x8FF
#define XRAMEND RAMEND
#define E2END 0x3FF
#define E2PAGESIZE 4
#define FLASHEND 0x7FFF
+/** @} */
-
-/* Fuses */
-
+/**
+ * @name Fuses
+ *
+ */
+/**@{**/
#define FUSE_MEMORY_SIZE 3
/* Low Fuse Byte */
@@ -968,7 +986,8 @@
#define FUSE_SUT1 (unsigned char)~_BV(5)
#define FUSE_CKOUT (unsigned char)~_BV(6)
#define FUSE_CKDIV8 (unsigned char)~_BV(7)
-#define LFUSE_DEFAULT (FUSE_CKSEL0 & FUSE_CKSEL2 & FUSE_CKSEL3 & FUSE_SUT0 & FUSE_CKDIV8)
+#define LFUSE_DEFAULT (FUSE_CKSEL0 & FUSE_CKSEL2 & FUSE_CKSEL3 & \
+ FUSE_SUT0 & FUSE_CKDIV8)
/* High Fuse Byte */
#define FUSE_BOOTRST (unsigned char)~_BV(0)
@@ -979,25 +998,34 @@
#define FUSE_SPIEN (unsigned char)~_BV(5)
#define FUSE_JTAGEN (unsigned char)~_BV(6)
#define FUSE_OCDEN (unsigned char)~_BV(7)
-#define HFUSE_DEFAULT (FUSE_BOOTSZ0 & FUSE_BOOTSZ1 & FUSE_SPIEN & FUSE_JTAGEN)
+#define HFUSE_DEFAULT (FUSE_BOOTSZ0 & FUSE_BOOTSZ1 & \
+ FUSE_SPIEN & FUSE_JTAGEN)
/* Extended Fuse Byte */
#define FUSE_RSTDISBL (unsigned char)~_BV(0)
#define FUSE_BODLEVEL0 (unsigned char)~_BV(1)
#define FUSE_BODLEVEL1 (unsigned char)~_BV(2)
#define EFUSE_DEFAULT (0xFF)
+/** @} */
-
-/* Lock Bits */
+/**
+ * @name Lock Bits
+ *
+ */
+/**@{**/
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
#define __BOOT_LOCK_BITS_1_EXIST
+/** @} */
-
-/* Signature */
+/**
+ * @name Signature
+ *
+ */
+/**@{**/
#define SIGNATURE_0 0x1E
#define SIGNATURE_1 0x95
#define SIGNATURE_2 0x03
-
+/** @} */
#endif /* _AVR_IOM329_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom3290.h b/cpukit/score/cpu/avr/avr/iom3290.h
index b8ddf19cc6..f349821f77 100644
--- a/cpukit/score/cpu/avr/avr/iom3290.h
+++ b/cpukit/score/cpu/avr/avr/iom3290.h
@@ -1,35 +1,41 @@
-/* Copyright (c) 2004 Eric B. Weddington
- Copyright (c) 2005, 2006, 2007 Anatoly Sokolov
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-/* avr/iom3290.h - definitions for ATmega3290 and ATmega3290P. */
+/**
+ * @file avr/iom3290.h
+ *
+ * @brief Definitions for ATmega3290 and ATmega3290P
+ */
+
+/*
+ * Copyright (c) 2004 Eric B. Weddington
+ * Copyright (c) 2005, 2006, 2007 Anatoly Sokolov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOM3290_H_
#define _AVR_IOM3290_H_ 1
@@ -44,7 +50,15 @@
# define _AVR_IOXXX_H_ "iom3290.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
+
+/**
+ * @defgroup AvrDef_iom3290 ATmega3290, ATmega3290P Defintions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
/* Registers and associated bit numbers */
@@ -1143,7 +1157,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -1151,5 +1165,5 @@
#define SIGNATURE_1 0x95
#define SIGNATURE_2 0x04
-
+/** @} */
#endif /* _AVR_IOM3290_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom32c1.h b/cpukit/score/cpu/avr/avr/iom32c1.h
index 0147aee979..a0d4017026 100644
--- a/cpukit/score/cpu/avr/avr/iom32c1.h
+++ b/cpukit/score/cpu/avr/avr/iom32c1.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iom32c1.h - definitions for ATmega32C1 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iom32c1.h
+ *
+ * @brief Definitions for ATmega32C1
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,19 @@
# define _AVR_IOXXX_H_ "iom32c1.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATmega32C1_H_
#define _AVR_ATmega32C1_H_ 1
+/**
+ * @defgroup Avr_iom32c1 ATmega32C1 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
/* Registers and associated bit numbers. */
@@ -1292,5 +1304,5 @@
#define SIGNATURE_2 0x86
+/** @} */
#endif /* _AVR_ATmega32C1_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iom32m1.h b/cpukit/score/cpu/avr/avr/iom32m1.h
index bf12d9f513..f8bf88396e 100644
--- a/cpukit/score/cpu/avr/avr/iom32m1.h
+++ b/cpukit/score/cpu/avr/avr/iom32m1.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2008-2009 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iom32m1.h - definitions for ATmega32M1 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iom32m1.h
+ *
+ * @brief Definitions for ATmega32M1
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2008-2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,19 @@
# define _AVR_IOXXX_H_ "iom32m1.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATmega32M1_H_
#define _AVR_ATmega32M1_H_ 1
+/**
+ * @defgroup AvrDef_iom32m1 ATmega32M1 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
/* Registers and associated bit numbers. */
@@ -1566,5 +1578,5 @@
#define SIGNATURE_2 0x84
+/** @} */
#endif /* _AVR_ATmega32M1_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iom32u2.h b/cpukit/score/cpu/avr/avr/iom32u2.h
index 5859281230..10e835e6ed 100644
--- a/cpukit/score/cpu/avr/avr/iom32u2.h
+++ b/cpukit/score/cpu/avr/avr/iom32u2.h
@@ -47,9 +47,11 @@
#ifndef _AVR_ATmega32U2_H_
#define _AVR_ATmega32U2_H_ 1
-
-/* Registers and associated bit numbers. */
-
+/**
+ * @name Registers and Associated Bit Numbers
+ *
+ */
+/**@{**/
#define PINB _SFR_IO8(0x03)
#define PINB0 0
#define PINB1 1
@@ -851,9 +853,13 @@
#define UPDRV1 5
#define UPWE0 6
#define UPWE1 7
+/** @} */
-
-/* Interrupt vectors */
+/**
+ * @name Interrupt Vectors
+ *
+ */
+/**@{**/
/* Vector 0 is the reset vector */
#define INT0_vect_num 1
#define INT0_vect _VECTOR(1) /* External Interrupt Request 0 */
@@ -878,17 +884,21 @@
#define USB_GEN_vect_num 11
#define USB_GEN_vect _VECTOR(11) /* USB General Interrupt Request */
#define USB_COM_vect_num 12
-#define USB_COM_vect _VECTOR(12) /* USB Endpoint/Pipe Interrupt Communication Request */
+/* USB Endpoint/Pipe Interrupt Communication Request */
+#define USB_COM_vect _VECTOR(12)
#define WDT_vect_num 13
#define WDT_vect _VECTOR(13) /* Watchdog Time-out Interrupt */
#define TIMER1_CAPT_vect_num 14
#define TIMER1_CAPT_vect _VECTOR(14) /* Timer/Counter2 Capture Event */
#define TIMER1_COMPA_vect_num 15
-#define TIMER1_COMPA_vect _VECTOR(15) /* Timer/Counter2 Compare Match B */
+/* Timer/Counter2 Compare Match B */
+#define TIMER1_COMPA_vect _VECTOR(15)
#define TIMER0_COMPA_vect_num 19
-#define TIMER0_COMPA_vect _VECTOR(19) /* Timer/Counter0 Compare Match A */
+/* Timer/Counter0 Compare Match A */
+#define TIMER0_COMPA_vect _VECTOR(19)
#define TIMER0_COMPB_vect_num 20
-#define TIMER0_COMPB_vect _VECTOR(20) /* Timer/Counter0 Compare Match B */
+/* Timer/Counter0 Compare Match B */
+#define TIMER0_COMPB_vect _VECTOR(20)
#define TIMER0_OVF_vect_num 21
#define TIMER0_OVF_vect _VECTOR(21) /* Timer/Counter0 Overflow */
#define SPI_STC_vect_num 22
@@ -906,15 +916,17 @@
#define SPM_READY_vect_num 28
#define SPM_READY_vect _VECTOR(28) /* Store Program Memory Read */
#define TIMER1_COMPB_vect_num 16
-#define TIMER1_COMPB_vect _VECTOR(16) /* Timer/Counter2 Compare Match B */
+/* Timer/Counter2 Compare Match B */
+#define TIMER1_COMPB_vect _VECTOR(16)
#define TIMER1_COMPC_vect_num 17
-#define TIMER1_COMPC_vect _VECTOR(17) /* Timer/Counter2 Compare Match C */
+/* Timer/Counter2 Compare Match C */
+#define TIMER1_COMPC_vect _VECTOR(17)
#define TIMER1_OVF_vect_num 18
#define TIMER1_OVF_vect _VECTOR(18) /* Timer/Counter1 Overflow */
#define _VECTOR_SIZE 4 /* Size of individual vector. */
#define _VECTORS_SIZE (38 * _VECTOR_SIZE)
-
+/** @} */
/* Constants */
#define SPM_PAGESIZE (128)
@@ -927,9 +939,13 @@
#define E2END (0x3FF)
#define E2PAGESIZE (4)
#define FLASHEND (0x7FFF)
+/** @} */
-
-/* Fuses */
+/**
+ * @name Fuses
+ *
+ */
+/**@{**/
#define FUSE_MEMORY_SIZE 3
/* Low Fuse Byte */
@@ -941,38 +957,52 @@
#define FUSE_SUT1 (unsigned char)~_BV(5) /* Select start-up time */
#define FUSE_CKOUT (unsigned char)~_BV(6) /* Oscillator options */
#define FUSE_CKDIV8 (unsigned char)~_BV(7) /* Divide clock by 8 */
-#define LFUSE_DEFAULT (FUSE_CKDIV8 & FUSE_SUT1 & FUSE_SUT0 & FUSE_CKSEL3 & FUSE_CKSEL2 & FUSE_CKSEL1)
+#define LFUSE_DEFAULT (FUSE_CKDIV8 & FUSE_SUT1 & FUSE_SUT0 & FUSE_CKSEL3 & \
+ FUSE_CKSEL2 & FUSE_CKSEL1)
/* High Fuse Byte */
#define FUSE_BOOTRST (unsigned char)~_BV(0) /* Select Reset Vector */
#define FUSE_BOOTSZ0 (unsigned char)~_BV(1) /* Select Boot Size */
#define FUSE_BOOTSZ1 (unsigned char)~_BV(2) /* Select Boot Size */
-#define FUSE_EESAVE (unsigned char)~_BV(3) /* EEPROM memory is preserved through chip erase */
+/* EEPROM memory is preserved through chip erase */
+#define FUSE_EESAVE (unsigned char)~_BV(3)
#define FUSE_WDTON (unsigned char)~_BV(4) /* Watchdog timer always on */
-#define FUSE_SPIEN (unsigned char)~_BV(5) /* Enable Serial programming and Data Downloading */
+/* Enable Serial programming and Data Downloading */
+#define FUSE_SPIEN (unsigned char)~_BV(5)
#define FUSE_RSTDISBL (unsigned char)~_BV(6) /* External Reset Disable */
#define FUSE_DWEN (unsigned char)~_BV(7) /* dwbugWIRE Enable */
#define HFUSE_DEFAULT (FUSE_SPIEN & FUSE_BOOTSZ1 & FUSE_BOOTSZ0)
/* Extended Fuse Byte */
-#define FUSE_BODLEVEL0 (unsigned char)~_BV(0) /* Brown-out Detector trigger level */
-#define FUSE_BODLEVEL1 (unsigned char)~_BV(1) /* Brown-out Detector trigger level */
-#define FUSE_BODLEVEL2 (unsigned char)~_BV(2) /* Brown-out Detector trigger level */
+/* Brown-out Detector trigger level */
+#define FUSE_BODLEVEL0 (unsigned char)~_BV(0)
+/* Brown-out Detector trigger level */
+#define FUSE_BODLEVEL1 (unsigned char)~_BV(1)
+/* Brown-out Detector trigger level */
+#define FUSE_BODLEVEL2 (unsigned char)~_BV(2)
#define FUSE_HWBE (unsigned char)~_BV(3) /* Hardware Boot Enable */
#define EFUSE_DEFAULT (0xFF)
+/** @} */
-
-/* Lock Bits */
+/**
+ * @name Lock Bits
+ *
+ */
+/**@{**/
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
#define __BOOT_LOCK_BITS_1_EXIST
+/** @} */
-
-/* Signature */
+/**
+ * @name Signature
+ *
+ */
+/**@{**/
#define SIGNATURE_0 0x1E
#define SIGNATURE_1 0x95
#define SIGNATURE_2 0x8A
-
+/** @} */
/* Device Pin Definitions */
#endif /* _AVR_ATmega32U2_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom32u4.h b/cpukit/score/cpu/avr/avr/iom32u4.h
index 87f3b360ad..263d40f9b2 100644
--- a/cpukit/score/cpu/avr/avr/iom32u4.h
+++ b/cpukit/score/cpu/avr/avr/iom32u4.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATmega32U4
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2008 Atmel Corporation
All rights reserved.
@@ -48,6 +56,13 @@
#ifndef _AVR_IOM32U4_H_
#define _AVR_IOM32U4_H_ 1
+/**
+ * @defgroup AvrDef_iom32u4 ATmega32U4 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
/* Registers and associated bit numbers */
@@ -1498,6 +1513,6 @@
#define SIGNATURE_1 0x95
#define SIGNATURE_2 0x87
-
+/** @} */
#endif /* _AVR_IOM32U4_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom32u6.h b/cpukit/score/cpu/avr/avr/iom32u6.h
index a8b7f566f1..9f4211dd80 100644
--- a/cpukit/score/cpu/avr/avr/iom32u6.h
+++ b/cpukit/score/cpu/avr/avr/iom32u6.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2008 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iom32u6.h - definitions for ATmega32U6 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iom32u6.h
+ *
+ * @brief Definitions for ATmega32U6
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2008 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iom32u6.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATmega32U6_H_
#define _AVR_ATmega32U6_H_ 1
+/**
+ * @defgroup Avr_iom32u6 ATmega32U6 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Registers and associated bit numbers. */
@@ -1406,5 +1417,5 @@
#define SIGNATURE_2 0x88
+/**@}*/
#endif /* _AVR_ATmega32U6_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iom406.h b/cpukit/score/cpu/avr/avr/iom406.h
index a349ff369c..b0baafd024 100644
--- a/cpukit/score/cpu/avr/avr/iom406.h
+++ b/cpukit/score/cpu/avr/avr/iom406.h
@@ -1,40 +1,52 @@
-/* Copyright (c) 2006, Pieter Conradie
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iom406.h - definitions for ATmega406 */
+/**
+ * @file avr/iom406.h
+ *
+ * @brief Definitions for ATmega406
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2006, Pieter Conradie
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOM406_H_
#define _AVR_IOM406_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_iom406 ATmega406 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +56,7 @@
# define _AVR_IOXXX_H_ "iom406.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* I/O registers */
@@ -348,13 +360,13 @@
/* Pin Change Mask Register 1 */
#define PCMSK1 _SFR_MEM8(0x6C)
-#define PCINT15 7
-#define PCINT14 6
-#define PCINT13 5
-#define PCINT12 4
-#define PCINT11 3
-#define PCINT10 2
-#define PCINT9 1
+#define PCINT15 7
+#define PCINT14 6
+#define PCINT13 5
+#define PCINT12 4
+#define PCINT11 3
+#define PCINT10 2
+#define PCINT9 1
#define PCINT8 0
/* Reserved [0x6D] */
@@ -755,7 +767,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -764,4 +776,5 @@
#define SIGNATURE_2 0x07
+/**@}*/
#endif /* _AVR_IOM406_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom48.h b/cpukit/score/cpu/avr/avr/iom48.h
index 57d345e23b..2840dff539 100644
--- a/cpukit/score/cpu/avr/avr/iom48.h
+++ b/cpukit/score/cpu/avr/avr/iom48.h
@@ -1,37 +1,51 @@
-/* Copyright (c) 2004, Theodore A. Roth
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
+/**
+ * @file
+ *
+ * @brief Definitions for iom48
+ */
+
+/*
+ * Copyright (c) 2004, Theodore A. Roth
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOM48_H_
#define _AVR_IOM48_H_ 1
+/**
+ * @defgroup Avr_iom48 iom48 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
+
#include <avr/iomx8.h>
/* Constants */
@@ -82,5 +96,5 @@
#define SIGNATURE_1 0x92
#define SIGNATURE_2 0x05
-
+/**@}*/
#endif /* _AVR_IOM48_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom48p.h b/cpukit/score/cpu/avr/avr/iom48p.h
index 2ced5dc8a9..db48949ae3 100644
--- a/cpukit/score/cpu/avr/avr/iom48p.h
+++ b/cpukit/score/cpu/avr/avr/iom48p.h
@@ -1,38 +1,42 @@
-/* Copyright (c) 2007 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-/* avr/iom48p.h - definitions for ATmega48P. */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iom48p.h
+ *
+ * @brief Definitions for ATmega48P
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2007 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -42,12 +46,19 @@
# define _AVR_IOXXX_H_ "iom48p.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_IOM48P_H_
#define _AVR_IOM48P_H_ 1
+/**
+ * @defgroup Avr_iom48p ATmega48P Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
+
/* Registers and associated bit numbers */
#define PINB _SFR_IO8(0x03)
@@ -791,7 +802,7 @@
#define TIMER2_OVF_vect _VECTOR(9) /* Timer/Counter2 Overflow */
#define TIMER1_CAPT_vect _VECTOR(10) /* Timer/Counter1 Capture Event */
#define TIMER1_COMPA_vect _VECTOR(11) /* Timer/Counter1 Compare Match A */
-#define TIMER1_COMPB_vect _VECTOR(12) /* Timer/Counter1 Compare Match B */
+#define TIMER1_COMPB_vect _VECTOR(12) /* Timer/Counter1 Compare Match B */
#define TIMER1_OVF_vect _VECTOR(13) /* Timer/Counter1 Overflow */
#define TIMER0_COMPA_vect _VECTOR(14) /* TimerCounter0 Compare Match A */
#define TIMER0_COMPB_vect _VECTOR(15) /* TimerCounter0 Compare Match B */
@@ -855,7 +866,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -864,4 +875,5 @@
#define SIGNATURE_2 0x0A
+/**@}*/
#endif /* _AVR_IOM48P_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom640.h b/cpukit/score/cpu/avr/avr/iom640.h
index f3fe369042..d542d2eed5 100644
--- a/cpukit/score/cpu/avr/avr/iom640.h
+++ b/cpukit/score/cpu/avr/avr/iom640.h
@@ -1,39 +1,52 @@
-/* Copyright (c) 2005 Anatoly Sokolov
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iom640.h - definitions for ATmega640 */
+/**
+ * @file avr/iom640.h
+ *
+ * @brief Definitions for ATmega640
+ */
+
+/*
+ * Copyright (c) 2005 Anatoly Sokolov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOM640_H_
#define _AVR_IOM640_H_ 1
+/**
+ * @defgroup Avr_iom640 ATmega640 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
#include <avr/iomxx0_1.h>
/* Constants */
@@ -81,7 +94,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -89,5 +102,5 @@
#define SIGNATURE_1 0x96
#define SIGNATURE_2 0x08
-
+/** @} */
#endif /* _AVR_IOM640_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom644.h b/cpukit/score/cpu/avr/avr/iom644.h
index 2ad996c647..dcfab293ef 100644
--- a/cpukit/score/cpu/avr/avr/iom644.h
+++ b/cpukit/score/cpu/avr/avr/iom644.h
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATmega644
+ */
+
/* Copyright (c) 2005 Anatoly Sokolov
All rights reserved.
@@ -36,6 +42,14 @@
#include <avr/iomxx4.h>
+/**
+ * @defgroup AvrDef_iom644 ATmega644 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* Constants */
#define SPM_PAGESIZE 256
#define RAMEND 0x10FF
@@ -89,5 +103,6 @@
#define SIGNATURE_1 0x96
#define SIGNATURE_2 0x09
+/** @} */
#endif /* _AVR_IOM644_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom644p.h b/cpukit/score/cpu/avr/avr/iom644p.h
index 21b19d4392..5c42b09c6d 100644
--- a/cpukit/score/cpu/avr/avr/iom644p.h
+++ b/cpukit/score/cpu/avr/avr/iom644p.h
@@ -36,17 +36,24 @@
#include <avr/iomxx4.h>
-/* Constants */
+/**
+ * @name Constants
+ *
+ */
+/**@{**/
#define SPM_PAGESIZE 256
#define RAMEND 0x10FF
#define XRAMEND RAMEND
#define E2END 0x7FF
#define E2PAGESIZE 8
#define FLASHEND 0xFFFF
+/** @} */
-
-/* Fuses */
-
+/**
+ * @name Fuses
+ *
+ */
+/**@{**/
#define FUSE_MEMORY_SIZE 3
/* Low Fuse Byte */
@@ -58,7 +65,8 @@
#define FUSE_SUT1 (unsigned char)~_BV(5)
#define FUSE_CKOUT (unsigned char)~_BV(6)
#define FUSE_CKDIV8 (unsigned char)~_BV(7)
-#define LFUSE_DEFAULT (FUSE_CKSEL0 & FUSE_CKSEL2 & FUSE_CKSEL3 & FUSE_SUT0 & FUSE_SUT1 & FUSE_CKDIV8)
+#define LFUSE_DEFAULT (FUSE_CKSEL0 & FUSE_CKSEL2 & FUSE_CKSEL3 & \
+ FUSE_SUT0 & FUSE_SUT1 & FUSE_CKDIV8)
/* High Fuse Byte */
#define FUSE_BOOTRST (unsigned char)~_BV(0)
@@ -76,18 +84,26 @@
#define FUSE_BODLEVEL1 (unsigned char)~_BV(1)
#define FUSE_BODLEVEL2 (unsigned char)~_BV(2)
#define EFUSE_DEFAULT (0xFF)
+/** @} */
-
-/* Lock Bits */
+/**
+ * @name Lock Bits
+ *
+ */
+/**@{**/
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
#define __BOOT_LOCK_BITS_1_EXIST
+/** @} */
-
-/* Signature */
+/**
+ * @name Signature
+ *
+ */
+/**@{**/
#define SIGNATURE_0 0x1E
#define SIGNATURE_1 0x96
#define SIGNATURE_2 0x0A
-
+/** @} */
#endif /* _AVR_IOM644P_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom644pa.h b/cpukit/score/cpu/avr/avr/iom644pa.h
index 0bcf3e6e50..e794e089a5 100644
--- a/cpukit/score/cpu/avr/avr/iom644pa.h
+++ b/cpukit/score/cpu/avr/avr/iom644pa.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iom644PA.h - definitions for ATmega644PA */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iom644PA.h
+ *
+ * @brief Definitions for ATmega644PA
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iom644PA.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATmega644PA_H_
#define _AVR_ATmega644PA_H_ 1
+/**
+ * @defgroup Avr_iom644PA ATmega644PA Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Registers and associated bit numbers. */
@@ -1365,5 +1376,5 @@
#define PCINT12_PIN PINB
#define PCINT12_BIT 4
+/**@}*/
#endif /* _AVR_ATmega644PA_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iom645.h b/cpukit/score/cpu/avr/avr/iom645.h
index 1b73f2be69..991ff821fd 100644
--- a/cpukit/score/cpu/avr/avr/iom645.h
+++ b/cpukit/score/cpu/avr/avr/iom645.h
@@ -1,40 +1,52 @@
-/* Copyright (c) 2004,2005,2006 Eric B. Weddington
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iom645.h - definitions for ATmega645 */
+/**
+ * @file avr/iom645.h
+ *
+ * @brief Definitions for ATmega645
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2004,2005,2006 Eric B. Weddington
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOM645_H_
#define _AVR_IOM645_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_iom645 ATmega645 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +56,7 @@
# define _AVR_IOXXX_H_ "iom645.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* Registers and associated bit numbers */
@@ -803,7 +815,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -811,5 +823,5 @@
#define SIGNATURE_1 0x96
#define SIGNATURE_2 0x05
-
+/**@}*/
#endif /* _AVR_IOM645_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom6450.h b/cpukit/score/cpu/avr/avr/iom6450.h
index 8317f18013..fa2203e527 100644
--- a/cpukit/score/cpu/avr/avr/iom6450.h
+++ b/cpukit/score/cpu/avr/avr/iom6450.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATmega6450
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2004,2005,2006 Eric B. Weddington
All rights reserved.
@@ -46,6 +54,14 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
+/**
+ * @defgroup AvrDef_iom6450 ATmega6450 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* Registers and associated bit numbers */
#define PINA _SFR_IO8(0x00)
@@ -902,5 +918,6 @@
#define SIGNATURE_1 0x96
#define SIGNATURE_2 0x06
+/** @} */
#endif /* _AVR_IOM6450_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom649.h b/cpukit/score/cpu/avr/avr/iom649.h
index c9d5058a24..2064573933 100644
--- a/cpukit/score/cpu/avr/avr/iom649.h
+++ b/cpukit/score/cpu/avr/avr/iom649.h
@@ -1,40 +1,53 @@
-/* Copyright (c) 2004 Eric B. Weddington
- Copyright (c) 2005,2006 Anatoly Sokolov
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-/* avr/iom649.h - definitions for ATmega649 */
+/**
+ * @file avr/iom649.h
+ *
+ * @brief Definitions for ATmega649
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2004 Eric B. Weddington
+ * Copyright (c) 2005,2006 Anatoly Sokolov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOM649_H_
#define _AVR_IOM649_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_iom649 ATmega649 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +57,7 @@
# define _AVR_IOXXX_H_ "iom649.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* Registers and associated bit numbers */
@@ -980,7 +993,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -988,5 +1001,5 @@
#define SIGNATURE_1 0x96
#define SIGNATURE_2 0x03
-
+/**@}*/
#endif /* _AVR_IOM649_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom6490.h b/cpukit/score/cpu/avr/avr/iom6490.h
index f678acf30f..10334d7677 100644
--- a/cpukit/score/cpu/avr/avr/iom6490.h
+++ b/cpukit/score/cpu/avr/avr/iom6490.h
@@ -1,40 +1,53 @@
-/* Copyright (c) 2004 Eric B. Weddington
- Copyright (c) 2005,2006 Anatoly Sokolov
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-/* avr/iom6490.h - definitions for ATmega6490 */
+/**
+ * @file avr/iom6490.h
+ *
+ * @brief Definitions for ATmega6490
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2004 Eric B. Weddington
+ * Copyright (c) 2005,2006 Anatoly Sokolov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOM6490_H_
#define _AVR_IOM6490_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_iom6490 ATmega6490 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +57,7 @@
# define _AVR_IOXXX_H_ "iom6490.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* Registers and associated bit numbers */
@@ -1132,7 +1145,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -1141,4 +1154,5 @@
#define SIGNATURE_2 0x04
+/**@}*/
#endif /* _AVR_IOM6490_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom64c1.h b/cpukit/score/cpu/avr/avr/iom64c1.h
index a30aee0d98..5895fe9857 100644
--- a/cpukit/score/cpu/avr/avr/iom64c1.h
+++ b/cpukit/score/cpu/avr/avr/iom64c1.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATmega64C1
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2009 Atmel Corporation
All rights reserved.
@@ -47,6 +55,13 @@
#ifndef _AVR_ATmega64C1_H_
#define _AVR_ATmega64C1_H_ 1
+/**
+ * @defgroup AvrDef_iom64c1 ATmega64C1 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
/* Registers and associated bit numbers. */
@@ -1292,6 +1307,7 @@
#define SIGNATURE_1 0x96
#define SIGNATURE_2 0x86
+/** @} */
#endif /* _AVR_ATmega64C1_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom64hve.h b/cpukit/score/cpu/avr/avr/iom64hve.h
index 2e2debc19f..913697de98 100644
--- a/cpukit/score/cpu/avr/avr/iom64hve.h
+++ b/cpukit/score/cpu/avr/avr/iom64hve.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iom64hve.h - definitions for ATmega64HVE */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iom64hve.h
+ *
+ * @brief Definitions for ATmega64HVE
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iom64hve.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATmega64HVE_H_
#define _AVR_ATmega64HVE_H_ 1
+/**
+ * @defgroup Avr_iom64hve ATmega64HVE Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Registers and associated bit numbers. */
@@ -958,7 +969,7 @@
#define PI_DDR DDRI
#define PI_PORT PORTI
#define PI_PIN PINI
-#define PI_BIT
+#define PI_BIT
#define NI_DDR DDRNI
#define NI_PORT PORTNI
@@ -1015,5 +1026,5 @@
#define OC_PIN PINOC
#define OC_BIT OC
+/**@}*/
#endif /* _AVR_ATmega64HVE_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iom64m1.h b/cpukit/score/cpu/avr/avr/iom64m1.h
index 6a97062440..492e524185 100644
--- a/cpukit/score/cpu/avr/avr/iom64m1.h
+++ b/cpukit/score/cpu/avr/avr/iom64m1.h
@@ -48,8 +48,11 @@
#define _AVR_ATmega64M1_H_ 1
-/* Registers and associated bit numbers. */
-
+/**
+ * @name Registers and Associated Bit Numbers
+ *
+ */
+/**@{**/
#define PINB _SFR_IO8(0x03)
#define PINB0 0
#define PINB1 1
@@ -1415,9 +1418,13 @@
#define MSG5 5
#define MSG6 6
#define MSG7 7
+/** @} */
-
-/* Interrupt vectors */
+/**
+ * @name Interrupt Vectors
+ *
+ */
+/**@{**/
/* Vector 0 is the reset vector */
#define ANACOMP0_vect_num 1
#define ANACOMP0_vect _VECTOR(1) /* Analog Comparator 0 */
@@ -1442,15 +1449,19 @@
#define TIMER1_CAPT_vect_num 11
#define TIMER1_CAPT_vect _VECTOR(11) /* Timer/Counter1 Capture Event */
#define TIMER1_COMPA_vect_num 12
-#define TIMER1_COMPA_vect _VECTOR(12) /* Timer/Counter1 Compare Match A */
+/* Timer/Counter1 Compare Match A */
+#define TIMER1_COMPA_vect _VECTOR(12)
#define TIMER1_COMPB_vect_num 13
-#define TIMER1_COMPB_vect _VECTOR(13) /* Timer/Counter1 Compare Match B */
+/* Timer/Counter1 Compare Match B */
+#define TIMER1_COMPB_vect _VECTOR(13)
#define TIMER1_OVF_vect_num 14
#define TIMER1_OVF_vect _VECTOR(14) /* Timer1/Counter1 Overflow */
#define TIMER0_COMPA_vect_num 15
-#define TIMER0_COMPA_vect _VECTOR(15) /* Timer/Counter0 Compare Match A */
+/* Timer/Counter0 Compare Match A */
+#define TIMER0_COMPA_vect _VECTOR(15)
#define TIMER0_COMPB_vect_num 16
-#define TIMER0_COMPB_vect _VECTOR(16) /* Timer/Counter0 Compare Match B */
+/* Timer/Counter0 Compare Match B */
+#define TIMER0_COMPB_vect _VECTOR(16)
#define TIMER0_OVF_vect_num 17
#define TIMER0_OVF_vect _VECTOR(17) /* Timer/Counter0 Overflow */
#define CAN_INT_vect_num 18
@@ -1482,9 +1493,13 @@
#define _VECTOR_SIZE 4 /* Size of individual vector. */
#define _VECTORS_SIZE (31 * _VECTOR_SIZE)
+/** @} */
-
-/* Constants */
+/**
+ * @name Constants
+ *
+ */
+/**@{**/
#define SPM_PAGESIZE (256)
#define RAMSTART (0x0100)
#define RAMSIZE (4096)
@@ -1495,9 +1510,13 @@
#define E2END (0x7FF)
#define E2PAGESIZE (8)
#define FLASHEND (0xFFFF)
+/** @} */
-
-/* Fuses */
+/**
+ * @name Fuses
+ *
+ */
+/**@{**/
#define FUSE_MEMORY_SIZE 3
/* Low Fuse Byte */
@@ -1509,40 +1528,54 @@
#define FUSE_SUT1 (unsigned char)~_BV(5) /* Select start-up time */
#define FUSE_CKOUT (unsigned char)~_BV(6) /* Oscillator output option */
#define FUSE_CKDIV8 (unsigned char)~_BV(7) /* Divide clock by 8 */
-#define LFUSE_DEFAULT (FUSE_CKDIV8 & FUSE_SUT1 & FUSE_SUT0 & FUSE_CKSEL3 & FUSE_CKSEL2 & FUSE_CKSEL1)
+#define LFUSE_DEFAULT (FUSE_CKDIV8 & FUSE_SUT1 & FUSE_SUT0 & \
+ FUSE_CKSEL3 & FUSE_CKSEL2 & FUSE_CKSEL1)
/* High Fuse Byte */
#define FUSE_BOOTRST (unsigned char)~_BV(0) /* Select Reset Vector */
#define FUSE_BOOTSZ0 (unsigned char)~_BV(1) /* Select Boot Size */
#define FUSE_BOOTSZ1 (unsigned char)~_BV(2) /* Select Boot Size */
-#define FUSE_EESAVE (unsigned char)~_BV(3) /* EEPROM memory is preserved through chip erase */
+/* EEPROM memory is preserved through chip erase */
+#define FUSE_EESAVE (unsigned char)~_BV(3)
#define FUSE_WDTON (unsigned char)~_BV(4) /* Watchdog timer always on */
-#define FUSE_SPIEN (unsigned char)~_BV(5) /* Enable Serial programming and Data Downloading */
+/* Enable Serial programming and Data Downloading */
+#define FUSE_SPIEN (unsigned char)~_BV(5)
#define FUSE_DWEN (unsigned char)~_BV(6) /* DebugWIRE Enable */
#define FUSE_RSTDISBL (unsigned char)~_BV(7) /* External Reset Disable */
#define HFUSE_DEFAULT (FUSE_SPIEN & FUSE_BOOTSZ1 & FUSE_BOOTSZ0)
/* Extended Fuse Byte */
-#define FUSE_BODLEVEL0 (unsigned char)~_BV(0) /* Brown-out Detector Trigger Level */
-#define FUSE_BODLEVEL1 (unsigned char)~_BV(1) /* Brown-out Detector Trigger Level */
-#define FUSE_BODLEVEL2 (unsigned char)~_BV(2) /* Brown-out Detector Trigger Level */
+/* Brown-out Detector Trigger Level */
+#define FUSE_BODLEVEL0 (unsigned char)~_BV(0)
+/* Brown-out Detector Trigger Level */
+#define FUSE_BODLEVEL1 (unsigned char)~_BV(1)
+/* Brown-out Detector Trigger Level */
+#define FUSE_BODLEVEL2 (unsigned char)~_BV(2)
#define FUSE_PSCRVB (unsigned char)~_BV(3) /* PSC Outputs xB Reset Value */
#define FUSE_PSCRVA (unsigned char)~_BV(4) /* PSC Outputs xA Reset Value */
#define FUSE_PSCRB (unsigned char)~_BV(5) /* PSC Reset Behavior */
#define EFUSE_DEFAULT (FUSE_BODLEVEL2 & FUSE_BODLEVEL1)
+/** @} */
-
-/* Lock Bits */
+/**
+ * @name Lock Bits
+ *
+ */
+/**@{**/
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
#define __BOOT_LOCK_BITS_1_EXIST
+/** @} */
-
-/* Signature */
+/**
+ * @name Signature
+ *
+ */
+/**@{**/
#define SIGNATURE_0 0x1E
#define SIGNATURE_1 0x96
#define SIGNATURE_2 0x84
-
+/** @} */
#endif /* _AVR_ATmega64M1_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom8.h b/cpukit/score/cpu/avr/avr/iom8.h
index 02ad8e1ac3..c918b43dfb 100644
--- a/cpukit/score/cpu/avr/avr/iom8.h
+++ b/cpukit/score/cpu/avr/avr/iom8.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATmega8
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2002, Marek Michalkiewicz
All rights reserved.
@@ -46,6 +54,14 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
+/**
+ * @defgroup AvrDef_iom8 ATmega8 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* I/O registers */
/* TWI stands for "Two Wire Interface" or "TWI Was I2C(tm)" */
@@ -609,5 +625,6 @@
#define SIGNATURE_1 0x93
#define SIGNATURE_2 0x07
+/** @} */
#endif /* _AVR_IOM8_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom8515.h b/cpukit/score/cpu/avr/avr/iom8515.h
index 0516670064..7576f8df4e 100644
--- a/cpukit/score/cpu/avr/avr/iom8515.h
+++ b/cpukit/score/cpu/avr/avr/iom8515.h
@@ -1,40 +1,52 @@
-/* Copyright (c) 2002, Steinar Haugen
- All rights reserved.
+/**
+ * @file avr/iom8515.h
+ *
+ * @brief Definitions for ATmega8515
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iom8515.h - definitions for ATmega8515 */
+/*
+ * Copyright (c) 2002, Steinar Haugen
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOM8515_H_
#define _AVR_IOM8515_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_iom8515 ATmega8515 Definitons
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +56,7 @@
# define _AVR_IOXXX_H_ "iom8515.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* I/O registers */
@@ -623,7 +635,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -631,5 +643,5 @@
#define SIGNATURE_1 0x93
#define SIGNATURE_2 0x06
-
+/**@}*/
#endif /* _AVR_IOM8515_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom8535.h b/cpukit/score/cpu/avr/avr/iom8535.h
index 035587103e..061a0fce6b 100644
--- a/cpukit/score/cpu/avr/avr/iom8535.h
+++ b/cpukit/score/cpu/avr/avr/iom8535.h
@@ -46,8 +46,11 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
-/* I/O registers */
-
+/**
+ * @name I/O Registers
+ *
+ */
+/**@{**/
/* TWI stands for "Two Wire Interface" or "TWI Was I2C(tm)" */
#define TWBR _SFR_IO8(0x00)
#define TWSR _SFR_IO8(0x01)
@@ -227,9 +230,13 @@
/* 0x3D..0x3E SP */
/* 0x3F SREG */
+/** @} */
-/* Interrupt vectors */
-
+/**
+ * @name Interrupt Vectors
+ *
+ */
+/**@{**/
/* External Interrupt 0 */
#define INT0_vect _VECTOR(1)
#define SIG_INTERRUPT0 _VECTOR(1)
@@ -311,10 +318,10 @@
#define SIG_SPM_READY _VECTOR(20)
#define _VECTORS_SIZE 42
-
+/** @} */
/*
- The Register Bit names are represented by their bit number (0-7).
-*/
+ * The Register Bit names are represented by their bit number (0-7).
+ */
/* General Interrupt Control Register */
#define INT1 7
@@ -394,10 +401,10 @@
#define CS00 0
/*
- The ADHSM bit has been removed from all documentation,
- as being not needed at all since the comparator has proven
- to be fast enough even without feeding it more power.
-*/
+ * The ADHSM bit has been removed from all documentation,
+ * as being not needed at all since the comparator has proven
+ * to be fast enough even without feeding it more power.
+ */
/* Special Function IO Register */
#define ADTS2 7
@@ -663,17 +670,24 @@
#define EEWE 1
#define EERE 0
-/* Constants */
+/**
+ * @name Constants
+ *
+ */
+/**@{**/
#define SPM_PAGESIZE 64
#define RAMEND 0x25F /* Last On-Chip SRAM Location */
#define XRAMEND RAMEND
#define E2END 0x1FF
#define E2PAGESIZE 4
#define FLASHEND 0x1FFF
+/** @} */
-
-/* Fuses */
-
+/**
+ * @name Fuses
+ *
+ */
+/**@{**/
#define FUSE_MEMORY_SIZE 2
/* Low Fuse Byte */
@@ -685,7 +699,8 @@
#define FUSE_SUT1 (unsigned char)~_BV(5)
#define FUSE_BODEN (unsigned char)~_BV(6)
#define FUSE_BODLEVEL (unsigned char)~_BV(7)
-#define LFUSE_DEFAULT (FUSE_CKSEL1 & FUSE_CKSEL2 & FUSE_CKSEL3 & FUSE_SUT0 & FUSE_SUT1)
+#define LFUSE_DEFAULT (FUSE_CKSEL1 & FUSE_CKSEL2 & FUSE_CKSEL3 & \
+ FUSE_SUT0 & FUSE_SUT1)
/* High Fuse Byte */
#define FUSE_BOOTRST (unsigned char)~_BV(0)
@@ -697,18 +712,26 @@
#define FUSE_WDTON (unsigned char)~_BV(6)
#define FUSE_S8535C (unsigned char)~_BV(7)
#define HFUSE_DEFAULT (FUSE_BOOTSZ0 & FUSE_BOOTSZ1 & FUSE_SPIEN)
+/** @} */
-
-/* Lock Bits */
+/**
+ * @name Lock Bits
+ *
+ */
+/**@{**/
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
#define __BOOT_LOCK_BITS_1_EXIST
+/** @} */
-
-/* Signature */
+/**
+ * @name Signature
+ *
+ */
+/**@{**/
#define SIGNATURE_0 0x1E
#define SIGNATURE_1 0x93
#define SIGNATURE_2 0x08
-
+/** @} */
#endif /* _AVR_IOM8535_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom88.h b/cpukit/score/cpu/avr/avr/iom88.h
index 063b1faecc..f3e5e64c45 100644
--- a/cpukit/score/cpu/avr/avr/iom88.h
+++ b/cpukit/score/cpu/avr/avr/iom88.h
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATmega88
+ */
+
/* Copyright (c) 2004, Theodore A. Roth
All rights reserved.
@@ -32,6 +38,14 @@
#ifndef _AVR_IOM88_H_
#define _AVR_IOM88_H_ 1
+/**
+ * @defgroup AvrDef_iom88 ATmega88 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
#include <avr/iomx8.h>
/* Constants */
@@ -86,5 +100,6 @@
#define SIGNATURE_1 0x93
#define SIGNATURE_2 0x0A
+/** @} */
#endif /* _AVR_IOM88_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom88p.h b/cpukit/score/cpu/avr/avr/iom88p.h
index a95fad464b..0c98183d58 100644
--- a/cpukit/score/cpu/avr/avr/iom88p.h
+++ b/cpukit/score/cpu/avr/avr/iom88p.h
@@ -1,38 +1,42 @@
-/* Copyright (c) 2007 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-/* avr/iom88p.h - definitions for ATmega88P. */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iom88p.h
+ *
+ * @brief Definitions for ATmega88P
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2007 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -42,12 +46,19 @@
# define _AVR_IOXXX_H_ "iom88p.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_IOM88P_H_
#define _AVR_IOM88P_H_ 1
+/**
+ * @defgroup Avr_iom88p ATmega88P Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
+
/* Registers and associated bit numbers */
#define PINB _SFR_IO8(0x03)
@@ -330,7 +341,7 @@
#define WDRF 3
#define MCUCR _SFR_IO8(0x35)
-#define IVCE 0
+#define IVCE 0
#define IVSEL 1
#define PUD 4
#define BODSE 5
@@ -795,7 +806,7 @@
#define TIMER2_OVF_vect _VECTOR(9) /* Timer/Counter2 Overflow */
#define TIMER1_CAPT_vect _VECTOR(10) /* Timer/Counter1 Capture Event */
#define TIMER1_COMPA_vect _VECTOR(11) /* Timer/Counter1 Compare Match A */
-#define TIMER1_COMPB_vect _VECTOR(12) /* Timer/Counter1 Compare Match B */
+#define TIMER1_COMPB_vect _VECTOR(12) /* Timer/Counter1 Compare Match B */
#define TIMER1_OVF_vect _VECTOR(13) /* Timer/Counter1 Overflow */
#define TIMER0_COMPA_vect _VECTOR(14) /* TimerCounter0 Compare Match A */
#define TIMER0_COMPB_vect _VECTOR(15) /* TimerCounter0 Compare Match B */
@@ -861,7 +872,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -869,5 +880,5 @@
#define SIGNATURE_1 0x93
#define SIGNATURE_2 0x0F
-
+/**@}*/
#endif /* _AVR_IOM88P_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom8hva.h b/cpukit/score/cpu/avr/avr/iom8hva.h
index 804ff526bf..fc36eabb25 100644
--- a/cpukit/score/cpu/avr/avr/iom8hva.h
+++ b/cpukit/score/cpu/avr/avr/iom8hva.h
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATmega8HVA
+ */
+
/* Copyright (c) 2007, Anatoly Sokolov
All rights reserved.
@@ -36,6 +42,14 @@
#include <avr/iomxxhva.h>
+/**
+ * @defgroup AvrDef_iom8hva ATmega8HVA Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* Constants */
#define SPM_PAGESIZE 128
#define RAMEND 0x2FF
@@ -64,6 +78,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
+/** @} */
#endif /* _AVR_IOM8HVA_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iom8u2.h b/cpukit/score/cpu/avr/avr/iom8u2.h
index 24c8ff12d8..c3ee0ba211 100644
--- a/cpukit/score/cpu/avr/avr/iom8u2.h
+++ b/cpukit/score/cpu/avr/avr/iom8u2.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATmega8U2
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2009 Atmel Corporation
All rights reserved.
@@ -47,6 +55,13 @@
#ifndef _AVR_ATmega8U2_H_
#define _AVR_ATmega8U2_H_ 1
+/**
+ * @defgroup AvrDef_iom8u2 ATmega8U2 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
/* Registers and associated bit numbers. */
@@ -960,7 +975,9 @@
#define SIGNATURE_1 0x93
#define SIGNATURE_2 0x89
-
/* Device Pin Definitions */
+
+/** @} */
+
#endif /* _AVR_ATmega8U2_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iomx8.h b/cpukit/score/cpu/avr/avr/iomx8.h
index 46ffc47589..f145d9d27d 100644
--- a/cpukit/score/cpu/avr/avr/iomx8.h
+++ b/cpukit/score/cpu/avr/avr/iomx8.h
@@ -46,8 +46,11 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
-/* I/O registers */
-
+/**
+ * @name I/O Registers
+ *
+ */
+/**@{**/
/* Port B */
#define PINB _SFR_IO8 (0x03)
@@ -203,16 +206,19 @@
#define EEARL _SFR_IO8(0x21)
#define EEARH _SFR_IO8(0X22)
/*
-Even though EEARH is not used by the mega48, the EEAR8 bit in the register
-must be written to 0, according to the datasheet, hence the EEARH register
-must be defined for the mega48.
-*/
-/* 6-char sequence denoting where to find the EEPROM registers in memory space.
- Adresses denoted in hex syntax with uppercase letters. Used by the EEPROM
- subroutines.
- First two letters: EECR address.
- Second two letters: EEDR address.
- Last two letters: EEAR address. */
+ * Even though EEARH is not used by the mega48, the EEAR8 bit in the register
+ * must be written to 0, according to the datasheet, hence the EEARH register
+ * must be defined for the mega48.
+ */
+/*
+ * 6-char sequence denoting where to find the EEPROM registers in
+ * memory space.
+ * Adresses denoted in hex syntax with uppercase letters. Used by the EEPROM
+ * subroutines.
+ * First two letters: EECR address.
+ * Second two letters: EEDR address.
+ * Last two letters: EEAR address.
+ */
#define __EEPROM_REG_LOCATIONS__ 1F2021
@@ -617,9 +623,13 @@ must be defined for the mega48.
#define UBRR0L _SFR_MEM8 (0xC4)
#define UBRR0H _SFR_MEM8 (0xC5)
#define UDR0 _SFR_MEM8 (0xC6)
+/** @} */
-/* Interrupt vectors */
-
+/**
+ * @name Interrupt Vectors
+ *
+ */
+/**@{**/
/* External Interrupt Request 0 */
#define INT0_vect _VECTOR(1)
#define SIG_INTERRUPT0 _VECTOR(1)
@@ -721,14 +731,17 @@ must be defined for the mega48.
#define SPM_READY_vect _VECTOR(25)
#define SIG_SPM_READY _VECTOR(25)
-/* The mega48 and mega88 vector tables are single instruction entries (16 bits
- per entry for an RJMP) while the mega168 table has double instruction
- entries (32 bits per entry for a JMP). */
+/*
+ * The mega48 and mega88 vector tables are single instruction entries (16 bits
+ * per entry for an RJMP) while the mega168 table has double instruction
+ * entries (32 bits per entry for a JMP).
+ */
#if defined (__AVR_ATmega168__)
# define _VECTORS_SIZE 104
#else
# define _VECTORS_SIZE 52
#endif
+/** @} */
#endif /* _AVR_IOM8_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iomxx0_1.h b/cpukit/score/cpu/avr/avr/iomxx0_1.h
index 3abc5cb0ea..2e62117ce9 100644
--- a/cpukit/score/cpu/avr/avr/iomxx0_1.h
+++ b/cpukit/score/cpu/avr/avr/iomxx0_1.h
@@ -1,41 +1,52 @@
-/* Copyright (c) 2005 Anatoly Sokolov
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iomxx0_1.h - definitions for ATmega640, Atmega1280, ATmega1281,
- ATmega2560 and ATmega2561. */
+/**
+ * @file avr/iomxx0_1.h
+ *
+ * @brief Definitions for ATmega640/1280/1281/2560/2561
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2005, Anatoly Sokolov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOMXX0_1_H_
#define _AVR_IOMXX0_1_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_iomxx0_1 ATmega640/1280/1281/2560/2561 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -45,7 +56,7 @@
# define _AVR_IOXXX_H_ "iomxx0_1.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#if defined(__AVR_ATmega640__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
# define __ATmegaxx0__
@@ -298,7 +309,7 @@
#define TOV5 0
#define PCIFR _SFR_IO8(0x1B)
-#if defined(__ATmegaxx0__)
+#if defined(__ATmegaxx0__)
# define PCIF2 2
#endif /* __ATmegaxx0__ */
#define PCIF1 1
@@ -321,7 +332,7 @@
#define INT4 4
#define INT3 3
#define INT2 2
-#define INT1 1
+#define INT1 1
#define INT0 0
#define GPIOR0 _SFR_IO8(0x1E)
@@ -555,7 +566,7 @@
#define PCINT9 1
#define PCINT8 0
-#if defined(__ATmegaxx0__)
+#if defined(__ATmegaxx0__)
# define PCMSK2 _SFR_MEM8(0x6D)
# define PCINT23 7
# define PCINT22 6
@@ -1250,7 +1261,7 @@
/* Reserved [0x12E..0x12F] */
-#if defined(__ATmegaxx0__)
+#if defined(__ATmegaxx0__)
# define UCSR3A _SFR_MEM8(0x130)
# define RXC3 7
@@ -1549,4 +1560,5 @@
# undef __ATmegaxx1__
#endif
+/**@}*/
#endif /* _AVR_IOMXX0_1_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iomxx4.h b/cpukit/score/cpu/avr/avr/iomxx4.h
index 4b88642f74..9dd64d875d 100644
--- a/cpukit/score/cpu/avr/avr/iomxx4.h
+++ b/cpukit/score/cpu/avr/avr/iomxx4.h
@@ -1,40 +1,53 @@
-/* Copyright (c) 2005, 2006, 2007 Anatoly Sokolov
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-/* avr/iomXX4.h - definitions for ATmega164P/324P/644P and ATmega644 */
+/**
+ * @file avr/iomXX4.h
+ *
+ * @brief Definitions for ATmega164P/324P/644P and ATmega644
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+/*
+ * Copyright (c) 2005, 2006, 2007 Anatoly Sokolov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOMXX4_H_
#define _AVR_IOMXX4_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup AvrDef_iomXX4 ATmega164P/324P/644P , ATmega644 Defintions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -865,4 +878,5 @@
#endif /* defined(__AVR_ATmega644__) */
+/** @} */
#endif /* _AVR_IOMXX4_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iomxxhva.h b/cpukit/score/cpu/avr/avr/iomxxhva.h
index 5b6bfdd7ed..2f62e18a0b 100644
--- a/cpukit/score/cpu/avr/avr/iomxxhva.h
+++ b/cpukit/score/cpu/avr/avr/iomxxhva.h
@@ -1,40 +1,52 @@
-/* Copyright (c) 2007, Anatoly Sokolov
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* iomxxhva.h - definitions for ATmega8HVA and ATmega16HVA. */
+/**
+ * @file iomxxhva.h
+ *
+ * @brief Definitions for ATmega8HVA and ATmega16HVA
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2007 Anatoly Sokolov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOMXXHVA_H_
#define _AVR_IOMXXHVA_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_iomxxhva ATmega8HVA, ATmega16HVA Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +56,7 @@
# define _AVR_IOXXX_H_ "iomxxhva.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* Registers and associated bit numbers */
@@ -114,7 +126,7 @@
#define EIMSK _SFR_IO8(0x1D)
#define INT2 2
-#define INT1 1
+#define INT1 1
#define INT0 0
#define GPIOR0 _SFR_IO8(0x1E)
@@ -518,5 +530,5 @@
# define _VECTORS_SIZE 42
#endif
-
+/**@}*/
#endif /* _AVR_IOMXXHVA_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotn11.h b/cpukit/score/cpu/avr/avr/iotn11.h
index 176b2dd0d3..8310f560ed 100644
--- a/cpukit/score/cpu/avr/avr/iotn11.h
+++ b/cpukit/score/cpu/avr/avr/iotn11.h
@@ -1,40 +1,52 @@
-/* Copyright (c) 2002,2005 Marek Michalkiewicz
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
+/**
+ * @file avr/iotn11.h
+ *
+ * @brief Definitions for ATtiny10/11
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
-/* avr/iotn11.h - definitions for ATtiny10/11 */
+/*
+ * Copyright (c) 2002, 2005 Marek Michalkiewicz
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOTN11_H_
#define _AVR_IOTN11_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_iotn11 ATtiny10/11 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +56,7 @@
# define _AVR_IOXXX_H_ "iotn11.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef __ASSEMBLER__
# warning "MCU not supported by the C compiler"
@@ -230,4 +242,5 @@
#define SIGNATURE_2 0x04
+/**@}*/
#endif /* _AVR_IOTN11_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotn12.h b/cpukit/score/cpu/avr/avr/iotn12.h
index 7762ec0169..5851dee68b 100644
--- a/cpukit/score/cpu/avr/avr/iotn12.h
+++ b/cpukit/score/cpu/avr/avr/iotn12.h
@@ -1,40 +1,52 @@
-/* Copyright (c) 2002,2005 Marek Michalkiewicz
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
+/**
+ * @file avr/iotn12.h
+ *
+ * @brief Definitions for ATtiny12
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
-/* avr/iotn12.h - definitions for ATtiny12 */
+/*
+ * Copyright (c) 2002,2005 Marek Michalkiewicz
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOTN12_H_
#define _AVR_IOTN12_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_iotn12 ATtiny12 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +56,7 @@
# define _AVR_IOXXX_H_ "iotn12.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef __ASSEMBLER__
# warning "MCU not supported by the C compiler"
@@ -260,5 +272,5 @@
#define SIGNATURE_1 0x90
#define SIGNATURE_2 0x05
-
+/**@}*/
#endif /* _AVR_IOTN12_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotn13.h b/cpukit/score/cpu/avr/avr/iotn13.h
index ae13f703b9..3f491fa914 100644
--- a/cpukit/score/cpu/avr/avr/iotn13.h
+++ b/cpukit/score/cpu/avr/avr/iotn13.h
@@ -1,42 +1,54 @@
-/* Copyright (c) 2004, Theodore A. Roth
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iotn13.h - definitions for ATtiny13 */
-
-/* Verified 5/20/04 by Bruce Graham */
+/**
+ * @file avr/iotn13.h
+ *
+ * @brief Definitions for ATtiny13
+ *
+ * Verified 5/20/04 by Bruce Graham
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2004, Theodore A. Roth
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOTN13_H_
#define _AVR_IOTN13_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_iotn13 ATtiny13 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -46,7 +58,7 @@
# define _AVR_IOXXX_H_ "iotn13.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* I/O registers and bit names */
@@ -360,4 +372,5 @@
#define SIGNATURE_2 0x07
+/**@}*/
#endif /* _AVR_IOTN13_H_*/
diff --git a/cpukit/score/cpu/avr/avr/iotn13a.h b/cpukit/score/cpu/avr/avr/iotn13a.h
index 4ca5b0751a..689f4032d6 100644
--- a/cpukit/score/cpu/avr/avr/iotn13a.h
+++ b/cpukit/score/cpu/avr/avr/iotn13a.h
@@ -47,9 +47,11 @@
#ifndef _AVR_ATTINY13A_H_
#define _AVR_ATTINY13A_H_ 1
-
-/* Registers and associated bit numbers. */
-
+/**
+ * @name Registers and Associated Bit Numbers
+ *
+ */
+/**@{**/
#define ADCSRB _SFR_IO8(0x03)
#define ADTS0 0
#define ADTS1 1
@@ -306,9 +308,13 @@
#define GIMSK _SFR_IO8(0x3B)
#define PCIE 5
#define INT0 6
+/** @} */
-
-/* Interrupt vectors */
+/**
+ * @name Interrupt Vectors
+ *
+ */
+/**@{**/
/* Vector 0 is the reset vector */
#define INT0_vect_num 1
#define INT0_vect _VECTOR(1) /* External Interrupt 0 */
@@ -331,9 +337,13 @@
#define _VECTOR_SIZE 2 /* Size of individual vector. */
#define _VECTORS_SIZE (10 * _VECTOR_SIZE)
+/** @} */
-
-/* Constants */
+/**
+ * @name Constants
+ *
+ */
+/**@{**/
#define SPM_PAGESIZE (32)
#define RAMSTART (0x60)
#define RAMSIZE (64)
@@ -344,9 +354,13 @@
#define E2END (64 - 1)
#define E2PAGESIZE (4)
#define FLASHEND (1024 - 1)
+/** @} */
-
-/* Fuses */
+/**
+ * @name Fuses
+ *
+ */
+/**@{**/
#define FUSE_MEMORY_SIZE 2
/* Low Fuse Byte */
@@ -354,30 +368,42 @@
#define FUSE_CKSEL1 (unsigned char)~_BV(1) /* Select Clock Source */
#define FUSE_SUT0 (unsigned char)~_BV(2) /* Select start-up time */
#define FUSE_SUT1 (unsigned char)~_BV(3) /* Select start-up time */
-#define FUSE_CKDIV8 (unsigned char)~_BV(4) /* Start up with system clock divided by 8 */
+/* Start up with system clock divided by 8 */
+#define FUSE_CKDIV8 (unsigned char)~_BV(4)
#define FUSE_WDTON (unsigned char)~_BV(5) /* Watch dog timer always on */
-#define FUSE_EESAVE (unsigned char)~_BV(6) /* Keep EEprom contents during chip erase */
+/* Keep EEprom contents during chip erase */
+#define FUSE_EESAVE (unsigned char)~_BV(6)
#define FUSE_SPIEN (unsigned char)~_BV(7) /* SPI programming enable */
#define LFUSE_DEFAULT (FUSE_SPIEN & FUSE_CKDIV8 & FUSE_SUT0 & FUSE_CKSEL0)
/* High Fuse Byte */
#define FUSE_RSTDISBL (unsigned char)~_BV(0) /* Disable external reset */
-#define FUSE_BODLEVEL0 (unsigned char)~_BV(1) /* Enable BOD and select level */
-#define FUSE_BODLEVEL1 (unsigned char)~_BV(2) /* Enable BOD and select level */
+/* Enable BOD and select level */
+#define FUSE_BODLEVEL0 (unsigned char)~_BV(1)
+/* Enable BOD and select level */
+#define FUSE_BODLEVEL1 (unsigned char)~_BV(2)
#define FUSE_DWEN (unsigned char)~_BV(3) /* DebugWire Enable */
#define FUSE_SELFPRGEN (unsigned char)~_BV(4) /* Self Programming Enable */
#define HFUSE_DEFAULT (0xFF)
+/** @} */
-
-/* Lock Bits */
+/**
+ * @name Lock Bits
+ *
+ */
+/**@{**/
#define __LOCK_BITS_EXIST
+/** @} */
-
-/* Signature */
+/**
+ * @name Signature
+ *
+ */
+/**@{**/
#define SIGNATURE_0 0x1E
#define SIGNATURE_1 0x90
#define SIGNATURE_2 0x07
-
+/** @} */
#endif /* _AVR_ATTINY13A_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotn15.h b/cpukit/score/cpu/avr/avr/iotn15.h
index ffffee1798..3e7ac81487 100644
--- a/cpukit/score/cpu/avr/avr/iotn15.h
+++ b/cpukit/score/cpu/avr/avr/iotn15.h
@@ -1,40 +1,53 @@
-/* Copyright (c) 2002,2005 Marek Michalkiewicz
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
+/**
+ * @file avr/iotn15.h
+ *
+ * @brief Definitions for ATtiny15
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
-/* avr/iotn15.h - definitions for ATtiny15 */
+/*
+ * Copyright (c) 2002,2005 Marek Michalkiewicz
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOTN15_H_
#define _AVR_IOTN15_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup AvrDef_iotn15 ATtiny15 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +57,7 @@
# define _AVR_IOXXX_H_ "iotn15.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef __ASSEMBLER__
# warning "MCU not supported by the C compiler"
@@ -328,5 +341,5 @@
#define SIGNATURE_1 0x90
#define SIGNATURE_2 0x06
-
+/** @} */
#endif /* _AVR_IOTN15_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotn167.h b/cpukit/score/cpu/avr/avr/iotn167.h
index 0717faaada..53202b33a2 100644
--- a/cpukit/score/cpu/avr/avr/iotn167.h
+++ b/cpukit/score/cpu/avr/avr/iotn167.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATtiny167
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2008 Atmel Corporation
All rights reserved.
@@ -48,6 +56,13 @@
#ifndef _AVR_IOTN167_H_
#define _AVR_IOTN167_H_ 1
+/**
+ * @defgroup AvrDef_iotn167 ATtiny167 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
/* Registers and associated bit numbers */
@@ -826,6 +841,6 @@
#define SIGNATURE_1 0x94
#define SIGNATURE_2 0x87
-
+/** @} */
#endif /* _AVR_IOTN167_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotn2313.h b/cpukit/score/cpu/avr/avr/iotn2313.h
index 9495acabb6..21a00522a3 100644
--- a/cpukit/score/cpu/avr/avr/iotn2313.h
+++ b/cpukit/score/cpu/avr/avr/iotn2313.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATtiny2313
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2004, 2005, 2006 Bob Paddock
All rights reserved.
@@ -71,6 +79,14 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
+/**
+ * @defgroup AvrDef_iotn2313 ATtiny2313 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* I/O registers */
/*
@@ -628,5 +644,6 @@
#define SIGNATURE_1 0x91
#define SIGNATURE_2 0x0A
+/** @} */
#endif /* _AVR_IOTN2313_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotn2313a.h b/cpukit/score/cpu/avr/avr/iotn2313a.h
index eb3da33fd2..a84e4ee3a3 100644
--- a/cpukit/score/cpu/avr/avr/iotn2313a.h
+++ b/cpukit/score/cpu/avr/avr/iotn2313a.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iotn2313a.h - definitions for ATtiny2313A */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iotn2313a.h
+ *
+ * @brief Definitions for ATtiny2313A
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iotn2313a.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATtiny2313A_H_
#define _AVR_ATtiny2313A_H_ 1
+/**
+ * @defgroup Avr_io4434 AT90S4434 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Registers and associated bit numbers. */
@@ -764,5 +775,5 @@
#define SCL_PIN PINB
#define SCL_BIT 7
+/**@}*/
#endif /* _AVR_ATtiny2313A_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iotn24.h b/cpukit/score/cpu/avr/avr/iotn24.h
index 57baa1d1c6..2fc94b10da 100644
--- a/cpukit/score/cpu/avr/avr/iotn24.h
+++ b/cpukit/score/cpu/avr/avr/iotn24.h
@@ -1,39 +1,51 @@
-/* Copyright (c) 2005, Anatoly Sokolov
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iotn24.h - definitions for ATtiny24 */
+/**
+ * @file avr/iotn24.h
+ *
+ * @brief Definitions for ATtiny24
+ */
+
+/*
+ * Copyright (c) 2005 Anatoly Sokolov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOTN24_H_
#define _AVR_IOTN24_H_ 1
+/**
+ * @defgroup Avr_iotn24 ATtiny24 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
+
#include <avr/iotnx4.h>
#define SPM_PAGESIZE 32
@@ -85,4 +97,5 @@
#define SIGNATURE_2 0x0B
+/**@}*/
#endif /* _AVR_IOTN24_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotn24a.h b/cpukit/score/cpu/avr/avr/iotn24a.h
index a413c405a0..266bc94db8 100644
--- a/cpukit/score/cpu/avr/avr/iotn24a.h
+++ b/cpukit/score/cpu/avr/avr/iotn24a.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iotn24a.h - definitions for ATtiny24A */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iotn24a.h
+ *
+ * @brief Definitions for ATtiny24A
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iotn24a.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATtiny24A_H_
#define _AVR_ATtiny24A_H_ 1
+/**
+ * @defgroup Avr_iotn24a ATtiny24A Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Registers and associated bit numbers. */
@@ -826,5 +837,5 @@
#define PCINT5_PIN PINA
#define PCINT5_BIT 5
+/**@}*/
#endif /* _AVR_ATtiny24A_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iotn26.h b/cpukit/score/cpu/avr/avr/iotn26.h
index 068d7f98f8..7fcf2a3b59 100644
--- a/cpukit/score/cpu/avr/avr/iotn26.h
+++ b/cpukit/score/cpu/avr/avr/iotn26.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATtiny26
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2004,2005 Eric B. Weddington
All rights reserved.
@@ -46,6 +54,14 @@
#ifndef _AVR_IOTN26_H_
#define _AVR_IOTN26_H_ 1
+/**
+ * @defgroup AvrDef_iotn26 ATtiny26 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* Registers and associated bit numbers */
/* Reserved [0x00..0x03] */
@@ -380,5 +396,6 @@
#define SIGNATURE_1 0x91
#define SIGNATURE_2 0x09
+/** @} */
#endif /* _AVR_IOTN26_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotn261.h b/cpukit/score/cpu/avr/avr/iotn261.h
index 6e18069b5b..129e595a34 100644
--- a/cpukit/score/cpu/avr/avr/iotn261.h
+++ b/cpukit/score/cpu/avr/avr/iotn261.h
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATtiny261
+ */
+
/* Copyright (c) 2006, Anatoly Sokolov
All rights reserved.
@@ -34,6 +40,14 @@
#ifndef _AVR_IOTN261_H_
#define _AVR_IOTN261_H_ 1
+/**
+ * @defgroup AvrDef_iotn261 ATtiny261 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
#include <avr/iotnx61.h>
#define SPM_PAGESIZE 32
@@ -83,5 +97,6 @@
#define SIGNATURE_1 0x91
#define SIGNATURE_2 0x0C
+/** @} */
#endif /* _AVR_IOTN261_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotn261a.h b/cpukit/score/cpu/avr/avr/iotn261a.h
index 2d7169b8c8..607642fe88 100644
--- a/cpukit/score/cpu/avr/avr/iotn261a.h
+++ b/cpukit/score/cpu/avr/avr/iotn261a.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iotn261a.h - definitions for ATtiny261A */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iotn261a.h
+ *
+ * @brief Definitions for ATtiny261A
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iotn261a.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATtiny261A_H_
#define _AVR_ATtiny261A_H_ 1
+/**
+ * @defgroup Avr_iotn261a ATtiny261A Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Registers and associated bit numbers. */
@@ -971,5 +982,5 @@
#define PA0_PIN PINADC
#define PA0_BIT ADC0
+/**@}*/
#endif /* _AVR_ATtiny261A_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iotn28.h b/cpukit/score/cpu/avr/avr/iotn28.h
index e91d67ae11..28a68e5ca2 100644
--- a/cpukit/score/cpu/avr/avr/iotn28.h
+++ b/cpukit/score/cpu/avr/avr/iotn28.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATtiny28
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2002, Marek Michalkiewicz
All rights reserved.
@@ -50,6 +58,14 @@
# warning "MCU not supported by the C compiler"
#endif
+/**
+ * @defgroup AvrDef_iotn28 ATtiny28 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* I/O registers */
#define OSCCAL _SFR_IO8(0x00)
@@ -270,5 +286,6 @@
#define SIGNATURE_1 0x91
#define SIGNATURE_2 0x07
+/** @} */
#endif /* _AVR_IOTN28_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotn4313.h b/cpukit/score/cpu/avr/avr/iotn4313.h
index 43719da625..f3744853fd 100644
--- a/cpukit/score/cpu/avr/avr/iotn4313.h
+++ b/cpukit/score/cpu/avr/avr/iotn4313.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iotn4313.h - definitions for ATtiny4313 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iotn4313.h
+ *
+ * @brief Definitions for ATtiny4313
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iotn4313.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATtiny4313_H_
#define _AVR_ATtiny4313_H_ 1
+/**
+ * @defgroup Avr_iotn4313 ATtiny4313 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Registers and associated bit numbers. */
@@ -764,5 +775,5 @@
#define SCL_PIN PINB
#define SCL_BIT 7
+/**@}*/
#endif /* _AVR_ATtiny4313_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iotn43u.h b/cpukit/score/cpu/avr/avr/iotn43u.h
index 060cff9898..52038673ad 100644
--- a/cpukit/score/cpu/avr/avr/iotn43u.h
+++ b/cpukit/score/cpu/avr/avr/iotn43u.h
@@ -1,38 +1,42 @@
-/* Copyright (c) 2007 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-/* avr/iotn43u.h - definitions for ATtiny43U */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iotn43u.h
+ *
+ * @brief Definitions for ATtiny43U
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2007 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -42,12 +46,19 @@
# define _AVR_IOXXX_H_ "iotn43u.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_IOTN43U_H_
#define _AVR_IOTN43U_H_ 1
+/**
+ * @defgroup Avr_iotn43u ATtiny43U Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
+
/* Registers and associated bit numbers */
#define PRR _SFR_IO8(0x00)
@@ -554,7 +565,7 @@
#define FUSE_SPIEN (unsigned char)~_BV(5)
#define FUSE_DWEN (unsigned char)~_BV(6)
#define FUSE_RSTDISBL (unsigned char)~_BV(7)
-#define HFUSE_DEFAULT (FUSE_SPIEN)
+#define HFUSE_DEFAULT (FUSE_SPIEN)
/* Extended Fuse Byte */
#define FUSE_SELFPRGEN (unsigned char)~_BV(0)
@@ -571,4 +582,5 @@
#define SIGNATURE_2 0x0C
+/**@}*/
#endif /* _AVR_IOTN43U_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotn44.h b/cpukit/score/cpu/avr/avr/iotn44.h
index 7a49d39e13..5c41ef5484 100644
--- a/cpukit/score/cpu/avr/avr/iotn44.h
+++ b/cpukit/score/cpu/avr/avr/iotn44.h
@@ -1,39 +1,52 @@
-/* Copyright (c) 2005, Anatoly Sokolov
- All rights reserved.
+/**
+ * @file avr/iotn44.h
+ *
+ * @brief Definitions for ATtiny44
+ */
+
+/*
+ * Copyright (c) 2005, Anatoly Sokolov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iotn44.h - definitions for ATtiny44 */
#ifndef _AVR_IOTN44_H_
#define _AVR_IOTN44_H_ 1
+/**
+ * @defgroup Avr_iotn44 ATtiny44 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
+
#include <avr/iotnx4.h>
/* Constants */
@@ -84,5 +97,5 @@
#define SIGNATURE_1 0x92
#define SIGNATURE_2 0x07
-
+/**@}*/
#endif /* _AVR_IOTN44_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotn45.h b/cpukit/score/cpu/avr/avr/iotn45.h
index f368f9ecd7..b8351210b0 100644
--- a/cpukit/score/cpu/avr/avr/iotn45.h
+++ b/cpukit/score/cpu/avr/avr/iotn45.h
@@ -1,39 +1,51 @@
-/* Copyright (c) 2005, Joerg Wunsch
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iotn45.h - definitions for ATtiny45 */
+/**
+ * @file avr/iotn45.h
+ *
+ * @brief Definitions for ATtiny45
+ */
+
+/*
+ * Copyright (c) 2005, Joerg Wunsch
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOTN45_H_
#define _AVR_IOTN45_H_ 1
+/**
+ * @defgroup Avr_iotn45 ATtiny45 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
+
#include <avr/iotnx5.h>
/* Constants */
@@ -85,4 +97,5 @@
#define SIGNATURE_2 0x06
+/**@}*/
#endif /* _AVR_IOTN45_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotn461.h b/cpukit/score/cpu/avr/avr/iotn461.h
index 2867e3e41a..0b14646486 100644
--- a/cpukit/score/cpu/avr/avr/iotn461.h
+++ b/cpukit/score/cpu/avr/avr/iotn461.h
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATtiny461
+ */
+
/* Copyright (c) 2006, Anatoly Sokolov
All rights reserved.
@@ -36,6 +42,14 @@
#include <avr/iotnx61.h>
+/**
+ * @defgroup AvrDef_iotn461 ATtiny461 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* Constants */
#define SPM_PAGESIZE 64
#define RAMEND 0x15F
@@ -84,5 +98,6 @@
#define SIGNATURE_1 0x92
#define SIGNATURE_2 0x08
+/** @} */
#endif /* _AVR_IOTN461_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotn461a.h b/cpukit/score/cpu/avr/avr/iotn461a.h
index f92ef46d1b..8aac4fbba9 100644
--- a/cpukit/score/cpu/avr/avr/iotn461a.h
+++ b/cpukit/score/cpu/avr/avr/iotn461a.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iotn461a.h - definitions for ATtiny461A */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iotn461a.h
+ *
+ * @brief Definitions for ATtiny461A
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iotn461a.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATtiny461A_H_
#define _AVR_ATtiny461A_H_ 1
+/**
+ * @defgroup Avr_iotn461a ATtiny461A Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Registers and associated bit numbers. */
@@ -971,5 +982,5 @@
#define PA0_PIN PINADC
#define PA0_BIT ADC0
+/**@}*/
#endif /* _AVR_ATtiny461A_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iotn48.h b/cpukit/score/cpu/avr/avr/iotn48.h
index b9204a562c..d878e98305 100644
--- a/cpukit/score/cpu/avr/avr/iotn48.h
+++ b/cpukit/score/cpu/avr/avr/iotn48.h
@@ -1,38 +1,42 @@
-/* Copyright (c) 2007 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-/* avr/iotn48.h - definitions for ATtiny48 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iotn48.h
+ *
+ * @brief Definitions for ATtiny48
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2007 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -42,12 +46,19 @@
# define _AVR_IOXXX_H_ "iotn48.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_IOTN48_H_
#define _AVR_IOTN48_H_ 1
+/**
+ * @defgroup Avr_iotn48 ATtiny48 Definitons
+ *
+ * @ingroup avr
+ */
+/**@{*/
+
/* Registers and associated bit numbers */
#define PINB _SFR_IO8(0x03)
@@ -736,7 +747,7 @@
#define FUSE_SPIEN (unsigned char)~_BV(5) /* Enable Serial programming and Data Downloading */
#define FUSE_DWEN (unsigned char)~_BV(6) /* debugWIRE Enable */
#define FUSE_RSTDISBL (unsigned char)~_BV(7) /* External reset disable */
-#define HFUSE_DEFAULT (FUSE_SPIEN)
+#define HFUSE_DEFAULT (FUSE_SPIEN)
/* Extended Fuse Byte */
#define FUSE_SELFPRGEN (unsigned char)~_BV(0) /* Self Programming Enable */
@@ -752,5 +763,5 @@
#define SIGNATURE_1 0x92
#define SIGNATURE_2 0x09
-
+/**@}*/
#endif /* _AVR_IOTN48_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotn85.h b/cpukit/score/cpu/avr/avr/iotn85.h
index 34cf692eb3..2fa4d3f0b1 100644
--- a/cpukit/score/cpu/avr/avr/iotn85.h
+++ b/cpukit/score/cpu/avr/avr/iotn85.h
@@ -1,39 +1,52 @@
-/* Copyright (c) 2005, Joerg Wunsch
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iotn85.h - definitions for ATtiny85 */
+/**
+ * @file avr/iotn85.h
+ *
+ * @brief Definitions for ATtiny85
+ */
+
+/*
+ * Copyright (c) 2005, Joerg Wunsch
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOTN85_H_
#define _AVR_IOTN85_H_ 1
+/**
+ * @defgroup Avr_iotn85 ATtiny85 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
#include <avr/iotnx5.h>
/* Constants */
@@ -84,5 +97,5 @@
#define SIGNATURE_1 0x93
#define SIGNATURE_2 0x0B
-
+/** @} */
#endif /* _AVR_IOTN85_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotn861.h b/cpukit/score/cpu/avr/avr/iotn861.h
index 8226d2b254..54c86570c0 100644
--- a/cpukit/score/cpu/avr/avr/iotn861.h
+++ b/cpukit/score/cpu/avr/avr/iotn861.h
@@ -36,16 +36,24 @@
#include <avr/iotnx61.h>
-/* Constants */
+/**
+ * @name Constants
+ *
+ */
+/**@{**/
#define SPM_PAGESIZE 64
#define RAMEND 0x25F
#define XRAMEND RAMEND
#define E2END 0x1FF
#define E2PAGESIZE 4
#define FLASHEND 0x1FFF
+/** @} */
-
-/* Fuses */
+/**
+ * @name Fuses
+ *
+ */
+/**@{**/
#define FUSE_MEMORY_SIZE 3
/* Low Fuse Byte */
@@ -57,7 +65,8 @@
#define FUSE_SUT1 (unsigned char)~_BV(5)
#define FUSE_CKOUT (unsigned char)~_BV(6)
#define FUSE_CKDIV8 (unsigned char)~_BV(7)
-#define LFUSE_DEFAULT (FUSE_CKSEL0 & FUSE_CKSEL2 & FUSE_CKSEL3 & FUSE_SUT0 & FUSE_CKDIV8)
+#define LFUSE_DEFAULT (FUSE_CKSEL0 & FUSE_CKSEL2 & FUSE_CKSEL3 & \
+ FUSE_SUT0 & FUSE_CKDIV8)
/* High Fuse Byte */
#define FUSE_BODLEVEL0 (unsigned char)~_BV(0)
@@ -73,16 +82,24 @@
/* Extended Fuse Byte */
#define FUSE_SELFPRGEN (unsigned char)~_BV(0)
#define EFUSE_DEFAULT (0xFF)
+/** @} */
-
-/* Lock Bits */
+/**
+ * @name Lock Bits
+ *
+ */
+/**@{**/
#define __LOCK_BITS_EXIST
+/** @} */
-
-/* Signature */
+/**
+ * @name Signature
+ *
+ */
+/**@{**/
#define SIGNATURE_0 0x1E
#define SIGNATURE_1 0x93
#define SIGNATURE_2 0x0D
-
+/** @} */
#endif /* _AVR_IOTN861_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotn861a.h b/cpukit/score/cpu/avr/avr/iotn861a.h
index 0177134bdd..654f0959fd 100644
--- a/cpukit/score/cpu/avr/avr/iotn861a.h
+++ b/cpukit/score/cpu/avr/avr/iotn861a.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iotn861a.h - definitions for ATtiny861A */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iotn861a.h
+ *
+ * @brief Definitions for ATtiny861A
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iotn861a.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATtiny861A_H_
#define _AVR_ATtiny861A_H_ 1
+/**
+ * @defgroup Avr_iotn861a ATtiny861A Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Registers and associated bit numbers. */
@@ -971,5 +982,5 @@
#define PA0_PIN PINADC
#define PA0_BIT ADC0
+/**@}*/
#endif /* _AVR_ATtiny861A_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iotn87.h b/cpukit/score/cpu/avr/avr/iotn87.h
index b8affdfa12..099d81c05f 100644
--- a/cpukit/score/cpu/avr/avr/iotn87.h
+++ b/cpukit/score/cpu/avr/avr/iotn87.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iotn87.h - definitions for ATtiny87 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iotn87.h
+ *
+ * @brief Definitions for ATtiny87
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iotn87.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATtiny87_H_
#define _AVR_ATtiny87_H_ 1
+/**
+ * @defgroup Avr_iotn87 ATtiny87 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Registers and associated bit numbers. */
@@ -841,6 +852,5 @@
#define SIGNATURE_1 0x93
#define SIGNATURE_2 0x87
-
+/**@}*/
#endif /* _AVR_ATtiny87_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iotn88.h b/cpukit/score/cpu/avr/avr/iotn88.h
index 427fc8fd4d..829d13f283 100644
--- a/cpukit/score/cpu/avr/avr/iotn88.h
+++ b/cpukit/score/cpu/avr/avr/iotn88.h
@@ -1,3 +1,11 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATtiny88
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2007 Atmel Corporation
All rights reserved.
@@ -44,6 +52,13 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
+/**
+ * @defgroup AvrDef_iotn88 ATtiny88 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
#ifndef _AVR_IOTN88_H_
#define _AVR_IOTN88_H_ 1
@@ -752,5 +767,6 @@
#define SIGNATURE_1 0x93
#define SIGNATURE_2 0x11
+/** @} */
#endif /* _AVR_IOTN88_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotnx4.h b/cpukit/score/cpu/avr/avr/iotnx4.h
index cc1ed9d263..8bb310ba13 100644
--- a/cpukit/score/cpu/avr/avr/iotnx4.h
+++ b/cpukit/score/cpu/avr/avr/iotnx4.h
@@ -46,8 +46,11 @@
# error "Attempt to include more than one <avr/ioXXX.h> file."
#endif
-/* I/O registers */
-
+/**
+ * @name I/O Registers
+ *
+ */
+/**@{**/
#define PRR _SFR_IO8 (0x00)
#define PRTIM1 3
#define PRTIM0 2
@@ -378,9 +381,13 @@
/* 0x3D..0x3E SP [defined in <avr/io.h>] */
/* 0x3F SREG [defined in <avr/io.h>] */
-///---
+/** @} */
-/* Interrupt vectors */
+/**
+ * @name Interrupt Vectors
+ *
+ */
+/**@{**/
/* Interrupt vector 0 is the reset vector. */
/* External Interrupt Request 0 */
#define INT0_vect _VECTOR(1)
@@ -452,4 +459,6 @@
#define _VECTORS_SIZE 34
+/** @} */
+
#endif /* _AVR_IOTNX4_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotnx5.h b/cpukit/score/cpu/avr/avr/iotnx5.h
index 57863b10ae..34edf06e8b 100644
--- a/cpukit/score/cpu/avr/avr/iotnx5.h
+++ b/cpukit/score/cpu/avr/avr/iotnx5.h
@@ -1,40 +1,52 @@
-/* Copyright (c) 2005, 2007, 2009 Anatoly Sokolov
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iotnx5.h - definitions for ATtiny25, ATtiny45 and ATtiny85 */
+/**
+ * @file avr/iotnx5.h
+ *
+ * @brief Definitions for ATtiny25, ATtiny45 and ATtiny85
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2005, 2007, 2009 Anatoly Sokolov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOTNX5_H_
#define _AVR_IOTNX5_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_iotnx5 ATtiny25, ATtiny45, ATtiny85 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +56,7 @@
# define _AVR_IOXXX_H_ "iotnx5.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* I/O registers */
@@ -107,7 +119,7 @@
#define USITC 0
#define USISR _SFR_IO8(0x0E)
-#define USISIF 7
+#define USISIF 7
#define USIOIF 6
#define USIPF 5
#define USIDC 4
@@ -128,7 +140,7 @@
#define ADC2D 4
#define ADC3D 3
#define ADC1D 2
-#define AIN1D 1
+#define AIN1D 1
#define AIN0D 0
#define PCMSK _SFR_IO8(0x15)
@@ -412,4 +424,5 @@
#define _VECTORS_SIZE 30
+/**@}*/
#endif /* _AVR_IOTNX5_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iotnx61.h b/cpukit/score/cpu/avr/avr/iotnx61.h
index 6a4bd87553..58cba5c493 100644
--- a/cpukit/score/cpu/avr/avr/iotnx61.h
+++ b/cpukit/score/cpu/avr/avr/iotnx61.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2006, 2007 Anatoly Sokolov
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iotnx61.h - definitions for ATtiny261, ATtiny461 and ATtiny861 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @file avr/iotnx61.h
+ *
+ * @brief Definitions for ATtiny261, ATtiny461 and ATtiny861
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2006, 2007 Anatoly Sokolov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,11 +46,19 @@
# define _AVR_IOXXX_H_ "iotnx61.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_IOTNx61_H_
#define _AVR_IOTNx61_H_ 1
+/**
+ * @defgroup AvrDef_iotnx61 ATtiny261, ATtiny461, ATtiny861 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* Registers and associated bit numbers */
#define TCCR1E _SFR_IO8(0x00)
@@ -511,4 +524,5 @@
#define _VECTORS_SIZE 38
+/** @} */
#endif /* _AVR_IOTNx61_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iousb1286.h b/cpukit/score/cpu/avr/avr/iousb1286.h
index b245b95b05..5f9411daff 100644
--- a/cpukit/score/cpu/avr/avr/iousb1286.h
+++ b/cpukit/score/cpu/avr/avr/iousb1286.h
@@ -1,39 +1,51 @@
-/* Copyright (c) 2006 Anatoly Sokolov
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iousb1286.h - definitions for AT90USB1286 */
+/**
+ * @file avr/iousb1286.h
+ *
+ * @brief Definitions for AT90USB1286
+ */
+
+/*
+ * Copyright (c) 2006 Anatoly Sokolov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_AT90USB1286_H_
#define _AVR_AT90USB1286_H_ 1
+/**
+ * @defgroup Avr_iousb1286 AT90USB1286 Definitons
+ *
+ * @ingroup avr
+ */
+/**@{*/
+
#include <avr/iousbxx6_7.h>
/* Constants */
@@ -81,7 +93,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -89,5 +101,5 @@
#define SIGNATURE_1 0x97
#define SIGNATURE_2 0x82
-
+/**@}*/
#endif /* _AVR_AT90USB1286_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iousb1287.h b/cpukit/score/cpu/avr/avr/iousb1287.h
index 4a1db39670..f75894bdbc 100644
--- a/cpukit/score/cpu/avr/avr/iousb1287.h
+++ b/cpukit/score/cpu/avr/avr/iousb1287.h
@@ -1,39 +1,51 @@
-/* Copyright (c) 2006 Anatoly Sokolov
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iousb1287.h - definitions for AT90USB1287 */
+/**
+ * @file avr/iousb1287.h
+ *
+ * @brief Definitions for AT90USB1287
+ */
+
+/*
+ * Copyright (c) 2006 Anatoly Sokolov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_AT90USB1287_H_
#define _AVR_AT90USB1287_H_ 1
+/**
+ * @defgroup Avr_iousb1287 AT90USB1287 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
+
#include <avr/iousbxx6_7.h>
/* Constants */
@@ -81,7 +93,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -90,4 +102,5 @@
#define SIGNATURE_2 0x82
+/**@}*/
#endif /* _AVR_AT90USB1287_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iousb162.h b/cpukit/score/cpu/avr/avr/iousb162.h
index c9094be89d..89709a7279 100644
--- a/cpukit/score/cpu/avr/avr/iousb162.h
+++ b/cpukit/score/cpu/avr/avr/iousb162.h
@@ -36,16 +36,24 @@
#include <avr/iousbxx2.h>
-/* Constants */
+/**
+ * @name Constants
+ *
+ */
+/**@{**/
#define SPM_PAGESIZE 128
#define RAMEND 0x2FF
#define XRAMEND RAMEND
#define E2END 0x1FF
#define E2PAGESIZE 4
#define FLASHEND 0x3FFF
+/** @} */
-
-/* Fuses */
+/**
+ * @name Fuses
+ *
+ */
+/**@{**/
#define FUSE_MEMORY_SIZE 3
/* Low Fuse Byte */
@@ -76,18 +84,26 @@
#define FUSE_BODLEVEL2 (unsigned char)~_BV(2)
#define FUSE_HWBE (unsigned char)~_BV(3)
#define EFUSE_DEFAULT (BODLEVEL0 & BODLEVEL1 & HWBE)
+/** @} */
-
-/* Lock Bits */
+/**
+ * @name Lock Bits
+ *
+ */
+/**@{**/
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
#define __BOOT_LOCK_BITS_1_EXIST
+/** @} */
-
-/* Signature */
+/**
+ * @name Signature
+ *
+ */
+/**@{**/
#define SIGNATURE_0 0x1E
#define SIGNATURE_1 0x94
#define SIGNATURE_2 0x82
-
+/** @} */
#endif /* _AVR_AT90USB162_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iousb646.h b/cpukit/score/cpu/avr/avr/iousb646.h
index d7a1d3a0f1..035cbcd2bc 100644
--- a/cpukit/score/cpu/avr/avr/iousb646.h
+++ b/cpukit/score/cpu/avr/avr/iousb646.h
@@ -1,39 +1,51 @@
-/* Copyright (c) 2006 Anatoly Sokolov
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iousb646.h - definitions for AT90USB646 */
+/**
+ * @file avr/iousb646.h
+ *
+ * @brief Definitions for AT90USB646
+ */
+
+/*
+ * Copyright (c) 2006 Anatoly Sokolov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_AT90USB646_H_
#define _AVR_AT90USB646_H_ 1
+/**
+ * @defgroup Avr_iousb646 AT90USB646 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
+
#include <avr/iousbxx6_7.h>
/* Constants */
@@ -81,7 +93,7 @@
/* Lock Bits */
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_BITS_0_EXIST
-#define __BOOT_LOCK_BITS_1_EXIST
+#define __BOOT_LOCK_BITS_1_EXIST
/* Signature */
@@ -90,4 +102,5 @@
#define SIGNATURE_2 0x82
+/**@}*/
#endif /* _AVR_AT90USB646_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iousb647.h b/cpukit/score/cpu/avr/avr/iousb647.h
index 3b93048149..2e1288accb 100644
--- a/cpukit/score/cpu/avr/avr/iousb647.h
+++ b/cpukit/score/cpu/avr/avr/iousb647.h
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief Definitions for AT90USB647
+ */
+
/* Copyright (c) 2006 Anatoly Sokolov
All rights reserved.
@@ -36,6 +42,14 @@
#include <avr/iousbxx6_7.h>
+/**
+ * @defgroup AvrDef_iousb647 AT90USB647 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* Constants */
#define SPM_PAGESIZE 256
#define RAMEND 0x10FF
@@ -89,5 +103,6 @@
#define SIGNATURE_1 0x96
#define SIGNATURE_2 0x82
+/** @} */
#endif /* _AVR_AT90USB647_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iousb82.h b/cpukit/score/cpu/avr/avr/iousb82.h
index 428ed9b566..2d66bd5d70 100644
--- a/cpukit/score/cpu/avr/avr/iousb82.h
+++ b/cpukit/score/cpu/avr/avr/iousb82.h
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief Ddefinitions for AT90USB82
+ */
+
/* Copyright (c) 2007 Anatoly Sokolov
All rights reserved.
@@ -36,6 +42,14 @@
#include <avr/iousbxx2.h>
+/**
+ * @defgroup AvrDef_iousb82 AT90USB82 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* Constants */
#define SPM_PAGESIZE 128
#define RAMEND 0x2FF
@@ -83,5 +97,6 @@
#define __BOOT_LOCK_BITS_0_EXIST
#define __BOOT_LOCK_BITS_1_EXIST
+/** @} */
#endif /* _AVR_AT90USB82_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iousbxx2.h b/cpukit/score/cpu/avr/avr/iousbxx2.h
index cf1840c557..3dcbc76262 100644
--- a/cpukit/score/cpu/avr/avr/iousbxx2.h
+++ b/cpukit/score/cpu/avr/avr/iousbxx2.h
@@ -1,40 +1,53 @@
-/* Copyright (c) 2007 Anatoly Sokolov
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* iousbxx2.h - definitions for AT90USB82 and AT90USB162. */
+/**
+ * @file iousbxx2.h
+ *
+ * @brief Definitions for AT90USB82 and AT90USB162
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2007 Anatoly Sokolov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOUSBXX2_H_
#define _AVR_IOUSBXX2_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup AvrDef_iousbxx2 AT90USB82, AT90USB162 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -44,7 +57,7 @@
# define _AVR_IOXXX_H_ "iousbxx2.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
/* Registers and associated bit numbers */
@@ -174,7 +187,7 @@
#define INT4 4
#define INT3 3
#define INT2 2
-#define INT1 1
+#define INT1 1
#define INT0 0
#define GPIOR0 _SFR_IO8(0x1E)
@@ -762,4 +775,5 @@
#define _VECTORS_SIZE 116
+/** @} */
#endif /* _AVR_IOUSBXX2_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iousbxx6_7.h b/cpukit/score/cpu/avr/avr/iousbxx6_7.h
index ee4fe1e6a2..c923c22c82 100644
--- a/cpukit/score/cpu/avr/avr/iousbxx6_7.h
+++ b/cpukit/score/cpu/avr/avr/iousbxx6_7.h
@@ -1,41 +1,52 @@
-/* Copyright (c) 2006, Anatoly Sokolov
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* iousbxx6_7.h - definitions for AT90USB646, AT90USB647, AT90USB1286
- and AT90USB1287 */
+/**
+ * @file iousbxx6_7.h
+ *
+ * @brief Definitions for AT90USB646, AT90USB647, AT90USB1286, AT90USB1287
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
+/*
+ * Copyright (c) 2006, Anatoly Sokolov
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IOUSBXX6_7_H_
#define _AVR_IOUSBXX6_7_H_ 1
-/* This file should only be included from <avr/io.h>, never directly. */
+/**
+ * @defgroup Avr_iomxx0_1 AT90USB-646/647/1286/1287 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -45,7 +56,7 @@
# define _AVR_IOXXX_H_ "iousbxx6_7.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#if defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
# define __AT90USBxx6__ 1
@@ -283,7 +294,7 @@
#define INT4 4
#define INT3 3
#define INT2 2
-#define INT1 1
+#define INT1 1
#define INT0 0
#define GPIOR0 _SFR_IO8(0x1E)
@@ -1281,4 +1292,5 @@
# undef __AT90USBxx7__
#endif /* __AT90USBxx7__ */
+/**@}*/
#endif /* _AVR_IOUSBXX6_7_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iox128a1.h b/cpukit/score/cpu/avr/avr/iox128a1.h
index 9feffd4f38..4ce4c47e64 100644
--- a/cpukit/score/cpu/avr/avr/iox128a1.h
+++ b/cpukit/score/cpu/avr/avr/iox128a1.h
@@ -117,13 +117,11 @@ typedef volatile uint32_t register32_t;
}; \
}
-
-/*
-==========================================================================
-IO Module Structures
-==========================================================================
-*/
-
+/**
+ * @name IO Module Structures
+ *
+ */
+/**@{**/
/*
--------------------------------------------------------------------------
@@ -186,7 +184,8 @@ typedef enum CLK_SCLKSEL_enum
CLK_SCLKSEL_RC2M_gc = (0x00<<0), /* Internal 2MHz RC Oscillator */
CLK_SCLKSEL_RC32M_gc = (0x01<<0), /* Internal 32MHz RC Oscillator */
CLK_SCLKSEL_RC32K_gc = (0x02<<0), /* Internal 32kHz RC Oscillator */
- CLK_SCLKSEL_XOSC_gc = (0x03<<0), /* External Crystal Oscillator or Clock */
+ /* External Crystal Oscillator or Clock */
+ CLK_SCLKSEL_XOSC_gc = (0x03<<0),
CLK_SCLKSEL_PLL_gc = (0x04<<0), /* Phase Locked Loop */
} CLK_SCLKSEL_t;
@@ -218,9 +217,12 @@ typedef enum CLK_PSBCDIV_enum
typedef enum CLK_RTCSRC_enum
{
CLK_RTCSRC_ULP_gc = (0x00<<1), /* 1kHz from internal 32kHz ULP */
- CLK_RTCSRC_TOSC_gc = (0x01<<1), /* 1kHz from 32kHz crystal oscillator on TOSC */
- CLK_RTCSRC_RCOSC_gc = (0x02<<1), /* 1kHz from internal 32kHz RC oscillator */
- CLK_RTCSRC_TOSC32_gc = (0x05<<1), /* 32kHz from 32kHz crystal oscillator on TOSC */
+ /* 1kHz from 32kHz crystal oscillator on TOSC */
+ CLK_RTCSRC_TOSC_gc = (0x01<<1),
+ /* 1kHz from internal 32kHz RC oscillator */
+ CLK_RTCSRC_RCOSC_gc = (0x02<<1),
+ /* 32kHz from 32kHz crystal oscillator on TOSC */
+ CLK_RTCSRC_TOSC32_gc = (0x05<<1),
} CLK_RTCSRC_t;
@@ -259,8 +261,10 @@ typedef struct OSC_struct
register8_t CTRL; /* Control Register */
register8_t STATUS; /* Status Register */
register8_t XOSCCTRL; /* External Oscillator Control Register */
- register8_t XOSCFAIL; /* External Oscillator Failure Detection Register */
- register8_t RC32KCAL; /* 32kHz Internal Oscillator Calibration Register */
+ /* External Oscillator Failure Detection Register */
+ register8_t XOSCFAIL;
+ /* 32kHz Internal Oscillator Calibration Register */
+ register8_t RC32KCAL;
register8_t PLLCTRL; /* PLL Control REgister */
register8_t DFLLCTRL; /* DFLL Control Register */
} OSC_t;
@@ -484,7 +488,8 @@ typedef enum DMA_CH_SRCRELOAD_enum
DMA_CH_SRCRELOAD_NONE_gc = (0x00<<6), /* No reload */
DMA_CH_SRCRELOAD_BLOCK_gc = (0x01<<6), /* Reload at end of block */
DMA_CH_SRCRELOAD_BURST_gc = (0x02<<6), /* Reload at end of burst */
- DMA_CH_SRCRELOAD_TRANSACTION_gc = (0x03<<6), /* Reload at end of transaction */
+ /* Reload at end of transaction */
+ DMA_CH_SRCRELOAD_TRANSACTION_gc = (0x03<<6),
} DMA_CH_SRCRELOAD_t;
/* Source addressing mode */
@@ -501,7 +506,8 @@ typedef enum DMA_CH_DESTRELOAD_enum
DMA_CH_DESTRELOAD_NONE_gc = (0x00<<2), /* No reload */
DMA_CH_DESTRELOAD_BLOCK_gc = (0x01<<2), /* Reload at end of block */
DMA_CH_DESTRELOAD_BURST_gc = (0x02<<2), /* Reload at end of burst */
- DMA_CH_DESTRELOAD_TRANSACTION_gc = (0x03<<2), /* Reload at end of transaction */
+ /* Reload at end of transaction */
+ DMA_CH_DESTRELOAD_TRANSACTION_gc = (0x03<<2),
} DMA_CH_DESTRELOAD_t;
/* Destination adressing mode */
@@ -523,94 +529,142 @@ typedef enum DMA_CH_TRIGSRC_enum
DMA_CH_TRIGSRC_ADCA_CH1_gc = (0x11<<0), /* ADCA Channel 1 */
DMA_CH_TRIGSRC_ADCA_CH2_gc = (0x12<<0), /* ADCA Channel 2 */
DMA_CH_TRIGSRC_ADCA_CH3_gc = (0x13<<0), /* ADCA Channel 3 */
- DMA_CH_TRIGSRC_ADCA_CH4_gc = (0x14<<0), /* ADCA Channel 0,1,2,3 combined */
+ /* ADCA Channel 0,1,2,3 combined */
+ DMA_CH_TRIGSRC_ADCA_CH4_gc = (0x14<<0),
DMA_CH_TRIGSRC_DACA_CH0_gc = (0x15<<0), /* DACA Channel 0 */
DMA_CH_TRIGSRC_DACA_CH1_gc = (0x16<<0), /* DACA Channel 1 */
DMA_CH_TRIGSRC_ADCB_CH0_gc = (0x20<<0), /* ADCB Channel 0 */
DMA_CH_TRIGSRC_ADCB_CH1_gc = (0x21<<0), /* ADCB Channel 1 */
DMA_CH_TRIGSRC_ADCB_CH2_gc = (0x22<<0), /* ADCB Channel 2 */
DMA_CH_TRIGSRC_ADCB_CH3_gc = (0x23<<0), /* ADCB Channel 3 */
- DMA_CH_TRIGSRC_ADCB_CH4_gc = (0x24<<0), /* ADCB Channel 0,1,2,3 combined */
+ /* ADCB Channel 0,1,2,3 combined */
+ DMA_CH_TRIGSRC_ADCB_CH4_gc = (0x24<<0),
DMA_CH_TRIGSRC_DACB_CH0_gc = (0x25<<0), /* DACB Channel 0 */
DMA_CH_TRIGSRC_DACB_CH1_gc = (0x26<<0), /* DACB Channel 1 */
DMA_CH_TRIGSRC_TCC0_OVF_gc = (0x40<<0), /* Timer/Counter C0 Overflow */
DMA_CH_TRIGSRC_TCC0_ERR_gc = (0x41<<0), /* Timer/Counter C0 Error */
- DMA_CH_TRIGSRC_TCC0_CCA_gc = (0x42<<0), /* Timer/Counter C0 Compare or Capture A */
- DMA_CH_TRIGSRC_TCC0_CCB_gc = (0x43<<0), /* Timer/Counter C0 Compare or Capture B */
- DMA_CH_TRIGSRC_TCC0_CCC_gc = (0x44<<0), /* Timer/Counter C0 Compare or Capture C */
- DMA_CH_TRIGSRC_TCC0_CCD_gc = (0x45<<0), /* Timer/Counter C0 Compare or Capture D */
+ /* Timer/Counter C0 Compare or Capture A */
+ DMA_CH_TRIGSRC_TCC0_CCA_gc = (0x42<<0),
+ /* Timer/Counter C0 Compare or Capture B */
+ DMA_CH_TRIGSRC_TCC0_CCB_gc = (0x43<<0),
+ /* Timer/Counter C0 Compare or Capture C */
+ DMA_CH_TRIGSRC_TCC0_CCC_gc = (0x44<<0),
+ /* Timer/Counter C0 Compare or Capture D */
+ DMA_CH_TRIGSRC_TCC0_CCD_gc = (0x45<<0),
DMA_CH_TRIGSRC_TCC1_OVF_gc = (0x46<<0), /* Timer/Counter C1 Overflow */
DMA_CH_TRIGSRC_TCC1_ERR_gc = (0x47<<0), /* Timer/Counter C1 Error */
- DMA_CH_TRIGSRC_TCC1_CCA_gc = (0x48<<0), /* Timer/Counter C1 Compare or Capture A */
- DMA_CH_TRIGSRC_TCC1_CCB_gc = (0x49<<0), /* Timer/Counter C1 Compare or Capture B */
+ /* Timer/Counter C1 Compare or Capture A */
+ DMA_CH_TRIGSRC_TCC1_CCA_gc = (0x48<<0),
+ /* Timer/Counter C1 Compare or Capture B */
+ DMA_CH_TRIGSRC_TCC1_CCB_gc = (0x49<<0),
DMA_CH_TRIGSRC_SPIC_gc = (0x4A<<0), /* SPI C Transfer Complete */
- DMA_CH_TRIGSRC_USARTC0_RXC_gc = (0x4B<<0), /* USART C0 Receive Complete */
- DMA_CH_TRIGSRC_USARTC0_DRE_gc = (0x4C<<0), /* USART C0 Data Register Empty */
- DMA_CH_TRIGSRC_USARTC1_RXC_gc = (0x4E<<0), /* USART C1 Receive Complete */
- DMA_CH_TRIGSRC_USARTC1_DRE_gc = (0x4F<<0), /* USART C1 Data Register Empty */
+ /* USART C0 Receive Complete */
+ DMA_CH_TRIGSRC_USARTC0_RXC_gc = (0x4B<<0),
+ /* USART C0 Data Register Empty */
+ DMA_CH_TRIGSRC_USARTC0_DRE_gc = (0x4C<<0),
+ /* USART C1 Receive Complete */
+ DMA_CH_TRIGSRC_USARTC1_RXC_gc = (0x4E<<0),
+ /* USART C1 Data Register Empty */
+ DMA_CH_TRIGSRC_USARTC1_DRE_gc = (0x4F<<0),
DMA_CH_TRIGSRC_TCD0_OVF_gc = (0x60<<0), /* Timer/Counter D0 Overflow */
DMA_CH_TRIGSRC_TCD0_ERR_gc = (0x61<<0), /* Timer/Counter D0 Error */
- DMA_CH_TRIGSRC_TCD0_CCA_gc = (0x62<<0), /* Timer/Counter D0 Compare or Capture A */
- DMA_CH_TRIGSRC_TCD0_CCB_gc = (0x63<<0), /* Timer/Counter D0 Compare or Capture B */
- DMA_CH_TRIGSRC_TCD0_CCC_gc = (0x64<<0), /* Timer/Counter D0 Compare or Capture C */
- DMA_CH_TRIGSRC_TCD0_CCD_gc = (0x65<<0), /* Timer/Counter D0 Compare or Capture D */
+ /* Timer/Counter D0 Compare or Capture A */
+ DMA_CH_TRIGSRC_TCD0_CCA_gc = (0x62<<0),
+ /* Timer/Counter D0 Compare or Capture B */
+ DMA_CH_TRIGSRC_TCD0_CCB_gc = (0x63<<0),
+ /* Timer/Counter D0 Compare or Capture C */
+ DMA_CH_TRIGSRC_TCD0_CCC_gc = (0x64<<0),
+ /* Timer/Counter D0 Compare or Capture D */
+ DMA_CH_TRIGSRC_TCD0_CCD_gc = (0x65<<0),
DMA_CH_TRIGSRC_TCD1_OVF_gc = (0x66<<0), /* Timer/Counter D1 Overflow */
DMA_CH_TRIGSRC_TCD1_ERR_gc = (0x67<<0), /* Timer/Counter D1 Error */
- DMA_CH_TRIGSRC_TCD1_CCA_gc = (0x68<<0), /* Timer/Counter D1 Compare or Capture A */
- DMA_CH_TRIGSRC_TCD1_CCB_gc = (0x69<<0), /* Timer/Counter D1 Compare or Capture B */
+ /* Timer/Counter D1 Compare or Capture A */
+ DMA_CH_TRIGSRC_TCD1_CCA_gc = (0x68<<0),
+ /* Timer/Counter D1 Compare or Capture B */
+ DMA_CH_TRIGSRC_TCD1_CCB_gc = (0x69<<0),
DMA_CH_TRIGSRC_SPID_gc = (0x6A<<0), /* SPI D Transfer Complete */
- DMA_CH_TRIGSRC_USARTD0_RXC_gc = (0x6B<<0), /* USART D0 Receive Complete */
- DMA_CH_TRIGSRC_USARTD0_DRE_gc = (0x6C<<0), /* USART D0 Data Register Empty */
- DMA_CH_TRIGSRC_USARTD1_RXC_gc = (0x6E<<0), /* USART D1 Receive Complete */
- DMA_CH_TRIGSRC_USARTD1_DRE_gc = (0x6F<<0), /* USART D1 Data Register Empty */
+ /* USART D0 Receive Complete */
+ DMA_CH_TRIGSRC_USARTD0_RXC_gc = (0x6B<<0),
+ /* USART D0 Data Register Empty */
+ DMA_CH_TRIGSRC_USARTD0_DRE_gc = (0x6C<<0),
+ /* USART D1 Receive Complete */
+ DMA_CH_TRIGSRC_USARTD1_RXC_gc = (0x6E<<0),
+ /* USART D1 Data Register Empty */
+ DMA_CH_TRIGSRC_USARTD1_DRE_gc = (0x6F<<0),
DMA_CH_TRIGSRC_TCE0_OVF_gc = (0x80<<0), /* Timer/Counter E0 Overflow */
DMA_CH_TRIGSRC_TCE0_ERR_gc = (0x81<<0), /* Timer/Counter E0 Error */
- DMA_CH_TRIGSRC_TCE0_CCA_gc = (0x82<<0), /* Timer/Counter E0 Compare or Capture A */
- DMA_CH_TRIGSRC_TCE0_CCB_gc = (0x83<<0), /* Timer/Counter E0 Compare or Capture B */
- DMA_CH_TRIGSRC_TCE0_CCC_gc = (0x84<<0), /* Timer/Counter E0 Compare or Capture C */
- DMA_CH_TRIGSRC_TCE0_CCD_gc = (0x85<<0), /* Timer/Counter E0 Compare or Capture D */
+ /* Timer/Counter E0 Compare or Capture A */
+ DMA_CH_TRIGSRC_TCE0_CCA_gc = (0x82<<0),
+ /* Timer/Counter E0 Compare or Capture B */
+ DMA_CH_TRIGSRC_TCE0_CCB_gc = (0x83<<0),
+ /* Timer/Counter E0 Compare or Capture C */
+ DMA_CH_TRIGSRC_TCE0_CCC_gc = (0x84<<0),
+ /* Timer/Counter E0 Compare or Capture D */
+ DMA_CH_TRIGSRC_TCE0_CCD_gc = (0x85<<0),
DMA_CH_TRIGSRC_TCE1_OVF_gc = (0x86<<0), /* Timer/Counter E1 Overflow */
DMA_CH_TRIGSRC_TCE1_ERR_gc = (0x87<<0), /* Timer/Counter E1 Error */
- DMA_CH_TRIGSRC_TCE1_CCA_gc = (0x88<<0), /* Timer/Counter E1 Compare or Capture A */
- DMA_CH_TRIGSRC_TCE1_CCB_gc = (0x89<<0), /* Timer/Counter E1 Compare or Capture B */
+ /* Timer/Counter E1 Compare or Capture A */
+ DMA_CH_TRIGSRC_TCE1_CCA_gc = (0x88<<0),
+ /* Timer/Counter E1 Compare or Capture B */
+ DMA_CH_TRIGSRC_TCE1_CCB_gc = (0x89<<0),
DMA_CH_TRIGSRC_SPIE_gc = (0x8A<<0), /* SPI E Transfer Complete */
- DMA_CH_TRIGSRC_USARTE0_RXC_gc = (0x8B<<0), /* USART E0 Receive Complete */
- DMA_CH_TRIGSRC_USARTE0_DRE_gc = (0x8C<<0), /* USART E0 Data Register Empty */
- DMA_CH_TRIGSRC_USARTE1_RXC_gc = (0x8E<<0), /* USART E1 Receive Complete */
- DMA_CH_TRIGSRC_USARTE1_DRE_gc = (0x8F<<0), /* USART E1 Data Register Empty */
+ /* USART E0 Receive Complete */
+ DMA_CH_TRIGSRC_USARTE0_RXC_gc = (0x8B<<0),
+ /* USART E0 Data Register Empty */
+ DMA_CH_TRIGSRC_USARTE0_DRE_gc = (0x8C<<0),
+ /* USART E1 Receive Complete */
+ DMA_CH_TRIGSRC_USARTE1_RXC_gc = (0x8E<<0),
+ /* USART E1 Data Register Empty */
+ DMA_CH_TRIGSRC_USARTE1_DRE_gc = (0x8F<<0),
DMA_CH_TRIGSRC_TCF0_OVF_gc = (0xA0<<0), /* Timer/Counter F0 Overflow */
DMA_CH_TRIGSRC_TCF0_ERR_gc = (0xA1<<0), /* Timer/Counter F0 Error */
- DMA_CH_TRIGSRC_TCF0_CCA_gc = (0xA2<<0), /* Timer/Counter F0 Compare or Capture A */
- DMA_CH_TRIGSRC_TCF0_CCB_gc = (0xA3<<0), /* Timer/Counter F0 Compare or Capture B */
- DMA_CH_TRIGSRC_TCF0_CCC_gc = (0xA4<<0), /* Timer/Counter F0 Compare or Capture C */
- DMA_CH_TRIGSRC_TCF0_CCD_gc = (0xA5<<0), /* Timer/Counter F0 Compare or Capture D */
+ /* Timer/Counter F0 Compare or Capture A */
+ DMA_CH_TRIGSRC_TCF0_CCA_gc = (0xA2<<0),
+ /* Timer/Counter F0 Compare or Capture B */
+ DMA_CH_TRIGSRC_TCF0_CCB_gc = (0xA3<<0),
+ /* Timer/Counter F0 Compare or Capture C */
+ DMA_CH_TRIGSRC_TCF0_CCC_gc = (0xA4<<0),
+ /* Timer/Counter F0 Compare or Capture D */
+ DMA_CH_TRIGSRC_TCF0_CCD_gc = (0xA5<<0),
DMA_CH_TRIGSRC_TCF1_OVF_gc = (0xA6<<0), /* Timer/Counter F1 Overflow */
DMA_CH_TRIGSRC_TCF1_ERR_gc = (0xA7<<0), /* Timer/Counter F1 Error */
- DMA_CH_TRIGSRC_TCF1_CCA_gc = (0xA8<<0), /* Timer/Counter F1 Compare or Capture A */
- DMA_CH_TRIGSRC_TCF1_CCB_gc = (0xA9<<0), /* Timer/Counter F1 Compare or Capture B */
+ /* Timer/Counter F1 Compare or Capture A */
+ DMA_CH_TRIGSRC_TCF1_CCA_gc = (0xA8<<0),
+ /* Timer/Counter F1 Compare or Capture B */
+ DMA_CH_TRIGSRC_TCF1_CCB_gc = (0xA9<<0),
DMA_CH_TRIGSRC_SPIF_gc = (0xAA<<0), /* SPI F Transfer Complete */
- DMA_CH_TRIGSRC_USARTF0_RXC_gc = (0xAB<<0), /* USART F0 Receive Complete */
- DMA_CH_TRIGSRC_USARTF0_DRE_gc = (0xAC<<0), /* USART F0 Data Register Empty */
- DMA_CH_TRIGSRC_USARTF1_RXC_gc = (0xAE<<0), /* USART F1 Receive Complete */
- DMA_CH_TRIGSRC_USARTF1_DRE_gc = (0xAF<<0), /* USART F1 Data Register Empty */
+ /* USART F0 Receive Complete */
+ DMA_CH_TRIGSRC_USARTF0_RXC_gc = (0xAB<<0),
+ /* USART F0 Data Register Empty */
+ DMA_CH_TRIGSRC_USARTF0_DRE_gc = (0xAC<<0),
+ /* USART F1 Receive Complete */
+ DMA_CH_TRIGSRC_USARTF1_RXC_gc = (0xAE<<0),
+ /* USART F1 Data Register Empty */
+ DMA_CH_TRIGSRC_USARTF1_DRE_gc = (0xAF<<0),
} DMA_CH_TRIGSRC_t;
/* Double buffering mode */
typedef enum DMA_DBUFMODE_enum
{
DMA_DBUFMODE_DISABLED_gc = (0x00<<2), /* Double buffering disabled */
- DMA_DBUFMODE_CH01_gc = (0x01<<2), /* Double buffering enabled on channel 0/1 */
- DMA_DBUFMODE_CH23_gc = (0x02<<2), /* Double buffering enabled on channel 2/3 */
- DMA_DBUFMODE_CH01CH23_gc = (0x03<<2), /* Double buffering enabled on ch. 0/1 and ch. 2/3 */
+ /* Double buffering enabled on channel 0/1 */
+ DMA_DBUFMODE_CH01_gc = (0x01<<2),
+ /* Double buffering enabled on channel 2/3 */
+ DMA_DBUFMODE_CH23_gc = (0x02<<2),
+ /* Double buffering enabled on ch. 0/1 and ch. 2/3 */
+ DMA_DBUFMODE_CH01CH23_gc = (0x03<<2),
} DMA_DBUFMODE_t;
/* Priority mode */
typedef enum DMA_PRIMODE_enum
{
DMA_PRIMODE_RR0123_gc = (0x00<<0), /* Round Robin */
- DMA_PRIMODE_CH0RR123_gc = (0x01<<0), /* Channel 0 > Round Robin on channel 1/2/3 */
- DMA_PRIMODE_CH01RR23_gc = (0x02<<0), /* Channel 0 > channel 1 > Round Robin on channel 2/3 */
- DMA_PRIMODE_CH0123_gc = (0x03<<0), /* Channel 0 > channel 1 > channel 2 > channel 3 */
+ /* Channel 0 > Round Robin on channel 1/2/3 */
+ DMA_PRIMODE_CH0RR123_gc = (0x01<<0),
+ /* Channel 0 > channel 1 > Round Robin on channel 2/3 */
+ DMA_PRIMODE_CH01RR23_gc = (0x02<<0),
+ /* Channel 0 > channel 1 > channel 2 > channel 3 */
+ DMA_PRIMODE_CH0123_gc = (0x03<<0),
} DMA_PRIMODE_t;
/* Interrupt level */
@@ -761,52 +815,82 @@ typedef enum EVSYS_CHMUX_enum
EVSYS_CHMUX_PRESCALER_128_gc = (0x87<<0), /* Prescaler, divide by 128 */
EVSYS_CHMUX_PRESCALER_256_gc = (0x88<<0), /* Prescaler, divide by 256 */
EVSYS_CHMUX_PRESCALER_512_gc = (0x89<<0), /* Prescaler, divide by 512 */
- EVSYS_CHMUX_PRESCALER_1024_gc = (0x8A<<0), /* Prescaler, divide by 1024 */
- EVSYS_CHMUX_PRESCALER_2048_gc = (0x8B<<0), /* Prescaler, divide by 2048 */
- EVSYS_CHMUX_PRESCALER_4096_gc = (0x8C<<0), /* Prescaler, divide by 4096 */
- EVSYS_CHMUX_PRESCALER_8192_gc = (0x8D<<0), /* Prescaler, divide by 8192 */
- EVSYS_CHMUX_PRESCALER_16384_gc = (0x8E<<0), /* Prescaler, divide by 16384 */
- EVSYS_CHMUX_PRESCALER_32768_gc = (0x8F<<0), /* Prescaler, divide by 32768 */
+ /* Prescaler, divide by 1024 */
+ EVSYS_CHMUX_PRESCALER_1024_gc = (0x8A<<0),
+ /* Prescaler, divide by 2048 */
+ EVSYS_CHMUX_PRESCALER_2048_gc = (0x8B<<0),
+ /* Prescaler, divide by 4096 */
+ EVSYS_CHMUX_PRESCALER_4096_gc = (0x8C<<0),
+ /* Prescaler, divide by 8192 */
+ EVSYS_CHMUX_PRESCALER_8192_gc = (0x8D<<0),
+ /* Prescaler, divide by 16384 */
+ EVSYS_CHMUX_PRESCALER_16384_gc = (0x8E<<0),
+ /* Prescaler, divide by 32768 */
+ EVSYS_CHMUX_PRESCALER_32768_gc = (0x8F<<0),
EVSYS_CHMUX_TCC0_OVF_gc = (0xC0<<0), /* Timer/Counter C0 Overflow */
EVSYS_CHMUX_TCC0_ERR_gc = (0xC1<<0), /* Timer/Counter C0 Error */
- EVSYS_CHMUX_TCC0_CCA_gc = (0xC4<<0), /* Timer/Counter C0 Compare or Capture A */
- EVSYS_CHMUX_TCC0_CCB_gc = (0xC5<<0), /* Timer/Counter C0 Compare or Capture B */
- EVSYS_CHMUX_TCC0_CCC_gc = (0xC6<<0), /* Timer/Counter C0 Compare or Capture C */
- EVSYS_CHMUX_TCC0_CCD_gc = (0xC7<<0), /* Timer/Counter C0 Compare or Capture D */
+ /* Timer/Counter C0 Compare or Capture A */
+ EVSYS_CHMUX_TCC0_CCA_gc = (0xC4<<0),
+ /* Timer/Counter C0 Compare or Capture B */
+ EVSYS_CHMUX_TCC0_CCB_gc = (0xC5<<0),
+ /* Timer/Counter C0 Compare or Capture C */
+ EVSYS_CHMUX_TCC0_CCC_gc = (0xC6<<0),
+ /* Timer/Counter C0 Compare or Capture D */
+ EVSYS_CHMUX_TCC0_CCD_gc = (0xC7<<0),
EVSYS_CHMUX_TCC1_OVF_gc = (0xC8<<0), /* Timer/Counter C1 Overflow */
EVSYS_CHMUX_TCC1_ERR_gc = (0xC9<<0), /* Timer/Counter C1 Error */
- EVSYS_CHMUX_TCC1_CCA_gc = (0xCC<<0), /* Timer/Counter C1 Compare or Capture A */
- EVSYS_CHMUX_TCC1_CCB_gc = (0xCD<<0), /* Timer/Counter C1 Compare or Capture B */
+ /* Timer/Counter C1 Compare or Capture A */
+ EVSYS_CHMUX_TCC1_CCA_gc = (0xCC<<0),
+ /* Timer/Counter C1 Compare or Capture B */
+ EVSYS_CHMUX_TCC1_CCB_gc = (0xCD<<0),
EVSYS_CHMUX_TCD0_OVF_gc = (0xD0<<0), /* Timer/Counter D0 Overflow */
EVSYS_CHMUX_TCD0_ERR_gc = (0xD1<<0), /* Timer/Counter D0 Error */
- EVSYS_CHMUX_TCD0_CCA_gc = (0xD4<<0), /* Timer/Counter D0 Compare or Capture A */
- EVSYS_CHMUX_TCD0_CCB_gc = (0xD5<<0), /* Timer/Counter D0 Compare or Capture B */
- EVSYS_CHMUX_TCD0_CCC_gc = (0xD6<<0), /* Timer/Counter D0 Compare or Capture C */
- EVSYS_CHMUX_TCD0_CCD_gc = (0xD7<<0), /* Timer/Counter D0 Compare or Capture D */
+ /* Timer/Counter D0 Compare or Capture A */
+ EVSYS_CHMUX_TCD0_CCA_gc = (0xD4<<0),
+ /* Timer/Counter D0 Compare or Capture B */
+ EVSYS_CHMUX_TCD0_CCB_gc = (0xD5<<0),
+ /* Timer/Counter D0 Compare or Capture C */
+ EVSYS_CHMUX_TCD0_CCC_gc = (0xD6<<0),
+ /* Timer/Counter D0 Compare or Capture D */
+ EVSYS_CHMUX_TCD0_CCD_gc = (0xD7<<0),
EVSYS_CHMUX_TCD1_OVF_gc = (0xD8<<0), /* Timer/Counter D1 Overflow */
EVSYS_CHMUX_TCD1_ERR_gc = (0xD9<<0), /* Timer/Counter D1 Error */
- EVSYS_CHMUX_TCD1_CCA_gc = (0xDC<<0), /* Timer/Counter D1 Compare or Capture A */
- EVSYS_CHMUX_TCD1_CCB_gc = (0xDD<<0), /* Timer/Counter D1 Compare or Capture B */
+ /* Timer/Counter D1 Compare or Capture A */
+ EVSYS_CHMUX_TCD1_CCA_gc = (0xDC<<0),
+ /* Timer/Counter D1 Compare or Capture B */
+ EVSYS_CHMUX_TCD1_CCB_gc = (0xDD<<0),
EVSYS_CHMUX_TCE0_OVF_gc = (0xE0<<0), /* Timer/Counter E0 Overflow */
EVSYS_CHMUX_TCE0_ERR_gc = (0xE1<<0), /* Timer/Counter E0 Error */
- EVSYS_CHMUX_TCE0_CCA_gc = (0xE4<<0), /* Timer/Counter E0 Compare or Capture A */
- EVSYS_CHMUX_TCE0_CCB_gc = (0xE5<<0), /* Timer/Counter E0 Compare or Capture B */
- EVSYS_CHMUX_TCE0_CCC_gc = (0xE6<<0), /* Timer/Counter E0 Compare or Capture C */
- EVSYS_CHMUX_TCE0_CCD_gc = (0xE7<<0), /* Timer/Counter E0 Compare or Capture D */
+ /* Timer/Counter E0 Compare or Capture A */
+ EVSYS_CHMUX_TCE0_CCA_gc = (0xE4<<0),
+ /* Timer/Counter E0 Compare or Capture B */
+ EVSYS_CHMUX_TCE0_CCB_gc = (0xE5<<0),
+ /* Timer/Counter E0 Compare or Capture C */
+ EVSYS_CHMUX_TCE0_CCC_gc = (0xE6<<0),
+ /* Timer/Counter E0 Compare or Capture D */
+ EVSYS_CHMUX_TCE0_CCD_gc = (0xE7<<0),
EVSYS_CHMUX_TCE1_OVF_gc = (0xE8<<0), /* Timer/Counter E1 Overflow */
EVSYS_CHMUX_TCE1_ERR_gc = (0xE9<<0), /* Timer/Counter E1 Error */
- EVSYS_CHMUX_TCE1_CCA_gc = (0xEC<<0), /* Timer/Counter E1 Compare or Capture A */
- EVSYS_CHMUX_TCE1_CCB_gc = (0xED<<0), /* Timer/Counter E1 Compare or Capture B */
+ /* Timer/Counter E1 Compare or Capture A */
+ EVSYS_CHMUX_TCE1_CCA_gc = (0xEC<<0),
+ /* Timer/Counter E1 Compare or Capture B */
+ EVSYS_CHMUX_TCE1_CCB_gc = (0xED<<0),
EVSYS_CHMUX_TCF0_OVF_gc = (0xF0<<0), /* Timer/Counter F0 Overflow */
EVSYS_CHMUX_TCF0_ERR_gc = (0xF1<<0), /* Timer/Counter F0 Error */
- EVSYS_CHMUX_TCF0_CCA_gc = (0xF4<<0), /* Timer/Counter F0 Compare or Capture A */
- EVSYS_CHMUX_TCF0_CCB_gc = (0xF5<<0), /* Timer/Counter F0 Compare or Capture B */
- EVSYS_CHMUX_TCF0_CCC_gc = (0xF6<<0), /* Timer/Counter F0 Compare or Capture C */
- EVSYS_CHMUX_TCF0_CCD_gc = (0xF7<<0), /* Timer/Counter F0 Compare or Capture D */
+ /* Timer/Counter F0 Compare or Capture A */
+ EVSYS_CHMUX_TCF0_CCA_gc = (0xF4<<0),
+ /* Timer/Counter F0 Compare or Capture B */
+ EVSYS_CHMUX_TCF0_CCB_gc = (0xF5<<0),
+ /* Timer/Counter F0 Compare or Capture C */
+ EVSYS_CHMUX_TCF0_CCC_gc = (0xF6<<0),
+ /* Timer/Counter F0 Compare or Capture D */
+ EVSYS_CHMUX_TCF0_CCD_gc = (0xF7<<0),
EVSYS_CHMUX_TCF1_OVF_gc = (0xF8<<0), /* Timer/Counter F1 Overflow */
EVSYS_CHMUX_TCF1_ERR_gc = (0xF9<<0), /* Timer/Counter F1 Error */
- EVSYS_CHMUX_TCF1_CCA_gc = (0xFC<<0), /* Timer/Counter F1 Compare or Capture A */
- EVSYS_CHMUX_TCF1_CCB_gc = (0xFD<<0), /* Timer/Counter F1 Compare or Capture B */
+ /* Timer/Counter F1 Compare or Capture A */
+ EVSYS_CHMUX_TCF1_CCA_gc = (0xFC<<0),
+ /* Timer/Counter F1 Compare or Capture B */
+ EVSYS_CHMUX_TCF1_CCB_gc = (0xFD<<0),
} EVSYS_CHMUX_t;
@@ -953,20 +1037,27 @@ typedef enum NVM_CMD_enum
NVM_CMD_ERASE_USER_SIG_ROW_gc = (0x18<<0), /* Erase user signature row */
NVM_CMD_WRITE_USER_SIG_ROW_gc = (0x1A<<0), /* Write user signature row */
NVM_CMD_ERASE_APP_gc = (0x20<<0), /* Erase Application Section */
- NVM_CMD_ERASE_APP_PAGE_gc = (0x22<<0), /* Erase Application Section page */
+ /* Erase Application Section page */
+ NVM_CMD_ERASE_APP_PAGE_gc = (0x22<<0),
NVM_CMD_LOAD_FLASH_BUFFER_gc = (0x23<<0), /* Load Flash page buffer */
- NVM_CMD_WRITE_APP_PAGE_gc = (0x24<<0), /* Write Application Section page */
- NVM_CMD_ERASE_WRITE_APP_PAGE_gc = (0x25<<0), /* Erase-and-write Application Section page */
- NVM_CMD_ERASE_FLASH_BUFFER_gc = (0x26<<0), /* Erase/flush Flash page buffer */
+ /* Write Application Section page */
+ NVM_CMD_WRITE_APP_PAGE_gc = (0x24<<0),
+ /* Erase-and-write Application Section page */
+ NVM_CMD_ERASE_WRITE_APP_PAGE_gc = (0x25<<0),
+ /* Erase/flush Flash page buffer */
+ NVM_CMD_ERASE_FLASH_BUFFER_gc = (0x26<<0),
NVM_CMD_ERASE_BOOT_PAGE_gc = (0x2A<<0), /* Erase Boot Section page */
NVM_CMD_WRITE_BOOT_PAGE_gc = (0x2C<<0), /* Write Boot Section page */
- NVM_CMD_ERASE_WRITE_BOOT_PAGE_gc = (0x2D<<0), /* Erase-and-write Boot Section page */
+ /* Erase-and-write Boot Section page */
+ NVM_CMD_ERASE_WRITE_BOOT_PAGE_gc = (0x2D<<0),
NVM_CMD_ERASE_EEPROM_gc = (0x30<<0), /* Erase EEPROM */
NVM_CMD_ERASE_EEPROM_PAGE_gc = (0x32<<0), /* Erase EEPROM page */
NVM_CMD_LOAD_EEPROM_BUFFER_gc = (0x33<<0), /* Load EEPROM page buffer */
NVM_CMD_WRITE_EEPROM_PAGE_gc = (0x34<<0), /* Write EEPROM page */
- NVM_CMD_ERASE_WRITE_EEPROM_PAGE_gc = (0x35<<0), /* Erase-and-write EEPROM page */
- NVM_CMD_ERASE_EEPROM_BUFFER_gc = (0x36<<0), /* Erase/flush EEPROM page buffer */
+ /* Erase-and-write EEPROM page */
+ NVM_CMD_ERASE_WRITE_EEPROM_PAGE_gc = (0x35<<0),
+ /* Erase/flush EEPROM page buffer */
+ NVM_CMD_ERASE_EEPROM_BUFFER_gc = (0x36<<0),
NVM_CMD_APP_CRC_gc = (0x38<<0), /* Generate Application section CRC */
NVM_CMD_BOOT_CRC_gc = (0x39<<0), /* Generate Boot Section CRC */
NVM_CMD_FLASH_RANGE_CRC_gc = (0x3A<<0), /* Generate Flash Range CRC */
@@ -1272,9 +1363,11 @@ typedef enum ADC_CH_MUXNEG_enum
typedef enum ADC_CH_INPUTMODE_enum
{
ADC_CH_INPUTMODE_INTERNAL_gc = (0x00<<0), /* Internal inputs, no gain */
- ADC_CH_INPUTMODE_SINGLEENDED_gc = (0x01<<0), /* Single-ended input, no gain */
+ /* Single-ended input, no gain */
+ ADC_CH_INPUTMODE_SINGLEENDED_gc = (0x01<<0),
ADC_CH_INPUTMODE_DIFF_gc = (0x02<<0), /* Differential input, no gain */
- ADC_CH_INPUTMODE_DIFFWGAIN_gc = (0x03<<0), /* Differential input, with gain */
+ /* Differential input, with gain */
+ ADC_CH_INPUTMODE_DIFFWGAIN_gc = (0x03<<0),
} ADC_CH_INPUTMODE_t;
/* Gain factor */
@@ -1294,7 +1387,8 @@ typedef enum ADC_RESOLUTION_enum
{
ADC_RESOLUTION_12BIT_gc = (0x00<<1), /* 12-bit right-adjusted result */
ADC_RESOLUTION_8BIT_gc = (0x02<<1), /* 8-bit right-adjusted result */
- ADC_RESOLUTION_LEFT12BIT_gc = (0x03<<1), /* 12-bit left-adjusted result */
+ /* 12-bit left-adjusted result */
+ ADC_RESOLUTION_LEFT12BIT_gc = (0x03<<1),
} ADC_RESOLUTION_t;
/* Voltage reference selection */
@@ -1334,18 +1428,23 @@ typedef enum ADC_EVACT_enum
ADC_EVACT_NONE_gc = (0x00<<0), /* No event action */
ADC_EVACT_CH0_gc = (0x01<<0), /* First event triggers channel 0 */
ADC_EVACT_CH01_gc = (0x02<<0), /* First two events trigger channel 0,1 */
- ADC_EVACT_CH012_gc = (0x03<<0), /* First three events trigger channel 0,1,2 */
+ /* First three events trigger channel 0,1,2 */
+ ADC_EVACT_CH012_gc = (0x03<<0),
ADC_EVACT_CH0123_gc = (0x04<<0), /* Events trigger channel 0,1,2,3 */
ADC_EVACT_SWEEP_gc = (0x05<<0), /* First event triggers sweep */
- ADC_EVACT_SYNCHSWEEP_gc = (0x06<<0), /* First event triggers synchronized sweep */
+ /* First event triggers synchronized sweep */
+ ADC_EVACT_SYNCHSWEEP_gc = (0x06<<0),
} ADC_EVACT_t;
/* Interupt mode */
typedef enum ADC_CH_INTMODE_enum
{
- ADC_CH_INTMODE_COMPLETE_gc = (0x00<<2), /* Interrupt on conversion complete */
- ADC_CH_INTMODE_BELOW_gc = (0x01<<2), /* Interrupt on result below compare value */
- ADC_CH_INTMODE_ABOVE_gc = (0x03<<2), /* Interrupt on result above compare value */
+ /* Interrupt on conversion complete */
+ ADC_CH_INTMODE_COMPLETE_gc = (0x00<<2),
+ /* Interrupt on result below compare value */
+ ADC_CH_INTMODE_BELOW_gc = (0x01<<2),
+ /* Interrupt on result above compare value */
+ ADC_CH_INTMODE_ABOVE_gc = (0x03<<2),
} ADC_CH_INTMODE_t;
/* Interrupt level */
@@ -1420,8 +1519,10 @@ typedef struct DAC_struct
/* Output channel selection */
typedef enum DAC_CHSEL_enum
{
- DAC_CHSEL_SINGLE_gc = (0x00<<5), /* Single channel operation (Channel A only) */
- DAC_CHSEL_DUAL_gc = (0x02<<5), /* Dual channel operation (S/H on both channels) */
+ /* Single channel operation (Channel A only) */
+ DAC_CHSEL_SINGLE_gc = (0x00<<5),
+ /* Dual channel operation (S/H on both channels) */
+ DAC_CHSEL_DUAL_gc = (0x02<<5),
} DAC_CHSEL_t;
/* Reference voltage selection */
@@ -1429,8 +1530,10 @@ typedef enum DAC_REFSEL_enum
{
DAC_REFSEL_INT1V_gc = (0x00<<3), /* Internal 1V */
DAC_REFSEL_AVCC_gc = (0x01<<3), /* Analog supply voltage */
- DAC_REFSEL_AREFA_gc = (0x02<<3), /* External reference on AREF on PORTA */
- DAC_REFSEL_AREFB_gc = (0x03<<3), /* External reference on AREF on PORTB */
+ /* External reference on AREF on PORTA */
+ DAC_REFSEL_AREFA_gc = (0x02<<3),
+ /* External reference on AREF on PORTB */
+ DAC_REFSEL_AREFB_gc = (0x03<<3),
} DAC_REFSEL_t;
/* Event channel selection */
@@ -1810,7 +1913,8 @@ typedef enum TWI_MASTER_TIMEOUT_enum
typedef enum TWI_MASTER_CMD_enum
{
TWI_MASTER_CMD_NOACT_gc = (0x00<<0), /* No Action */
- TWI_MASTER_CMD_REPSTART_gc = (0x01<<0), /* Issue Repeated Start Condition */
+ /* Issue Repeated Start Condition */
+ TWI_MASTER_CMD_REPSTART_gc = (0x01<<0),
TWI_MASTER_CMD_RECVTRANS_gc = (0x02<<0), /* Receive or Transmit Data */
TWI_MASTER_CMD_STOP_gc = (0x03<<0), /* Issue Stop Condition */
} TWI_MASTER_CMD_t;
@@ -1820,7 +1924,8 @@ typedef enum TWI_MASTER_BUSSTATE_enum
{
TWI_MASTER_BUSSTATE_UNKNOWN_gc = (0x00<<0), /* Unknown Bus State */
TWI_MASTER_BUSSTATE_IDLE_gc = (0x01<<0), /* Bus is Idle */
- TWI_MASTER_BUSSTATE_OWNER_gc = (0x02<<0), /* This Module Controls The Bus */
+ /* This Module Controls The Bus */
+ TWI_MASTER_BUSSTATE_OWNER_gc = (0x02<<0),
TWI_MASTER_BUSSTATE_BUSY_gc = (0x03<<0), /* The Bus is Busy */
} TWI_MASTER_BUSSTATE_t;
@@ -1837,8 +1942,10 @@ typedef enum TWI_SLAVE_INTLVL_enum
typedef enum TWI_SLAVE_CMD_enum
{
TWI_SLAVE_CMD_NOACT_gc = (0x00<<0), /* No Action */
- TWI_SLAVE_CMD_COMPTRANS_gc = (0x02<<0), /* Used To Complete a Transaction */
- TWI_SLAVE_CMD_RESPONSE_gc = (0x03<<0), /* Used in Response to Address/Data Interrupt */
+ /* Used To Complete a Transaction */
+ TWI_SLAVE_CMD_COMPTRANS_gc = (0x02<<0),
+ /* Used in Response to Address/Data Interrupt */
+ TWI_SLAVE_CMD_RESPONSE_gc = (0x03<<0),
} TWI_SLAVE_CMD_t;
@@ -2005,9 +2112,12 @@ typedef enum PORTCFG_CLKOUT_enum
typedef enum PORTCFG_EVOUT_enum
{
PORTCFG_EVOUT_OFF_gc = (0x00<<4), /* Event Output Disabled */
- PORTCFG_EVOUT_PC7_gc = (0x01<<4), /* Event Channel 7 Output on Port C pin 7 */
- PORTCFG_EVOUT_PD7_gc = (0x02<<4), /* Event Channel 7 Output on Port D pin 7 */
- PORTCFG_EVOUT_PE7_gc = (0x03<<4), /* Event Channel 7 Output on Port E pin 7 */
+ /* Event Channel 7 Output on Port C pin 7 */
+ PORTCFG_EVOUT_PC7_gc = (0x01<<4),
+ /* Event Channel 7 Output on Port D pin 7 */
+ PORTCFG_EVOUT_PD7_gc = (0x02<<4),
+ /* Event Channel 7 Output on Port E pin 7 */
+ PORTCFG_EVOUT_PE7_gc = (0x03<<4),
} PORTCFG_EVOUT_t;
/* Port Interrupt 0 Level */
@@ -2032,7 +2142,8 @@ typedef enum PORT_INT1LVL_enum
typedef enum PORT_OPC_enum
{
PORT_OPC_TOTEM_gc = (0x00<<3), /* Totempole */
- PORT_OPC_BUSKEEPER_gc = (0x01<<3), /* Totempole w/ Bus keeper on Input and Output */
+ /* Totempole w/ Bus keeper on Input and Output */
+ PORT_OPC_BUSKEEPER_gc = (0x01<<3),
PORT_OPC_PULLDOWN_gc = (0x02<<3), /* Totempole w/ Pull-down on Input */
PORT_OPC_PULLUP_gc = (0x03<<3), /* Totempole w/ Pull-up on Input */
PORT_OPC_WIREDOR_gc = (0x04<<3), /* Wired OR */
@@ -2244,7 +2355,8 @@ typedef enum TC_WGMODE_enum
TC_WGMODE_FRQ_gc = (0x01<<0), /* Frequency Generation Mode */
TC_WGMODE_SS_gc = (0x03<<0), /* Single Slope */
TC_WGMODE_DS_T_gc = (0x05<<0), /* Dual Slope, Update on TOP */
- TC_WGMODE_DS_TB_gc = (0x06<<0), /* Dual Slope, Update on TOP and BOTTOM */
+ /* Dual Slope, Update on TOP and BOTTOM */
+ TC_WGMODE_DS_TB_gc = (0x06<<0),
TC_WGMODE_DS_B_gc = (0x07<<0), /* Dual Slope, Update on BOTTOM */
} TC_WGMODE_t;
@@ -2349,9 +2461,12 @@ typedef enum AWEX_FDACT_enum
typedef enum HIRES_HREN_enum
{
HIRES_HREN_NONE_gc = (0x00<<0), /* No Fault Protection */
- HIRES_HREN_TC0_gc = (0x01<<0), /* Enable High Resolution on Timer/Counter 0 */
- HIRES_HREN_TC1_gc = (0x02<<0), /* Enable High Resolution on Timer/Counter 1 */
- HIRES_HREN_BOTH_gc = (0x03<<0), /* Enable High Resolution both Timer/Counters */
+ /* Enable High Resolution on Timer/Counter 0 */
+ HIRES_HREN_TC0_gc = (0x01<<0),
+ /* Enable High Resolution on Timer/Counter 1 */
+ HIRES_HREN_TC1_gc = (0x02<<0),
+ /* Enable High Resolution both Timer/Counters */
+ HIRES_HREN_BOTH_gc = (0x03<<0),
} HIRES_HREN_t;
@@ -2482,7 +2597,8 @@ IRCOM - IR Communication Module
typedef struct IRCOM_struct
{
register8_t CTRL; /* Control Register */
- register8_t TXPLCTRL; /* IrDA Transmitter Pulse Length Control Register */
+ /* IrDA Transmitter Pulse Length Control Register */
+ register8_t TXPLCTRL;
register8_t RXPLCTRL; /* IrDA Receiver Pulse Length Control Register */
} IRCOM_t;
@@ -2525,15 +2641,13 @@ typedef enum AES_INTLVL_enum
AES_INTLVL_MED_gc = (0x02<<0), /* Medium Level */
AES_INTLVL_HI_gc = (0x03<<0), /* High Level */
} AES_INTLVL_t;
+/** @} */
-
-
-/*
-==========================================================================
-IO Module Instances. Mapped to memory.
-==========================================================================
-*/
-
+/**
+ * @name IO Module Instances. Mapped to Memory
+ *
+ */
+/**@{**/
#define GPIO (*(GPIO_t *) 0x0000) /* General Purpose IO Registers */
#define VPORT0 (*(VPORT_t *) 0x0010) /* Virtual Port 0 */
#define VPORT1 (*(VPORT_t *) 0x0014) /* Virtual Port 1 */
@@ -2583,35 +2697,47 @@ IO Module Instances. Mapped to memory.
#define TCC1 (*(TC1_t *) 0x0840) /* Timer/Counter C1 */
#define AWEXC (*(AWEX_t *) 0x0880) /* Advanced Waveform Extension C */
#define HIRESC (*(HIRES_t *) 0x0890) /* High-Resolution Extension C */
-#define USARTC0 (*(USART_t *) 0x08A0) /* Universal Asynchronous Receiver-Transmitter C0 */
-#define USARTC1 (*(USART_t *) 0x08B0) /* Universal Asynchronous Receiver-Transmitter C1 */
+/* Universal Asynchronous Receiver-Transmitter C0 */
+#define USARTC0 (*(USART_t *) 0x08A0)
+/* Universal Asynchronous Receiver-Transmitter C1 */
+#define USARTC1 (*(USART_t *) 0x08B0)
#define SPIC (*(SPI_t *) 0x08C0) /* Serial Peripheral Interface C */
#define IRCOM (*(IRCOM_t *) 0x08F8) /* IR Communication Module */
#define TCD0 (*(TC0_t *) 0x0900) /* Timer/Counter D0 */
#define TCD1 (*(TC1_t *) 0x0940) /* Timer/Counter D1 */
#define HIRESD (*(HIRES_t *) 0x0990) /* High-Resolution Extension D */
-#define USARTD0 (*(USART_t *) 0x09A0) /* Universal Asynchronous Receiver-Transmitter D0 */
-#define USARTD1 (*(USART_t *) 0x09B0) /* Universal Asynchronous Receiver-Transmitter D1 */
+/* Universal Asynchronous Receiver-Transmitter D0 */
+#define USARTD0 (*(USART_t *) 0x09A0)
+/* Universal Asynchronous Receiver-Transmitter D1 */
+#define USARTD1 (*(USART_t *) 0x09B0)
#define SPID (*(SPI_t *) 0x09C0) /* Serial Peripheral Interface D */
#define TCE0 (*(TC0_t *) 0x0A00) /* Timer/Counter E0 */
#define TCE1 (*(TC1_t *) 0x0A40) /* Timer/Counter E1 */
#define AWEXE (*(AWEX_t *) 0x0A80) /* Advanced Waveform Extension E */
#define HIRESE (*(HIRES_t *) 0x0A90) /* High-Resolution Extension E */
-#define USARTE0 (*(USART_t *) 0x0AA0) /* Universal Asynchronous Receiver-Transmitter E0 */
-#define USARTE1 (*(USART_t *) 0x0AB0) /* Universal Asynchronous Receiver-Transmitter E1 */
+/* Universal Asynchronous Receiver-Transmitter E0 */
+#define USARTE0 (*(USART_t *) 0x0AA0)
+/* Universal Asynchronous Receiver-Transmitter E1 */
+#define USARTE1 (*(USART_t *) 0x0AB0)
#define SPIE (*(SPI_t *) 0x0AC0) /* Serial Peripheral Interface E */
#define TCF0 (*(TC0_t *) 0x0B00) /* Timer/Counter F0 */
#define TCF1 (*(TC1_t *) 0x0B40) /* Timer/Counter F1 */
#define HIRESF (*(HIRES_t *) 0x0B90) /* High-Resolution Extension F */
-#define USARTF0 (*(USART_t *) 0x0BA0) /* Universal Asynchronous Receiver-Transmitter F0 */
-#define USARTF1 (*(USART_t *) 0x0BB0) /* Universal Asynchronous Receiver-Transmitter F1 */
+/* Universal Asynchronous Receiver-Transmitter F0 */
+#define USARTF0 (*(USART_t *) 0x0BA0)
+/* Universal Asynchronous Receiver-Transmitter F1 */
+#define USARTF1 (*(USART_t *) 0x0BB0)
#define SPIF (*(SPI_t *) 0x0BC0) /* Serial Peripheral Interface F */
#endif /* !defined (__ASSEMBLER__) */
+/** @} */
-
-/* ========== Flattened fully qualified IO register names ========== */
+/**
+ * @name Flattened Fully Qualified IO Register Names
+ *
+ */
+/**@{**/
/* GPIO - General Purpose IO Registers */
#define GPIO_GPIO0 _SFR_MEM8(0x0000)
@@ -3629,11 +3755,13 @@ IO Module Instances. Mapped to memory.
#define SPIF_INTCTRL _SFR_MEM8(0x0BC1)
#define SPIF_STATUS _SFR_MEM8(0x0BC2)
#define SPIF_DATA _SFR_MEM8(0x0BC3)
+/** @} */
-
-
-/*================== Bitfield Definitions ================== */
-
+/**
+ * @name Bitfield Definitions
+ *
+ */
+/**@{**/
/* XOCD - On-Chip Debug System */
/* OCD.OCDR1 bit masks and bit positions */
#define OCD_OCDRD_bm 0x01 /* OCDR Dirty bit mask. */
@@ -3714,12 +3842,18 @@ IO Module Instances. Mapped to memory.
#define CLK_PSADIV4_bm (1<<6) /* Prescaler A Division Factor bit 4 mask. */
#define CLK_PSADIV4_bp 6 /* Prescaler A Division Factor bit 4 position. */
-#define CLK_PSBCDIV_gm 0x03 /* Prescaler B and C Division factor group mask. */
-#define CLK_PSBCDIV_gp 0 /* Prescaler B and C Division factor group position. */
-#define CLK_PSBCDIV0_bm (1<<0) /* Prescaler B and C Division factor bit 0 mask. */
-#define CLK_PSBCDIV0_bp 0 /* Prescaler B and C Division factor bit 0 position. */
-#define CLK_PSBCDIV1_bm (1<<1) /* Prescaler B and C Division factor bit 1 mask. */
-#define CLK_PSBCDIV1_bp 1 /* Prescaler B and C Division factor bit 1 position. */
+/* Prescaler B and C Division factor group mask. */
+#define CLK_PSBCDIV_gm 0x03
+/* Prescaler B and C Division factor group position. */
+#define CLK_PSBCDIV_gp 0
+/* Prescaler B and C Division factor bit 0 mask. */
+#define CLK_PSBCDIV0_bm (1<<0)
+/* Prescaler B and C Division factor bit 0 position. */
+#define CLK_PSBCDIV0_bp 0
+/* Prescaler B and C Division factor bit 1 mask. */
+#define CLK_PSBCDIV1_bm (1<<1)
+/* Prescaler B and C Division factor bit 1 position. */
+#define CLK_PSBCDIV1_bp 1
/* CLK.LOCK bit masks and bit positions */
@@ -3895,14 +4029,20 @@ IO Module Instances. Mapped to memory.
#define OSC_XOSCEN_bm 0x08 /* External Oscillator Enable bit mask. */
#define OSC_XOSCEN_bp 3 /* External Oscillator Enable bit position. */
-#define OSC_RC32KEN_bm 0x04 /* Internal 32kHz RC Oscillator Enable bit mask. */
-#define OSC_RC32KEN_bp 2 /* Internal 32kHz RC Oscillator Enable bit position. */
+/* Internal 32kHz RC Oscillator Enable bit mask. */
+#define OSC_RC32KEN_bm 0x04
+/* Internal 32kHz RC Oscillator Enable bit position. */
+#define OSC_RC32KEN_bp 2
-#define OSC_RC32MEN_bm 0x02 /* Internal 32MHz RC Oscillator Enable bit mask. */
-#define OSC_RC32MEN_bp 1 /* Internal 32MHz RC Oscillator Enable bit position. */
+/* Internal 32MHz RC Oscillator Enable bit mask. */
+#define OSC_RC32MEN_bm 0x02
+/* Internal 32MHz RC Oscillator Enable bit position. */
+#define OSC_RC32MEN_bp 1
-#define OSC_RC2MEN_bm 0x01 /* Internal 2MHz RC Oscillator Enable bit mask. */
-#define OSC_RC2MEN_bp 0 /* Internal 2MHz RC Oscillator Enable bit position. */
+/* Internal 2MHz RC Oscillator Enable bit mask. */
+#define OSC_RC2MEN_bm 0x01
+/* Internal 2MHz RC Oscillator Enable bit position. */
+#define OSC_RC2MEN_bp 0
/* OSC.STATUS bit masks and bit positions */
@@ -3912,14 +4052,20 @@ IO Module Instances. Mapped to memory.
#define OSC_XOSCRDY_bm 0x08 /* External Oscillator Ready bit mask. */
#define OSC_XOSCRDY_bp 3 /* External Oscillator Ready bit position. */
-#define OSC_RC32KRDY_bm 0x04 /* Internal 32kHz RC Oscillator Ready bit mask. */
-#define OSC_RC32KRDY_bp 2 /* Internal 32kHz RC Oscillator Ready bit position. */
+/* Internal 32kHz RC Oscillator Ready bit mask. */
+#define OSC_RC32KRDY_bm 0x04
+/* Internal 32kHz RC Oscillator Ready bit position. */
+#define OSC_RC32KRDY_bp 2
-#define OSC_RC32MRDY_bm 0x02 /* Internal 32MHz RC Oscillator Ready bit mask. */
-#define OSC_RC32MRDY_bp 1 /* Internal 32MHz RC Oscillator Ready bit position. */
+/* Internal 32MHz RC Oscillator Ready bit mask. */
+#define OSC_RC32MRDY_bm 0x02
+/* Internal 32MHz RC Oscillator Ready bit position. */
+#define OSC_RC32MRDY_bp 1
-#define OSC_RC2MRDY_bm 0x01 /* Internal 2MHz RC Oscillator Ready bit mask. */
-#define OSC_RC2MRDY_bp 0 /* Internal 2MHz RC Oscillator Ready bit position. */
+/* Internal 2MHz RC Oscillator Ready bit mask. */
+#define OSC_RC2MRDY_bm 0x01
+/* Internal 2MHz RC Oscillator Ready bit position. */
+#define OSC_RC2MRDY_bp 0
/* OSC.XOSCCTRL bit masks and bit positions */
@@ -3933,21 +4079,33 @@ IO Module Instances. Mapped to memory.
#define OSC_X32KLPM_bm 0x20 /* 32kHz XTAL OSC Low-power Mode bit mask. */
#define OSC_X32KLPM_bp 5 /* 32kHz XTAL OSC Low-power Mode bit position. */
-#define OSC_XOSCSEL_gm 0x0F /* External Oscillator Selection and Startup Time group mask. */
-#define OSC_XOSCSEL_gp 0 /* External Oscillator Selection and Startup Time group position. */
-#define OSC_XOSCSEL0_bm (1<<0) /* External Oscillator Selection and Startup Time bit 0 mask. */
-#define OSC_XOSCSEL0_bp 0 /* External Oscillator Selection and Startup Time bit 0 position. */
-#define OSC_XOSCSEL1_bm (1<<1) /* External Oscillator Selection and Startup Time bit 1 mask. */
-#define OSC_XOSCSEL1_bp 1 /* External Oscillator Selection and Startup Time bit 1 position. */
-#define OSC_XOSCSEL2_bm (1<<2) /* External Oscillator Selection and Startup Time bit 2 mask. */
-#define OSC_XOSCSEL2_bp 2 /* External Oscillator Selection and Startup Time bit 2 position. */
-#define OSC_XOSCSEL3_bm (1<<3) /* External Oscillator Selection and Startup Time bit 3 mask. */
-#define OSC_XOSCSEL3_bp 3 /* External Oscillator Selection and Startup Time bit 3 position. */
+/* External Oscillator Selection and Startup Time group mask. */
+#define OSC_XOSCSEL_gm 0x0F
+/* External Oscillator Selection and Startup Time group position. */
+#define OSC_XOSCSEL_gp 0
+/* External Oscillator Selection and Startup Time bit 0 mask. */
+#define OSC_XOSCSEL0_bm (1<<0)
+/* External Oscillator Selection and Startup Time bit 0 position. */
+#define OSC_XOSCSEL0_bp 0
+/* External Oscillator Selection and Startup Time bit 1 mask. */
+#define OSC_XOSCSEL1_bm (1<<1)
+/* External Oscillator Selection and Startup Time bit 1 position. */
+#define OSC_XOSCSEL1_bp 1
+/* External Oscillator Selection and Startup Time bit 2 mask. */
+#define OSC_XOSCSEL2_bm (1<<2)
+/* External Oscillator Selection and Startup Time bit 2 position. */
+#define OSC_XOSCSEL2_bp 2
+/* External Oscillator Selection and Startup Time bit 3 mask. */
+#define OSC_XOSCSEL3_bm (1<<3)
+/* External Oscillator Selection and Startup Time bit 3 position. */
+#define OSC_XOSCSEL3_bp 3
/* OSC.XOSCFAIL bit masks and bit positions */
-#define OSC_XOSCFDIF_bm 0x02 /* Failure Detection Interrupt Flag bit mask. */
-#define OSC_XOSCFDIF_bp 1 /* Failure Detection Interrupt Flag bit position. */
+/* Failure Detection Interrupt Flag bit mask. */
+#define OSC_XOSCFDIF_bm 0x02
+/* Failure Detection Interrupt Flag bit position. */
+#define OSC_XOSCFDIF_bp 1
#define OSC_XOSCFDEN_bm 0x01 /* Failure Detection Enable bit mask. */
#define OSC_XOSCFDEN_bp 0 /* Failure Detection Enable bit position. */
@@ -4033,8 +4191,10 @@ IO Module Instances. Mapped to memory.
#define RST_SRF_bm 0x20 /* Software Reset Flag bit mask. */
#define RST_SRF_bp 5 /* Software Reset Flag bit position. */
-#define RST_PDIRF_bm 0x10 /* Programming and Debug Interface Interface Reset Flag bit mask. */
-#define RST_PDIRF_bp 4 /* Programming and Debug Interface Interface Reset Flag bit position. */
+/* Programming and Debug Interface Interface Reset Flag bit mask. */
+#define RST_PDIRF_bm 0x10
+/* Programming and Debug Interface Interface Reset Flag bit position. */
+#define RST_PDIRF_bp 4
#define RST_WDRF_bm 0x08 /* Watchdog Reset Flag bit mask. */
#define RST_WDRF_bp 3 /* Watchdog Reset Flag bit position. */
@@ -4128,8 +4288,10 @@ IO Module Instances. Mapped to memory.
#define PMIC_HILVLEX_bm 0x04 /* High Level Interrupt Executing bit mask. */
#define PMIC_HILVLEX_bp 2 /* High Level Interrupt Executing bit position. */
-#define PMIC_MEDLVLEX_bm 0x02 /* Medium Level Interrupt Executing bit mask. */
-#define PMIC_MEDLVLEX_bp 1 /* Medium Level Interrupt Executing bit position. */
+/* Medium Level Interrupt Executing bit mask. */
+#define PMIC_MEDLVLEX_bm 0x02
+/* Medium Level Interrupt Executing bit position. */
+#define PMIC_MEDLVLEX_bp 1
#define PMIC_LOLVLEX_bm 0x01 /* Low Level Interrupt Executing bit mask. */
#define PMIC_LOLVLEX_bp 0 /* Low Level Interrupt Executing bit position. */
@@ -4166,8 +4328,10 @@ IO Module Instances. Mapped to memory.
#define DMA_CH_TRFREQ_bm 0x10 /* Channel Transfer Request bit mask. */
#define DMA_CH_TRFREQ_bp 4 /* Channel Transfer Request bit position. */
-#define DMA_CH_SINGLE_bm 0x04 /* Channel Single Shot Data Transfer bit mask. */
-#define DMA_CH_SINGLE_bp 2 /* Channel Single Shot Data Transfer bit position. */
+/* Channel Single Shot Data Transfer bit mask. */
+#define DMA_CH_SINGLE_bm 0x04
+/* Channel Single Shot Data Transfer bit position. */
+#define DMA_CH_SINGLE_bp 2
#define DMA_CH_BURSTLEN_gm 0x03 /* Channel Transfer Mode group mask. */
#define DMA_CH_BURSTLEN_gp 0 /* Channel Transfer Mode group position. */
@@ -4184,55 +4348,93 @@ IO Module Instances. Mapped to memory.
#define DMA_CH_CHPEND_bm 0x40 /* Block Transfer Pending bit mask. */
#define DMA_CH_CHPEND_bp 6 /* Block Transfer Pending bit position. */
-#define DMA_CH_ERRIF_bm 0x20 /* Block Transfer Error Interrupt Flag bit mask. */
-#define DMA_CH_ERRIF_bp 5 /* Block Transfer Error Interrupt Flag bit position. */
-
-#define DMA_CH_TRNIF_bm 0x10 /* Transaction Complete Interrup Flag bit mask. */
-#define DMA_CH_TRNIF_bp 4 /* Transaction Complete Interrup Flag bit position. */
-
-#define DMA_CH_ERRINTLVL_gm 0x0C /* Transfer Error Interrupt Level group mask. */
-#define DMA_CH_ERRINTLVL_gp 2 /* Transfer Error Interrupt Level group position. */
-#define DMA_CH_ERRINTLVL0_bm (1<<2) /* Transfer Error Interrupt Level bit 0 mask. */
-#define DMA_CH_ERRINTLVL0_bp 2 /* Transfer Error Interrupt Level bit 0 position. */
-#define DMA_CH_ERRINTLVL1_bm (1<<3) /* Transfer Error Interrupt Level bit 1 mask. */
-#define DMA_CH_ERRINTLVL1_bp 3 /* Transfer Error Interrupt Level bit 1 position. */
-
-#define DMA_CH_TRNINTLVL_gm 0x03 /* Transaction Complete Interrupt Level group mask. */
-#define DMA_CH_TRNINTLVL_gp 0 /* Transaction Complete Interrupt Level group position. */
-#define DMA_CH_TRNINTLVL0_bm (1<<0) /* Transaction Complete Interrupt Level bit 0 mask. */
-#define DMA_CH_TRNINTLVL0_bp 0 /* Transaction Complete Interrupt Level bit 0 position. */
-#define DMA_CH_TRNINTLVL1_bm (1<<1) /* Transaction Complete Interrupt Level bit 1 mask. */
-#define DMA_CH_TRNINTLVL1_bp 1 /* Transaction Complete Interrupt Level bit 1 position. */
+/* Block Transfer Error Interrupt Flag bit mask. */
+#define DMA_CH_ERRIF_bm 0x20
+/* Block Transfer Error Interrupt Flag bit position. */
+#define DMA_CH_ERRIF_bp 5
+
+/* Transaction Complete Interrup Flag bit mask. */
+#define DMA_CH_TRNIF_bm 0x10
+/* Transaction Complete Interrup Flag bit position. */
+#define DMA_CH_TRNIF_bp 4
+
+/* Transfer Error Interrupt Level group mask. */
+#define DMA_CH_ERRINTLVL_gm 0x0C
+/* Transfer Error Interrupt Level group position. */
+#define DMA_CH_ERRINTLVL_gp 2
+/* Transfer Error Interrupt Level bit 0 mask. */
+#define DMA_CH_ERRINTLVL0_bm (1<<2)
+/* Transfer Error Interrupt Level bit 0 position. */
+#define DMA_CH_ERRINTLVL0_bp 2
+/* Transfer Error Interrupt Level bit 1 mask. */
+#define DMA_CH_ERRINTLVL1_bm (1<<3)
+ /* Transfer Error Interrupt Level bit 1 position. */
+#define DMA_CH_ERRINTLVL1_bp 3
+
+/* Transaction Complete Interrupt Level group mask. */
+#define DMA_CH_TRNINTLVL_gm 0x03
+/* Transaction Complete Interrupt Level group position. */
+#define DMA_CH_TRNINTLVL_gp 0
+/* Transaction Complete Interrupt Level bit 0 mask. */
+#define DMA_CH_TRNINTLVL0_bm (1<<0)
+/* Transaction Complete Interrupt Level bit 0 position. */
+#define DMA_CH_TRNINTLVL0_bp 0
+/* Transaction Complete Interrupt Level bit 1 mask. */
+#define DMA_CH_TRNINTLVL1_bm (1<<1)
+/* Transaction Complete Interrupt Level bit 1 position. */
+#define DMA_CH_TRNINTLVL1_bp 1
/* DMA_CH.ADDRCTRL bit masks and bit positions */
-#define DMA_CH_SRCRELOAD_gm 0xC0 /* Channel Source Address Reload group mask. */
-#define DMA_CH_SRCRELOAD_gp 6 /* Channel Source Address Reload group position. */
-#define DMA_CH_SRCRELOAD0_bm (1<<6) /* Channel Source Address Reload bit 0 mask. */
-#define DMA_CH_SRCRELOAD0_bp 6 /* Channel Source Address Reload bit 0 position. */
-#define DMA_CH_SRCRELOAD1_bm (1<<7) /* Channel Source Address Reload bit 1 mask. */
-#define DMA_CH_SRCRELOAD1_bp 7 /* Channel Source Address Reload bit 1 position. */
+/* Channel Source Address Reload group mask. */
+#define DMA_CH_SRCRELOAD_gm 0xC0
+/* Channel Source Address Reload group position. */
+#define DMA_CH_SRCRELOAD_gp 6
+/* Channel Source Address Reload bit 0 mask. */
+#define DMA_CH_SRCRELOAD0_bm (1<<6)
+/* Channel Source Address Reload bit 0 position. */
+#define DMA_CH_SRCRELOAD0_bp 6
+/* Channel Source Address Reload bit 1 mask. */
+#define DMA_CH_SRCRELOAD1_bm (1<<7)
+/* Channel Source Address Reload bit 1 position. */
+#define DMA_CH_SRCRELOAD1_bp 7
#define DMA_CH_SRCDIR_gm 0x30 /* Channel Source Address Mode group mask. */
#define DMA_CH_SRCDIR_gp 4 /* Channel Source Address Mode group position. */
-#define DMA_CH_SRCDIR0_bm (1<<4) /* Channel Source Address Mode bit 0 mask. */
-#define DMA_CH_SRCDIR0_bp 4 /* Channel Source Address Mode bit 0 position. */
-#define DMA_CH_SRCDIR1_bm (1<<5) /* Channel Source Address Mode bit 1 mask. */
-#define DMA_CH_SRCDIR1_bp 5 /* Channel Source Address Mode bit 1 position. */
-
-#define DMA_CH_DESTRELOAD_gm 0x0C /* Channel Destination Address Reload group mask. */
-#define DMA_CH_DESTRELOAD_gp 2 /* Channel Destination Address Reload group position. */
-#define DMA_CH_DESTRELOAD0_bm (1<<2) /* Channel Destination Address Reload bit 0 mask. */
-#define DMA_CH_DESTRELOAD0_bp 2 /* Channel Destination Address Reload bit 0 position. */
-#define DMA_CH_DESTRELOAD1_bm (1<<3) /* Channel Destination Address Reload bit 1 mask. */
-#define DMA_CH_DESTRELOAD1_bp 3 /* Channel Destination Address Reload bit 1 position. */
-
-#define DMA_CH_DESTDIR_gm 0x03 /* Channel Destination Address Mode group mask. */
-#define DMA_CH_DESTDIR_gp 0 /* Channel Destination Address Mode group position. */
-#define DMA_CH_DESTDIR0_bm (1<<0) /* Channel Destination Address Mode bit 0 mask. */
-#define DMA_CH_DESTDIR0_bp 0 /* Channel Destination Address Mode bit 0 position. */
-#define DMA_CH_DESTDIR1_bm (1<<1) /* Channel Destination Address Mode bit 1 mask. */
-#define DMA_CH_DESTDIR1_bp 1 /* Channel Destination Address Mode bit 1 position. */
+/* Channel Source Address Mode bit 0 mask. */
+#define DMA_CH_SRCDIR0_bm (1<<4)
+/* Channel Source Address Mode bit 0 position. */
+#define DMA_CH_SRCDIR0_bp 4
+/* Channel Source Address Mode bit 1 mask. */
+#define DMA_CH_SRCDIR1_bm (1<<5)
+/* Channel Source Address Mode bit 1 position. */
+#define DMA_CH_SRCDIR1_bp 5
+
+/* Channel Destination Address Reload group mask. */
+#define DMA_CH_DESTRELOAD_gm 0x0C
+/* Channel Destination Address Reload group position. */
+#define DMA_CH_DESTRELOAD_gp 2
+/* Channel Destination Address Reload bit 0 mask. */
+#define DMA_CH_DESTRELOAD0_bm (1<<2)
+/* Channel Destination Address Reload bit 0 position. */
+#define DMA_CH_DESTRELOAD0_bp 2
+/* Channel Destination Address Reload bit 1 mask. */
+#define DMA_CH_DESTRELOAD1_bm (1<<3)
+/* Channel Destination Address Reload bit 1 position. */
+#define DMA_CH_DESTRELOAD1_bp 3
+
+/* Channel Destination Address Mode group mask. */
+#define DMA_CH_DESTDIR_gm 0x03
+/* Channel Destination Address Mode group position. */
+#define DMA_CH_DESTDIR_gp 0
+/* Channel Destination Address Mode bit 0 mask. */
+#define DMA_CH_DESTDIR0_bm (1<<0)
+/* Channel Destination Address Mode bit 0 position. */
+#define DMA_CH_DESTDIR0_bp 0
+/* Channel Destination Address Mode bit 1 mask. */
+#define DMA_CH_DESTDIR1_bm (1<<1)
+/* Channel Destination Address Mode bit 1 position. */
+#define DMA_CH_DESTDIR1_bp 1
/* DMA_CH.TRIGSRC bit masks and bit positions */
@@ -4279,29 +4481,45 @@ IO Module Instances. Mapped to memory.
/* DMA.INTFLAGS bit masks and bit positions */
-#define DMA_CH3ERRIF_bm 0x80 /* Channel 3 Block Transfer Error Interrupt Flag bit mask. */
-#define DMA_CH3ERRIF_bp 7 /* Channel 3 Block Transfer Error Interrupt Flag bit position. */
-
-#define DMA_CH2ERRIF_bm 0x40 /* Channel 2 Block Transfer Error Interrupt Flag bit mask. */
-#define DMA_CH2ERRIF_bp 6 /* Channel 2 Block Transfer Error Interrupt Flag bit position. */
-
-#define DMA_CH1ERRIF_bm 0x20 /* Channel 1 Block Transfer Error Interrupt Flag bit mask. */
-#define DMA_CH1ERRIF_bp 5 /* Channel 1 Block Transfer Error Interrupt Flag bit position. */
-
-#define DMA_CH0ERRIF_bm 0x10 /* Channel 0 Block Transfer Error Interrupt Flag bit mask. */
-#define DMA_CH0ERRIF_bp 4 /* Channel 0 Block Transfer Error Interrupt Flag bit position. */
-
-#define DMA_CH3TRNIF_bm 0x08 /* Channel 3 Transaction Complete Interrupt Flag bit mask. */
-#define DMA_CH3TRNIF_bp 3 /* Channel 3 Transaction Complete Interrupt Flag bit position. */
-
-#define DMA_CH2TRNIF_bm 0x04 /* Channel 2 Transaction Complete Interrupt Flag bit mask. */
-#define DMA_CH2TRNIF_bp 2 /* Channel 2 Transaction Complete Interrupt Flag bit position. */
-
-#define DMA_CH1TRNIF_bm 0x02 /* Channel 1 Transaction Complete Interrupt Flag bit mask. */
-#define DMA_CH1TRNIF_bp 1 /* Channel 1 Transaction Complete Interrupt Flag bit position. */
-
-#define DMA_CH0TRNIF_bm 0x01 /* Channel 0 Transaction Complete Interrupt Flag bit mask. */
-#define DMA_CH0TRNIF_bp 0 /* Channel 0 Transaction Complete Interrupt Flag bit position. */
+/* Channel 3 Block Transfer Error Interrupt Flag bit mask. */
+#define DMA_CH3ERRIF_bm 0x80
+/* Channel 3 Block Transfer Error Interrupt Flag bit position. */
+#define DMA_CH3ERRIF_bp 7
+
+/* Channel 2 Block Transfer Error Interrupt Flag bit mask. */
+#define DMA_CH2ERRIF_bm 0x40
+/* Channel 2 Block Transfer Error Interrupt Flag bit position. */
+#define DMA_CH2ERRIF_bp 6
+
+/* Channel 1 Block Transfer Error Interrupt Flag bit mask. */
+#define DMA_CH1ERRIF_bm 0x20
+/* Channel 1 Block Transfer Error Interrupt Flag bit position. */
+#define DMA_CH1ERRIF_bp 5
+
+/* Channel 0 Block Transfer Error Interrupt Flag bit mask. */
+#define DMA_CH0ERRIF_bm 0x10
+/* Channel 0 Block Transfer Error Interrupt Flag bit position. */
+#define DMA_CH0ERRIF_bp 4
+
+/* Channel 3 Transaction Complete Interrupt Flag bit mask. */
+#define DMA_CH3TRNIF_bm 0x08
+/* Channel 3 Transaction Complete Interrupt Flag bit position. */
+#define DMA_CH3TRNIF_bp 3
+
+/* Channel 2 Transaction Complete Interrupt Flag bit mask. */
+#define DMA_CH2TRNIF_bm 0x04
+/* Channel 2 Transaction Complete Interrupt Flag bit position. */
+#define DMA_CH2TRNIF_bp 2
+
+/* Channel 1 Transaction Complete Interrupt Flag bit mask. */
+#define DMA_CH1TRNIF_bm 0x02
+/* Channel 1 Transaction Complete Interrupt Flag bit position. */
+#define DMA_CH1TRNIF_bp 1
+
+/* Channel 0 Transaction Complete Interrupt Flag bit mask. */
+#define DMA_CH0TRNIF_bm 0x01
+/* Channel 0 Transaction Complete Interrupt Flag bit position. */
+#define DMA_CH0TRNIF_bp 0
/* DMA.STATUS bit masks and bit positions */
@@ -4318,16 +4536,20 @@ IO Module Instances. Mapped to memory.
#define DMA_CH0BUSY_bp 4 /* Channel 0 Block Transfer Busy bit position. */
#define DMA_CH3PEND_bm 0x08 /* Channel 3 Block Transfer Pending bit mask. */
-#define DMA_CH3PEND_bp 3 /* Channel 3 Block Transfer Pending bit position. */
+/* Channel 3 Block Transfer Pending bit position. */
+#define DMA_CH3PEND_bp 3
#define DMA_CH2PEND_bm 0x04 /* Channel 2 Block Transfer Pending bit mask. */
-#define DMA_CH2PEND_bp 2 /* Channel 2 Block Transfer Pending bit position. */
+/* Channel 2 Block Transfer Pending bit position. */
+#define DMA_CH2PEND_bp 2
#define DMA_CH1PEND_bm 0x02 /* Channel 1 Block Transfer Pending bit mask. */
-#define DMA_CH1PEND_bp 1 /* Channel 1 Block Transfer Pending bit position. */
+/* Channel 1 Block Transfer Pending bit position. */
+#define DMA_CH1PEND_bp 1
#define DMA_CH0PEND_bm 0x01 /* Channel 0 Block Transfer Pending bit mask. */
-#define DMA_CH0PEND_bp 0 /* Channel 0 Block Transfer Pending bit position. */
+/* Channel 0 Block Transfer Pending bit position. */
+#define DMA_CH0PEND_bp 0
/* EVSYS - Event System */
@@ -4500,12 +4722,18 @@ IO Module Instances. Mapped to memory.
/* EVSYS.CH0CTRL bit masks and bit positions */
-#define EVSYS_QDIRM_gm 0x60 /* Quadrature Decoder Index Recognition Mode group mask. */
-#define EVSYS_QDIRM_gp 5 /* Quadrature Decoder Index Recognition Mode group position. */
-#define EVSYS_QDIRM0_bm (1<<5) /* Quadrature Decoder Index Recognition Mode bit 0 mask. */
-#define EVSYS_QDIRM0_bp 5 /* Quadrature Decoder Index Recognition Mode bit 0 position. */
-#define EVSYS_QDIRM1_bm (1<<6) /* Quadrature Decoder Index Recognition Mode bit 1 mask. */
-#define EVSYS_QDIRM1_bp 6 /* Quadrature Decoder Index Recognition Mode bit 1 position. */
+/* Quadrature Decoder Index Recognition Mode group mask. */
+#define EVSYS_QDIRM_gm 0x60
+/* Quadrature Decoder Index Recognition Mode group position. */
+#define EVSYS_QDIRM_gp 5
+/* Quadrature Decoder Index Recognition Mode bit 0 mask. */
+#define EVSYS_QDIRM0_bm (1<<5)
+/* Quadrature Decoder Index Recognition Mode bit 0 position. */
+#define EVSYS_QDIRM0_bp 5
+/* Quadrature Decoder Index Recognition Mode bit 1 mask. */
+#define EVSYS_QDIRM1_bm (1<<6)
+/* Quadrature Decoder Index Recognition Mode bit 1 position. */
+#define EVSYS_QDIRM1_bp 6
#define EVSYS_QDIEN_bm 0x10 /* Quadrature Decoder Index Enable bit mask. */
#define EVSYS_QDIEN_bp 4 /* Quadrature Decoder Index Enable bit position. */
@@ -4691,7 +4919,8 @@ IO Module Instances. Mapped to memory.
#define NVM_FBUSY_bp 6 /* Flash Memory Busy bit position. */
#define NVM_EELOAD_bm 0x02 /* EEPROM Page Buffer Active Loading bit mask. */
-#define NVM_EELOAD_bp 1 /* EEPROM Page Buffer Active Loading bit position. */
+/* EEPROM Page Buffer Active Loading bit position. */
+#define NVM_EELOAD_bp 1
#define NVM_FLOAD_bm 0x01 /* Flash Page Buffer Active Loading bit mask. */
#define NVM_FLOAD_bp 0 /* Flash Page Buffer Active Loading bit position. */
@@ -4705,19 +4934,31 @@ IO Module Instances. Mapped to memory.
#define NVM_BLBB1_bm (1<<7) /* Boot Lock Bits - Boot Section bit 1 mask. */
#define NVM_BLBB1_bp 7 /* Boot Lock Bits - Boot Section bit 1 position. */
-#define NVM_BLBA_gm 0x30 /* Boot Lock Bits - Application Section group mask. */
-#define NVM_BLBA_gp 4 /* Boot Lock Bits - Application Section group position. */
-#define NVM_BLBA0_bm (1<<4) /* Boot Lock Bits - Application Section bit 0 mask. */
-#define NVM_BLBA0_bp 4 /* Boot Lock Bits - Application Section bit 0 position. */
-#define NVM_BLBA1_bm (1<<5) /* Boot Lock Bits - Application Section bit 1 mask. */
-#define NVM_BLBA1_bp 5 /* Boot Lock Bits - Application Section bit 1 position. */
-
-#define NVM_BLBAT_gm 0x0C /* Boot Lock Bits - Application Table group mask. */
-#define NVM_BLBAT_gp 2 /* Boot Lock Bits - Application Table group position. */
-#define NVM_BLBAT0_bm (1<<2) /* Boot Lock Bits - Application Table bit 0 mask. */
-#define NVM_BLBAT0_bp 2 /* Boot Lock Bits - Application Table bit 0 position. */
-#define NVM_BLBAT1_bm (1<<3) /* Boot Lock Bits - Application Table bit 1 mask. */
-#define NVM_BLBAT1_bp 3 /* Boot Lock Bits - Application Table bit 1 position. */
+/* Boot Lock Bits - Application Section group mask. */
+#define NVM_BLBA_gm 0x30
+/* Boot Lock Bits - Application Section group position. */
+#define NVM_BLBA_gp 4
+ /* Boot Lock Bits - Application Section bit 0 mask. */
+#define NVM_BLBA0_bm (1<<4)
+/* Boot Lock Bits - Application Section bit 0 position. */
+#define NVM_BLBA0_bp 4
+/* Boot Lock Bits - Application Section bit 1 mask. */
+#define NVM_BLBA1_bm (1<<5)
+/* Boot Lock Bits - Application Section bit 1 position. */
+#define NVM_BLBA1_bp 5
+
+/* Boot Lock Bits - Application Table group mask. */
+#define NVM_BLBAT_gm 0x0C
+/* Boot Lock Bits - Application Table group position. */
+#define NVM_BLBAT_gp 2
+/* Boot Lock Bits - Application Table bit 0 mask. */
+#define NVM_BLBAT0_bm (1<<2)
+/* Boot Lock Bits - Application Table bit 0 position. */
+#define NVM_BLBAT0_bp 2
+/* Boot Lock Bits - Application Table bit 1 mask. */
+#define NVM_BLBAT1_bm (1<<3)
+/* Boot Lock Bits - Application Table bit 1 position. */
+#define NVM_BLBAT1_bp 3
#define NVM_LB_gm 0x03 /* Lock Bits group mask. */
#define NVM_LB_gp 0 /* Lock Bits group position. */
@@ -4728,26 +4969,44 @@ IO Module Instances. Mapped to memory.
/* NVM_LOCKBITS.LOCKBITS bit masks and bit positions */
-#define NVM_LOCKBITS_BLBB_gm 0xC0 /* Boot Lock Bits - Boot Section group mask. */
-#define NVM_LOCKBITS_BLBB_gp 6 /* Boot Lock Bits - Boot Section group position. */
-#define NVM_LOCKBITS_BLBB0_bm (1<<6) /* Boot Lock Bits - Boot Section bit 0 mask. */
-#define NVM_LOCKBITS_BLBB0_bp 6 /* Boot Lock Bits - Boot Section bit 0 position. */
-#define NVM_LOCKBITS_BLBB1_bm (1<<7) /* Boot Lock Bits - Boot Section bit 1 mask. */
-#define NVM_LOCKBITS_BLBB1_bp 7 /* Boot Lock Bits - Boot Section bit 1 position. */
-
-#define NVM_LOCKBITS_BLBA_gm 0x30 /* Boot Lock Bits - Application Section group mask. */
-#define NVM_LOCKBITS_BLBA_gp 4 /* Boot Lock Bits - Application Section group position. */
-#define NVM_LOCKBITS_BLBA0_bm (1<<4) /* Boot Lock Bits - Application Section bit 0 mask. */
-#define NVM_LOCKBITS_BLBA0_bp 4 /* Boot Lock Bits - Application Section bit 0 position. */
-#define NVM_LOCKBITS_BLBA1_bm (1<<5) /* Boot Lock Bits - Application Section bit 1 mask. */
-#define NVM_LOCKBITS_BLBA1_bp 5 /* Boot Lock Bits - Application Section bit 1 position. */
-
-#define NVM_LOCKBITS_BLBAT_gm 0x0C /* Boot Lock Bits - Application Table group mask. */
-#define NVM_LOCKBITS_BLBAT_gp 2 /* Boot Lock Bits - Application Table group position. */
-#define NVM_LOCKBITS_BLBAT0_bm (1<<2) /* Boot Lock Bits - Application Table bit 0 mask. */
-#define NVM_LOCKBITS_BLBAT0_bp 2 /* Boot Lock Bits - Application Table bit 0 position. */
-#define NVM_LOCKBITS_BLBAT1_bm (1<<3) /* Boot Lock Bits - Application Table bit 1 mask. */
-#define NVM_LOCKBITS_BLBAT1_bp 3 /* Boot Lock Bits - Application Table bit 1 position. */
+/* Boot Lock Bits - Boot Section group mask. */
+#define NVM_LOCKBITS_BLBB_gm 0xC0
+/* Boot Lock Bits - Boot Section group position. */
+#define NVM_LOCKBITS_BLBB_gp 6
+/* Boot Lock Bits - Boot Section bit 0 mask. */
+#define NVM_LOCKBITS_BLBB0_bm (1<<6)
+ /* Boot Lock Bits - Boot Section bit 0 position. */
+#define NVM_LOCKBITS_BLBB0_bp 6
+/* Boot Lock Bits - Boot Section bit 1 mask. */
+#define NVM_LOCKBITS_BLBB1_bm (1<<7)
+/* Boot Lock Bits - Boot Section bit 1 position. */
+#define NVM_LOCKBITS_BLBB1_bp 7
+
+/* Boot Lock Bits - Application Section group mask. */
+#define NVM_LOCKBITS_BLBA_gm 0x30
+/* Boot Lock Bits - Application Section group position. */
+#define NVM_LOCKBITS_BLBA_gp 4
+/* Boot Lock Bits - Application Section bit 0 mask. */
+#define NVM_LOCKBITS_BLBA0_bm (1<<4)
+/* Boot Lock Bits - Application Section bit 0 position. */
+#define NVM_LOCKBITS_BLBA0_bp 4
+/* Boot Lock Bits - Application Section bit 1 mask. */
+#define NVM_LOCKBITS_BLBA1_bm (1<<5)
+/* Boot Lock Bits - Application Section bit 1 position. */
+#define NVM_LOCKBITS_BLBA1_bp 5
+
+/* Boot Lock Bits - Application Table group mask. */
+#define NVM_LOCKBITS_BLBAT_gm 0x0C
+/* Boot Lock Bits - Application Table group position. */
+#define NVM_LOCKBITS_BLBAT_gp 2
+/* Boot Lock Bits - Application Table bit 0 mask. */
+#define NVM_LOCKBITS_BLBAT0_bm (1<<2)
+/* Boot Lock Bits - Application Table bit 0 position. */
+#define NVM_LOCKBITS_BLBAT0_bp 2
+/* Boot Lock Bits - Application Table bit 1 mask. */
+#define NVM_LOCKBITS_BLBAT1_bm (1<<3)
+/* Boot Lock Bits - Application Table bit 1 position. */
+#define NVM_LOCKBITS_BLBAT1_bp 3
#define NVM_LOCKBITS_LB_gm 0x03 /* Lock Bits group mask. */
#define NVM_LOCKBITS_LB_gp 0 /* Lock Bits group position. */
@@ -4779,16 +5038,26 @@ IO Module Instances. Mapped to memory.
/* NVM_FUSES.FUSEBYTE1 bit masks and bit positions */
-#define NVM_FUSES_WDWP_gm 0xF0 /* Watchdog Window Timeout Period group mask. */
-#define NVM_FUSES_WDWP_gp 4 /* Watchdog Window Timeout Period group position. */
-#define NVM_FUSES_WDWP0_bm (1<<4) /* Watchdog Window Timeout Period bit 0 mask. */
-#define NVM_FUSES_WDWP0_bp 4 /* Watchdog Window Timeout Period bit 0 position. */
-#define NVM_FUSES_WDWP1_bm (1<<5) /* Watchdog Window Timeout Period bit 1 mask. */
-#define NVM_FUSES_WDWP1_bp 5 /* Watchdog Window Timeout Period bit 1 position. */
-#define NVM_FUSES_WDWP2_bm (1<<6) /* Watchdog Window Timeout Period bit 2 mask. */
-#define NVM_FUSES_WDWP2_bp 6 /* Watchdog Window Timeout Period bit 2 position. */
-#define NVM_FUSES_WDWP3_bm (1<<7) /* Watchdog Window Timeout Period bit 3 mask. */
-#define NVM_FUSES_WDWP3_bp 7 /* Watchdog Window Timeout Period bit 3 position. */
+/* Watchdog Window Timeout Period group mask. */
+#define NVM_FUSES_WDWP_gm 0xF0
+/* Watchdog Window Timeout Period group position. */
+#define NVM_FUSES_WDWP_gp 4
+/* Watchdog Window Timeout Period bit 0 mask. */
+#define NVM_FUSES_WDWP0_bm (1<<4)
+/* Watchdog Window Timeout Period bit 0 position. */
+#define NVM_FUSES_WDWP0_bp 4
+/* Watchdog Window Timeout Period bit 1 mask. */
+#define NVM_FUSES_WDWP1_bm (1<<5)
+/* Watchdog Window Timeout Period bit 1 position. */
+#define NVM_FUSES_WDWP1_bp 5
+/* Watchdog Window Timeout Period bit 2 mask. */
+#define NVM_FUSES_WDWP2_bm (1<<6)
+/* Watchdog Window Timeout Period bit 2 position. */
+#define NVM_FUSES_WDWP2_bp 6
+/* Watchdog Window Timeout Period bit 3 mask. */
+#define NVM_FUSES_WDWP3_bm (1<<7)
+/* Watchdog Window Timeout Period bit 3 position. */
+#define NVM_FUSES_WDWP3_bp 7
#define NVM_FUSES_WDP_gm 0x0F /* Watchdog Timeout Period group mask. */
#define NVM_FUSES_WDP_gp 0 /* Watchdog Timeout Period group position. */
@@ -4806,22 +5075,36 @@ IO Module Instances. Mapped to memory.
#define NVM_FUSES_DVSDON_bm 0x80 /* Spike Detector Enable bit mask. */
#define NVM_FUSES_DVSDON_bp 7 /* Spike Detector Enable bit position. */
-#define NVM_FUSES_BOOTRST_bm 0x40 /* Boot Loader Section Reset Vector bit mask. */
-#define NVM_FUSES_BOOTRST_bp 6 /* Boot Loader Section Reset Vector bit position. */
-
-#define NVM_FUSES_BODACT_gm 0x0C /* BOD Operation in Active Mode group mask. */
-#define NVM_FUSES_BODACT_gp 2 /* BOD Operation in Active Mode group position. */
-#define NVM_FUSES_BODACT0_bm (1<<2) /* BOD Operation in Active Mode bit 0 mask. */
-#define NVM_FUSES_BODACT0_bp 2 /* BOD Operation in Active Mode bit 0 position. */
-#define NVM_FUSES_BODACT1_bm (1<<3) /* BOD Operation in Active Mode bit 1 mask. */
-#define NVM_FUSES_BODACT1_bp 3 /* BOD Operation in Active Mode bit 1 position. */
-
-#define NVM_FUSES_BODPD_gm 0x03 /* BOD Operation in Power-Down Mode group mask. */
-#define NVM_FUSES_BODPD_gp 0 /* BOD Operation in Power-Down Mode group position. */
-#define NVM_FUSES_BODPD0_bm (1<<0) /* BOD Operation in Power-Down Mode bit 0 mask. */
-#define NVM_FUSES_BODPD0_bp 0 /* BOD Operation in Power-Down Mode bit 0 position. */
-#define NVM_FUSES_BODPD1_bm (1<<1) /* BOD Operation in Power-Down Mode bit 1 mask. */
-#define NVM_FUSES_BODPD1_bp 1 /* BOD Operation in Power-Down Mode bit 1 position. */
+/* Boot Loader Section Reset Vector bit mask. */
+#define NVM_FUSES_BOOTRST_bm 0x40
+/* Boot Loader Section Reset Vector bit position. */
+#define NVM_FUSES_BOOTRST_bp 6
+
+/* BOD Operation in Active Mode group mask. */
+#define NVM_FUSES_BODACT_gm 0x0C
+/* BOD Operation in Active Mode group position. */
+#define NVM_FUSES_BODACT_gp 2
+/* BOD Operation in Active Mode bit 0 mask. */
+#define NVM_FUSES_BODACT0_bm (1<<2)
+/* BOD Operation in Active Mode bit 0 position. */
+#define NVM_FUSES_BODACT0_bp 2
+/* BOD Operation in Active Mode bit 1 mask. */
+#define NVM_FUSES_BODACT1_bm (1<<3)
+/* BOD Operation in Active Mode bit 1 position. */
+#define NVM_FUSES_BODACT1_bp 3
+
+/* BOD Operation in Power-Down Mode group mask. */
+#define NVM_FUSES_BODPD_gm 0x03
+/* BOD Operation in Power-Down Mode group position. */
+#define NVM_FUSES_BODPD_gp 0
+/* BOD Operation in Power-Down Mode bit 0 mask. */
+#define NVM_FUSES_BODPD0_bm (1<<0)
+/* BOD Operation in Power-Down Mode bit 0 position. */
+#define NVM_FUSES_BODPD0_bp 0
+/* BOD Operation in Power-Down Mode bit 1 mask. */
+#define NVM_FUSES_BODPD1_bm (1<<1)
+/* BOD Operation in Power-Down Mode bit 1 position. */
+#define NVM_FUSES_BODPD1_bp 1
/* NVM_FUSES.FUSEBYTE4 bit masks and bit positions */
@@ -4840,17 +5123,27 @@ IO Module Instances. Mapped to memory.
/* NVM_FUSES.FUSEBYTE5 bit masks and bit positions */
-#define NVM_FUSES_EESAVE_bm 0x08 /* Preserve EEPROM Through Chip Erase bit mask. */
-#define NVM_FUSES_EESAVE_bp 3 /* Preserve EEPROM Through Chip Erase bit position. */
-
-#define NVM_FUSES_BODLVL_gm 0x07 /* Brown Out Detection Voltage Level group mask. */
-#define NVM_FUSES_BODLVL_gp 0 /* Brown Out Detection Voltage Level group position. */
-#define NVM_FUSES_BODLVL0_bm (1<<0) /* Brown Out Detection Voltage Level bit 0 mask. */
-#define NVM_FUSES_BODLVL0_bp 0 /* Brown Out Detection Voltage Level bit 0 position. */
-#define NVM_FUSES_BODLVL1_bm (1<<1) /* Brown Out Detection Voltage Level bit 1 mask. */
-#define NVM_FUSES_BODLVL1_bp 1 /* Brown Out Detection Voltage Level bit 1 position. */
-#define NVM_FUSES_BODLVL2_bm (1<<2) /* Brown Out Detection Voltage Level bit 2 mask. */
-#define NVM_FUSES_BODLVL2_bp 2 /* Brown Out Detection Voltage Level bit 2 position. */
+/* Preserve EEPROM Through Chip Erase bit mask. */
+#define NVM_FUSES_EESAVE_bm 0x08
+/* Preserve EEPROM Through Chip Erase bit position. */
+#define NVM_FUSES_EESAVE_bp 3
+
+/* Brown Out Detection Voltage Level group mask. */
+#define NVM_FUSES_BODLVL_gm 0x07
+/* Brown Out Detection Voltage Level group position. */
+#define NVM_FUSES_BODLVL_gp 0
+/* Brown Out Detection Voltage Level bit 0 mask. */
+#define NVM_FUSES_BODLVL0_bm (1<<0)
+/* Brown Out Detection Voltage Level bit 0 position. */
+#define NVM_FUSES_BODLVL0_bp 0
+/* Brown Out Detection Voltage Level bit 1 mask. */
+#define NVM_FUSES_BODLVL1_bm (1<<1)
+/* Brown Out Detection Voltage Level bit 1 position. */
+#define NVM_FUSES_BODLVL1_bp 1
+/* Brown Out Detection Voltage Level bit 2 mask. */
+#define NVM_FUSES_BODLVL2_bm (1<<2)
+/* Brown Out Detection Voltage Level bit 2 position. */
+#define NVM_FUSES_BODLVL2_bp 2
/* AC - Analog Comparator */
@@ -5309,12 +5602,18 @@ IO Module Instances. Mapped to memory.
/* RTC.INTCTRL bit masks and bit positions */
-#define RTC_COMPINTLVL_gm 0x0C /* Compare Match Interrupt Level group mask. */
-#define RTC_COMPINTLVL_gp 2 /* Compare Match Interrupt Level group position. */
-#define RTC_COMPINTLVL0_bm (1<<2) /* Compare Match Interrupt Level bit 0 mask. */
-#define RTC_COMPINTLVL0_bp 2 /* Compare Match Interrupt Level bit 0 position. */
-#define RTC_COMPINTLVL1_bm (1<<3) /* Compare Match Interrupt Level bit 1 mask. */
-#define RTC_COMPINTLVL1_bp 3 /* Compare Match Interrupt Level bit 1 position. */
+/* Compare Match Interrupt Level group mask. */
+#define RTC_COMPINTLVL_gm 0x0C
+/* Compare Match Interrupt Level group position. */
+#define RTC_COMPINTLVL_gp 2
+ /* Compare Match Interrupt Level bit 0 mask. */
+#define RTC_COMPINTLVL0_bm (1<<2)
+/* Compare Match Interrupt Level bit 0 position. */
+#define RTC_COMPINTLVL0_bp 2
+/* Compare Match Interrupt Level bit 1 mask. */
+#define RTC_COMPINTLVL1_bm (1<<3)
+/* Compare Match Interrupt Level bit 1 position. */
+#define RTC_COMPINTLVL1_bp 3
#define RTC_OVFINTLVL_gm 0x03 /* Overflow Interrupt Level group mask. */
#define RTC_OVFINTLVL_gp 0 /* Overflow Interrupt Level group position. */
@@ -5459,14 +5758,22 @@ IO Module Instances. Mapped to memory.
#define EBI_WRDLY1_bm (1<<7) /* SDRAM Write Recovery Delay bit 1 mask. */
#define EBI_WRDLY1_bp 7 /* SDRAM Write Recovery Delay bit 1 position. */
-#define EBI_ESRDLY_gm 0x38 /* SDRAM Exit-Self-refresh-to-Active Delay group mask. */
-#define EBI_ESRDLY_gp 3 /* SDRAM Exit-Self-refresh-to-Active Delay group position. */
-#define EBI_ESRDLY0_bm (1<<3) /* SDRAM Exit-Self-refresh-to-Active Delay bit 0 mask. */
-#define EBI_ESRDLY0_bp 3 /* SDRAM Exit-Self-refresh-to-Active Delay bit 0 position. */
-#define EBI_ESRDLY1_bm (1<<4) /* SDRAM Exit-Self-refresh-to-Active Delay bit 1 mask. */
-#define EBI_ESRDLY1_bp 4 /* SDRAM Exit-Self-refresh-to-Active Delay bit 1 position. */
-#define EBI_ESRDLY2_bm (1<<5) /* SDRAM Exit-Self-refresh-to-Active Delay bit 2 mask. */
-#define EBI_ESRDLY2_bp 5 /* SDRAM Exit-Self-refresh-to-Active Delay bit 2 position. */
+/* SDRAM Exit-Self-refresh-to-Active Delay group mask. */
+#define EBI_ESRDLY_gm 0x38
+/* SDRAM Exit-Self-refresh-to-Active Delay group position. */
+#define EBI_ESRDLY_gp 3
+/* SDRAM Exit-Self-refresh-to-Active Delay bit 0 mask. */
+#define EBI_ESRDLY0_bm (1<<3)
+/* SDRAM Exit-Self-refresh-to-Active Delay bit 0 position. */
+#define EBI_ESRDLY0_bp 3
+/* SDRAM Exit-Self-refresh-to-Active Delay bit 1 mask. */
+#define EBI_ESRDLY1_bm (1<<4)
+/* SDRAM Exit-Self-refresh-to-Active Delay bit 1 position. */
+#define EBI_ESRDLY1_bp 4
+/* SDRAM Exit-Self-refresh-to-Active Delay bit 2 mask. */
+#define EBI_ESRDLY2_bm (1<<5)
+/* SDRAM Exit-Self-refresh-to-Active Delay bit 2 position. */
+#define EBI_ESRDLY2_bp 5
#define EBI_ROWCOLDLY_gm 0x07 /* SDRAM Row-to-Column Delay group mask. */
#define EBI_ROWCOLDLY_gp 0 /* SDRAM Row-to-Column Delay group position. */
@@ -5562,8 +5869,10 @@ IO Module Instances. Mapped to memory.
#define TWI_SLAVE_DIEN_bm 0x20 /* Data Interrupt Enable bit mask. */
#define TWI_SLAVE_DIEN_bp 5 /* Data Interrupt Enable bit position. */
-#define TWI_SLAVE_APIEN_bm 0x10 /* Address/Stop Interrupt Enable bit mask. */
-#define TWI_SLAVE_APIEN_bp 4 /* Address/Stop Interrupt Enable bit position. */
+/* Address/Stop Interrupt Enable bit mask. */
+#define TWI_SLAVE_APIEN_bm 0x10
+/* Address/Stop Interrupt Enable bit position. */
+#define TWI_SLAVE_APIEN_bp 4
#define TWI_SLAVE_ENABLE_bm 0x08 /* Enable TWI Slave bit mask. */
#define TWI_SLAVE_ENABLE_bp 3 /* Enable TWI Slave bit position. */
@@ -6052,33 +6361,57 @@ IO Module Instances. Mapped to memory.
/* TC0.INTCTRLB bit masks and bit positions */
-#define TC0_CCDINTLVL_gm 0xC0 /* Compare or Capture D Interrupt Level group mask. */
-#define TC0_CCDINTLVL_gp 6 /* Compare or Capture D Interrupt Level group position. */
-#define TC0_CCDINTLVL0_bm (1<<6) /* Compare or Capture D Interrupt Level bit 0 mask. */
-#define TC0_CCDINTLVL0_bp 6 /* Compare or Capture D Interrupt Level bit 0 position. */
-#define TC0_CCDINTLVL1_bm (1<<7) /* Compare or Capture D Interrupt Level bit 1 mask. */
-#define TC0_CCDINTLVL1_bp 7 /* Compare or Capture D Interrupt Level bit 1 position. */
-
-#define TC0_CCCINTLVL_gm 0x30 /* Compare or Capture C Interrupt Level group mask. */
-#define TC0_CCCINTLVL_gp 4 /* Compare or Capture C Interrupt Level group position. */
-#define TC0_CCCINTLVL0_bm (1<<4) /* Compare or Capture C Interrupt Level bit 0 mask. */
-#define TC0_CCCINTLVL0_bp 4 /* Compare or Capture C Interrupt Level bit 0 position. */
-#define TC0_CCCINTLVL1_bm (1<<5) /* Compare or Capture C Interrupt Level bit 1 mask. */
-#define TC0_CCCINTLVL1_bp 5 /* Compare or Capture C Interrupt Level bit 1 position. */
-
-#define TC0_CCBINTLVL_gm 0x0C /* Compare or Capture B Interrupt Level group mask. */
-#define TC0_CCBINTLVL_gp 2 /* Compare or Capture B Interrupt Level group position. */
-#define TC0_CCBINTLVL0_bm (1<<2) /* Compare or Capture B Interrupt Level bit 0 mask. */
-#define TC0_CCBINTLVL0_bp 2 /* Compare or Capture B Interrupt Level bit 0 position. */
-#define TC0_CCBINTLVL1_bm (1<<3) /* Compare or Capture B Interrupt Level bit 1 mask. */
-#define TC0_CCBINTLVL1_bp 3 /* Compare or Capture B Interrupt Level bit 1 position. */
-
-#define TC0_CCAINTLVL_gm 0x03 /* Compare or Capture A Interrupt Level group mask. */
-#define TC0_CCAINTLVL_gp 0 /* Compare or Capture A Interrupt Level group position. */
-#define TC0_CCAINTLVL0_bm (1<<0) /* Compare or Capture A Interrupt Level bit 0 mask. */
-#define TC0_CCAINTLVL0_bp 0 /* Compare or Capture A Interrupt Level bit 0 position. */
-#define TC0_CCAINTLVL1_bm (1<<1) /* Compare or Capture A Interrupt Level bit 1 mask. */
-#define TC0_CCAINTLVL1_bp 1 /* Compare or Capture A Interrupt Level bit 1 position. */
+/* Compare or Capture D Interrupt Level group mask. */
+#define TC0_CCDINTLVL_gm 0xC0
+/* Compare or Capture D Interrupt Level group position. */
+#define TC0_CCDINTLVL_gp 6
+/* Compare or Capture D Interrupt Level bit 0 mask. */
+#define TC0_CCDINTLVL0_bm (1<<6)
+/* Compare or Capture D Interrupt Level bit 0 position. */
+#define TC0_CCDINTLVL0_bp 6
+/* Compare or Capture D Interrupt Level bit 1 mask. */
+#define TC0_CCDINTLVL1_bm (1<<7)
+/* Compare or Capture D Interrupt Level bit 1 position. */
+#define TC0_CCDINTLVL1_bp 7
+
+/* Compare or Capture C Interrupt Level group mask. */
+#define TC0_CCCINTLVL_gm 0x30
+ /* Compare or Capture C Interrupt Level group position. */
+#define TC0_CCCINTLVL_gp 4
+/* Compare or Capture C Interrupt Level bit 0 mask. */
+#define TC0_CCCINTLVL0_bm (1<<4)
+/* Compare or Capture C Interrupt Level bit 0 position. */
+#define TC0_CCCINTLVL0_bp 4
+ /* Compare or Capture C Interrupt Level bit 1 mask. */
+#define TC0_CCCINTLVL1_bm (1<<5)
+/* Compare or Capture C Interrupt Level bit 1 position. */
+#define TC0_CCCINTLVL1_bp 5
+
+/* Compare or Capture B Interrupt Level group mask. */
+#define TC0_CCBINTLVL_gm 0x0C
+/* Compare or Capture B Interrupt Level group position. */
+#define TC0_CCBINTLVL_gp 2
+/* Compare or Capture B Interrupt Level bit 0 mask. */
+#define TC0_CCBINTLVL0_bm (1<<2)
+ /* Compare or Capture B Interrupt Level bit 0 position. */
+#define TC0_CCBINTLVL0_bp 2
+/* Compare or Capture B Interrupt Level bit 1 mask. */
+#define TC0_CCBINTLVL1_bm (1<<3)
+/* Compare or Capture B Interrupt Level bit 1 position. */
+#define TC0_CCBINTLVL1_bp 3
+
+/* Compare or Capture A Interrupt Level group mask. */
+#define TC0_CCAINTLVL_gm 0x03
+/* Compare or Capture A Interrupt Level group position. */
+#define TC0_CCAINTLVL_gp 0
+/* Compare or Capture A Interrupt Level bit 0 mask. */
+#define TC0_CCAINTLVL0_bm (1<<0)
+/* Compare or Capture A Interrupt Level bit 0 position. */
+#define TC0_CCAINTLVL0_bp 0
+/* Compare or Capture A Interrupt Level bit 1 mask. */
+#define TC0_CCAINTLVL1_bm (1<<1)
+/* Compare or Capture A Interrupt Level bit 1 position. */
+#define TC0_CCAINTLVL1_bp 1
/* TC0.CTRLFCLR bit masks and bit positions */
@@ -6146,17 +6479,25 @@ IO Module Instances. Mapped to memory.
/* TC0.INTFLAGS bit masks and bit positions */
-#define TC0_CCDIF_bm 0x80 /* Compare or Capture D Interrupt Flag bit mask. */
-#define TC0_CCDIF_bp 7 /* Compare or Capture D Interrupt Flag bit position. */
-
-#define TC0_CCCIF_bm 0x40 /* Compare or Capture C Interrupt Flag bit mask. */
-#define TC0_CCCIF_bp 6 /* Compare or Capture C Interrupt Flag bit position. */
-
-#define TC0_CCBIF_bm 0x20 /* Compare or Capture B Interrupt Flag bit mask. */
-#define TC0_CCBIF_bp 5 /* Compare or Capture B Interrupt Flag bit position. */
-
-#define TC0_CCAIF_bm 0x10 /* Compare or Capture A Interrupt Flag bit mask. */
-#define TC0_CCAIF_bp 4 /* Compare or Capture A Interrupt Flag bit position. */
+/* Compare or Capture D Interrupt Flag bit mask. */
+#define TC0_CCDIF_bm 0x80
+/* Compare or Capture D Interrupt Flag bit position. */
+#define TC0_CCDIF_bp 7
+
+/* Compare or Capture C Interrupt Flag bit mask. */
+#define TC0_CCCIF_bm 0x40
+/* Compare or Capture C Interrupt Flag bit position. */
+#define TC0_CCCIF_bp 6
+
+/* Compare or Capture B Interrupt Flag bit mask. */
+#define TC0_CCBIF_bm 0x20
+/* Compare or Capture B Interrupt Flag bit position. */
+#define TC0_CCBIF_bp 5
+
+/* Compare or Capture A Interrupt Flag bit mask. */
+#define TC0_CCAIF_bm 0x10
+/* Compare or Capture A Interrupt Flag bit position. */
+#define TC0_CCAIF_bp 4
#define TC0_ERRIF_bm 0x02 /* Error Interrupt Flag bit mask. */
#define TC0_ERRIF_bp 1 /* Error Interrupt Flag bit position. */
@@ -6253,19 +6594,31 @@ IO Module Instances. Mapped to memory.
/* TC1.INTCTRLB bit masks and bit positions */
-#define TC1_CCBINTLVL_gm 0x0C /* Compare or Capture B Interrupt Level group mask. */
-#define TC1_CCBINTLVL_gp 2 /* Compare or Capture B Interrupt Level group position. */
-#define TC1_CCBINTLVL0_bm (1<<2) /* Compare or Capture B Interrupt Level bit 0 mask. */
-#define TC1_CCBINTLVL0_bp 2 /* Compare or Capture B Interrupt Level bit 0 position. */
-#define TC1_CCBINTLVL1_bm (1<<3) /* Compare or Capture B Interrupt Level bit 1 mask. */
-#define TC1_CCBINTLVL1_bp 3 /* Compare or Capture B Interrupt Level bit 1 position. */
-
-#define TC1_CCAINTLVL_gm 0x03 /* Compare or Capture A Interrupt Level group mask. */
-#define TC1_CCAINTLVL_gp 0 /* Compare or Capture A Interrupt Level group position. */
-#define TC1_CCAINTLVL0_bm (1<<0) /* Compare or Capture A Interrupt Level bit 0 mask. */
-#define TC1_CCAINTLVL0_bp 0 /* Compare or Capture A Interrupt Level bit 0 position. */
-#define TC1_CCAINTLVL1_bm (1<<1) /* Compare or Capture A Interrupt Level bit 1 mask. */
-#define TC1_CCAINTLVL1_bp 1 /* Compare or Capture A Interrupt Level bit 1 position. */
+/* Compare or Capture B Interrupt Level group mask. */
+#define TC1_CCBINTLVL_gm 0x0C
+/* Compare or Capture B Interrupt Level group position. */
+#define TC1_CCBINTLVL_gp 2
+/* Compare or Capture B Interrupt Level bit 0 mask. */
+#define TC1_CCBINTLVL0_bm (1<<2)
+ /* Compare or Capture B Interrupt Level bit 0 position. */
+#define TC1_CCBINTLVL0_bp 2
+/* Compare or Capture B Interrupt Level bit 1 mask. */
+#define TC1_CCBINTLVL1_bm (1<<3)
+/* Compare or Capture B Interrupt Level bit 1 position. */
+#define TC1_CCBINTLVL1_bp 3
+
+/* Compare or Capture A Interrupt Level group mask. */
+#define TC1_CCAINTLVL_gm 0x03
+/* Compare or Capture A Interrupt Level group position. */
+#define TC1_CCAINTLVL_gp 0
+/* Compare or Capture A Interrupt Level bit 0 mask. */
+#define TC1_CCAINTLVL0_bm (1<<0)
+/* Compare or Capture A Interrupt Level bit 0 position. */
+#define TC1_CCAINTLVL0_bp 0
+/* Compare or Capture A Interrupt Level bit 1 mask. */
+#define TC1_CCAINTLVL1_bm (1<<1)
+/* Compare or Capture A Interrupt Level bit 1 position. */
+#define TC1_CCAINTLVL1_bp 1
/* TC1.CTRLFCLR bit masks and bit positions */
@@ -6321,11 +6674,16 @@ IO Module Instances. Mapped to memory.
/* TC1.INTFLAGS bit masks and bit positions */
-#define TC1_CCBIF_bm 0x20 /* Compare or Capture B Interrupt Flag bit mask. */
-#define TC1_CCBIF_bp 5 /* Compare or Capture B Interrupt Flag bit position. */
-#define TC1_CCAIF_bm 0x10 /* Compare or Capture A Interrupt Flag bit mask. */
-#define TC1_CCAIF_bp 4 /* Compare or Capture A Interrupt Flag bit position. */
+/* Compare or Capture B Interrupt Flag bit mask. */
+#define TC1_CCBIF_bm 0x20
+/* Compare or Capture B Interrupt Flag bit position. */
+#define TC1_CCBIF_bp 5
+
+/* Compare or Capture A Interrupt Flag bit mask. */
+#define TC1_CCAIF_bm 0x10
+/* Compare or Capture A Interrupt Flag bit position. */
+#define TC1_CCAIF_bp 4
#define TC1_ERRIF_bm 0x02 /* Error Interrupt Flag bit mask. */
#define TC1_ERRIF_bp 1 /* Error Interrupt Flag bit position. */
@@ -6341,22 +6699,32 @@ IO Module Instances. Mapped to memory.
#define AWEX_CWCM_bm 0x10 /* Common Waveform Channel Mode bit mask. */
#define AWEX_CWCM_bp 4 /* Common Waveform Channel Mode bit position. */
-#define AWEX_DTICCDEN_bm 0x08 /* Dead Time Insertion Compare Channel D Enable bit mask. */
-#define AWEX_DTICCDEN_bp 3 /* Dead Time Insertion Compare Channel D Enable bit position. */
+/* Dead Time Insertion Compare Channel D Enable bit mask. */
+#define AWEX_DTICCDEN_bm 0x08
+/* Dead Time Insertion Compare Channel D Enable bit position. */
+#define AWEX_DTICCDEN_bp 3
-#define AWEX_DTICCCEN_bm 0x04 /* Dead Time Insertion Compare Channel C Enable bit mask. */
-#define AWEX_DTICCCEN_bp 2 /* Dead Time Insertion Compare Channel C Enable bit position. */
+/* Dead Time Insertion Compare Channel C Enable bit mask. */
+#define AWEX_DTICCCEN_bm 0x04
+/* Dead Time Insertion Compare Channel C Enable bit position. */
+#define AWEX_DTICCCEN_bp 2
-#define AWEX_DTICCBEN_bm 0x02 /* Dead Time Insertion Compare Channel B Enable bit mask. */
-#define AWEX_DTICCBEN_bp 1 /* Dead Time Insertion Compare Channel B Enable bit position. */
+/* Dead Time Insertion Compare Channel B Enable bit mask. */
+#define AWEX_DTICCBEN_bm 0x02
+/* Dead Time Insertion Compare Channel B Enable bit position. */
+#define AWEX_DTICCBEN_bp 1
-#define AWEX_DTICCAEN_bm 0x01 /* Dead Time Insertion Compare Channel A Enable bit mask. */
-#define AWEX_DTICCAEN_bp 0 /* Dead Time Insertion Compare Channel A Enable bit position. */
+/* Dead Time Insertion Compare Channel A Enable bit mask. */
+#define AWEX_DTICCAEN_bm 0x01
+/* Dead Time Insertion Compare Channel A Enable bit position. */
+#define AWEX_DTICCAEN_bp 0
/* AWEX.FDCTRL bit masks and bit positions */
-#define AWEX_FDDBD_bm 0x10 /* Fault Detect on Disable Break Disable bit mask. */
-#define AWEX_FDDBD_bp 4 /* Fault Detect on Disable Break Disable bit position. */
+/* Fault Detect on Disable Break Disable bit mask. */
+#define AWEX_FDDBD_bm 0x10
+/* Fault Detect on Disable Break Disable bit position. */
+#define AWEX_FDDBD_bp 4
#define AWEX_FDMODE_bm 0x04 /* Fault Detect Mode bit mask. */
#define AWEX_FDMODE_bp 2 /* Fault Detect Mode bit position. */
@@ -6373,11 +6741,15 @@ IO Module Instances. Mapped to memory.
#define AWEX_FDF_bm 0x04 /* Fault Detect Flag bit mask. */
#define AWEX_FDF_bp 2 /* Fault Detect Flag bit position. */
-#define AWEX_DTHSBUFV_bm 0x02 /* Dead Time High Side Buffer Valid bit mask. */
-#define AWEX_DTHSBUFV_bp 1 /* Dead Time High Side Buffer Valid bit position. */
+/* Dead Time High Side Buffer Valid bit mask. */
+#define AWEX_DTHSBUFV_bm 0x02
+/* Dead Time High Side Buffer Valid bit position. */
+#define AWEX_DTHSBUFV_bp 1
-#define AWEX_DTLSBUFV_bm 0x01 /* Dead Time Low Side Buffer Valid bit mask. */
-#define AWEX_DTLSBUFV_bp 0 /* Dead Time Low Side Buffer Valid bit position. */
+/* Dead Time Low Side Buffer Valid bit mask. */
+#define AWEX_DTLSBUFV_bm 0x01
+/* Dead Time Low Side Buffer Valid bit position. */
+#define AWEX_DTLSBUFV_bp 0
/* HIRES.CTRL bit masks and bit positions */
@@ -6423,17 +6795,25 @@ IO Module Instances. Mapped to memory.
#define USART_TXCINTLVL_gm 0x0C /* Transmit Interrupt Level group mask. */
#define USART_TXCINTLVL_gp 2 /* Transmit Interrupt Level group position. */
-#define USART_TXCINTLVL0_bm (1<<2) /* Transmit Interrupt Level bit 0 mask. */
+/* Transmit Interrupt Level bit 0 mask. */
+#define USART_TXCINTLVL0_bm (1<<2)
#define USART_TXCINTLVL0_bp 2 /* Transmit Interrupt Level bit 0 position. */
-#define USART_TXCINTLVL1_bm (1<<3) /* Transmit Interrupt Level bit 1 mask. */
+/* Transmit Interrupt Level bit 1 mask. */
+#define USART_TXCINTLVL1_bm (1<<3)
#define USART_TXCINTLVL1_bp 3 /* Transmit Interrupt Level bit 1 position. */
-#define USART_DREINTLVL_gm 0x03 /* Data Register Empty Interrupt Level group mask. */
-#define USART_DREINTLVL_gp 0 /* Data Register Empty Interrupt Level group position. */
-#define USART_DREINTLVL0_bm (1<<0) /* Data Register Empty Interrupt Level bit 0 mask. */
-#define USART_DREINTLVL0_bp 0 /* Data Register Empty Interrupt Level bit 0 position. */
-#define USART_DREINTLVL1_bm (1<<1) /* Data Register Empty Interrupt Level bit 1 mask. */
-#define USART_DREINTLVL1_bp 1 /* Data Register Empty Interrupt Level bit 1 position. */
+/* Data Register Empty Interrupt Level group mask. */
+#define USART_DREINTLVL_gm 0x03
+/* Data Register Empty Interrupt Level group position. */
+#define USART_DREINTLVL_gp 0
+/* Data Register Empty Interrupt Level bit 0 mask. */
+#define USART_DREINTLVL0_bm (1<<0)
+/* Data Register Empty Interrupt Level bit 0 position. */
+#define USART_DREINTLVL0_bp 0
+/* Data Register Empty Interrupt Level bit 1 mask. */
+#define USART_DREINTLVL1_bm (1<<1)
+/* Data Register Empty Interrupt Level bit 1 position. */
+#define USART_DREINTLVL1_bp 1
/* USART.CTRLB bit masks and bit positions */
@@ -6446,8 +6826,10 @@ IO Module Instances. Mapped to memory.
#define USART_CLK2X_bm 0x04 /* Double transmission speed bit mask. */
#define USART_CLK2X_bp 2 /* Double transmission speed bit position. */
-#define USART_MPCM_bm 0x02 /* Multi-processor Communication Mode bit mask. */
-#define USART_MPCM_bp 1 /* Multi-processor Communication Mode bit position. */
+/* Multi-processor Communication Mode bit mask. */
+#define USART_MPCM_bm 0x02
+/* Multi-processor Communication Mode bit position. */
+#define USART_MPCM_bp 1
#define USART_TXB8_bm 0x01 /* Transmit bit 8 bit mask. */
#define USART_TXB8_bp 0 /* Transmit bit 8 bit position. */
@@ -6484,22 +6866,38 @@ IO Module Instances. Mapped to memory.
/* USART.BAUDCTRLA bit masks and bit positions */
#define USART_BSEL_gm 0xFF /* Baud Rate Selection Bits [7:0] group mask. */
#define USART_BSEL_gp 0 /* Baud Rate Selection Bits [7:0] group position. */
-#define USART_BSEL0_bm (1<<0) /* Baud Rate Selection Bits [7:0] bit 0 mask. */
-#define USART_BSEL0_bp 0 /* Baud Rate Selection Bits [7:0] bit 0 position. */
-#define USART_BSEL1_bm (1<<1) /* Baud Rate Selection Bits [7:0] bit 1 mask. */
-#define USART_BSEL1_bp 1 /* Baud Rate Selection Bits [7:0] bit 1 position. */
-#define USART_BSEL2_bm (1<<2) /* Baud Rate Selection Bits [7:0] bit 2 mask. */
-#define USART_BSEL2_bp 2 /* Baud Rate Selection Bits [7:0] bit 2 position. */
-#define USART_BSEL3_bm (1<<3) /* Baud Rate Selection Bits [7:0] bit 3 mask. */
-#define USART_BSEL3_bp 3 /* Baud Rate Selection Bits [7:0] bit 3 position. */
-#define USART_BSEL4_bm (1<<4) /* Baud Rate Selection Bits [7:0] bit 4 mask. */
-#define USART_BSEL4_bp 4 /* Baud Rate Selection Bits [7:0] bit 4 position. */
-#define USART_BSEL5_bm (1<<5) /* Baud Rate Selection Bits [7:0] bit 5 mask. */
-#define USART_BSEL5_bp 5 /* Baud Rate Selection Bits [7:0] bit 5 position. */
-#define USART_BSEL6_bm (1<<6) /* Baud Rate Selection Bits [7:0] bit 6 mask. */
-#define USART_BSEL6_bp 6 /* Baud Rate Selection Bits [7:0] bit 6 position. */
-#define USART_BSEL7_bm (1<<7) /* Baud Rate Selection Bits [7:0] bit 7 mask. */
-#define USART_BSEL7_bp 7 /* Baud Rate Selection Bits [7:0] bit 7 position. */
+/* Baud Rate Selection Bits [7:0] bit 0 mask. */
+#define USART_BSEL0_bm (1<<0)
+/* Baud Rate Selection Bits [7:0] bit 0 position. */
+#define USART_BSEL0_bp 0
+/* Baud Rate Selection Bits [7:0] bit 1 mask. */
+#define USART_BSEL1_bm (1<<1)
+/* Baud Rate Selection Bits [7:0] bit 1 position. */
+#define USART_BSEL1_bp 1
+/* Baud Rate Selection Bits [7:0] bit 2 mask. */
+#define USART_BSEL2_bm (1<<2)
+/* Baud Rate Selection Bits [7:0] bit 2 position. */
+#define USART_BSEL2_bp 2
+/* Baud Rate Selection Bits [7:0] bit 3 mask. */
+#define USART_BSEL3_bm (1<<3)
+/* Baud Rate Selection Bits [7:0] bit 3 position. */
+#define USART_BSEL3_bp 3
+/* Baud Rate Selection Bits [7:0] bit 4 mask. */
+#define USART_BSEL4_bm (1<<4)
+/* Baud Rate Selection Bits [7:0] bit 4 position. */
+#define USART_BSEL4_bp 4
+/* Baud Rate Selection Bits [7:0] bit 5 mask. */
+#define USART_BSEL5_bm (1<<5)
+/* Baud Rate Selection Bits [7:0] bit 5 position. */
+#define USART_BSEL5_bp 5
+/* Baud Rate Selection Bits [7:0] bit 6 mask. */
+#define USART_BSEL6_bm (1<<6)
+/* Baud Rate Selection Bits [7:0] bit 6 position. */
+#define USART_BSEL6_bp 6
+/* Baud Rate Selection Bits [7:0] bit 7 mask. */
+#define USART_BSEL7_bm (1<<7)
+/* Baud Rate Selection Bits [7:0] bit 7 position. */
+#define USART_BSEL7_bp 7
/* USART.BAUDCTRLB bit masks and bit positions */
@@ -6640,14 +7038,19 @@ IO Module Instances. Mapped to memory.
#define PIN6_bp 6
#define PIN7_bm 0x80
#define PIN7_bp 7
+/** @} */
-
-/* ========== Interrupt Vector Definitions ========== */
+/**
+ * @name Interrupt Vector Definitions
+ *
+ */
+/**@{**/
/* Vector 0 is the reset vector */
/* OSC interrupt vectors */
#define OSC_XOSCF_vect_num 1
-#define OSC_XOSCF_vect _VECTOR(1) /* External Oscillator Failure Interrupt (NMI) */
+/* External Oscillator Failure Interrupt (NMI) */
+#define OSC_XOSCF_vect _VECTOR(1)
/* PORTC interrupt vectors */
#define PORTC_INT0_vect_num 2
@@ -6717,7 +7120,8 @@ IO Module Instances. Mapped to memory.
#define USARTC0_DRE_vect_num 26
#define USARTC0_DRE_vect _VECTOR(26) /* Data Register Empty Interrupt */
#define USARTC0_TXC_vect_num 27
-#define USARTC0_TXC_vect _VECTOR(27) /* Transmission Complete Interrupt */
+/* Transmission Complete Interrupt */
+#define USARTC0_TXC_vect _VECTOR(27)
/* USARTC1 interrupt vectors */
#define USARTC1_RXC_vect_num 28
@@ -6725,7 +7129,8 @@ IO Module Instances. Mapped to memory.
#define USARTC1_DRE_vect_num 29
#define USARTC1_DRE_vect _VECTOR(29) /* Data Register Empty Interrupt */
#define USARTC1_TXC_vect_num 30
-#define USARTC1_TXC_vect _VECTOR(30) /* Transmission Complete Interrupt */
+ /* Transmission Complete Interrupt */
+#define USARTC1_TXC_vect _VECTOR(30)
/* AES interrupt vectors */
#define AES_INT_vect_num 31
@@ -6807,7 +7212,8 @@ IO Module Instances. Mapped to memory.
#define USARTE0_DRE_vect_num 59
#define USARTE0_DRE_vect _VECTOR(59) /* Data Register Empty Interrupt */
#define USARTE0_TXC_vect_num 60
-#define USARTE0_TXC_vect _VECTOR(60) /* Transmission Complete Interrupt */
+/* Transmission Complete Interrupt */
+#define USARTE0_TXC_vect _VECTOR(60)
/* USARTE1 interrupt vectors */
#define USARTE1_RXC_vect_num 61
@@ -6815,7 +7221,8 @@ IO Module Instances. Mapped to memory.
#define USARTE1_DRE_vect_num 62
#define USARTE1_DRE_vect _VECTOR(62) /* Data Register Empty Interrupt */
#define USARTE1_TXC_vect_num 63
-#define USARTE1_TXC_vect _VECTOR(63) /* Transmission Complete Interrupt */
+/* Transmission Complete Interrupt */
+#define USARTE1_TXC_vect _VECTOR(63)
/* PORTD interrupt vectors */
#define PORTD_INT0_vect_num 64
@@ -6887,7 +7294,8 @@ IO Module Instances. Mapped to memory.
#define USARTD0_DRE_vect_num 89
#define USARTD0_DRE_vect _VECTOR(89) /* Data Register Empty Interrupt */
#define USARTD0_TXC_vect_num 90
-#define USARTD0_TXC_vect _VECTOR(90) /* Transmission Complete Interrupt */
+/* Transmission Complete Interrupt */
+#define USARTD0_TXC_vect _VECTOR(90)
/* USARTD1 interrupt vectors */
#define USARTD1_RXC_vect_num 91
@@ -6895,7 +7303,8 @@ IO Module Instances. Mapped to memory.
#define USARTD1_DRE_vect_num 92
#define USARTD1_DRE_vect _VECTOR(92) /* Data Register Empty Interrupt */
#define USARTD1_TXC_vect_num 93
-#define USARTD1_TXC_vect _VECTOR(93) /* Transmission Complete Interrupt */
+/* Transmission Complete Interrupt */
+#define USARTD1_TXC_vect _VECTOR(93)
/* PORTQ interrupt vectors */
#define PORTQ_INT0_vect_num 94
@@ -6965,25 +7374,32 @@ IO Module Instances. Mapped to memory.
#define USARTF0_RXC_vect_num 119
#define USARTF0_RXC_vect _VECTOR(119) /* Reception Complete Interrupt */
#define USARTF0_DRE_vect_num 120
-#define USARTF0_DRE_vect _VECTOR(120) /* Data Register Empty Interrupt */
+/* Data Register Empty Interrupt */
+#define USARTF0_DRE_vect _VECTOR(120)
#define USARTF0_TXC_vect_num 121
-#define USARTF0_TXC_vect _VECTOR(121) /* Transmission Complete Interrupt */
+/* Transmission Complete Interrupt */
+#define USARTF0_TXC_vect _VECTOR(121)
/* USARTF1 interrupt vectors */
#define USARTF1_RXC_vect_num 122
#define USARTF1_RXC_vect _VECTOR(122) /* Reception Complete Interrupt */
#define USARTF1_DRE_vect_num 123
-#define USARTF1_DRE_vect _VECTOR(123) /* Data Register Empty Interrupt */
+/* Data Register Empty Interrupt */
+#define USARTF1_DRE_vect _VECTOR(123)
#define USARTF1_TXC_vect_num 124
-#define USARTF1_TXC_vect _VECTOR(124) /* Transmission Complete Interrupt */
+/* Transmission Complete Interrupt */
+#define USARTF1_TXC_vect _VECTOR(124)
#define _VECTOR_SIZE 4 /* Size of individual vector. */
#define _VECTORS_SIZE (125 * _VECTOR_SIZE)
+/** @} */
-
-/* ========== Constants ========== */
-
+/**
+ * @name Constants
+ *
+ */
+/**@{**/
#define PROGMEM_START (0x0000)
#define PROGMEM_SIZE (139264)
#define PROGMEM_PAGE_SIZE (512)
@@ -6997,7 +7413,8 @@ IO Module Instances. Mapped to memory.
#define APPTABLE_SECTION_START (0x1E000)
#define APPTABLE_SECTION_SIZE (8192)
#define APPTABLE_SECTION_PAGE_SIZE (512)
-#define APPTABLE_SECTION_END (APPTABLE_SECTION_START + APPTABLE_SECTION_SIZE - 1)
+#define APPTABLE_SECTION_END (APPTABLE_SECTION_START + \
+ APPTABLE_SECTION_SIZE - 1)
#define BOOT_SECTION_START (0x20000)
#define BOOT_SECTION_SIZE (8192)
@@ -7052,12 +7469,14 @@ IO Module Instances. Mapped to memory.
#define USER_SIGNATURES_START (0x0000)
#define USER_SIGNATURES_SIZE (512)
#define USER_SIGNATURES_PAGE_SIZE (0)
-#define USER_SIGNATURES_END (USER_SIGNATURES_START + USER_SIGNATURES_SIZE - 1)
+#define USER_SIGNATURES_END (USER_SIGNATURES_START + \
+ USER_SIGNATURES_SIZE - 1)
#define PROD_SIGNATURES_START (0x0000)
#define PROD_SIGNATURES_SIZE (52)
#define PROD_SIGNATURES_PAGE_SIZE (0)
-#define PROD_SIGNATURES_END (PROD_SIGNATURES_START + PROD_SIGNATURES_SIZE - 1)
+#define PROD_SIGNATURES_END (PROD_SIGNATURES_START + \
+ PROD_SIGNATURES_SIZE - 1)
#define FLASHEND PROGMEM_END
#define SPM_PAGESIZE PROGMEM_PAGE_SIZE
@@ -7069,9 +7488,13 @@ IO Module Instances. Mapped to memory.
#define XRAMEND EXTERNAL_SRAM_END
#define E2END EEPROM_END
#define E2PAGESIZE EEPROM_PAGE_SIZE
+/** @} */
-
-/* ========== Fuses ========== */
+/**
+ * @name Fuses
+ *
+ */
+/**@{**/
#define FUSE_MEMORY_SIZE 6
/* Fuse Byte 0 */
@@ -7090,18 +7513,27 @@ IO Module Instances. Mapped to memory.
#define FUSE_WDP1 (unsigned char)~_BV(1) /* Watchdog Timeout Period Bit 1 */
#define FUSE_WDP2 (unsigned char)~_BV(2) /* Watchdog Timeout Period Bit 2 */
#define FUSE_WDP3 (unsigned char)~_BV(3) /* Watchdog Timeout Period Bit 3 */
-#define FUSE_WDWP0 (unsigned char)~_BV(4) /* Watchdog Window Timeout Period Bit 0 */
-#define FUSE_WDWP1 (unsigned char)~_BV(5) /* Watchdog Window Timeout Period Bit 1 */
-#define FUSE_WDWP2 (unsigned char)~_BV(6) /* Watchdog Window Timeout Period Bit 2 */
-#define FUSE_WDWP3 (unsigned char)~_BV(7) /* Watchdog Window Timeout Period Bit 3 */
+/* Watchdog Window Timeout Period Bit 0 */
+#define FUSE_WDWP0 (unsigned char)~_BV(4)
+/* Watchdog Window Timeout Period Bit 1 */
+#define FUSE_WDWP1 (unsigned char)~_BV(5)
+/* Watchdog Window Timeout Period Bit 2 */
+#define FUSE_WDWP2 (unsigned char)~_BV(6)
+/* Watchdog Window Timeout Period Bit 3 */
+#define FUSE_WDWP3 (unsigned char)~_BV(7)
#define FUSE1_DEFAULT (0xFF)
/* Fuse Byte 2 */
-#define FUSE_BODPD0 (unsigned char)~_BV(0) /* BOD Operation in Power-Down Mode Bit 0 */
-#define FUSE_BODPD1 (unsigned char)~_BV(1) /* BOD Operation in Power-Down Mode Bit 1 */
-#define FUSE_BODACT0 (unsigned char)~_BV(2) /* BOD Operation in Active Mode Bit 0 */
-#define FUSE_BODACT1 (unsigned char)~_BV(3) /* BOD Operation in Active Mode Bit 1 */
-#define FUSE_BOOTRST (unsigned char)~_BV(6) /* Boot Loader Section Reset Vector */
+/* BOD Operation in Power-Down Mode Bit 0 */
+#define FUSE_BODPD0 (unsigned char)~_BV(0)
+/* BOD Operation in Power-Down Mode Bit 1 */
+#define FUSE_BODPD1 (unsigned char)~_BV(1)
+/* BOD Operation in Active Mode Bit 0 */
+#define FUSE_BODACT0 (unsigned char)~_BV(2)
+/* BOD Operation in Active Mode Bit 1 */
+#define FUSE_BODACT1 (unsigned char)~_BV(3)
+/* Boot Loader Section Reset Vector */
+#define FUSE_BOOTRST (unsigned char)~_BV(6)
#define FUSE_DVSDON (unsigned char)~_BV(7) /* Spike Detector Enable */
#define FUSE2_DEFAULT (0xFF)
@@ -7115,25 +7547,37 @@ IO Module Instances. Mapped to memory.
#define FUSE4_DEFAULT (0xFF)
/* Fuse Byte 5 */
-#define FUSE_BODLVL0 (unsigned char)~_BV(0) /* Brown Out Detection Voltage Level Bit 0 */
-#define FUSE_BODLVL1 (unsigned char)~_BV(1) /* Brown Out Detection Voltage Level Bit 1 */
-#define FUSE_BODLVL2 (unsigned char)~_BV(2) /* Brown Out Detection Voltage Level Bit 2 */
-#define FUSE_EESAVE (unsigned char)~_BV(3) /* Preserve EEPROM Through Chip Erase */
+/* Brown Out Detection Voltage Level Bit 0 */
+#define FUSE_BODLVL0 (unsigned char)~_BV(0)
+/* Brown Out Detection Voltage Level Bit 1 */
+#define FUSE_BODLVL1 (unsigned char)~_BV(1)
+/* Brown Out Detection Voltage Level Bit 2 */
+#define FUSE_BODLVL2 (unsigned char)~_BV(2)
+/* Preserve EEPROM Through Chip Erase */
+#define FUSE_EESAVE (unsigned char)~_BV(3)
#define FUSE5_DEFAULT (0xFF)
+/** @} */
-
-/* ========== Lock Bits ========== */
+/**
+ * @name Lock Bits
+ *
+ */
+/**@{**/
#define __LOCK_BITS_EXIST
#define __BOOT_LOCK_APPLICATION_TABLE_BITS_EXIST
#define __BOOT_LOCK_APPLICATION_BITS_EXIST
#define __BOOT_LOCK_BOOT_BITS_EXIST
+/** @} */
-
-/* ========== Signature ========== */
+/**
+ * @name Signature
+ *
+ */
+/**@{**/
#define SIGNATURE_0 0x1E
#define SIGNATURE_1 0x97
#define SIGNATURE_2 0x4C
-
+/** @} */
#endif /* _AVR_ATxmega128A1_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iox128a3.h b/cpukit/score/cpu/avr/avr/iox128a3.h
index 9ec0cd8cc2..e5edf62944 100644
--- a/cpukit/score/cpu/avr/avr/iox128a3.h
+++ b/cpukit/score/cpu/avr/avr/iox128a3.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
+/**
+ * @file avr/iox128a3.h
+ *
+ * @brief Definitions for ATxmega128A3
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iox128a3.h - definitions for ATxmega128A3 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iox128a3.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATxmega128A3_H_
#define _AVR_ATxmega128A3_H_ 1
+/**
+ * @defgroup Avr_iox128a3 ATxmega128A3 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Ungrouped common registers */
#define GPIO0 _SFR_MEM8(0x0000) /* General Purpose IO Register 0 */
@@ -6437,21 +6448,21 @@ IO Module Instances. Mapped to memory.
// Generic Port Pins
-#define PIN0_bm 0x01
+#define PIN0_bm 0x01
#define PIN0_bp 0
#define PIN1_bm 0x02
#define PIN1_bp 1
-#define PIN2_bm 0x04
+#define PIN2_bm 0x04
#define PIN2_bp 2
-#define PIN3_bm 0x08
+#define PIN3_bm 0x08
#define PIN3_bp 3
-#define PIN4_bm 0x10
+#define PIN4_bm 0x10
#define PIN4_bp 4
-#define PIN5_bm 0x20
+#define PIN5_bm 0x20
#define PIN5_bp 5
-#define PIN6_bm 0x40
+#define PIN6_bm 0x40
#define PIN6_bp 6
-#define PIN7_bm 0x80
+#define PIN7_bm 0x80
#define PIN7_bp 7
@@ -6885,5 +6896,5 @@ IO Module Instances. Mapped to memory.
#define SIGNATURE_2 0x42
+/**@}*/
#endif /* _AVR_ATxmega128A3_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iox16a4.h b/cpukit/score/cpu/avr/avr/iox16a4.h
index 1fcaab401f..cff1d53360 100644
--- a/cpukit/score/cpu/avr/avr/iox16a4.h
+++ b/cpukit/score/cpu/avr/avr/iox16a4.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
+/**
+ * @file avr/iox16a4.h
+ *
+ * @brief Definitions for ATxmega16A4
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iox16a4.h - definitions for ATxmega16A4 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,8 +46,14 @@
# define _AVR_IOXXX_H_ "iox16a4.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
+/**
+ * @defgroup Avr_iox16a4 ATxmega16A4 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_ATxmega16A4_H_
#define _AVR_ATxmega16A4_H_ 1
@@ -6251,21 +6262,21 @@ IO Module Instances. Mapped to memory.
// Generic Port Pins
-#define PIN0_bm 0x01
+#define PIN0_bm 0x01
#define PIN0_bp 0
#define PIN1_bm 0x02
#define PIN1_bp 1
-#define PIN2_bm 0x04
+#define PIN2_bm 0x04
#define PIN2_bp 2
-#define PIN3_bm 0x08
+#define PIN3_bm 0x08
#define PIN3_bp 3
-#define PIN4_bm 0x10
+#define PIN4_bm 0x10
#define PIN4_bp 4
-#define PIN5_bm 0x20
+#define PIN5_bm 0x20
#define PIN5_bp 5
-#define PIN6_bm 0x40
+#define PIN6_bm 0x40
#define PIN6_bp 6
-#define PIN7_bm 0x80
+#define PIN7_bm 0x80
#define PIN7_bp 7
@@ -6640,5 +6651,5 @@ IO Module Instances. Mapped to memory.
#define SIGNATURE_2 0x41
+/**@}*/
#endif /* _AVR_ATxmega16A4_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iox16d4.h b/cpukit/score/cpu/avr/avr/iox16d4.h
index dac0bbad29..0bb088759c 100644
--- a/cpukit/score/cpu/avr/avr/iox16d4.h
+++ b/cpukit/score/cpu/avr/avr/iox16d4.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
+/**
+ * @file avr/iox16d4.h
+ *
+ * @brief Definitions for ATxmega16D4
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iox16d4.h - definitions for ATxmega16D4 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iox16d4.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATxmega16D4_H_
#define _AVR_ATxmega16D4_H_ 1
+/**
+ * @defgroup Avr_iox16d4 ATxmega16D4 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Ungrouped common registers */
#define GPIO0 _SFR_MEM8(0x0000) /* General Purpose IO Register 0 */
@@ -5218,21 +5229,21 @@ IO Module Instances. Mapped to memory.
// Generic Port Pins
-#define PIN0_bm 0x01
+#define PIN0_bm 0x01
#define PIN0_bp 0
#define PIN1_bm 0x02
#define PIN1_bp 1
-#define PIN2_bm 0x04
+#define PIN2_bm 0x04
#define PIN2_bp 2
-#define PIN3_bm 0x08
+#define PIN3_bm 0x08
#define PIN3_bp 3
-#define PIN4_bm 0x10
+#define PIN4_bm 0x10
#define PIN4_bp 4
-#define PIN5_bm 0x20
+#define PIN5_bm 0x20
#define PIN5_bp 5
-#define PIN6_bm 0x40
+#define PIN6_bm 0x40
#define PIN6_bp 6
-#define PIN7_bm 0x80
+#define PIN7_bm 0x80
#define PIN7_bp 7
@@ -5537,5 +5548,5 @@ IO Module Instances. Mapped to memory.
#define SIGNATURE_2 0x42
+/**@}*/
#endif /* _AVR_ATxmega16D4_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iox192a3.h b/cpukit/score/cpu/avr/avr/iox192a3.h
index 9da95a119c..e0f7c26ab2 100644
--- a/cpukit/score/cpu/avr/avr/iox192a3.h
+++ b/cpukit/score/cpu/avr/avr/iox192a3.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
+/**
+ * @file avr/iox192a3.h
+ *
+ * @brief Definitions for ATxmega192A3
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iox192a3.h - definitions for ATxmega192A3 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iox192a3.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATxmega192A3_H_
#define _AVR_ATxmega192A3_H_ 1
+/**
+ * @defgroup Avr_iox192a3 ATxmega192A3 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Ungrouped common registers */
#define GPIO0 _SFR_MEM8(0x0000) /* General Purpose IO Register 0 */
@@ -6437,21 +6448,21 @@ IO Module Instances. Mapped to memory.
// Generic Port Pins
-#define PIN0_bm 0x01
+#define PIN0_bm 0x01
#define PIN0_bp 0
#define PIN1_bm 0x02
#define PIN1_bp 1
-#define PIN2_bm 0x04
+#define PIN2_bm 0x04
#define PIN2_bp 2
-#define PIN3_bm 0x08
+#define PIN3_bm 0x08
#define PIN3_bp 3
-#define PIN4_bm 0x10
+#define PIN4_bm 0x10
#define PIN4_bp 4
-#define PIN5_bm 0x20
+#define PIN5_bm 0x20
#define PIN5_bp 5
-#define PIN6_bm 0x40
+#define PIN6_bm 0x40
#define PIN6_bp 6
-#define PIN7_bm 0x80
+#define PIN7_bm 0x80
#define PIN7_bp 7
@@ -6885,5 +6896,5 @@ IO Module Instances. Mapped to memory.
#define SIGNATURE_2 0x44
+/**@}*/
#endif /* _AVR_ATxmega192A3_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iox192d3.h b/cpukit/score/cpu/avr/avr/iox192d3.h
index f36fc58f9f..e29356e3cf 100644
--- a/cpukit/score/cpu/avr/avr/iox192d3.h
+++ b/cpukit/score/cpu/avr/avr/iox192d3.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
+/**
+ * @file avr/iox192d3.h
+ *
+ * @brief Definitions for ATxmega192D3
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iox192d3.h - definitions for ATxmega192D3 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iox192d3.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATxmega192D3_H_
#define _AVR_ATxmega192D3_H_ 1
+/**
+ * @defgroup Avr_iox192d3 ATxmega192D3 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Ungrouped common registers */
#define GPIOR0 _SFR_MEM8(0x0000) /* General Purpose IO Register 0 */
@@ -5294,21 +5305,21 @@ IO Module Instances. Mapped to memory.
// Generic Port Pins
-#define PIN0_bm 0x01
+#define PIN0_bm 0x01
#define PIN0_bp 0
#define PIN1_bm 0x02
#define PIN1_bp 1
-#define PIN2_bm 0x04
+#define PIN2_bm 0x04
#define PIN2_bp 2
-#define PIN3_bm 0x08
+#define PIN3_bm 0x08
#define PIN3_bp 3
-#define PIN4_bm 0x10
+#define PIN4_bm 0x10
#define PIN4_bp 4
-#define PIN5_bm 0x20
+#define PIN5_bm 0x20
#define PIN5_bp 5
-#define PIN6_bm 0x40
+#define PIN6_bm 0x40
#define PIN6_bp 6
-#define PIN7_bm 0x80
+#define PIN7_bm 0x80
#define PIN7_bp 7
@@ -5640,6 +5651,5 @@ IO Module Instances. Mapped to memory.
#define SIGNATURE_1 0x97
#define SIGNATURE_2 0x49
-
+/**@}*/
#endif /* _AVR_ATxmega192D3_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iox256a3b.h b/cpukit/score/cpu/avr/avr/iox256a3b.h
index 69e29f6bee..deee492cca 100644
--- a/cpukit/score/cpu/avr/avr/iox256a3b.h
+++ b/cpukit/score/cpu/avr/avr/iox256a3b.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
+/**
+ * @file avr/iox256a3b.h
+ *
+ * @brief Definitions for ATxmega256A3B
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iox256a3b.h - definitions for ATxmega256A3B */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iox256a3b.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATxmega256A3B_H_
#define _AVR_ATxmega256A3B_H_ 1
+/**
+ * @defgroup Avr_iox256a3b ATxmega256A3B Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Ungrouped common registers */
#define GPIO0 _SFR_MEM8(0x0000) /* General Purpose IO Register 0 */
@@ -6451,21 +6462,21 @@ IO Module Instances. Mapped to memory.
// Generic Port Pins
-#define PIN0_bm 0x01
+#define PIN0_bm 0x01
#define PIN0_bp 0
#define PIN1_bm 0x02
#define PIN1_bp 1
-#define PIN2_bm 0x04
+#define PIN2_bm 0x04
#define PIN2_bp 2
-#define PIN3_bm 0x08
+#define PIN3_bm 0x08
#define PIN3_bp 3
-#define PIN4_bm 0x10
+#define PIN4_bm 0x10
#define PIN4_bp 4
-#define PIN5_bm 0x20
+#define PIN5_bm 0x20
#define PIN5_bp 5
-#define PIN6_bm 0x40
+#define PIN6_bm 0x40
#define PIN6_bp 6
-#define PIN7_bm 0x80
+#define PIN7_bm 0x80
#define PIN7_bp 7
@@ -6887,5 +6898,5 @@ IO Module Instances. Mapped to memory.
#define SIGNATURE_2 0x43
+/**@}*/
#endif /* _AVR_ATxmega256A3B_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iox256d3.h b/cpukit/score/cpu/avr/avr/iox256d3.h
index 83d242f865..a49879811d 100644
--- a/cpukit/score/cpu/avr/avr/iox256d3.h
+++ b/cpukit/score/cpu/avr/avr/iox256d3.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
+/**
+ * @file avr/iox256d3.h
+ *
+ * @brief Definitions for ATxmega256D3
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iox256d3.h - definitions for ATxmega256D3 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,19 @@
# define _AVR_IOXXX_H_ "iox256d3.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATxmega256D3_H_
#define _AVR_ATxmega256D3_H_ 1
+/**
+ * @defgroup AvrDef_iox256d3 ATxmega256D3 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
/* Ungrouped common registers */
#define GPIOR0 _SFR_MEM8(0x0000) /* General Purpose IO Register 0 */
@@ -5103,21 +5115,21 @@ IO Module Instances. Mapped to memory.
// Generic Port Pins
-#define PIN0_bm 0x01
+#define PIN0_bm 0x01
#define PIN0_bp 0
#define PIN1_bm 0x02
#define PIN1_bp 1
-#define PIN2_bm 0x04
+#define PIN2_bm 0x04
#define PIN2_bp 2
-#define PIN3_bm 0x08
+#define PIN3_bm 0x08
#define PIN3_bp 3
-#define PIN4_bm 0x10
+#define PIN4_bm 0x10
#define PIN4_bp 4
-#define PIN5_bm 0x20
+#define PIN5_bm 0x20
#define PIN5_bp 5
-#define PIN6_bm 0x40
+#define PIN6_bm 0x40
#define PIN6_bp 6
-#define PIN7_bm 0x80
+#define PIN7_bm 0x80
#define PIN7_bp 7
@@ -5451,5 +5463,6 @@ IO Module Instances. Mapped to memory.
#define SIGNATURE_2 0x44
+/** @} */
#endif /* _AVR_ATxmega256D3_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iox32a4.h b/cpukit/score/cpu/avr/avr/iox32a4.h
index 7cbf7de2e7..f0eba4ecc0 100644
--- a/cpukit/score/cpu/avr/avr/iox32a4.h
+++ b/cpukit/score/cpu/avr/avr/iox32a4.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
+/**
+ * @file avr/iox32a4.h
+ *
+ * @brief Definitions for ATxmega32A4
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iox32a4.h - definitions for ATxmega32A4 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iox32a4.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATxmega32A4_H_
#define _AVR_ATxmega32A4_H_ 1
+/**
+ * @defgroup Avr_iox32a4 ATxmega32A4 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Ungrouped common registers */
#define GPIO0 _SFR_MEM8(0x0000) /* General Purpose IO Register 0 */
@@ -6251,21 +6262,21 @@ IO Module Instances. Mapped to memory.
// Generic Port Pins
-#define PIN0_bm 0x01
+#define PIN0_bm 0x01
#define PIN0_bp 0
#define PIN1_bm 0x02
#define PIN1_bp 1
-#define PIN2_bm 0x04
+#define PIN2_bm 0x04
#define PIN2_bp 2
-#define PIN3_bm 0x08
+#define PIN3_bm 0x08
#define PIN3_bp 3
-#define PIN4_bm 0x10
+#define PIN4_bm 0x10
#define PIN4_bp 4
-#define PIN5_bm 0x20
+#define PIN5_bm 0x20
#define PIN5_bp 5
-#define PIN6_bm 0x40
+#define PIN6_bm 0x40
#define PIN6_bp 6
-#define PIN7_bm 0x80
+#define PIN7_bm 0x80
#define PIN7_bp 7
@@ -6640,5 +6651,5 @@ IO Module Instances. Mapped to memory.
#define SIGNATURE_2 0x41
+/**@}*/
#endif /* _AVR_ATxmega32A4_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iox32d4.h b/cpukit/score/cpu/avr/avr/iox32d4.h
index 7f7d710704..248e32cadf 100644
--- a/cpukit/score/cpu/avr/avr/iox32d4.h
+++ b/cpukit/score/cpu/avr/avr/iox32d4.h
@@ -1,6 +1,13 @@
+/**
+ * @file
+ *
+ * @brief Definitions for ATxmega32D4
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
+
/* Copyright (c) 2009 Atmel Corporation
All rights reserved.
-
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
@@ -47,6 +54,14 @@
#ifndef _AVR_ATxmega32D4_H_
#define _AVR_ATxmega32D4_H_ 1
+/**
+ * @defgroup AvrDef_iox32d4 ATxmega32D4 Definitions
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
/* Ungrouped common registers */
#define GPIO0 _SFR_MEM8(0x0000) /* General Purpose IO Register 0 */
@@ -5539,6 +5554,7 @@ IO Module Instances. Mapped to memory.
#define SIGNATURE_1 0x95
#define SIGNATURE_2 0x42
+/** @} */
#endif /* _AVR_ATxmega32D4_H_ */
diff --git a/cpukit/score/cpu/avr/avr/iox64a1.h b/cpukit/score/cpu/avr/avr/iox64a1.h
index ba9d4c1a8d..73acf1afdc 100644
--- a/cpukit/score/cpu/avr/avr/iox64a1.h
+++ b/cpukit/score/cpu/avr/avr/iox64a1.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
+/**
+ * @file avr/iox64a1.h
+ *
+ * @brief Definitions for ATxmega64A1
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iox64a1.h - definitions for ATxmega64A1 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iox64a1.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATxmega64A1_H_
#define _AVR_ATxmega64A1_H_ 1
+/**
+ * @defgroup Avr_iox64a1 ATxmega64A1 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Ungrouped common registers */
#define GPIO0 _SFR_MEM8(0x0000) /* General Purpose IO Register 0 */
@@ -6624,21 +6635,21 @@ IO Module Instances. Mapped to memory.
// Generic Port Pins
-#define PIN0_bm 0x01
+#define PIN0_bm 0x01
#define PIN0_bp 0
#define PIN1_bm 0x02
#define PIN1_bp 1
-#define PIN2_bm 0x04
+#define PIN2_bm 0x04
#define PIN2_bp 2
-#define PIN3_bm 0x08
+#define PIN3_bm 0x08
#define PIN3_bp 3
-#define PIN4_bm 0x10
+#define PIN4_bm 0x10
#define PIN4_bp 4
-#define PIN5_bm 0x20
+#define PIN5_bm 0x20
#define PIN5_bp 5
-#define PIN6_bm 0x40
+#define PIN6_bm 0x40
#define PIN6_bp 6
-#define PIN7_bm 0x80
+#define PIN7_bm 0x80
#define PIN7_bp 7
@@ -7135,5 +7146,5 @@ IO Module Instances. Mapped to memory.
#define SIGNATURE_2 0x4E
+/**@}*/
#endif /* _AVR_ATxmega64A1_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iox64a3.h b/cpukit/score/cpu/avr/avr/iox64a3.h
index 7abb12a732..a3a73a44e9 100644
--- a/cpukit/score/cpu/avr/avr/iox64a3.h
+++ b/cpukit/score/cpu/avr/avr/iox64a3.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
+/**
+ * @file avr/iox64a3.h
+ *
+ * @brief Definitions for ATxmega64A3
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iox64a3.h - definitions for ATxmega64A3 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iox64a3.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATxmega64A3_H_
#define _AVR_ATxmega64A3_H_ 1
+/**
+ * @defgroup Avr_iox64a3 ATxmega64A3 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Ungrouped common registers */
#define GPIO0 _SFR_MEM8(0x0000) /* General Purpose IO Register 0 */
@@ -6437,21 +6448,21 @@ IO Module Instances. Mapped to memory.
// Generic Port Pins
-#define PIN0_bm 0x01
+#define PIN0_bm 0x01
#define PIN0_bp 0
#define PIN1_bm 0x02
#define PIN1_bp 1
-#define PIN2_bm 0x04
+#define PIN2_bm 0x04
#define PIN2_bp 2
-#define PIN3_bm 0x08
+#define PIN3_bm 0x08
#define PIN3_bp 3
-#define PIN4_bm 0x10
+#define PIN4_bm 0x10
#define PIN4_bp 4
-#define PIN5_bm 0x20
+#define PIN5_bm 0x20
#define PIN5_bp 5
-#define PIN6_bm 0x40
+#define PIN6_bm 0x40
#define PIN6_bp 6
-#define PIN7_bm 0x80
+#define PIN7_bm 0x80
#define PIN7_bp 7
@@ -6884,6 +6895,5 @@ IO Module Instances. Mapped to memory.
#define SIGNATURE_1 0x96
#define SIGNATURE_2 0x42
-
+/**@}*/
#endif /* _AVR_ATxmega64A3_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/iox64d3.h b/cpukit/score/cpu/avr/avr/iox64d3.h
index b4954f49dc..5a0bdb5584 100644
--- a/cpukit/score/cpu/avr/avr/iox64d3.h
+++ b/cpukit/score/cpu/avr/avr/iox64d3.h
@@ -1,37 +1,42 @@
-/* Copyright (c) 2009 Atmel Corporation
- All rights reserved.
+/**
+ * @file avr/iox64d3.h
+ *
+ * @brief Definitions for ATxmega64D3
+ *
+ * This file should only be included from <avr/io.h>, never directly.
+ */
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/iox64d3.h - definitions for ATxmega64D3 */
-
-/* This file should only be included from <avr/io.h>, never directly. */
+/*
+ * Copyright (c) 2009 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_IO_H_
# error "Include <avr/io.h> instead of this file."
@@ -41,12 +46,18 @@
# define _AVR_IOXXX_H_ "iox64d3.h"
#else
# error "Attempt to include more than one <avr/ioXXX.h> file."
-#endif
+#endif
#ifndef _AVR_ATxmega64D3_H_
#define _AVR_ATxmega64D3_H_ 1
+/**
+ * @defgroup Avr_iox64d3 ATxmega64D3 Definitions
+ *
+ * @ingroup avr
+ */
+/**@{*/
/* Ungrouped common registers */
#define GPIOR0 _SFR_MEM8(0x0000) /* General Purpose IO Register 0 */
@@ -5308,21 +5319,21 @@ IO Module Instances. Mapped to memory.
// Generic Port Pins
-#define PIN0_bm 0x01
+#define PIN0_bm 0x01
#define PIN0_bp 0
#define PIN1_bm 0x02
#define PIN1_bp 1
-#define PIN2_bm 0x04
+#define PIN2_bm 0x04
#define PIN2_bp 2
-#define PIN3_bm 0x08
+#define PIN3_bm 0x08
#define PIN3_bp 3
-#define PIN4_bm 0x10
+#define PIN4_bm 0x10
#define PIN4_bp 4
-#define PIN5_bm 0x20
+#define PIN5_bm 0x20
#define PIN5_bp 5
-#define PIN6_bm 0x40
+#define PIN6_bm 0x40
#define PIN6_bp 6
-#define PIN7_bm 0x80
+#define PIN7_bm 0x80
#define PIN7_bp 7
@@ -5654,6 +5665,5 @@ IO Module Instances. Mapped to memory.
#define SIGNATURE_1 0x96
#define SIGNATURE_2 0x4A
-
+/**@}*/
#endif /* _AVR_ATxmega64D3_H_ */
-
diff --git a/cpukit/score/cpu/avr/avr/lock.h b/cpukit/score/cpu/avr/avr/lock.h
index 5ffb769513..182f0f4cd8 100644
--- a/cpukit/score/cpu/avr/avr/lock.h
+++ b/cpukit/score/cpu/avr/avr/lock.h
@@ -1,187 +1,191 @@
-/* Copyright (c) 2007, Atmel Corporation
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/* avr/lock.h - Lock Bits API */
+/**
+ * @file avr/lock.h
+ *
+ * @brief Lock Bits API
+ * \par Introduction
+ *
+ * The Lockbit API allows a user to specify the lockbit settings for the
+ * specific AVR device they are compiling for. These lockbit settings will be
+ * placed in a special section in the ELF output file, after linking.
+ *
+ * Programming tools can take advantage of the lockbit information embedded in
+ * the ELF file, by extracting this information and determining if the lockbits
+ * need to be programmed after programming the Flash and EEPROM memories.
+ * This also allows a single ELF file to contain all the
+ * information needed to program an AVR.
+ *
+ * To use the Lockbit API, include the <avr/io.h> header file, which in turn
+ * automatically includes the individual I/O header file and the <avr/lock.h>
+ * file. These other two files provides everything necessary to set the AVR
+ * lockbits.
+ *
+ * \par Lockbit API
+ *
+ * Each I/O header file may define up to 3 macros that controls what kinds
+ * of lockbits are available to the user.
+ *
+ * If __LOCK_BITS_EXIST is defined, then two lock bits are available to the
+ * user and 3 mode settings are defined for these two bits.
+ *
+ * If __BOOT_LOCK_BITS_0_EXIST is defined, then the two BLB0 lock bits are
+ * available to the user and 4 mode settings are defined for these two bits.
+ *
+ * If __BOOT_LOCK_BITS_1_EXIST is defined, then the two BLB1 lock bits are
+ * available to the user and 4 mode settings are defined for these two bits.
+ *
+ * If __BOOT_LOCK_APPLICATION_TABLE_BITS_EXIST is defined then two lock bits
+ * are available to set the locking mode for the Application Table Section
+ * (which is used in the XMEGA family).
+ *
+ * If __BOOT_LOCK_APPLICATION_BITS_EXIST is defined then two lock bits are
+ * available to set the locking mode for the Application Section (which is used
+ * in the XMEGA family).
+ *
+ * If __BOOT_LOCK_BOOT_BITS_EXIST is defined then two lock bits are available
+ * to set the locking mode for the Boot Loader Section (which is used in the
+ * XMEGA family).
+ *
+ * The AVR lockbit modes have inverted values, logical 1 for an unprogrammed
+ * (disabled) bit and logical 0 for a programmed (enabled) bit. The defined
+ * macros for each individual lock bit represent this in their definition by a
+ * bit-wise inversion of a mask. For example, the LB_MODE_3 macro is defined
+ * as:
+ * \code
+ * #define LB_MODE_3 (0xFC)
+ * \endcode
+ *
+ * To combine the lockbit mode macros together to represent a whole byte,
+ * use the bitwise AND operator, like so:
+ * \code
+ * (LB_MODE_3 & BLB0_MODE_2)
+ * \endcode
+ *
+ * <avr/lock.h> also defines a macro that provides a default lockbit value:
+ * LOCKBITS_DEFAULT which is defined to be 0xFF.
+ *
+ * See the AVR device specific datasheet for more details about these
+ * lock bits and the available mode settings.
+ *
+ * A convenience macro, LOCKMEM, is defined as a GCC attribute for a
+ * custom-named section of ".lock".
+ *
+ * A convenience macro, LOCKBITS, is defined that declares a variable, __lock,
+ * of type unsigned char with the attribute defined by LOCKMEM. This variable
+ * allows the end user to easily set the lockbit data.
+ *
+ * \note If a device-specific I/O header file has previously defined LOCKMEM,
+ * then LOCKMEM is not redefined. If a device-specific I/O header file has
+ * previously defined LOCKBITS, then LOCKBITS is not redefined. LOCKBITS is
+ * currently known to be defined in the I/O header files for the XMEGA devices.
+ *
+ * \par API Usage Example
+ *
+ * Putting all of this together is easy:
+ *
+ * \code
+ * #include <avr/io.h>
+ *
+ * LOCKBITS = (LB_MODE_1 & BLB0_MODE_3 & BLB1_MODE_4);
+ *
+ * int main(void)
+ * {
+ * return 0;
+ * }
+ * \endcode
+ *
+ * Or:
+ *
+ * \code
+ * #include <avr/io.h>
+ *
+ * unsigned char __lock __attribute__((section (".lock"))) =
+ * (LB_MODE_1 & BLB0_MODE_3 & BLB1_MODE_4);
+ *
+ * int main(void)
+ * {
+ * return 0;
+ * }
+ * \endcode
+ *
+ *
+ *
+ * However there are a number of caveats that you need to be aware of to
+ * use this API properly.
+ *
+ * Be sure to include <avr/io.h> to get all of the definitions for the API.
+ * The LOCKBITS macro defines a global variable to store the lockbit data. This
+ * variable is assigned to its own linker section. Assign the desired lockbit
+ * values immediately in the variable initialization.
+ *
+ * The .lock section in the ELF file will get its values from the initial
+ * variable assignment ONLY. This means that you can NOT assign values to
+ * this variable in functions and the new values will not be put into the
+ * ELF .lock section.
+ *
+ * The global variable is declared in the LOCKBITS macro has two leading
+ * underscores, which means that it is reserved for the "implementation",
+ * meaning the library, so it will not conflict with a user-named variable.
+ *
+ * You must initialize the lockbit variable to some meaningful value, even
+ * if it is the default value. This is because the lockbits default to a
+ * logical 1, meaning unprogrammed. Normal uninitialized data defaults to all
+ * locgial zeros. So it is vital that all lockbits are initialized, even with
+ * default data. If they are not, then the lockbits may not programmed to the
+ * desired settings and can possibly put your device into an unrecoverable
+ * state.
+ *
+ * Be sure to have the -mmcu=<em>device</em> flag in your compile command line and
+ * your linker command line to have the correct device selected and to have
+ * the correct I/O header file included when you include <avr/io.h>.
+ *
+ * You can print out the contents of the .lock section in the ELF file by
+ * using this command line:
+ * \code
+ * avr-objdump -s -j .lock <ELF file>
+ * \endcode
+ */
+
+/*
+ * Copyright (c) 2007, Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_LOCK_H_
#define _AVR_LOCK_H_ 1
-
-/** \file */
-/** \defgroup avr_lock <avr/lock.h>: Lockbit Support
-
- \par Introduction
-
- The Lockbit API allows a user to specify the lockbit settings for the
- specific AVR device they are compiling for. These lockbit settings will be
- placed in a special section in the ELF output file, after linking.
-
- Programming tools can take advantage of the lockbit information embedded in
- the ELF file, by extracting this information and determining if the lockbits
- need to be programmed after programming the Flash and EEPROM memories.
- This also allows a single ELF file to contain all the
- information needed to program an AVR.
-
- To use the Lockbit API, include the <avr/io.h> header file, which in turn
- automatically includes the individual I/O header file and the <avr/lock.h>
- file. These other two files provides everything necessary to set the AVR
- lockbits.
-
- \par Lockbit API
-
- Each I/O header file may define up to 3 macros that controls what kinds
- of lockbits are available to the user.
-
- If __LOCK_BITS_EXIST is defined, then two lock bits are available to the
- user and 3 mode settings are defined for these two bits.
-
- If __BOOT_LOCK_BITS_0_EXIST is defined, then the two BLB0 lock bits are
- available to the user and 4 mode settings are defined for these two bits.
-
- If __BOOT_LOCK_BITS_1_EXIST is defined, then the two BLB1 lock bits are
- available to the user and 4 mode settings are defined for these two bits.
-
- If __BOOT_LOCK_APPLICATION_TABLE_BITS_EXIST is defined then two lock bits
- are available to set the locking mode for the Application Table Section
- (which is used in the XMEGA family).
-
- If __BOOT_LOCK_APPLICATION_BITS_EXIST is defined then two lock bits are
- available to set the locking mode for the Application Section (which is used
- in the XMEGA family).
-
- If __BOOT_LOCK_BOOT_BITS_EXIST is defined then two lock bits are available
- to set the locking mode for the Boot Loader Section (which is used in the
- XMEGA family).
-
- The AVR lockbit modes have inverted values, logical 1 for an unprogrammed
- (disabled) bit and logical 0 for a programmed (enabled) bit. The defined
- macros for each individual lock bit represent this in their definition by a
- bit-wise inversion of a mask. For example, the LB_MODE_3 macro is defined
- as:
- \code
- #define LB_MODE_3 (0xFC)
-` \endcode
-
- To combine the lockbit mode macros together to represent a whole byte,
- use the bitwise AND operator, like so:
- \code
- (LB_MODE_3 & BLB0_MODE_2)
- \endcode
-
- <avr/lock.h> also defines a macro that provides a default lockbit value:
- LOCKBITS_DEFAULT which is defined to be 0xFF.
-
- See the AVR device specific datasheet for more details about these
- lock bits and the available mode settings.
-
- A convenience macro, LOCKMEM, is defined as a GCC attribute for a
- custom-named section of ".lock".
-
- A convenience macro, LOCKBITS, is defined that declares a variable, __lock,
- of type unsigned char with the attribute defined by LOCKMEM. This variable
- allows the end user to easily set the lockbit data.
-
- \note If a device-specific I/O header file has previously defined LOCKMEM,
- then LOCKMEM is not redefined. If a device-specific I/O header file has
- previously defined LOCKBITS, then LOCKBITS is not redefined. LOCKBITS is
- currently known to be defined in the I/O header files for the XMEGA devices.
-
- \par API Usage Example
-
- Putting all of this together is easy:
-
- \code
- #include <avr/io.h>
-
- LOCKBITS = (LB_MODE_1 & BLB0_MODE_3 & BLB1_MODE_4);
-
- int main(void)
- {
- return 0;
- }
- \endcode
-
- Or:
-
- \code
- #include <avr/io.h>
-
- unsigned char __lock __attribute__((section (".lock"))) =
- (LB_MODE_1 & BLB0_MODE_3 & BLB1_MODE_4);
-
- int main(void)
- {
- return 0;
- }
- \endcode
-
-
-
- However there are a number of caveats that you need to be aware of to
- use this API properly.
-
- Be sure to include <avr/io.h> to get all of the definitions for the API.
- The LOCKBITS macro defines a global variable to store the lockbit data. This
- variable is assigned to its own linker section. Assign the desired lockbit
- values immediately in the variable initialization.
-
- The .lock section in the ELF file will get its values from the initial
- variable assignment ONLY. This means that you can NOT assign values to
- this variable in functions and the new values will not be put into the
- ELF .lock section.
-
- The global variable is declared in the LOCKBITS macro has two leading
- underscores, which means that it is reserved for the "implementation",
- meaning the library, so it will not conflict with a user-named variable.
-
- You must initialize the lockbit variable to some meaningful value, even
- if it is the default value. This is because the lockbits default to a
- logical 1, meaning unprogrammed. Normal uninitialized data defaults to all
- locgial zeros. So it is vital that all lockbits are initialized, even with
- default data. If they are not, then the lockbits may not programmed to the
- desired settings and can possibly put your device into an unrecoverable
- state.
-
- Be sure to have the -mmcu=<em>device</em> flag in your compile command line and
- your linker command line to have the correct device selected and to have
- the correct I/O header file included when you include <avr/io.h>.
-
- You can print out the contents of the .lock section in the ELF file by
- using this command line:
- \code
- avr-objdump -s -j .lock <ELF file>
- \endcode
-
-*/
-
+/**
+ * @defgroup avr_lock Lockbit Support
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef __ASSEMBLER__
@@ -235,4 +239,5 @@
#define LOCKBITS_DEFAULT (0xFF)
+/**@}*/
#endif /* _AVR_LOCK_H_ */
diff --git a/cpukit/score/cpu/avr/avr/parity.h b/cpukit/score/cpu/avr/avr/parity.h
index 06fd41db96..e01148e7dd 100644
--- a/cpukit/score/cpu/avr/avr/parity.h
+++ b/cpukit/score/cpu/avr/avr/parity.h
@@ -1,38 +1,55 @@
-/* Copyright (c) 2005 Joerg Wunsch
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
+/**
+ * @file
+ *
+ * @brief Koved to <util/parity.h>
+ */
+
+/*
+ * Copyright (c) 2005 Joerg Wunsch
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_PARITY_H_
#define _AVR_PARITY_H_
+/**
+ * @defgroup AvrParity Parity
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
#warning "This file has been moved to <util/parity.h>."
#include <util/parity.h>
+/** @} */
#endif /* _AVR_PARITY_H_ */
diff --git a/cpukit/score/cpu/avr/avr/pgmspace.h b/cpukit/score/cpu/avr/avr/pgmspace.h
index 4036f68275..42010168b1 100644
--- a/cpukit/score/cpu/avr/avr/pgmspace.h
+++ b/cpukit/score/cpu/avr/avr/pgmspace.h
@@ -1,80 +1,85 @@
-/* Copyright (c) 2002 - 2007 Marek Michalkiewicz
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
+/**
+ * @file pgmspace.h
+ *
+ * @brief Definitions for ATmega640
+ *
+ * The functions in this module provide interfaces for a program to access
+ * data stored in program space (flash memory) of the device. In order to
+ * use these functions, the target device must support either the \c LPM or
+ * \c ELPM instructions.
+ *
+ * @note These functions are an attempt to provide some compatibility with
+ * header files that come with IAR C, to make porting applications between
+ * different compilers easier. This is not 100% compatibility though (GCC
+ * does not have full support for multiple address spaces yet).
+ *
+ * @note If you are working with strings which are completely based in ram,
+ * use the standard string functions described in \ref avr_string.
+ *
+ * \note If possible, put your constant tables in the lower 64 KB and use
+ * pgm_read_byte_near() or pgm_read_word_near() instead of
+ * pgm_read_byte_far() or pgm_read_word_far() since it is more efficient that
+ * way, and you can still use the upper 64K for executable code.
+ * All functions that are suffixed with a \c _P \e require their
+ * arguments to be in the lower 64 KB of the flash ROM, as they do
+ * not use ELPM instructions. This is normally not a big concern as
+ * the linker setup arranges any program space constants declared
+ * using the macros from this header file so they are placed right after
+ * the interrupt vectors, and in front of any executable code. However,
+ * it can become a problem if there are too many of these constants, or
+ * for bootloaders on devices with more than 64 KB of ROM.
+ * <em>All these functions will not work in that situation.</em>
+ *
+ * Contributors:
+ * Created by Marek Michalkiewicz <marekm@linux.org.pl>
+ * Eric B. Weddington <eric@ecentral.com>
+ * Wolfgang Haidinger <wh@vmars.tuwien.ac.at> (pgm_read_dword())
+ * Ivanov Anton <anton@arc.com.ru> (pgm_read_float())
+ */
/*
- pgmspace.h
-
- Contributors:
- Created by Marek Michalkiewicz <marekm@linux.org.pl>
- Eric B. Weddington <eric@ecentral.com>
- Wolfgang Haidinger <wh@vmars.tuwien.ac.at> (pgm_read_dword())
- Ivanov Anton <anton@arc.com.ru> (pgm_read_float())
+ * Copyright (c) 2002 - 2007 Marek Michalkiewicz
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
*/
-/** \file */
-/** \defgroup avr_pgmspace <avr/pgmspace.h>: Program Space Utilities
- \code
- #include <avr/io.h>
- #include <avr/pgmspace.h>
- \endcode
-
- The functions in this module provide interfaces for a program to access
- data stored in program space (flash memory) of the device. In order to
- use these functions, the target device must support either the \c LPM or
- \c ELPM instructions.
-
- \note These functions are an attempt to provide some compatibility with
- header files that come with IAR C, to make porting applications between
- different compilers easier. This is not 100% compatibility though (GCC
- does not have full support for multiple address spaces yet).
-
- \note If you are working with strings which are completely based in ram,
- use the standard string functions described in \ref avr_string.
-
- \note If possible, put your constant tables in the lower 64 KB and use
- pgm_read_byte_near() or pgm_read_word_near() instead of
- pgm_read_byte_far() or pgm_read_word_far() since it is more efficient that
- way, and you can still use the upper 64K for executable code.
- All functions that are suffixed with a \c _P \e require their
- arguments to be in the lower 64 KB of the flash ROM, as they do
- not use ELPM instructions. This is normally not a big concern as
- the linker setup arranges any program space constants declared
- using the macros from this header file so they are placed right after
- the interrupt vectors, and in front of any executable code. However,
- it can become a problem if there are too many of these constants, or
- for bootloaders on devices with more than 64 KB of ROM.
- <em>All these functions will not work in that situation.</em>
-*/
-
#ifndef __PGMSPACE_H_
#define __PGMSPACE_H_ 1
+/**
+ * @defgroup avr_pgmspace Program Space Utilities
+ *
+ * @ingroup avr
+ *
+ */
+/**@{**/
+
#define __need_size_t
#include <inttypes.h>
#include <stddef.h>
@@ -402,7 +407,7 @@ typedef uint64_t prog_uint64_t PROGMEM;
/** \ingroup avr_pgmspace
\def pgm_read_byte_near(address_short)
- Read a byte from the program space with a 16-bit (near) address.
+ Read a byte from the program space with a 16-bit (near) address.
\note The address is a byte address.
The address is in the program space. */
@@ -410,16 +415,16 @@ typedef uint64_t prog_uint64_t PROGMEM;
/** \ingroup avr_pgmspace
\def pgm_read_word_near(address_short)
- Read a word from the program space with a 16-bit (near) address.
- \note The address is a byte address.
+ Read a word from the program space with a 16-bit (near) address.
+ \note The address is a byte address.
The address is in the program space. */
#define pgm_read_word_near(address_short) __LPM_word((uint16_t)(address_short))
/** \ingroup avr_pgmspace
\def pgm_read_dword_near(address_short)
- Read a double word from the program space with a 16-bit (near) address.
- \note The address is a byte address.
+ Read a double word from the program space with a 16-bit (near) address.
+ \note The address is a byte address.
The address is in the program space. */
#define pgm_read_dword_near(address_short) \
@@ -427,8 +432,8 @@ typedef uint64_t prog_uint64_t PROGMEM;
/** \ingroup avr_pgmspace
\def pgm_read_float_near(address_short)
- Read a float from the program space with a 16-bit (near) address.
- \note The address is a byte address.
+ Read a float from the program space with a 16-bit (near) address.
+ \note The address is a byte address.
The address is in the program space. */
#define pgm_read_float_near(address_short) \
@@ -718,10 +723,10 @@ typedef uint64_t prog_uint64_t PROGMEM;
__result; \
}))
-/*
-Check for architectures that implement RAMPD (avrxmega3, avrxmega5,
+/*
+Check for architectures that implement RAMPD (avrxmega3, avrxmega5,
avrxmega7) as they need to save/restore RAMPZ for ELPM macros so it does
-not interfere with data accesses.
+not interfere with data accesses.
*/
#if defined (__AVR_HAVE_RAMPD__)
@@ -753,16 +758,16 @@ not interfere with data accesses.
/** \ingroup avr_pgmspace
\def pgm_read_byte_far(address_long)
- Read a byte from the program space with a 32-bit (far) address.
+ Read a byte from the program space with a 32-bit (far) address.
- \note The address is a byte address.
+ \note The address is a byte address.
The address is in the program space. */
#define pgm_read_byte_far(address_long) __ELPM((uint32_t)(address_long))
/** \ingroup avr_pgmspace
\def pgm_read_word_far(address_long)
- Read a word from the program space with a 32-bit (far) address.
+ Read a word from the program space with a 32-bit (far) address.
\note The address is a byte address.
The address is in the program space. */
@@ -771,7 +776,7 @@ not interfere with data accesses.
/** \ingroup avr_pgmspace
\def pgm_read_dword_far(address_long)
- Read a double word from the program space with a 32-bit (far) address.
+ Read a double word from the program space with a 32-bit (far) address.
\note The address is a byte address.
The address is in the program space. */
@@ -780,7 +785,7 @@ not interfere with data accesses.
/** \ingroup avr_pgmspace
\def pgm_read_float_far(address_long)
- Read a float from the program space with a 32-bit (far) address.
+ Read a float from the program space with a 32-bit (far) address.
\note The address is a byte address.
The address is in the program space. */
@@ -791,36 +796,36 @@ not interfere with data accesses.
/** \ingroup avr_pgmspace
\def pgm_read_byte(address_short)
- Read a byte from the program space with a 16-bit (near) address.
+ Read a byte from the program space with a 16-bit (near) address.
- \note The address is a byte address.
+ \note The address is a byte address.
The address is in the program space. */
#define pgm_read_byte(address_short) pgm_read_byte_near(address_short)
/** \ingroup avr_pgmspace
\def pgm_read_word(address_short)
- Read a word from the program space with a 16-bit (near) address.
+ Read a word from the program space with a 16-bit (near) address.
- \note The address is a byte address.
+ \note The address is a byte address.
The address is in the program space. */
#define pgm_read_word(address_short) pgm_read_word_near(address_short)
/** \ingroup avr_pgmspace
\def pgm_read_dword(address_short)
- Read a double word from the program space with a 16-bit (near) address.
+ Read a double word from the program space with a 16-bit (near) address.
- \note The address is a byte address.
+ \note The address is a byte address.
The address is in the program space. */
#define pgm_read_dword(address_short) pgm_read_dword_near(address_short)
/** \ingroup avr_pgmspace
\def pgm_read_float(address_short)
- Read a float from the program space with a 16-bit (near) address.
+ Read a float from the program space with a 16-bit (near) address.
- \note The address is a byte address.
+ \note The address is a byte address.
The address is in the program space. */
#define pgm_read_float(address_short) pgm_read_float_near(address_short)
@@ -878,4 +883,5 @@ extern char *strtok_rP(char *__s, PGM_P __delim, char **__last);
}
#endif
+/** @} */
#endif /* __PGMSPACE_H_ */
diff --git a/cpukit/score/cpu/avr/avr/portpins.h b/cpukit/score/cpu/avr/avr/portpins.h
index 04e9b094f1..5c84e9db89 100644
--- a/cpukit/score/cpu/avr/avr/portpins.h
+++ b/cpukit/score/cpu/avr/avr/portpins.h
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief Define Generic PORTn, DDn, and PINn Values
+ */
+
/* Copyright (c) 2003 Theodore A. Roth
All rights reserved.
@@ -38,8 +44,6 @@
# error "Include <avr/io.h> instead of this file."
#endif
-/* Define Generic PORTn, DDn, and PINn values. */
-
/* Port Data Register (generic) */
#define PORT7 7
#define PORT6 6
@@ -70,7 +74,9 @@
#define PIN1 1
#define PIN0 0
-/* Define PORTxn an Pxn values for all possible port pins if not defined already by io.h. */
+/* Define PORTxn an Pxn values for all possible port pins
+ * if not defined already by io.h.
+ */
/* PORT A */
diff --git a/cpukit/score/cpu/avr/avr/power.h b/cpukit/score/cpu/avr/avr/power.h
index cf44b10866..b101f3bcbd 100644
--- a/cpukit/score/cpu/avr/avr/power.h
+++ b/cpukit/score/cpu/avr/avr/power.h
@@ -1,30 +1,56 @@
-/* Copyright (c) 2006, 2007, 2008 Eric B. Weddington
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
+/**
+ * @file avr/iom644PA.h
+ *
+ * @brief Power Reduction Management
+ *
+ * Many AVRs contain a Power Reduction Register (PRR) or Registers (PRRx) that
+ * allow you to reduce power consumption by disabling or enabling various on-board
+ * peripherals as needed.
+ *
+ * There are many macros in this header file that provide an easy interface
+ * to enable or disable on-board peripherals to reduce power. See the table below.
+ *
+ * @note Not all AVR devices have a Power Reduction Register (for example
+ * the ATmega128). On those devices without a Power Reduction Register, these
+ * macros are not available.
+ *
+ * @note Not all AVR devices contain the same peripherals (for example, the LCD
+ * interface), or they will be named differently (for example, USART and
+ * USART0). Please consult your device's datasheet, or the header file, to
+ * find out which macros are applicable to your device.
+ */
+
+/*
+ * Copyright (c) 2006, 2007, 2008 Eric B. Weddington
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_POWER_H_
@@ -33,311 +59,14 @@
#include <avr/io.h>
#include <stdint.h>
-
-/** \file */
-/** \defgroup avr_power <avr/power.h>: Power Reduction Management
-
-\code #include <avr/power.h>\endcode
-
-Many AVRs contain a Power Reduction Register (PRR) or Registers (PRRx) that
-allow you to reduce power consumption by disabling or enabling various on-board
-peripherals as needed.
-
-There are many macros in this header file that provide an easy interface
-to enable or disable on-board peripherals to reduce power. See the table below.
-
-\note Not all AVR devices have a Power Reduction Register (for example
-the ATmega128). On those devices without a Power Reduction Register, these
-macros are not available.
-
-\note Not all AVR devices contain the same peripherals (for example, the LCD
-interface), or they will be named differently (for example, USART and
-USART0). Please consult your device's datasheet, or the header file, to
-find out which macros are applicable to your device.
-
-*/
-
-
-/** \addtogroup avr_power
-
-\anchor avr_powermacros
-<small>
-<center>
-<table border="3">
- <tr>
- <td width="10%"><strong>Power Macro</strong></td>
- <td width="15%"><strong>Description</strong></td>
- <td width="75%"><strong>Applicable for device</strong></td>
- </tr>
-
- <tr>
- <td>power_adc_enable()</td>
- <td>Enable the Analog to Digital Converter module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega3290, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861</td>
- </tr>
-
- <tr>
- <td>power_adc_disable()</td>
- <td>Disable the Analog to Digital Converter module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega3290, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861</td>
- </tr>
-
- <tr>
- <td>power_lcd_enable()</td>
- <td>Enable the LCD module.</td>
- <td>ATmega169, ATmega169P, ATmega329, ATmega3290, ATmega649, ATmega6490</td>
- </tr>
-
- <tr>
- <td>power_lcd_disable().</td>
- <td>Disable the LCD module.</td>
- <td>ATmega169, ATmega169P, ATmega329, ATmega3290, ATmega649, ATmega6490</td>
- </tr>
-
- <tr>
- <td>power_psc0_enable()</td>
- <td>Enable the Power Stage Controller 0 module.</td>
- <td>AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B</td>
- </tr>
-
- <tr>
- <td>power_psc0_disable()</td>
- <td>Disable the Power Stage Controller 0 module.</td>
- <td>AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B</td>
- </tr>
-
- <tr>
- <td>power_psc1_enable()</td>
- <td>Enable the Power Stage Controller 1 module.</td>
- <td>AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B</td>
- </tr>
-
- <tr>
- <td>power_psc1_disable()</td>
- <td>Disable the Power Stage Controller 1 module.</td>
- <td>AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B</td>
- </tr>
-
- <tr>
- <td>power_psc2_enable()</td>
- <td>Enable the Power Stage Controller 2 module.</td>
- <td>AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B</td>
- </tr>
-
- <tr>
- <td>power_psc2_disable()</td>
- <td>Disable the Power Stage Controller 2 module.</td>
- <td>AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B</td>
- </tr>
-
- <tr>
- <td>power_spi_enable()</td>
- <td>Enable the Serial Peripheral Interface module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega3290, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168</td>
- </tr>
-
- <tr>
- <td>power_spi_disable()</td>
- <td>Disable the Serial Peripheral Interface module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega3290, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168</td>
- </tr>
-
- <tr>
- <td>power_timer0_enable()</td>
- <td>Enable the Timer 0 module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM216, AT90PWM316, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, ATmega165, ATmega165P, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861</td>
- </tr>
-
- <tr>
- <td>power_timer0_disable()</td>
- <td>Disable the Timer 0 module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861</td>
- </tr>
-
- <tr>
- <td>power_timer1_enable()</td>
- <td>Enable the Timer 1 module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega3290, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861</td>
- </tr>
-
- <tr>
- <td>power_timer1_disable()</td>
- <td>Disable the Timer 1 module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega3290, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861</td>
- </tr>
-
- <tr>
- <td>power_timer2_enable()</td>
- <td>Enable the Timer 2 module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168</td>
- </tr>
-
- <tr>
- <td>power_timer2_disable()</td>
- <td>Disable the Timer 2 module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168</td>
- </tr>
-
- <tr>
- <td>power_timer3_enable()</td>
- <td>Enable the Timer 3 module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287</td>
- </tr>
-
- <tr>
- <td>power_timer3_disable()</td>
- <td>Disable the Timer 3 module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287</td>
- </tr>
-
- <tr>
- <td>power_timer4_enable()</td>
- <td>Enable the Timer 4 module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561</td>
- </tr>
-
- <tr>
- <td>power_timer4_disable()</td>
- <td>Disable the Timer 4 module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561</td>
- </tr>
-
- <tr>
- <td>power_timer5_enable()</td>
- <td>Enable the Timer 5 module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561</td>
- </tr>
-
- <tr>
- <td>power_timer5_disable()</td>
- <td>Disable the Timer 5 module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561</td>
- </tr>
-
- <tr>
- <td>power_twi_enable()</td>
- <td>Enable the Two Wire Interface module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168</td>
- </tr>
-
- <tr>
- <td>power_twi_disable()</td>
- <td>Disable the Two Wire Interface module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168</td>
- </tr>
-
- <tr>
- <td>power_usart_enable()</td>
- <td>Enable the USART module.</td>
- <td>AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B</td>
- </tr>
-
- <tr>
- <td>power_usart_disable()</td>
- <td>Disable the USART module.</td>
- <td>AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B</td>
- </tr>
-
- <tr>
- <td>power_usart0_enable()</td>
- <td>Enable the USART 0 module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, ATmega165, ATmega165P, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega3290, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168</td>
- </tr>
-
- <tr>
- <td>power_usart0_disable()</td>
- <td>Disable the USART 0 module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, ATmega165, ATmega165P, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega3290, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168</td>
- </tr>
-
- <tr>
- <td>power_usart1_enable()</td>
- <td>Enable the USART 1 module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, ATmega164P, ATmega324P</td>
- </tr>
-
- <tr>
- <td>power_usart1_disable()</td>
- <td>Disable the USART 1 module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, ATmega164P, ATmega324P</td>
- </tr>
-
- <tr>
- <td>power_usart2_enable()</td>
- <td>Enable the USART 2 module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561</td>
- </tr>
-
- <tr>
- <td>power_usart2_disable()</td>
- <td>Disable the USART 2 module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561</td>
- </tr>
-
- <tr>
- <td>power_usart3_enable()</td>
- <td>Enable the USART 3 module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561</td>
- </tr>
-
- <tr>
- <td>power_usart3_disable()</td>
- <td>Disable the USART 3 module.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561</td>
- </tr>
-
- <tr>
- <td>power_usb_enable()</td>
- <td>Enable the USB module.</td>
- <td>AT90USB646, AT90USB647, AT90USB1286, AT90USB1287</td>
- </tr>
-
- <tr>
- <td>power_usb_disable()</td>
- <td>Disable the USB module.</td>
- <td>AT90USB646, AT90USB647, AT90USB1286, AT90USB1287</td>
- </tr>
-
- <tr>
- <td>power_usi_enable()</td>
- <td>Enable the Universal Serial Interface module.</td>
- <td>ATtiny24, ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861</td>
- </tr>
-
- <tr>
- <td>power_usi_disable()</td>
- <td>Disable the Universal Serial Interface module.</td>
- <td>ATtiny24, ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861</td>
- </tr>
-
- <tr>
- <td>power_vadc_enable()</td>
- <td>Enable the Voltage ADC module.</td>
- <td>ATmega406</td>
- </tr>
-
- <tr>
- <td>power_vadc_disable()</td>
- <td>Disable the Voltage ADC module.</td>
- <td>ATmega406</td>
- </tr>
-
- <tr>
- <td>power_all_enable()</td>
- <td>Enable all modules.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega3290, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861</td>
- </tr>
-
- <tr>
- <td>power_all_disable()</td>
- <td>Disable all modules.</td>
- <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega3290, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861</td>
- </tr>
-</table>
-</center>
-</small>
-
-@} */
+/**
+ * @defgroup avr_power Power Reduction Management
+ *
+ * @ingroup avr
+ *
+ * @addtogroup avr_power
+ */
+/**@{*/
#if defined(__AVR_ATxmega16A4__) \
@@ -481,7 +210,7 @@ do { \
|| defined(__AVR_ATmega1280__) \
|| defined(__AVR_ATmega1281__) \
|| defined(__AVR_ATmega2560__) \
-|| defined(__AVR_ATmega2561__)
+|| defined(__AVR_ATmega2561__)
#define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
#define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
@@ -1341,7 +1070,7 @@ without a Clock Prescale Register, these macros are not available.
/** \addtogroup avr_power
-\code
+\code
typedef enum
{
clock_div_1 = 0,
@@ -1468,7 +1197,5 @@ void clock_prescale_set(clock_div_t __x)
#endif
-
-
-
+/**@}*/
#endif /* _AVR_POWER_H_ */
diff --git a/cpukit/score/cpu/avr/avr/sfr_defs.h b/cpukit/score/cpu/avr/avr/sfr_defs.h
index b687f56167..2b8392689a 100644
--- a/cpukit/score/cpu/avr/avr/sfr_defs.h
+++ b/cpukit/score/cpu/avr/avr/sfr_defs.h
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief Macros for Accessing AVR Special Function Registers
+ */
+
/* Copyright (c) 2002, Marek Michalkiewicz <marekm@amelek.gda.pl>
All rights reserved.
@@ -34,85 +40,89 @@
#ifndef _AVR_SFR_DEFS_H_
#define _AVR_SFR_DEFS_H_ 1
-/** \defgroup avr_sfr_notes Additional notes from <avr/sfr_defs.h>
- \ingroup avr_sfr
-
- The \c <avr/sfr_defs.h> file is included by all of the \c <avr/ioXXXX.h>
- files, which use macros defined here to make the special function register
- definitions look like C variables or simple constants, depending on the
- <tt>_SFR_ASM_COMPAT</tt> define. Some examples from \c <avr/iocanxx.h> to
- show how to define such macros:
-
-\code
-#define PORTA _SFR_IO8(0x02)
-#define EEAR _SFR_IO16(0x21)
-#define UDR0 _SFR_MEM8(0xC6)
-#define TCNT3 _SFR_MEM16(0x94)
-#define CANIDT _SFR_MEM32(0xF0)
-\endcode
-
- If \c _SFR_ASM_COMPAT is not defined, C programs can use names like
- <tt>PORTA</tt> directly in C expressions (also on the left side of
- assignment operators) and GCC will do the right thing (use short I/O
- instructions if possible). The \c __SFR_OFFSET definition is not used in
- any way in this case.
-
- Define \c _SFR_ASM_COMPAT as 1 to make these names work as simple constants
- (addresses of the I/O registers). This is necessary when included in
- preprocessed assembler (*.S) source files, so it is done automatically if
- \c __ASSEMBLER__ is defined. By default, all addresses are defined as if
- they were memory addresses (used in \c lds/sts instructions). To use these
- addresses in \c in/out instructions, you must subtract 0x20 from them.
-
- For more backwards compatibility, insert the following at the start of your
- old assembler source file:
-
-\code
-#define __SFR_OFFSET 0
-\endcode
-
- This automatically subtracts 0x20 from I/O space addresses, but it's a
- hack, so it is recommended to change your source: wrap such addresses in
- macros defined here, as shown below. After this is done, the
- <tt>__SFR_OFFSET</tt> definition is no longer necessary and can be removed.
-
- Real example - this code could be used in a boot loader that is portable
- between devices with \c SPMCR at different addresses.
-
-\verbatim
-<avr/iom163.h>: #define SPMCR _SFR_IO8(0x37)
-<avr/iom128.h>: #define SPMCR _SFR_MEM8(0x68)
-\endverbatim
-
-\code
-#if _SFR_IO_REG_P(SPMCR)
- out _SFR_IO_ADDR(SPMCR), r24
-#else
- sts _SFR_MEM_ADDR(SPMCR), r24
-#endif
-\endcode
-
- You can use the \c in/out/cbi/sbi/sbic/sbis instructions, without the
- <tt>_SFR_IO_REG_P</tt> test, if you know that the register is in the I/O
- space (as with \c SREG, for example). If it isn't, the assembler will
- complain (I/O address out of range 0...0x3f), so this should be fairly
- safe.
-
- If you do not define \c __SFR_OFFSET (so it will be 0x20 by default), all
- special register addresses are defined as memory addresses (so \c SREG is
- 0x5f), and (if code size and speed are not important, and you don't like
- the ugly \#if above) you can always use lds/sts to access them. But, this
- will not work if <tt>__SFR_OFFSET</tt> != 0x20, so use a different macro
- (defined only if <tt>__SFR_OFFSET</tt> == 0x20) for safety:
-
-\code
- sts _SFR_ADDR(SPMCR), r24
-\endcode
-
- In C programs, all 3 combinations of \c _SFR_ASM_COMPAT and
- <tt>__SFR_OFFSET</tt> are supported - the \c _SFR_ADDR(SPMCR) macro can be
- used to get the address of the \c SPMCR register (0x57 or 0x68 depending on
- device). */
+/**
+ * @defgroup avr_sfr_notes Additional notes from <avr/sfr_defs.h>
+ *
+ * @ingroup avr_sfr
+ *
+ * The @c <avr/sfr_defs.h> file is included by all of the @c <avr/ioXXXX.h>
+ * files, which use macros defined here to make the special function register
+ * definitions look like C variables or simple constants, depending on the
+ * <tt>_SFR_ASM_COMPAT</tt> define. Some examples from @c <avr/iocanxx.h> to
+ * show how to define such macros:
+ *
+ * @code
+ * #define PORTA _SFR_IO8(0x02)
+ * #define EEAR _SFR_IO16(0x21)
+ * #define UDR0 _SFR_MEM8(0xC6)
+ * #define TCNT3 _SFR_MEM16(0x94)
+ * #define CANIDT _SFR_MEM32(0xF0)
+ * @endcode
+ *
+ * If @c _SFR_ASM_COMPAT is not defined, C programs can use names like
+ * <tt>PORTA</tt> directly in C expressions (also on the left side of
+ * assignment operators) and GCC will do the right thing (use short I/O
+ * instructions if possible). The @c __SFR_OFFSET definition is not used in
+ * any way in this case.
+ *
+ * Define @c _SFR_ASM_COMPAT as 1 to make these names work as simple constants
+ * (addresses of the I/O registers). This is necessary when included in
+ * preprocessed assembler (*.S) source files, so it is done automatically if
+ * @c __ASSEMBLER__ is defined. By default, all addresses are defined as if
+ * they were memory addresses (used in @c lds/sts instructions). To use these
+ * addresses in @c in/out instructions, you must subtract 0x20 from them.
+ *
+ * For more backwards compatibility, insert the following at the start of your
+ * old assembler source file:
+ *
+ * @code
+ * #define __SFR_OFFSET 0
+ * @endcode
+ *
+ * This automatically subtracts 0x20 from I/O space addresses, but it's a
+ * hack, so it is recommended to change your source: wrap such addresses in
+ * macros defined here, as shown below. After this is done, the
+ * <tt>__SFR_OFFSET</tt> definition is no longer necessary and can be removed.
+
+ * Real example - this code could be used in a boot loader that is portable
+ * between devices with @c SPMCR at different addresses.
+ *
+ * @verbatim
+ * <avr/iom163.h>: #define SPMCR _SFR_IO8(0x37)
+ * <avr/iom128.h>: #define SPMCR _SFR_MEM8(0x68)
+ * @endverbatim
+ *
+ * @code
+ * #if _SFR_IO_REG_P(SPMCR)
+ * out _SFR_IO_ADDR(SPMCR), r24
+ * #else
+ * sts _SFR_MEM_ADDR(SPMCR), r24
+ * #endif
+ * @endcode
+ *
+ * You can use the @c in/out/cbi/sbi/sbic/sbis instructions, without the
+ * <tt>_SFR_IO_REG_P</tt> test, if you know that the register is in the I/O
+ * space (as with @c SREG, for example). If it isn't, the assembler will
+ * complain (I/O address out of range 0...0x3f), so this should be fairly
+ * safe.
+ *
+ * If you do not define @c __SFR_OFFSET (so it will be 0x20 by default), all
+ * special register addresses are defined as memory addresses (so @c SREG is
+ * 0x5f), and (if code size and speed are not important, and you don't like
+ * the ugly \#if above) you can always use lds/sts to access them. But, this
+ * will not work if <tt>__SFR_OFFSET</tt> != 0x20, so use a different macro
+ * (defined only if <tt>__SFR_OFFSET</tt> == 0x20) for safety:
+ *
+ * @code
+ * sts _SFR_ADDR(SPMCR), r24
+ * @endcode
+ *
+ * In C programs, all 3 combinations of @c _SFR_ASM_COMPAT and
+ * <tt>__SFR_OFFSET</tt> are supported - the @c _SFR_ADDR(SPMCR) macro can be
+ * used to get the address of the @c SPMCR register (0x57 or 0x68 depending on
+ * device).
+ */
+/**@{**/
#ifdef __ASSEMBLER__
#define _SFR_ASM_COMPAT 1
@@ -190,23 +200,23 @@
#define _SFR_WORD(sfr) _MMIO_WORD(_SFR_ADDR(sfr))
#define _SFR_DWORD(sfr) _MMIO_DWORD(_SFR_ADDR(sfr))
-/** \name Bit manipulation */
-
-/*@{*/
-/** \def _BV
- \ingroup avr_sfr
-
- \code #include <avr/io.h>\endcode
-
- Converts a bit number into a byte value.
-
- \note The bit shift is performed by the compiler which then inserts the
- result into the code. Thus, there is no run-time overhead when using
- _BV(). */
-
+/**
+ * @name Bit Manipulation
+ */
+/**@{**/
+
+/**
+ * @code #include <avr/io.h> @endcode
+ *
+ * Converts a bit number into a byte value.
+ *
+ * @note The bit shift is performed by the compiler which then inserts the
+ * result into the code. Thus, there is no run-time overhead when using
+ * _BV().
+ */
#define _BV(bit) (1 << (bit))
-/*@}*/
+/** @} */
#ifndef _VECTOR
#define _VECTOR(N) __vector_ ## N
@@ -215,53 +225,47 @@
#ifndef __ASSEMBLER__
-/** \name IO register bit manipulation */
-
-/*@{*/
-
-
-
-/** \def bit_is_set
- \ingroup avr_sfr
-
- \code #include <avr/io.h>\endcode
-
- Test whether bit \c bit in IO register \c sfr is set.
- This will return a 0 if the bit is clear, and non-zero
- if the bit is set. */
+/**
+ * @name IO Register Bit Manipulation
+ */
+/**@{**/
+/**
+ * @code #include <avr/io.h> @endcode
+ *
+ * Test whether bit @c bit in IO register @c sfr is set.
+ * This will return a 0 if the bit is clear, and non-zero
+ * if the bit is set.
+ */
#define bit_is_set(sfr, bit) (_SFR_BYTE(sfr) & _BV(bit))
-/** \def bit_is_clear
- \ingroup avr_sfr
-
- \code #include <avr/io.h>\endcode
-
- Test whether bit \c bit in IO register \c sfr is clear.
- This will return non-zero if the bit is clear, and a 0
- if the bit is set. */
+/**
+ * @code #include <avr/io.h> @endcode
+ *
+ * Test whether bit @c bit in IO register @c sfr is clear.
+ * This will return non-zero if the bit is clear, and a 0
+ * if the bit is set.
+ */
#define bit_is_clear(sfr, bit) (!(_SFR_BYTE(sfr) & _BV(bit)))
-/** \def loop_until_bit_is_set
- \ingroup avr_sfr
-
- \code #include <avr/io.h>\endcode
-
- Wait until bit \c bit in IO register \c sfr is set. */
-
+/**
+ * @code #include <avr/io.h> @endcode
+ *
+ * Wait until bit @c bit in IO register @c sfr is set.
+ */
#define loop_until_bit_is_set(sfr, bit) do { } while (bit_is_clear(sfr, bit))
-/** \def loop_until_bit_is_clear
- \ingroup avr_sfr
-
- \code #include <avr/io.h>\endcode
-
- Wait until bit \c bit in IO register \c sfr is clear. */
-
+/**
+ * @code #include <avr/io.h> @endcode
+ *
+ * Wait until bit @c bit in IO register @c sfr is clear.
+ */
#define loop_until_bit_is_clear(sfr, bit) do { } while (bit_is_set(sfr, bit))
-/*@}*/
+/** @} */
+
+/** @} */
#endif /* !__ASSEMBLER__ */
diff --git a/cpukit/score/cpu/avr/avr/signal.h b/cpukit/score/cpu/avr/avr/signal.h
index e9a802408b..898df4acb8 100644
--- a/cpukit/score/cpu/avr/avr/signal.h
+++ b/cpukit/score/cpu/avr/avr/signal.h
@@ -1,38 +1,54 @@
-/* Copyright (c) 2002,2005,2006 Marek Michalkiewicz
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
+/**
+ * @file
+ *
+ * @brief Use <avr/interrupt.h>
+ */
+
+/*
+ * Copyright (c) 2002, 2005, 2006 Marek Michalkiewicz
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _AVR_SIGNAL_H_
#define _AVR_SIGNAL_H_
+/**
+ * @defgroup Avr_signal Signal
+ *
+ * @ingroup avr
+ */
+/**@{*/
+
#warning "This header file is obsolete. Use <avr/interrupt.h>."
#include <avr/interrupt.h>
+/**@}*/
#endif /* _AVR_SIGNAL_H_ */
diff --git a/cpukit/score/cpu/avr/avr/signature.h b/cpukit/score/cpu/avr/avr/signature.h
index 13d3138965..06aedce580 100644
--- a/cpukit/score/cpu/avr/avr/signature.h
+++ b/cpukit/score/cpu/avr/avr/signature.h
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief Signature Support
+ */
+
/* Copyright (c) 2009, Atmel Corporation
All rights reserved.
@@ -34,38 +40,38 @@
#ifndef _AVR_SIGNATURE_H_
#define _AVR_SIGNATURE_H_ 1
-/** \file */
-/** \defgroup avr_signature <avr/signature.h>: Signature Support
-
- \par Introduction
-
- The <avr/signature.h> header file allows the user to automatically
- and easily include the device's signature data in a special section of
- the final linked ELF file.
-
- This value can then be used by programming software to compare the on-device
- signature with the signature recorded in the ELF file to look for a match
- before programming the device.
-
- \par API Usage Example
-
- Usage is very simple; just include the header file:
-
- \code
- #include <avr/signature.h>
- \endcode
-
- This will declare a constant unsigned char array and it is initialized with
- the three signature bytes, MSB first, that are defined in the device I/O
- header file. This array is then placed in the .signature section in the
- resulting linked ELF file.
-
- The three signature bytes that are used to initialize the array are
- these defined macros in the device I/O header file, from MSB to LSB:
- SIGNATURE_2, SIGNATURE_1, SIGNATURE_0.
-
- This header file should only be included once in an application.
-*/
+/**
+ * @defgroup avr_signature Signature Support
+ *
+ * @par Introduction
+ *
+ * The <avr/signature.h> header file allows the user to automatically
+ * and easily include the device's signature data in a special section of
+ * the final linked ELF file.
+ *
+ * This value can then be used by programming software to compare the
+ * on-device signature with the signature recorded in the ELF file
+ * to look for a match before programming the device.
+ *
+ * @par API Usage Example
+ *
+ * Usage is very simple; just include the header file:
+ *
+ * @code{.c}
+ * #include <avr/signature.h>
+ * @endcode
+ *
+ * This will declare a constant unsigned char array and it is initialized with
+ * the three signature bytes, MSB first, that are defined in the device I/O
+ * header file. This array is then placed in the .signature section in the
+ * resulting linked ELF file.
+ *
+ * The three signature bytes that are used to initialize the array are
+ * these defined macros in the device I/O header file, from MSB to LSB:
+ * SIGNATURE_2, SIGNATURE_1, SIGNATURE_0.
+ *
+ * This header file should only be included once in an application.
+ */
#ifndef __ASSEMBLER__
@@ -75,8 +81,9 @@
const unsigned char __signature[3] __attribute__((section (".signature"))) =
{ SIGNATURE_2, SIGNATURE_1, SIGNATURE_0 };
-
-#endif /* defined(SIGNATURE_0) && defined(SIGNATURE_1) && defined(SIGNATURE_2) */
+
+/* defined(SIGNATURE_0) && defined(SIGNATURE_1) && defined(SIGNATURE_2) */
+#endif
#endif /* __ASSEMBLER__ */
diff --git a/cpukit/score/cpu/avr/avr/sleep.h b/cpukit/score/cpu/avr/avr/sleep.h
index 48b789f797..9a2556c85c 100644
--- a/cpukit/score/cpu/avr/avr/sleep.h
+++ b/cpukit/score/cpu/avr/avr/sleep.h
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief Power Management and Sleep Modes
+ *
+ */
+
/* Copyright (c) 2002, 2004 Theodore A. Roth
Copyright (c) 2004, 2007, 2008 Eric B. Weddington
Copyright (c) 2005, 2006, 2007 Joerg Wunsch
@@ -37,103 +44,104 @@
#include <avr/io.h>
#include <stdint.h>
-
-/** \file */
-
-/** \defgroup avr_sleep <avr/sleep.h>: Power Management and Sleep Modes
-
- \code #include <avr/sleep.h>\endcode
-
- Use of the \c SLEEP instruction can allow an application to reduce its
- power comsumption considerably. AVR devices can be put into different
- sleep modes. Refer to the datasheet for the details relating to the device
- you are using.
-
- There are several macros provided in this header file to actually
- put the device into sleep mode. The simplest way is to optionally
- set the desired sleep mode using \c set_sleep_mode() (it usually
- defaults to idle mode where the CPU is put on sleep but all
- peripheral clocks are still running), and then call
- \c sleep_mode(). This macro automatically sets the sleep enable bit, goes
- to sleep, and clears the sleep enable bit.
-
- Example:
- \code
- #include <avr/sleep.h>
-
- ...
- set_sleep_mode(<mode>);
- sleep_mode();
- \endcode
-
- Note that unless your purpose is to completely lock the CPU (until a
- hardware reset), interrupts need to be enabled before going to sleep.
-
- As the \c sleep_mode() macro might cause race conditions in some
- situations, the individual steps of manipulating the sleep enable
- (SE) bit, and actually issuing the \c SLEEP instruction, are provided
- in the macros \c sleep_enable(), \c sleep_disable(), and
- \c sleep_cpu(). This also allows for test-and-sleep scenarios that
- take care of not missing the interrupt that will awake the device
- from sleep.
-
- Example:
- \code
- #include <avr/interrupt.h>
- #include <avr/sleep.h>
-
- ...
- set_sleep_mode(<mode>);
- cli();
- if (some_condition)
- {
- sleep_enable();
- sei();
- sleep_cpu();
- sleep_disable();
- }
- sei();
- \endcode
-
- This sequence ensures an atomic test of \c some_condition with
- interrupts being disabled. If the condition is met, sleep mode
- will be prepared, and the \c SLEEP instruction will be scheduled
- immediately after an \c SEI instruction. As the intruction right
- after the \c SEI is guaranteed to be executed before an interrupt
- could trigger, it is sure the device will really be put to sleep.
-
- Some devices have the ability to disable the Brown Out Detector (BOD) before
- going to sleep. This will also reduce power while sleeping. If the
- specific AVR device has this ability then an additional macro is defined:
- \c sleep_bod_disable(). This macro generates inlined assembly code
- that will correctly implement the timed sequence for disabling the BOD
- before sleeping. However, there is a limited number of cycles after the
- BOD has been disabled that the device can be put into sleep mode, otherwise
- the BOD will not truly be disabled. Recommended practice is to disable
- the BOD (\c sleep_bod_disable()), set the interrupts (\c sei()), and then
- put the device to sleep (\c sleep_cpu()), like so:
-
- \code
- #include <avr/interrupt.h>
- #include <avr/sleep.h>
-
- ...
- set_sleep_mode(<mode>);
- cli();
- if (some_condition)
- {
- sleep_enable();
- sleep_bod_disable();
- sei();
- sleep_cpu();
- sleep_disable();
- }
- sei();
- \endcode
-*/
-
-
-/* Define an internal sleep control register and an internal sleep enable bit mask. */
+/**
+ * @defgroup avr_sleep Power Management and Sleep Modes
+ *
+ * Use of the @c SLEEP instruction can allow an application to reduce its
+ * power comsumption considerably. AVR devices can be put into different
+ * sleep modes. Refer to the datasheet for the details relating to the device
+ * you are using.
+ *
+ * There are several macros provided in this header file to actually
+ * put the device into sleep mode. The simplest way is to optionally
+ * set the desired sleep mode using @c set_sleep_mode() (it usually
+ * defaults to idle mode where the CPU is put on sleep but all
+ * peripheral clocks are still running), and then call
+ * @c sleep_mode(). This macro automatically sets the sleep enable bit, goes
+ * to sleep, and clears the sleep enable bit.
+ *
+ * Example:
+ * @code{.c}
+ * #include <avr/sleep.h>
+ *
+ * ...
+ * set_sleep_mode(<mode>);
+ * sleep_mode();
+ * @endcode
+ *
+ * Note that unless your purpose is to completely lock the CPU (until a
+ * hardware reset), interrupts need to be enabled before going to sleep.
+ *
+ * As the @c sleep_mode() macro might cause race conditions in some
+ * situations, the individual steps of manipulating the sleep enable
+ * (SE) bit, and actually issuing the @c SLEEP instruction, are provided
+ * in the macros @c sleep_enable(), @c sleep_disable(), and
+ * @c sleep_cpu(). This also allows for test-and-sleep scenarios that
+ * take care of not missing the interrupt that will awake the device
+ * from sleep.
+ *
+ * Example:
+ * @code{.c}
+ * #include <avr/interrupt.h>
+ * #include <avr/sleep.h>*
+ *
+ * ...
+ * set_sleep_mode(<mode>);
+ * cli();
+ * if (some_condition)
+ * {
+ * sleep_enable();
+ * sei();
+ * sleep_cpu();
+ * sleep_disable();
+ * }
+ * sei();
+ * @endcode
+ *
+ * This sequence ensures an atomic test of @c some_condition with
+ * interrupts being disabled. If the condition is met, sleep mode
+ * will be prepared, and the @c SLEEP instruction will be scheduled
+ * immediately after an @c SEI instruction. As the intruction right
+ * after the @c SEI is guaranteed to be executed before an interrupt
+ * could trigger, it is sure the device will really be put to sleep.
+ *
+ * Some devices have the ability to disable the Brown Out Detector (BOD)
+ * before going to sleep. This will also reduce power while sleeping. If the
+ * specific AVR device has this ability then an additional macro is defined:
+ * @c sleep_bod_disable(). This macro generates inlined assembly code
+ * that will correctly implement the timed sequence for disabling the BOD
+ * before sleeping. However, there is a limited number of cycles after the
+ * BOD has been disabled that the device can be put into sleep mode, otherwise
+ * the BOD will not truly be disabled. Recommended practice is to disable
+ * the BOD (@c sleep_bod_disable()), set the interrupts (@c sei()), and then
+ * put the device to sleep (@c sleep_cpu()), like so:
+ *
+ * @code{.c}
+ * #include <avr/interrupt.h>
+ * #include <avr/sleep.h>*
+ *
+ * ...
+ * set_sleep_mode(<mode>);
+ * cli();
+ * if (some_condition)
+ * {
+ * sleep_enable();
+ * sleep_bod_disable();
+ * sei();
+ * sleep_cpu();
+ * sleep_disable();
+ * }
+ * sei();
+ * @endcode
+ *
+ */
+/**@{**/
+
+
+/*
+ * Define an internal sleep control register and
+ * an internal sleep enable bit mask.
+ */
#if defined(SLEEP_CTRL)
/* XMEGA devices */
@@ -167,8 +175,11 @@
#define set_sleep_mode(mode) \
do { \
- MCUCR = ((MCUCR & ~_BV(SM1)) | ((mode) == SLEEP_MODE_PWR_DOWN || (mode) == SLEEP_MODE_PWR_SAVE ? _BV(SM1) : 0)); \
- EMCUCR = ((EMCUCR & ~_BV(SM0)) | ((mode) == SLEEP_MODE_PWR_SAVE ? _BV(SM0) : 0)); \
+ MCUCR = ((MCUCR & ~_BV(SM1)) | \
+ ((mode) == SLEEP_MODE_PWR_DOWN || \
+ (mode) == SLEEP_MODE_PWR_SAVE ? _BV(SM1) : 0)); \
+ EMCUCR = ((EMCUCR & ~_BV(SM0)) | \
+ ((mode) == SLEEP_MODE_PWR_SAVE ? _BV(SM0) : 0)); \
} while(0)
@@ -184,9 +195,12 @@
#define set_sleep_mode(mode) \
do { \
- MCUCR = ((MCUCR & ~_BV(SM1)) | ((mode) == SLEEP_MODE_IDLE ? 0 : _BV(SM1))); \
- MCUCSR = ((MCUCSR & ~_BV(SM2)) | ((mode) == SLEEP_MODE_STANDBY || (mode) == SLEEP_MODE_EXT_STANDBY ? _BV(SM2) : 0)); \
- EMCUCR = ((EMCUCR & ~_BV(SM0)) | ((mode) == SLEEP_MODE_PWR_SAVE || (mode) == SLEEP_MODE_EXT_STANDBY ? _BV(SM0) : 0)); \
+ MCUCR = ((MCUCR & ~_BV(SM1)) | \
+ ((mode) == SLEEP_MODE_IDLE ? 0 : _BV(SM1))); \
+ MCUCSR = ((MCUCSR & ~_BV(SM2)) | ((mode) == SLEEP_MODE_STANDBY || \
+ (mode) == SLEEP_MODE_EXT_STANDBY ? _BV(SM2) : 0)); \
+ EMCUCR = ((EMCUCR & ~_BV(SM0)) | ((mode) == SLEEP_MODE_PWR_SAVE || \
+ (mode) == SLEEP_MODE_EXT_STANDBY ? _BV(SM0) : 0)); \
} while(0)
#elif defined(__AVR_AT90S2313__) \
@@ -217,7 +231,8 @@
#define set_sleep_mode(mode) \
do { \
- _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & ~(_BV(SM0) | _BV(SM1))) | (mode)); \
+ _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & \
+ ~(_BV(SM0) | _BV(SM1))) | (mode)); \
} while(0)
#elif defined(__AVR_AT90S4434__) \
@@ -253,7 +268,8 @@
#define set_sleep_mode(mode) \
do { \
- _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & ~(_BV(SM0) | _BV(SM1))) | (mode)); \
+ _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & \
+ ~(_BV(SM0) | _BV(SM1))) | (mode)); \
} while(0)
#elif defined(__AVR_ATtiny2313__) \
@@ -266,7 +282,8 @@
#define set_sleep_mode(mode) \
do { \
- _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & ~(_BV(SM0) | _BV(SM1))) | (mode)); \
+ _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & \
+ ~(_BV(SM0) | _BV(SM1))) | (mode)); \
} while(0)
#elif defined(__AVR_AT94K__)
@@ -277,7 +294,8 @@
#define set_sleep_mode(mode) \
do { \
- _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & ~(_BV(SM0) | _BV(SM1))) | (mode)); \
+ _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & \
+ ~(_BV(SM0) | _BV(SM1))) | (mode)); \
} while(0)
#elif defined(__AVR_ATtiny26__) \
@@ -290,7 +308,8 @@
#define set_sleep_mode(mode) \
do { \
- _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & ~(_BV(SM0) | _BV(SM1))) | (mode)); \
+ _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & \
+ ~(_BV(SM0) | _BV(SM1))) | (mode)); \
} while(0)
#elif defined(__AVR_AT90PWM216__) \
@@ -304,7 +323,8 @@
#define set_sleep_mode(mode) \
do { \
- _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & ~(_BV(SM0) | _BV(SM1) | _BV(SM2))) | (mode)); \
+ _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & \
+ ~(_BV(SM0) | _BV(SM1) | _BV(SM2))) | (mode)); \
} while(0)
#elif defined(__AVR_AT90CAN128__) \
@@ -415,7 +435,8 @@
#define set_sleep_mode(mode) \
do { \
- _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & ~(_BV(SM0) | _BV(SM1) | _BV(SM2))) | (mode)); \
+ _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & \
+ ~(_BV(SM0) | _BV(SM1) | _BV(SM2))) | (mode)); \
} while(0)
#elif defined(__AVR_ATxmega16A4__) \
@@ -438,11 +459,13 @@
#define SLEEP_MODE_PWR_DOWN (SLEEP_SMODE1_bm)
#define SLEEP_MODE_PWR_SAVE (SLEEP_SMODE1_bm | SLEEP_SMODE0_bm)
#define SLEEP_MODE_STANDBY (SLEEP_SMODE2_bm | SLEEP_SMODE1_bm)
- #define SLEEP_MODE_EXT_STANDBY (SLEEP_SMODE2_bm | SLEEP_SMODE1_bm | SLEEP_SMODE0_bm)
+ #define SLEEP_MODE_EXT_STANDBY (SLEEP_SMODE2_bm | SLEEP_SMODE1_bm | \
+ SLEEP_SMODE0_bm)
#define set_sleep_mode(mode) \
do { \
- _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & ~(SLEEP_SMODE2_bm | SLEEP_SMODE1_bm | SLEEP_SMODE0_bm)) | (mode)); \
+ _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & \
+ ~(SLEEP_SMODE2_bm | SLEEP_SMODE1_bm | SLEEP_SMODE0_bm)) | (mode)); \
} while(0)
#elif defined(__AVR_AT90SCR100__)
@@ -455,7 +478,8 @@
#define set_sleep_mode(mode) \
do { \
- _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & ~(_BV(SM0) | _BV(SM1) | _BV(SM2))) | (mode)); \
+ _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & \
+ ~(_BV(SM0) | _BV(SM1) | _BV(SM2))) | (mode)); \
} while(0)
#elif defined(__AVR_ATA6289__)
@@ -466,7 +490,8 @@
#define set_sleep_mode(mode) \
do { \
- _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & ~(_BV(SM0) | _BV(SM1) | _BV(SM2))) | (mode)); \
+ _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & \
+ ~(_BV(SM0) | _BV(SM1) | _BV(SM2))) | (mode)); \
} while(0)
#else
@@ -477,18 +502,17 @@
-/** \ingroup avr_sleep
-
- Put the device in sleep mode. How the device is brought out of sleep mode
- depends on the specific mode selected with the set_sleep_mode() function.
- See the data sheet for your device for more details. */
+/**
+ * Put the device in sleep mode. How the device is brought out of sleep mode
+ * depends on the specific mode selected with the set_sleep_mode() function.
+ * See the data sheet for your device for more details.
+ */
#if defined(__DOXYGEN__)
-/** \ingroup avr_sleep
-
- Set the SE (sleep enable) bit.
+/**
+ * Set the SE (sleep enable) bit.
*/
extern void sleep_enable (void);
@@ -504,10 +528,9 @@ do { \
#if defined(__DOXYGEN__)
-/** \ingroup avr_sleep
-
- Clear the SE (sleep enable) bit.
-*/
+/**
+ * Clear the SE (sleep enable) bit.
+ */
extern void sleep_disable (void);
#else
@@ -520,11 +543,10 @@ do { \
#endif
-/** \ingroup avr_sleep
-
- Put the device into sleep mode. The SE bit must be set
- beforehand, and it is recommended to clear it afterwards.
-*/
+/**
+ * Put the device into sleep mode. The SE bit must be set
+ * beforehand, and it is recommended to clear it afterwards.
+ */
#if defined(__DOXYGEN__)
extern void sleep_cpu (void);
@@ -582,6 +604,6 @@ do { \
#endif
-/*@}*/
+/** @} */
#endif /* _AVR_SLEEP_H_ */
diff --git a/cpukit/score/cpu/avr/avr/version.h b/cpukit/score/cpu/avr/avr/version.h
index 7e0c3a3649..7af5025921 100644
--- a/cpukit/score/cpu/avr/avr/version.h
+++ b/cpukit/score/cpu/avr/avr/version.h
@@ -1,53 +1,63 @@
-/* Copyright (c) 2005, Joerg Wunsch -*- c -*-
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE. */
-
-
-/** \defgroup avr_version <avr/version.h>: avr-libc version macros
- \code #include <avr/version.h> \endcode
-
- This header file defines macros that contain version numbers and
- strings describing the current version of avr-libc.
+/**
+ * @file avr/iom644PA.h
+ *
+ * @brief Current Version of avr-libc
+ *
+ * This header file defines macros that contain version numbers and
+ * strings describing the current version of avr-libc.
+ *
+ * The version number itself basically consists of three pieces that
+ * are separated by a dot: the major number, the minor number, and
+ * the revision number. For development versions (which use an odd
+ * minor number), the string representation additionally gets the
+ * date code (YYYYMMDD) appended.
+ *
+ * This file will also be included by \c <avr/io.h>. That way,
+ * portable tests can be implemented using \c <avr/io.h> that can be
+ * used in code that wants to remain backwards-compatible to library
+ * versions prior to the date when the library version API had been
+ * added, as referenced but undefined C preprocessor macros
+ * automatically evaluate to 0.
+ */
- The version number itself basically consists of three pieces that
- are separated by a dot: the major number, the minor number, and
- the revision number. For development versions (which use an odd
- minor number), the string representation additionally gets the
- date code (YYYYMMDD) appended.
+/*
+ * Copyright (c) 2005, Joerg Wunsch
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
- This file will also be included by \c <avr/io.h>. That way,
- portable tests can be implemented using \c <avr/io.h> that can be
- used in code that wants to remain backwards-compatible to library
- versions prior to the date when the library version API had been
- added, as referenced but undefined C preprocessor macros
- automatically evaluate to 0.
-*/
+/**
+ * @defgroup avr_version avr-libc Version Macros
+ *
+ * @ingroup avr
+ */
+/**@{*/
#ifndef _AVR_VERSION_H_
#define _AVR_VERSION_H_
@@ -86,4 +96,5 @@
Library revision number. */
#define __AVR_LIBC_REVISION__ 8
+/**@}*/
#endif /* _AVR_VERSION_H_ */
diff --git a/cpukit/score/cpu/avr/avr/wdt.h b/cpukit/score/cpu/avr/avr/wdt.h
index 0b424c9a83..7337e273b3 100644
--- a/cpukit/score/cpu/avr/avr/wdt.h
+++ b/cpukit/score/cpu/avr/avr/wdt.h
@@ -1,3 +1,8 @@
+/**
+ * @file
+ *
+ * @brief Watchdog Timer Handling
+ */
/* Copyright (c) 2002, 2004 Marek Michalkiewicz
Copyright (c) 2005, 2006, 2007 Eric B. Weddington
All rights reserved.
@@ -40,59 +45,60 @@
#include <avr/io.h>
#include <stdint.h>
-/** \file */
-/** \defgroup avr_watchdog <avr/wdt.h>: Watchdog timer handling
- \code #include <avr/wdt.h> \endcode
-
- This header file declares the interface to some inline macros
- handling the watchdog timer present in many AVR devices. In order
- to prevent the watchdog timer configuration from being
- accidentally altered by a crashing application, a special timed
- sequence is required in order to change it. The macros within
- this header file handle the required sequence automatically
- before changing any value. Interrupts will be disabled during
- the manipulation.
-
- \note Depending on the fuse configuration of the particular
- device, further restrictions might apply, in particular it might
- be disallowed to turn off the watchdog timer.
-
- Note that for newer devices (ATmega88 and newer, effectively any
- AVR that has the option to also generate interrupts), the watchdog
- timer remains active even after a system reset (except a power-on
- condition), using the fastest prescaler value (approximately 15
- ms). It is therefore required to turn off the watchdog early
- during program startup, the datasheet recommends a sequence like
- the following:
-
- \code
- #include <stdint.h>
- #include <avr/wdt.h>
-
- uint8_t mcusr_mirror __attribute__ ((section (".noinit")));
-
- void get_mcusr(void) \
- __attribute__((naked)) \
- __attribute__((section(".init3")));
- void get_mcusr(void)
- {
- mcusr_mirror = MCUSR;
- MCUSR = 0;
- wdt_disable();
- }
- \endcode
-
- Saving the value of MCUSR in \c mcusr_mirror is only needed if the
- application later wants to examine the reset source, but in particular,
- clearing the watchdog reset flag before disabling the
- watchdog is required, according to the datasheet.
+/**
+ * @defgroup avr_watchdog Watchdog Timer Handling
+ *
+ * This header file declares the interface to some inline macros
+ * handling the watchdog timer present in many AVR devices. In order
+ * to prevent the watchdog timer configuration from being
+ * accidentally altered by a crashing application, a special timed
+ * equence is required in order to change it. The macros within
+ * this header file handle the required sequence automatically
+ * before changing any value. Interrupts will be disabled during
+ * the manipulation.
+ *
+ * Note: Depending on the fuse configuration of the particular
+ * device, further restrictions might apply, in particular it might
+ * be disallowed to turn off the watchdog timer.
+ *
+ * Note that for newer devices (ATmega88 and newer, effectively any
+ * AVR that has the option to also generate interrupts), the watchdog
+ * timer remains active even after a system reset (except a power-on
+ * condition), using the fastest prescaler value (approximately 15
+ * ms). It is therefore required to turn off the watchdog early
+ * during program startup, the datasheet recommends a sequence like
+ * the following:
+ *
+ * @code{.c}
+ * #include <stdint.h>
+ * #include <avr/wdt.h>
+ *
+ * uint8_t mcusr_mirror __attribute__ ((section (".noinit")));
+ *
+ * void get_mcusr(void) \
+ * __attribute__((naked)) \
+ * __attribute__((section(".init3")));
+ * void get_mcusr(void)
+ * {
+ * mcusr_mirror = MCUSR;
+ * MCUSR = 0;
+ * wdt_disable();
+ * }
+ * @endcode
+ *
+ * Saving the value of MCUSR in @c mcusr_mirror is only needed if the
+ * application later wants to examine the reset source, but in particular,
+ * clearing the watchdog reset flag before disabling the
+ * watchdog is required, according to the datasheet.
+ * @{
*/
/**
- \ingroup avr_watchdog
- Reset the watchdog timer. When the watchdog timer is enabled,
- a call to this instruction is required before the timer expires,
- otherwise a watchdog-initiated device reset will occur.
+ * @brief Watchdog Timer Reset
+ *
+ * Reset the watchdog timer. When the watchdog timer is enabled,
+ * a call to this instruction is required before the timer expires,
+ * otherwise a watchdog-initiated device reset will occur.
*/
#define wdt_reset() __asm__ __volatile__ ("wdr")
@@ -118,14 +124,13 @@
/**
- \ingroup avr_watchdog
- Enable the watchdog timer, configuring it for expiry after
- \c timeout (which is a combination of the \c WDP0 through
- \c WDP2 bits to write into the \c WDTCR register; For those devices
- that have a \c WDTCSR register, it uses the combination of the \c WDP0
- through \c WDP3 bits).
-
- See also the symbolic constants \c WDTO_15MS et al.
+ * Enable the watchdog timer, configuring it for expiry after
+ * @c timeout (which is a combination of the @c WDP0 through
+ * @c WDP2 bits to write into the @c WDTCR register; For those devices
+ * that have a @c WDTCSR register, it uses the combination of the @c WDP0
+ * through @c WDP3 bits).
+ *
+ * See also the symbolic constants @c WDTO_15MS et al.
*/
@@ -317,10 +322,9 @@ __asm__ __volatile__ ( \
)
/**
- \ingroup avr_watchdog
- Disable the watchdog timer, if possible. This attempts to turn off the
- Enable bit in the watchdog control register. See the datasheet for
- details.
+ * Disable the watchdog timer, if possible. This attempts to turn off the
+ * Enable bit in the watchdog control register. See the datasheet for
+ * details.
*/
#define wdt_disable() \
__asm__ __volatile__ ( \
@@ -340,101 +344,77 @@ __asm__ __volatile__ ( \
/**
- \ingroup avr_watchdog
- Symbolic constants for the watchdog timeout. Since the watchdog
- timer is based on a free-running RC oscillator, the times are
- approximate only and apply to a supply voltage of 5 V. At lower
- supply voltages, the times will increase. For older devices, the
- times will be as large as three times when operating at Vcc = 3 V,
- while the newer devices (e. g. ATmega128, ATmega8) only experience
- a negligible change.
-
- Possible timeout values are: 15 ms, 30 ms, 60 ms, 120 ms, 250 ms,
- 500 ms, 1 s, 2 s. (Some devices also allow for 4 s and 8 s.)
- Symbolic constants are formed by the prefix
- \c WDTO_, followed by the time.
-
- Example that would select a watchdog timer expiry of approximately
- 500 ms:
- \code
- wdt_enable(WDTO_500MS);
- \endcode
+ * Symbolic constants for the watchdog timeout. Since the watchdog
+ * timer is based on a free-running RC oscillator, the times are
+ * approximate only and apply to a supply voltage of 5 V. At lower
+ * supply voltages, the times will increase. For older devices, the
+ * times will be as large as three times when operating at Vcc = 3 V,
+ * while the newer devices (e. g. ATmega128, ATmega8) only experience
+ * a negligible change.
+ *
+ * Possible timeout values are: 15 ms, 30 ms, 60 ms, 120 ms, 250 ms,
+ * 500 ms, 1 s, 2 s. (Some devices also allow for 4 s and 8 s.)
+ * Symbolic constants are formed by the prefix
+ * @c WDTO_, followed by the time.
+ *
+ * Example that would select a watchdog timer expiry of approximately
+ * 500 ms:
+ *
+ * @code{.c}
+ * wdt_enable(WDTO_500MS);
+ * @endcode
*/
#define WDTO_15MS 0
-/** \ingroup avr_watchdog
- See \c WDT0_15MS */
+/** @see WDT0_15MS */
#define WDTO_30MS 1
-/** \ingroup avr_watchdog See
- \c WDT0_15MS */
+/** @see WDT0_15MS */
#define WDTO_60MS 2
-/** \ingroup avr_watchdog
- See \c WDT0_15MS */
+/** @see WDT0_15MS */
#define WDTO_120MS 3
-/** \ingroup avr_watchdog
- See \c WDT0_15MS */
+/** @see WDT0_15MS */
#define WDTO_250MS 4
-/** \ingroup avr_watchdog
- See \c WDT0_15MS */
+/** @see WDT0_15MS */
#define WDTO_500MS 5
-/** \ingroup avr_watchdog
- See \c WDT0_15MS */
+/** @see WDT0_15MS */
#define WDTO_1S 6
-/** \ingroup avr_watchdog
- See \c WDT0_15MS */
+/** @see WDT0_15MS */
#define WDTO_2S 7
#if defined(__DOXYGEN__) || defined(WDP3)
-/** \ingroup avr_watchdog
- See \c WDT0_15MS
- Note: This is only available on the
- ATtiny2313,
- ATtiny24, ATtiny44, ATtiny84,
- ATtiny25, ATtiny45, ATtiny85,
- ATtiny261, ATtiny461, ATtiny861,
- ATmega48, ATmega88, ATmega168,
- ATmega48P, ATmega88P, ATmega168P, ATmega328P,
- ATmega164P, ATmega324P, ATmega644P, ATmega644,
- ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561,
- ATmega8HVA, ATmega16HVA, ATmega32HVB,
- ATmega406, ATmega1284P,
- AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316,
- AT90PWM81,
- AT90USB82, AT90USB162,
- AT90USB646, AT90USB647, AT90USB1286, AT90USB1287,
- ATtiny48, ATtiny88.
- */
+/**
+ * @see WDT0_15MS
+ *
+ * Note: This is only available on:
+ * ATtiny2313,
+ * ATtiny24, ATtiny44, ATtiny84,
+ * ATtiny25, ATtiny45, ATtiny85,
+ * ATtiny261, ATtiny461, ATtiny861,
+ * ATmega48, ATmega88, ATmega168,
+ * ATmega48P, ATmega88P, ATmega168P, ATmega328P,
+ * ATmega164P, ATmega324P, ATmega644P, ATmega644,
+ * ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561,
+ * ATmega8HVA, ATmega16HVA, ATmega32HVB,
+ * ATmega406, ATmega1284P,
+ * AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316,
+ * AT90PWM81,
+ * AT90USB82, AT90USB162,
+ * AT90USB646, AT90USB647, AT90USB1286, AT90USB1287,
+ * ATtiny48, ATtiny88.
+ */
#define WDTO_4S 8
-/** \ingroup avr_watchdog
- See \c WDT0_15MS
- Note: This is only available on the
- ATtiny2313,
- ATtiny24, ATtiny44, ATtiny84,
- ATtiny25, ATtiny45, ATtiny85,
- ATtiny261, ATtiny461, ATtiny861,
- ATmega48, ATmega88, ATmega168,
- ATmega48P, ATmega88P, ATmega168P, ATmega328P,
- ATmega164P, ATmega324P, ATmega644P, ATmega644,
- ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561,
- ATmega8HVA, ATmega16HVA, ATmega32HVB,
- ATmega406, ATmega1284P,
- AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316,
- AT90PWM81,
- AT90USB82, AT90USB162,
- AT90USB646, AT90USB647, AT90USB1286, AT90USB1287,
- ATtiny48, ATtiny88.
- */
+/** @see WDTO_4S */
#define WDTO_8S 9
#endif /* defined(__DOXYGEN__) || defined(WDP3) */
-
+/** @} */
#endif /* _AVR_WDT_H_ */
diff --git a/cpukit/score/cpu/avr/rtems/asm.h b/cpukit/score/cpu/avr/rtems/asm.h
index 89f1385b36..e93841d06e 100644
--- a/cpukit/score/cpu/avr/rtems/asm.h
+++ b/cpukit/score/cpu/avr/rtems/asm.h
@@ -1,17 +1,20 @@
/**
- * @file rtems/asm.h
+ * @file
*
- * This include file attempts to address the problems
- * caused by incompatible flavors of assemblers and
- * toolsets. It primarily addresses variations in the
- * use of leading underscores on symbols and the requirement
- * that register names be preceded by a %.
+ * @brief Address the Problems Caused by Incompatible Flavor of
+ * Assemblers and Toolsets
+ *
+ * This include file attempts to address the problems
+ * caused by incompatible flavors of assemblers and
+ * toolsets. It primarily addresses variations in the
+ * use of leading underscores on symbols and the requirement
+ * that register names be preceded by a %.
+ *
+ * @note The spacing in the use of these macros
+ * is critical to them working as advertised.
*/
/*
- * NOTE: The spacing in the use of these macros
- * is critical to them working as advertised.
- *
* COPYRIGHT:
*
* This file is based on similar code found in newlib available
@@ -324,7 +327,7 @@
lpm / mov Rd,r0
lpm / adiw ZL,1
lpm / mov Rd,r0 / adiw ZL,1
-
+
For enhanced chips it is one instruction always.
ATTENTION: unlike enhanced chips SREG (S,V,N,Z,C) flags are
diff --git a/cpukit/score/cpu/avr/rtems/score/avr.h b/cpukit/score/cpu/avr/rtems/score/avr.h
index 23ecbb3e76..cee1a24102 100644
--- a/cpukit/score/cpu/avr/rtems/score/avr.h
+++ b/cpukit/score/cpu/avr/rtems/score/avr.h
@@ -1,13 +1,16 @@
/**
- * @file rtems/score/avr.h
+ * @file
+ *
+ * @brief Intel AVR Set up Basic CPU Dependency Settings Based on
+ * Compiler Settings
+ *
+ * This file sets up basic CPU dependency settings based on
+ * compiler settings. For example, it can determine if
+ * floating point is available. This particular implementation
+ * is specified to the avr port.
*/
/*
- * This file sets up basic CPU dependency settings based on
- * compiler settings. For example, it can determine if
- * floating point is available. This particular implementation
- * is specified to the avr port.
- *
* COPYRIGHT 2004, Ralf Corsepius, Ulm, Germany.
*
* The license and distribution terms for this file may be
diff --git a/cpukit/score/cpu/avr/rtems/score/cpu.h b/cpukit/score/cpu/avr/rtems/score/cpu.h
index 2bfcbceaf9..5f1577af20 100644
--- a/cpukit/score/cpu/avr/rtems/score/cpu.h
+++ b/cpukit/score/cpu/avr/rtems/score/cpu.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/cpu.h
+ * @file
+ *
+ * @brief Intel AVR CPU Department Source
+ *
+ * This include file contains information pertaining to the AVR
+ * processor.
*/
/*
- * This include file contains information pertaining to the AVR
- * processor.
- *
* COPYRIGHT (c) 1989-2006.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/avr/rtems/score/cpu_asm.h b/cpukit/score/cpu/avr/rtems/score/cpu_asm.h
index e3797a93f9..e11caec486 100644
--- a/cpukit/score/cpu/avr/rtems/score/cpu_asm.h
+++ b/cpukit/score/cpu/avr/rtems/score/cpu_asm.h
@@ -1,12 +1,14 @@
/**
- * @file rtems/score/cpu_asm.h
+ * @file
+ *
+ * @brief Intel AVR Assembly File
+ *
+ * Very loose template for an include file for the cpu_asm.? file
+ * if it is implemented as a ".S" file (preprocessed by cpp) instead
+ * of a ".s" file (preprocessed by gm4 or gasp).
*/
/*
- * Very loose template for an include file for the cpu_asm.? file
- * if it is implemented as a ".S" file (preprocessed by cpp) instead
- * of a ".s" file (preprocessed by gm4 or gasp).
- *
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/avr/rtems/score/types.h b/cpukit/score/cpu/avr/rtems/score/types.h
index 77eb0dbc30..a4710d3331 100644
--- a/cpukit/score/cpu/avr/rtems/score/types.h
+++ b/cpukit/score/cpu/avr/rtems/score/types.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/types.h
+ * @file
+ *
+ * @brief Intel AVR CPU Type Definitions
+ *
+ * This include file contains type definitions pertaining to the Intel
+ * avr processor family.
*/
/*
- * This include file contains type definitions pertaining to the Intel
- * avr processor family.
- *
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/bfin/rtems/asm.h b/cpukit/score/cpu/bfin/rtems/asm.h
index dbe0d7f407..5d133ddbdd 100644
--- a/cpukit/score/cpu/bfin/rtems/asm.h
+++ b/cpukit/score/cpu/bfin/rtems/asm.h
@@ -1,17 +1,20 @@
/**
- * @file rtems/asm.h
+ * @file
*
- * This include file attempts to address the problems
- * caused by incompatible flavors of assemblers and
- * toolsets. It primarily addresses variations in the
- * use of leading underscores on symbols and the requirement
- * that register names be preceded by a %.
+ * @brief Address the Problems Caused by Incompatible Flavor of
+ * Assemblers and Toolsets
+ *
+ * This include file attempts to address the problems
+ * caused by incompatible flavors of assemblers and
+ * toolsets. It primarily addresses variations in the
+ * use of leading underscores on symbols and the requirement
+ * that register names be preceded by a %.
+ *
+ * @note The spacing in the use of these macros
+ * is critical to them working as advertised.
*/
/*
- * NOTE: The spacing in the use of these macros
- * is critical to them working as advertised.
- *
* COPYRIGHT:
*
* This file is based on similar code found in newlib available
@@ -38,24 +41,24 @@
#ifndef __USER_LABEL_PREFIX__
/**
- * Recent versions of GNU cpp define variables which indicate the
- * need for underscores and percents. If not using GNU cpp or
- * the version does not support this, then you will obviously
- * have to define these as appropriate.
+ * Recent versions of GNU cpp define variables which indicate the
+ * need for underscores and percents. If not using GNU cpp or
+ * the version does not support this, then you will obviously
+ * have to define these as appropriate.
*
- * This symbol is prefixed to all C program symbols.
+ * This symbol is prefixed to all C program symbols.
*/
#define __USER_LABEL_PREFIX__ _
#endif
#ifndef __REGISTER_PREFIX__
/**
- * Recent versions of GNU cpp define variables which indicate the
- * need for underscores and percents. If not using GNU cpp or
- * the version does not support this, then you will obviously
- * have to define these as appropriate.
+ * Recent versions of GNU cpp define variables which indicate the
+ * need for underscores and percents. If not using GNU cpp or
+ * the version does not support this, then you will obviously
+ * have to define these as appropriate.
*
- * This symbol is prefixed to all register names.
+ * This symbol is prefixed to all register names.
*/
#define __REGISTER_PREFIX__
#endif
@@ -95,8 +98,9 @@
#define BEGIN_DATA
/** This macro is used to denote the end of a data section. */
#define END_DATA
-/** This macro is used to denote the beginning of the
- * unitialized data section.
+/**
+ * This macro is used to denote the beginning of the
+ * unitialized data section.
*/
#define BEGIN_BSS
/** This macro is used to denote the end of the unitialized data section. */
@@ -105,18 +109,18 @@
#define END
/**
- * This macro is used to declare a public global symbol.
+ * This macro is used to declare a public global symbol.
*
- * @note This must be tailored for a particular flavor of the C compiler.
- * They may need to put underscores in front of the symbols.
+ * @note This must be tailored for a particular flavor of the C compiler.
+ * They may need to put underscores in front of the symbols.
*/
#define PUBLIC(sym) .globl SYM (sym)
/**
- * This macro is used to prototype a public global symbol.
+ * This macro is used to prototype a public global symbol.
*
- * @note This must be tailored for a particular flavor of the C compiler.
- * They may need to put underscores in front of the symbols.
+ * @note This must be tailored for a particular flavor of the C compiler.
+ * They may need to put underscores in front of the symbols.
*/
#define EXTERN(sym) .globl SYM (sym)
diff --git a/cpukit/score/cpu/bfin/rtems/bfin/bf52x.h b/cpukit/score/cpu/bfin/rtems/bfin/bf52x.h
index 3c5bf7b3ef..7b4a41ac05 100644
--- a/cpukit/score/cpu/bfin/rtems/bfin/bf52x.h
+++ b/cpukit/score/cpu/bfin/rtems/bfin/bf52x.h
@@ -1,13 +1,17 @@
/**
- *@file bf52x.h
+ * @file
*
- * This file defines basic MMR for the Blackfin 52x CPU.
- * The MMR have been taken from the ADSP-BF52x Blackfin Processor
- * Hardware Reference from Analog Devices. Mentioned Chapters
- * refer to this Documentation.
+ * @brief Basic MMR for the Blackfin 52x CPU
*
- * Based on bf533.h
+ * This file defines basic MMR for the Blackfin 52x CPU.
+ * The MMR have been taken from the ADSP-BF52x Blackfin Processor
+ * Hardware Reference from Analog Devices. Mentioned Chapters
+ * refer to this Documentation.
*
+ * Based on bf533.h
+ */
+
+/*
* COPYRIGHT (c) 2006.
* Atos Automacao Industrial LTDA.
* modified by Alain Schaefer <alain.schaefer@easc.ch>
@@ -18,11 +22,8 @@
* http://www.rtems.com/license/LICENSE.
*
*
- * @author Rohan Kangralkar, ECE Department Northeastern University
- * @date 02/15/2011
- *
- * HISTORY:
- *
+ * Author: Rohan Kangralkar, ECE Department Northeastern University
+ * Date: 02/15/2011
*/
#ifndef _RTEMS_BFIN_52x_H
diff --git a/cpukit/score/cpu/bfin/rtems/bfin/bf533.h b/cpukit/score/cpu/bfin/rtems/bfin/bf533.h
index 005a6fbb81..3ebff2cd90 100644
--- a/cpukit/score/cpu/bfin/rtems/bfin/bf533.h
+++ b/cpukit/score/cpu/bfin/rtems/bfin/bf533.h
@@ -1,14 +1,18 @@
-/* bfin.h
+/**
+ * @file
*
- * This file defines basic MMR for the Blackfin 531/532/533 CPU.
- * The MMR have been taken from the ADSP-BF533 Blackfin Processor
- * Hardware Reference from Analog Devices. Mentioned Chapters
- * refer to this Documentation.
+ * @brief Basic MMR for the Blackfin 531/532/533 CPU
*
- * The Blackfins MMRs are divided into core MMRs (0xFFE0 0000–0xFFFF FFFF)
- * and System MMRs (0xFFC0 0000–0xFFE0 0000). The core MMRs are defined
- * in bfin.h which is included.
+ * This file defines basic MMR for the Blackfin 531/532/533 CPU.
+ * The MMR have been taken from the ADSP-BF533 Blackfin Processor
+ * Hardware Reference from Analog Devices. Mentioned Chapters
+ * refer to this Documentation.
*
+ * The Blackfins MMRs are divided into core MMRs (0xFFE0 0000–0xFFFF FFFF)
+ * and System MMRs (0xFFC0 0000–0xFFE0 0000). The core MMRs are defined
+ * in bfin.h which is included.
+ */
+/*
* COPYRIGHT (c) 2006.
* Atos Automacao Industrial LTDA.
* modified by Alain Schaefer <alain.schaefer@easc.ch>
diff --git a/cpukit/score/cpu/bfin/rtems/bfin/bfin.h b/cpukit/score/cpu/bfin/rtems/bfin/bfin.h
index f3d6341d5c..ad7631d054 100644
--- a/cpukit/score/cpu/bfin/rtems/bfin/bfin.h
+++ b/cpukit/score/cpu/bfin/rtems/bfin/bfin.h
@@ -1,8 +1,12 @@
-/* bfin.h
+/**
+ * @file
*
- * This file defines Macros for MMR register common to all Blackfin
- * Processors.
+ * @brief Macros for MMR register common to all Blackfin Processors
*
+ * This file defines Macros for MMR register common to all Blackfin
+ * Processors.
+ */
+/*
* COPYRIGHT (c) 2006 by Atos Automacao Industrial Ltda.
* modified by Alain Schaefer <alain.schaefer@easc.ch>
* and Antonio Giovanini <antonio@atos.com.br>
diff --git a/cpukit/score/cpu/bfin/rtems/score/bfin.h b/cpukit/score/cpu/bfin/rtems/score/bfin.h
index 9eda79fd2d..2907840680 100644
--- a/cpukit/score/cpu/bfin/rtems/score/bfin.h
+++ b/cpukit/score/cpu/bfin/rtems/score/bfin.h
@@ -1,10 +1,16 @@
-/* bfin.h
+/**
+ * @file
*
- * This file sets up basic CPU dependency settings based on
- * compiler settings. For example, it can determine if
- * floating point is available. This particular implementation
- * is specified to the Blackfin port.
+ * @brief Blackfin Set up Basic CPU Dependency Settings Based on
+ * Compiler Settings
*
+ * This file sets up basic CPU dependency settings based on
+ * compiler settings. For example, it can determine if
+ * floating point is available. This particular implementation
+ * is specified to the Blackfin port.
+ */
+
+/*
*
* COPYRIGHT (c) 1989-2006.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/score/cpu/bfin/rtems/score/cpu.h b/cpukit/score/cpu/bfin/rtems/score/cpu.h
index f6fab7543b..1b265276ba 100644
--- a/cpukit/score/cpu/bfin/rtems/score/cpu.h
+++ b/cpukit/score/cpu/bfin/rtems/score/cpu.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/cpu.h
+ * @file
+ *
+ * @brief Blackfin CPU Department Source
+ *
+ * This include file contains information pertaining to the Blackfin
+ * processor.
*/
/*
- * This include file contains information pertaining to the Blackfin
- * processor.
- *
* COPYRIGHT (c) 1989-2006.
* On-Line Applications Research Corporation (OAR).
* adapted to Blackfin by Alain Schaefer <alain.schaefer@easc.ch>
@@ -29,77 +31,77 @@ extern "C" {
/* conditional compilation parameters */
/**
- * Should the calls to @ref _Thread_Enable_dispatch be inlined?
+ * Should the calls to @ref _Thread_Enable_dispatch be inlined?
*
- * If TRUE, then they are inlined.
- * If FALSE, then a subroutine call is made.
+ * If TRUE, then they are inlined.
+ * If FALSE, then a subroutine call is made.
*
- * This conditional is an example of the classic trade-off of size
- * versus speed. Inlining the call (TRUE) typically increases the
- * size of RTEMS while speeding up the enabling of dispatching.
+ * This conditional is an example of the classic trade-off of size
+ * versus speed. Inlining the call (TRUE) typically increases the
+ * size of RTEMS while speeding up the enabling of dispatching.
*
- * @note In general, the @ref _Thread_Dispatch_disable_level will
- * only be 0 or 1 unless you are in an interrupt handler and that
- * interrupt handler invokes the executive.] When not inlined
- * something calls @ref _Thread_Enable_dispatch which in turns calls
- * @ref _Thread_Dispatch. If the enable dispatch is inlined, then
- * one subroutine call is avoided entirely.
+ * @note In general, the @ref _Thread_Dispatch_disable_level will
+ * only be 0 or 1 unless you are in an interrupt handler and that
+ * interrupt handler invokes the executive.] When not inlined
+ * something calls @ref _Thread_Enable_dispatch which in turns calls
+ * @ref _Thread_Dispatch. If the enable dispatch is inlined, then
+ * one subroutine call is avoided entirely.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_INLINE_ENABLE_DISPATCH FALSE
/**
- * Should the body of the search loops in _Thread_queue_Enqueue_priority
- * be unrolled one time? In unrolled each iteration of the loop examines
- * two "nodes" on the chain being searched. Otherwise, only one node
- * is examined per iteration.
+ * Should the body of the search loops in _Thread_queue_Enqueue_priority
+ * be unrolled one time? In unrolled each iteration of the loop examines
+ * two "nodes" on the chain being searched. Otherwise, only one node
+ * is examined per iteration.
*
- * If TRUE, then the loops are unrolled.
- * If FALSE, then the loops are not unrolled.
+ * If TRUE, then the loops are unrolled.
+ * If FALSE, then the loops are not unrolled.
*
- * The primary factor in making this decision is the cost of disabling
- * and enabling interrupts (_ISR_Flash) versus the cost of rest of the
- * body of the loop. On some CPUs, the flash is more expensive than
- * one iteration of the loop body. In this case, it might be desirable
- * to unroll the loop. It is important to note that on some CPUs, this
- * code is the longest interrupt disable period in RTEMS. So it is
- * necessary to strike a balance when setting this parameter.
+ * The primary factor in making this decision is the cost of disabling
+ * and enabling interrupts (_ISR_Flash) versus the cost of rest of the
+ * body of the loop. On some CPUs, the flash is more expensive than
+ * one iteration of the loop body. In this case, it might be desirable
+ * to unroll the loop. It is important to note that on some CPUs, this
+ * code is the longest interrupt disable period in RTEMS. So it is
+ * necessary to strike a balance when setting this parameter.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_UNROLL_ENQUEUE_PRIORITY TRUE
/**
- * Does RTEMS manage a dedicated interrupt stack in software?
+ * Does RTEMS manage a dedicated interrupt stack in software?
*
- * If TRUE, then a stack is allocated in @ref _ISR_Handler_initialization.
- * If FALSE, nothing is done.
+ * If TRUE, then a stack is allocated in @ref _ISR_Handler_initialization.
+ * If FALSE, nothing is done.
*
- * If the CPU supports a dedicated interrupt stack in hardware,
- * then it is generally the responsibility of the BSP to allocate it
- * and set it up.
+ * If the CPU supports a dedicated interrupt stack in hardware,
+ * then it is generally the responsibility of the BSP to allocate it
+ * and set it up.
*
- * If the CPU does not support a dedicated interrupt stack, then
- * the porter has two options: (1) execute interrupts on the
- * stack of the interrupted task, and (2) have RTEMS manage a dedicated
- * interrupt stack.
+ * If the CPU does not support a dedicated interrupt stack, then
+ * the porter has two options: (1) execute interrupts on the
+ * stack of the interrupted task, and (2) have RTEMS manage a dedicated
+ * interrupt stack.
*
- * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
+ * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
*
- * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
- * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
- * possible that both are FALSE for a particular CPU. Although it
- * is unclear what that would imply about the interrupt processing
- * procedure on that CPU.
+ * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
+ * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
+ * possible that both are FALSE for a particular CPU. Although it
+ * is unclear what that would imply about the interrupt processing
+ * procedure on that CPU.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_HAS_SOFTWARE_INTERRUPT_STACK TRUE
@@ -130,84 +132,84 @@ extern "C" {
#define CPU_SIMPLE_VECTORED_INTERRUPTS TRUE
/**
- * Does this CPU have hardware support for a dedicated interrupt stack?
+ * Does this CPU have hardware support for a dedicated interrupt stack?
*
- * If TRUE, then it must be installed during initialization.
- * If FALSE, then no installation is performed.
+ * If TRUE, then it must be installed during initialization.
+ * If FALSE, then no installation is performed.
*
- * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
+ * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
*
- * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
- * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
- * possible that both are FALSE for a particular CPU. Although it
- * is unclear what that would imply about the interrupt processing
- * procedure on that CPU.
+ * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
+ * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
+ * possible that both are FALSE for a particular CPU. Although it
+ * is unclear what that would imply about the interrupt processing
+ * procedure on that CPU.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_HAS_HARDWARE_INTERRUPT_STACK FALSE
/**
- * Does RTEMS allocate a dedicated interrupt stack in the Interrupt Manager?
+ * Does RTEMS allocate a dedicated interrupt stack in the Interrupt Manager?
*
- * If TRUE, then the memory is allocated during initialization.
- * If FALSE, then the memory is allocated during initialization.
+ * If TRUE, then the memory is allocated during initialization.
+ * If FALSE, then the memory is allocated during initialization.
*
- * This should be TRUE is CPU_HAS_SOFTWARE_INTERRUPT_STACK is TRUE.
+ * This should be TRUE is CPU_HAS_SOFTWARE_INTERRUPT_STACK is TRUE.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_ALLOCATE_INTERRUPT_STACK TRUE
/**
- * Does the RTEMS invoke the user's ISR with the vector number and
- * a pointer to the saved interrupt frame (1) or just the vector
- * number (0)?
+ * Does the RTEMS invoke the user's ISR with the vector number and
+ * a pointer to the saved interrupt frame (1) or just the vector
+ * number (0)?
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_ISR_PASSES_FRAME_POINTER 1
/**
- * @def CPU_HARDWARE_FP
+ * @def CPU_HARDWARE_FP
*
- * Does the CPU have hardware floating point?
+ * Does the CPU have hardware floating point?
*
- * If TRUE, then the RTEMS_FLOATING_POINT task attribute is supported.
- * If FALSE, then the RTEMS_FLOATING_POINT task attribute is ignored.
+ * If TRUE, then the RTEMS_FLOATING_POINT task attribute is supported.
+ * If FALSE, then the RTEMS_FLOATING_POINT task attribute is ignored.
*
- * If there is a FP coprocessor such as the i387 or mc68881, then
- * the answer is TRUE.
+ * If there is a FP coprocessor such as the i387 or mc68881, then
+ * the answer is TRUE.
*
- * The macro name "NO_CPU_HAS_FPU" should be made CPU specific.
- * It indicates whether or not this CPU model has FP support. For
- * example, it would be possible to have an i386_nofp CPU model
- * which set this to false to indicate that you have an i386 without
- * an i387 and wish to leave floating point support out of RTEMS.
+ * The macro name "NO_CPU_HAS_FPU" should be made CPU specific.
+ * It indicates whether or not this CPU model has FP support. For
+ * example, it would be possible to have an i386_nofp CPU model
+ * which set this to false to indicate that you have an i386 without
+ * an i387 and wish to leave floating point support out of RTEMS.
*/
/**
- * @def CPU_SOFTWARE_FP
+ * @def CPU_SOFTWARE_FP
*
- * Does the CPU have no hardware floating point and GCC provides a
- * software floating point implementation which must be context
- * switched?
+ * Does the CPU have no hardware floating point and GCC provides a
+ * software floating point implementation which must be context
+ * switched?
*
- * This feature conditional is used to indicate whether or not there
- * is software implemented floating point that must be context
- * switched. The determination of whether or not this applies
- * is very tool specific and the state saved/restored is also
- * compiler specific.
+ * This feature conditional is used to indicate whether or not there
+ * is software implemented floating point that must be context
+ * switched. The determination of whether or not this applies
+ * is very tool specific and the state saved/restored is also
+ * compiler specific.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#if ( BLACKFIN_CPU_HAS_FPU == 1 )
#define CPU_HARDWARE_FP TRUE
@@ -217,192 +219,194 @@ extern "C" {
#define CPU_SOFTWARE_FP FALSE
/**
- * Are all tasks RTEMS_FLOATING_POINT tasks implicitly?
+ * Are all tasks RTEMS_FLOATING_POINT tasks implicitly?
*
- * If TRUE, then the RTEMS_FLOATING_POINT task attribute is assumed.
- * If FALSE, then the RTEMS_FLOATING_POINT task attribute is followed.
+ * If TRUE, then the RTEMS_FLOATING_POINT task attribute is assumed.
+ * If FALSE, then the RTEMS_FLOATING_POINT task attribute is followed.
*
- * So far, the only CPUs in which this option has been used are the
- * HP PA-RISC and PowerPC. On the PA-RISC, The HP C compiler and
- * gcc both implicitly used the floating point registers to perform
- * integer multiplies. Similarly, the PowerPC port of gcc has been
- * seen to allocate floating point local variables and touch the FPU
- * even when the flow through a subroutine (like vfprintf()) might
- * not use floating point formats.
+ * So far, the only CPUs in which this option has been used are the
+ * HP PA-RISC and PowerPC. On the PA-RISC, The HP C compiler and
+ * gcc both implicitly used the floating point registers to perform
+ * integer multiplies. Similarly, the PowerPC port of gcc has been
+ * seen to allocate floating point local variables and touch the FPU
+ * even when the flow through a subroutine (like vfprintf()) might
+ * not use floating point formats.
*
- * If a function which you would not think utilize the FP unit DOES,
- * then one can not easily predict which tasks will use the FP hardware.
- * In this case, this option should be TRUE.
+ * If a function which you would not think utilize the FP unit DOES,
+ * then one can not easily predict which tasks will use the FP hardware.
+ * In this case, this option should be TRUE.
*
- * If @ref CPU_HARDWARE_FP is FALSE, then this should be FALSE as well.
+ * If @ref CPU_HARDWARE_FP is FALSE, then this should be FALSE as well.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_ALL_TASKS_ARE_FP FALSE
/**
- * Should the IDLE task have a floating point context?
+ * Should the IDLE task have a floating point context?
*
- * If TRUE, then the IDLE task is created as a RTEMS_FLOATING_POINT task
- * and it has a floating point context which is switched in and out.
- * If FALSE, then the IDLE task does not have a floating point context.
+ * If TRUE, then the IDLE task is created as a RTEMS_FLOATING_POINT task
+ * and it has a floating point context which is switched in and out.
+ * If FALSE, then the IDLE task does not have a floating point context.
*
- * Setting this to TRUE negatively impacts the time required to preempt
- * the IDLE task from an interrupt because the floating point context
- * must be saved as part of the preemption.
+ * Setting this to TRUE negatively impacts the time required to preempt
+ * the IDLE task from an interrupt because the floating point context
+ * must be saved as part of the preemption.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_IDLE_TASK_IS_FP FALSE
/**
- * Should the saving of the floating point registers be deferred
- * until a context switch is made to another different floating point
- * task?
+ * Should the saving of the floating point registers be deferred
+ * until a context switch is made to another different floating point
+ * task?
*
- * If TRUE, then the floating point context will not be stored until
- * necessary. It will remain in the floating point registers and not
- * disturned until another floating point task is switched to.
+ * If TRUE, then the floating point context will not be stored until
+ * necessary. It will remain in the floating point registers and not
+ * disturned until another floating point task is switched to.
*
- * If FALSE, then the floating point context is saved when a floating
- * point task is switched out and restored when the next floating point
- * task is restored. The state of the floating point registers between
- * those two operations is not specified.
+ * If FALSE, then the floating point context is saved when a floating
+ * point task is switched out and restored when the next floating point
+ * task is restored. The state of the floating point registers between
+ * those two operations is not specified.
*
- * If the floating point context does NOT have to be saved as part of
- * interrupt dispatching, then it should be safe to set this to TRUE.
+ * If the floating point context does NOT have to be saved as part of
+ * interrupt dispatching, then it should be safe to set this to TRUE.
*
- * Setting this flag to TRUE results in using a different algorithm
- * for deciding when to save and restore the floating point context.
- * The deferred FP switch algorithm minimizes the number of times
- * the FP context is saved and restored. The FP context is not saved
- * until a context switch is made to another, different FP task.
- * Thus in a system with only one FP task, the FP context will never
- * be saved or restored.
+ * Setting this flag to TRUE results in using a different algorithm
+ * for deciding when to save and restore the floating point context.
+ * The deferred FP switch algorithm minimizes the number of times
+ * the FP context is saved and restored. The FP context is not saved
+ * until a context switch is made to another, different FP task.
+ * Thus in a system with only one FP task, the FP context will never
+ * be saved or restored.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_USE_DEFERRED_FP_SWITCH TRUE
/**
- * Does this port provide a CPU dependent IDLE task implementation?
+ * Does this port provide a CPU dependent IDLE task implementation?
*
- * If TRUE, then the routine @ref _CPU_Thread_Idle_body
- * must be provided and is the default IDLE thread body instead of
- * @ref _CPU_Thread_Idle_body.
+ * If TRUE, then the routine @ref _CPU_Thread_Idle_body
+ * must be provided and is the default IDLE thread body instead of
+ * @ref _CPU_Thread_Idle_body.
*
- * If FALSE, then use the generic IDLE thread body if the BSP does
- * not provide one.
+ * If FALSE, then use the generic IDLE thread body if the BSP does
+ * not provide one.
*
- * This is intended to allow for supporting processors which have
- * a low power or idle mode. When the IDLE thread is executed, then
- * the CPU can be powered down.
+ * This is intended to allow for supporting processors which have
+ * a low power or idle mode. When the IDLE thread is executed, then
+ * the CPU can be powered down.
*
- * The order of precedence for selecting the IDLE thread body is:
+ * The order of precedence for selecting the IDLE thread body is:
*
- * -# BSP provided
- * -# CPU dependent (if provided)
- * -# generic (if no BSP and no CPU dependent)
+ * -# BSP provided
+ * -# CPU dependent (if provided)
+ * -# generic (if no BSP and no CPU dependent)
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_PROVIDES_IDLE_THREAD_BODY TRUE
/**
- * Does the stack grow up (toward higher addresses) or down
- * (toward lower addresses)?
+ * Does the stack grow up (toward higher addresses) or down
+ * (toward lower addresses)?
*
- * If TRUE, then the grows upward.
- * If FALSE, then the grows toward smaller addresses.
+ * If TRUE, then the grows upward.
+ * If FALSE, then the grows toward smaller addresses.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_STACK_GROWS_UP FALSE
/**
- * The following is the variable attribute used to force alignment
- * of critical RTEMS structures. On some processors it may make
- * sense to have these aligned on tighter boundaries than
- * the minimum requirements of the compiler in order to have as
- * much of the critical data area as possible in a cache line.
+ * The following is the variable attribute used to force alignment
+ * of critical RTEMS structures. On some processors it may make
+ * sense to have these aligned on tighter boundaries than
+ * the minimum requirements of the compiler in order to have as
+ * much of the critical data area as possible in a cache line.
*
- * The placement of this macro in the declaration of the variables
- * is based on the syntactically requirements of the GNU C
- * "__attribute__" extension. For example with GNU C, use
- * the following to force a structures to a 32 byte boundary.
+ * The placement of this macro in the declaration of the variables
+ * is based on the syntactically requirements of the GNU C
+ * "__attribute__" extension. For example with GNU C, use
+ * the following to force a structures to a 32 byte boundary.
*
- * __attribute__ ((aligned (32)))
+ * __attribute__ ((aligned (32)))
*
- * @note Currently only the Priority Bit Map table uses this feature.
- * To benefit from using this, the data must be heavily
- * used so it will stay in the cache and used frequently enough
- * in the executive to justify turning this on.
+ * @note Currently only the Priority Bit Map table uses this feature.
+ * To benefit from using this, the data must be heavily
+ * used so it will stay in the cache and used frequently enough
+ * in the executive to justify turning this on.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_STRUCTURE_ALIGNMENT
#define CPU_TIMESTAMP_USE_INT64_INLINE TRUE
/**
- * @defgroup CPUEndian Processor Dependent Endianness Support
+ * @defgroup CPUEndian Processor Dependent Endianness Support
+ *
+ * This group assists in issues related to processor endianness.
*
- * This group assists in issues related to processor endianness.
*/
+/**@{**/
/**
- * @ingroup CPUEndian
- * Define what is required to specify how the network to host conversion
- * routines are handled.
+ * Define what is required to specify how the network to host conversion
+ * routines are handled.
*
- * @note @a CPU_BIG_ENDIAN and @a CPU_LITTLE_ENDIAN should NOT have the
- * same values.
+ * @note @a CPU_BIG_ENDIAN and @a CPU_LITTLE_ENDIAN should NOT have the
+ * same values.
*
- * @see CPU_LITTLE_ENDIAN
+ * @see CPU_LITTLE_ENDIAN
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_BIG_ENDIAN FALSE
/**
- * @ingroup CPUEndian
- * Define what is required to specify how the network to host conversion
- * routines are handled.
+ * Define what is required to specify how the network to host conversion
+ * routines are handled.
*
- * @note @ref CPU_BIG_ENDIAN and @ref CPU_LITTLE_ENDIAN should NOT have the
- * same values.
+ * @note @ref CPU_BIG_ENDIAN and @ref CPU_LITTLE_ENDIAN should NOT have the
+ * same values.
*
- * @see CPU_BIG_ENDIAN
+ * @see CPU_BIG_ENDIAN
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_LITTLE_ENDIAN TRUE
+/** @} */
+
/**
- * @ingroup CPUInterrupt
- * The following defines the number of bits actually used in the
- * interrupt field of the task mode. How those bits map to the
- * CPU interrupt levels is defined by the routine @ref _CPU_ISR_Set_level.
+ * @ingroup CPUInterrupt
+ * The following defines the number of bits actually used in the
+ * interrupt field of the task mode. How those bits map to the
+ * CPU interrupt levels is defined by the routine @ref _CPU_ISR_Set_level.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_MODES_INTERRUPT_MASK 0x00000001
@@ -419,52 +423,52 @@ extern "C" {
/**
* @defgroup CPUContext Processor Dependent Context Management
*
- * From the highest level viewpoint, there are 2 types of context to save.
+ * From the highest level viewpoint, there are 2 types of context to save.
*
- * -# Interrupt registers to save
- * -# Task level registers to save
+ * -# Interrupt registers to save
+ * -# Task level registers to save
*
- * Since RTEMS handles integer and floating point contexts separately, this
- * means we have the following 3 context items:
+ * Since RTEMS handles integer and floating point contexts separately, this
+ * means we have the following 3 context items:
*
- * -# task level context stuff:: Context_Control
- * -# floating point task stuff:: Context_Control_fp
- * -# special interrupt level context :: CPU_Interrupt_frame
+ * -# task level context stuff:: Context_Control
+ * -# floating point task stuff:: Context_Control_fp
+ * -# special interrupt level context :: CPU_Interrupt_frame
*
- * On some processors, it is cost-effective to save only the callee
- * preserved registers during a task context switch. This means
- * that the ISR code needs to save those registers which do not
- * persist across function calls. It is not mandatory to make this
- * distinctions between the caller/callee saves registers for the
- * purpose of minimizing context saved during task switch and on interrupts.
- * If the cost of saving extra registers is minimal, simplicity is the
- * choice. Save the same context on interrupt entry as for tasks in
- * this case.
+ * On some processors, it is cost-effective to save only the callee
+ * preserved registers during a task context switch. This means
+ * that the ISR code needs to save those registers which do not
+ * persist across function calls. It is not mandatory to make this
+ * distinctions between the caller/callee saves registers for the
+ * purpose of minimizing context saved during task switch and on interrupts.
+ * If the cost of saving extra registers is minimal, simplicity is the
+ * choice. Save the same context on interrupt entry as for tasks in
+ * this case.
*
- * Additionally, if gdb is to be made aware of RTEMS tasks for this CPU, then
- * care should be used in designing the context area.
+ * Additionally, if gdb is to be made aware of RTEMS tasks for this CPU, then
+ * care should be used in designing the context area.
*
- * On some CPUs with hardware floating point support, the Context_Control_fp
- * structure will not be used or it simply consist of an array of a
- * fixed number of bytes. This is done when the floating point context
- * is dumped by a "FP save context" type instruction and the format
- * is not really defined by the CPU. In this case, there is no need
- * to figure out the exact format -- only the size. Of course, although
- * this is enough information for RTEMS, it is probably not enough for
- * a debugger such as gdb. But that is another problem.
+ * On some CPUs with hardware floating point support, the Context_Control_fp
+ * structure will not be used or it simply consist of an array of a
+ * fixed number of bytes. This is done when the floating point context
+ * is dumped by a "FP save context" type instruction and the format
+ * is not really defined by the CPU. In this case, there is no need
+ * to figure out the exact format -- only the size. Of course, although
+ * this is enough information for RTEMS, it is probably not enough for
+ * a debugger such as gdb. But that is another problem.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
+/**@{**/
#ifndef ASM
/**
- * @ingroup CPUContext Management
- * This defines the minimal set of integer and processor state registers
- * that must be saved during a voluntary context switch from one thread
- * to another.
+ * This defines the minimal set of integer and processor state registers
+ * that must be saved during a voluntary context switch from one thread
+ * to another.
*/
/* make sure this stays in sync with the assembly function
@@ -490,9 +494,8 @@ typedef struct {
(_context)->register_sp
/**
- * @ingroup CPUContext Management
- * This defines the complete set of floating point registers that must
- * be saved during any context switch from one thread to another.
+ * This defines the complete set of floating point registers that must
+ * be saved during any context switch from one thread to another.
*/
typedef struct {
/* FPU registers are listed here */
@@ -500,49 +503,51 @@ typedef struct {
} Context_Control_fp;
/**
- * @ingroup CPUContext Management
- * This defines the set of integer and processor state registers that must
- * be saved during an interrupt. This set does not include any which are
- * in @ref Context_Control.
+ * This defines the set of integer and processor state registers that must
+ * be saved during an interrupt. This set does not include any which are
+ * in @ref Context_Control.
*/
typedef struct {
/** This field is a hint that a port will have a number of integer
- * registers that need to be saved when an interrupt occurs or
- * when a context switch occurs at the end of an ISR.
+ * registers that need to be saved when an interrupt occurs or
+ * when a context switch occurs at the end of an ISR.
*/
/*uint32_t special_interrupt_register;*/
} CPU_Interrupt_frame;
/**
- * This variable is optional. It is used on CPUs on which it is difficult
- * to generate an "uninitialized" FP context. It is filled in by
- * @ref _CPU_Initialize and copied into the task's FP context area during
- * @ref _CPU_Context_Initialize.
+ * This variable is optional. It is used on CPUs on which it is difficult
+ * to generate an "uninitialized" FP context. It is filled in by
+ * @ref _CPU_Initialize and copied into the task's FP context area during
+ * @ref _CPU_Context_Initialize.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
+/** @} */
+
/**
- * @defgroup CPUInterrupt Processor Dependent Interrupt Management
+ * @defgroup CPUInterrupt Processor Dependent Interrupt Management
*
- * On some CPUs, RTEMS supports a software managed interrupt stack.
- * This stack is allocated by the Interrupt Manager and the switch
- * is performed in @ref _ISR_Handler. These variables contain pointers
- * to the lowest and highest addresses in the chunk of memory allocated
- * for the interrupt stack. Since it is unknown whether the stack
- * grows up or down (in general), this give the CPU dependent
- * code the option of picking the version it wants to use.
+ * On some CPUs, RTEMS supports a software managed interrupt stack.
+ * This stack is allocated by the Interrupt Manager and the switch
+ * is performed in @ref _ISR_Handler. These variables contain pointers
+ * to the lowest and highest addresses in the chunk of memory allocated
+ * for the interrupt stack. Since it is unknown whether the stack
+ * grows up or down (in general), this give the CPU dependent
+ * code the option of picking the version it wants to use.
*
- * @note These two variables are required if the macro
- * @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK is defined as TRUE.
+ * @note These two variables are required if the macro
+ * @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK is defined as TRUE.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
+/**@{**/
/*
* Nothing prevents the porter from declaring more CPU specific variables.
@@ -555,133 +560,135 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
/* XXX: if needed, put more variables here */
/**
- * @ingroup CPUContext
- * The size of the floating point context area. On some CPUs this
- * will not be a "sizeof" because the format of the floating point
- * area is not defined -- only the size is. This is usually on
- * CPUs with a "floating point save context" instruction.
+ * @ingroup CPUContext
+ * The size of the floating point context area. On some CPUs this
+ * will not be a "sizeof" because the format of the floating point
+ * area is not defined -- only the size is. This is usually on
+ * CPUs with a "floating point save context" instruction.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_CONTEXT_FP_SIZE sizeof( Context_Control_fp )
#endif /* ASM */
/**
- * Amount of extra stack (above minimum stack size) required by
- * MPCI receive server thread. Remember that in a multiprocessor
- * system this thread must exist and be able to process all directives.
+ * Amount of extra stack (above minimum stack size) required by
+ * MPCI receive server thread. Remember that in a multiprocessor
+ * system this thread must exist and be able to process all directives.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_MPCI_RECEIVE_SERVER_EXTRA_STACK 0
/**
- * @ingroup CPUInterrupt
- * This defines the number of entries in the @ref _ISR_Vector_table managed
- * by RTEMS.
+ * @ingroup CPUInterrupt
+ * This defines the number of entries in the @ref _ISR_Vector_table managed
+ * by RTEMS.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_INTERRUPT_NUMBER_OF_VECTORS 16
/**
- * @ingroup CPUInterrupt
- * This defines the highest interrupt vector number for this port.
+ * @ingroup CPUInterrupt
+ * This defines the highest interrupt vector number for this port.
*/
#define CPU_INTERRUPT_MAXIMUM_VECTOR_NUMBER (CPU_INTERRUPT_NUMBER_OF_VECTORS - 1)
/**
- * @ingroup CPUInterrupt
- * This is defined if the port has a special way to report the ISR nesting
- * level. Most ports maintain the variable @a _ISR_Nest_level.
+ * @ingroup CPUInterrupt
+ * This is defined if the port has a special way to report the ISR nesting
+ * level. Most ports maintain the variable @a _ISR_Nest_level.
*/
#define CPU_PROVIDES_ISR_IS_IN_PROGRESS FALSE
+/** @} */
+
/**
- * @ingroup CPUContext
- * Should be large enough to run all RTEMS tests. This ensures
- * that a "reasonable" small application should not have any problems.
+ * @ingroup CPUContext
+ * Should be large enough to run all RTEMS tests. This ensures
+ * that a "reasonable" small application should not have any problems.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_STACK_MINIMUM_SIZE (1024*8)
#define CPU_SIZEOF_POINTER 4
/**
- * CPU's worst alignment requirement for data types on a byte boundary. This
- * alignment does not take into account the requirements for the stack.
+ * CPU's worst alignment requirement for data types on a byte boundary. This
+ * alignment does not take into account the requirements for the stack.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_ALIGNMENT 8
/**
- * This number corresponds to the byte alignment requirement for the
- * heap handler. This alignment requirement may be stricter than that
- * for the data types alignment specified by @ref CPU_ALIGNMENT. It is
- * common for the heap to follow the same alignment requirement as
- * @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is strict enough for
- * the heap, then this should be set to @ref CPU_ALIGNMENT.
+ * This number corresponds to the byte alignment requirement for the
+ * heap handler. This alignment requirement may be stricter than that
+ * for the data types alignment specified by @ref CPU_ALIGNMENT. It is
+ * common for the heap to follow the same alignment requirement as
+ * @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is strict enough for
+ * the heap, then this should be set to @ref CPU_ALIGNMENT.
*
- * @note This does not have to be a power of 2 although it should be
- * a multiple of 2 greater than or equal to 2. The requirement
- * to be a multiple of 2 is because the heap uses the least
- * significant field of the front and back flags to indicate
- * that a block is in use or free. So you do not want any odd
- * length blocks really putting length data in that bit.
+ * @note This does not have to be a power of 2 although it should be
+ * a multiple of 2 greater than or equal to 2. The requirement
+ * to be a multiple of 2 is because the heap uses the least
+ * significant field of the front and back flags to indicate
+ * that a block is in use or free. So you do not want any odd
+ * length blocks really putting length data in that bit.
*
- * On byte oriented architectures, @ref CPU_HEAP_ALIGNMENT normally will
- * have to be greater or equal to than @ref CPU_ALIGNMENT to ensure that
- * elements allocated from the heap meet all restrictions.
+ * On byte oriented architectures, @ref CPU_HEAP_ALIGNMENT normally will
+ * have to be greater or equal to than @ref CPU_ALIGNMENT to ensure that
+ * elements allocated from the heap meet all restrictions.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_HEAP_ALIGNMENT CPU_ALIGNMENT
/**
- * This number corresponds to the byte alignment requirement for memory
- * buffers allocated by the partition manager. This alignment requirement
- * may be stricter than that for the data types alignment specified by
- * @ref CPU_ALIGNMENT. It is common for the partition to follow the same
- * alignment requirement as @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is
- * strict enough for the partition, then this should be set to
- * @ref CPU_ALIGNMENT.
+ * This number corresponds to the byte alignment requirement for memory
+ * buffers allocated by the partition manager. This alignment requirement
+ * may be stricter than that for the data types alignment specified by
+ * @ref CPU_ALIGNMENT. It is common for the partition to follow the same
+ * alignment requirement as @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is
+ * strict enough for the partition, then this should be set to
+ * @ref CPU_ALIGNMENT.
*
- * @note This does not have to be a power of 2. It does have to
- * be greater or equal to than @ref CPU_ALIGNMENT.
+ * @note This does not have to be a power of 2. It does have to
+ * be greater or equal to than @ref CPU_ALIGNMENT.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_PARTITION_ALIGNMENT CPU_ALIGNMENT
/**
- * This number corresponds to the byte alignment requirement for the
- * stack. This alignment requirement may be stricter than that for the
- * data types alignment specified by @ref CPU_ALIGNMENT. If the
- * @ref CPU_ALIGNMENT is strict enough for the stack, then this should be
- * set to 0.
+ * This number corresponds to the byte alignment requirement for the
+ * stack. This alignment requirement may be stricter than that for the
+ * data types alignment specified by @ref CPU_ALIGNMENT. If the
+ * @ref CPU_ALIGNMENT is strict enough for the stack, then this should be
+ * set to 0.
*
- * @note This must be a power of 2 either 0 or greater than @ref CPU_ALIGNMENT.
+ * @note This must be a power of 2 either 0 or greater than @ref CPU_ALIGNMENT.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_STACK_ALIGNMENT 8
@@ -690,25 +697,28 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
*/
/**
- * @ingroup CPUInterrupt
- * Support routine to initialize the RTEMS vector table after it is allocated.
+ * @addtogroup CPUInterrupt
+ */
+/**@{**/
+
+/**
+ * Support routine to initialize the RTEMS vector table after it is allocated.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Initialize_vectors()
/**
- * @ingroup CPUInterrupt
- * Disable all interrupts for an RTEMS critical section. The previous
- * level is returned in @a _isr_cookie.
+ * Disable all interrupts for an RTEMS critical section. The previous
+ * level is returned in @a _isr_cookie.
*
- * @param[out] _isr_cookie will contain the previous level cookie
+ * @param[out] _isr_cookie will contain the previous level cookie
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_ISR_Disable( _level ) \
{ \
@@ -717,33 +727,31 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
/**
- * @ingroup CPUInterrupt
- * Enable interrupts to the previous level (returned by _CPU_ISR_Disable).
- * This indicates the end of an RTEMS critical section. The parameter
- * @a _isr_cookie is not modified.
+ * Enable interrupts to the previous level (returned by _CPU_ISR_Disable).
+ * This indicates the end of an RTEMS critical section. The parameter
+ * @a _isr_cookie is not modified.
*
- * @param[in] _isr_cookie contain the previous level cookie
+ * @param[in] _isr_cookie contain the previous level cookie
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_ISR_Enable( _level ) { \
__asm__ __volatile__ ("sti %0; csync \n" : : "d" (_level) ); \
}
/**
- * @ingroup CPUInterrupt
- * This temporarily restores the interrupt to @a _isr_cookie before immediately
- * disabling them again. This is used to divide long RTEMS critical
- * sections into two or more parts. The parameter @a _isr_cookie is not
- * modified.
+ * This temporarily restores the interrupt to @a _isr_cookie before immediately
+ * disabling them again. This is used to divide long RTEMS critical
+ * sections into two or more parts. The parameter @a _isr_cookie is not
+ * modified.
*
- * @param[in] _isr_cookie contain the previous level cookie
+ * @param[in] _isr_cookie contain the previous level cookie
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_ISR_Flash( _level ) { \
__asm__ __volatile__ ("sti %0; csync; cli r0; csync" \
@@ -751,21 +759,19 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
}
/**
- * @ingroup CPUInterrupt
+ * This routine and @ref _CPU_ISR_Get_level
+ * Map the interrupt level in task mode onto the hardware that the CPU
+ * actually provides. Currently, interrupt levels which do not
+ * map onto the CPU in a generic fashion are undefined. Someday,
+ * it would be nice if these were "mapped" by the application
+ * via a callout. For example, m68k has 8 levels 0 - 7, levels
+ * 8 - 255 would be available for bsp/application specific meaning.
+ * This could be used to manage a programmable interrupt controller
+ * via the rtems_task_mode directive.
*
- * This routine and @ref _CPU_ISR_Get_level
- * Map the interrupt level in task mode onto the hardware that the CPU
- * actually provides. Currently, interrupt levels which do not
- * map onto the CPU in a generic fashion are undefined. Someday,
- * it would be nice if these were "mapped" by the application
- * via a callout. For example, m68k has 8 levels 0 - 7, levels
- * 8 - 255 would be available for bsp/application specific meaning.
- * This could be used to manage a programmable interrupt controller
- * via the rtems_task_mode directive.
+ * Port Specific Information:
*
- * Port Specific Information:
- *
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_ISR_Set_level( _new_level ) \
{ \
@@ -775,52 +781,53 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
#ifndef ASM
/**
- * @ingroup CPUInterrupt
- * Return the current interrupt disable level for this task in
- * the format used by the interrupt level portion of the task mode.
+ * Return the current interrupt disable level for this task in
+ * the format used by the interrupt level portion of the task mode.
*
- * @note This routine usually must be implemented as a subroutine.
+ * @note This routine usually must be implemented as a subroutine.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
uint32_t _CPU_ISR_Get_level( void );
/* end of ISR handler macros */
+/** @} */
+
/* Context handler macros */
/**
- * @ingroup CPUContext
- * Initialize the context to a state suitable for starting a
- * task after a context restore operation. Generally, this
- * involves:
- *
- * - setting a starting address
- * - preparing the stack
- * - preparing the stack and frame pointers
- * - setting the proper interrupt level in the context
- * - initializing the floating point context
- *
- * This routine generally does not set any unnecessary register
- * in the context. The state of the "general data" registers is
- * undefined at task start time.
- *
- * @param[in] _the_context is the context structure to be initialized
- * @param[in] _stack_base is the lowest physical address of this task's stack
- * @param[in] _size is the size of this task's stack
- * @param[in] _isr is the interrupt disable level
- * @param[in] _entry_point is the thread's entry point. This is
- * always @a _Thread_Handler
- * @param[in] _is_fp is TRUE if the thread is to be a floating
- * point thread. This is typically only used on CPUs where the
- * FPU may be easily disabled by software such as on the SPARC
- * where the PSR contains an enable FPU bit.
- *
- * Port Specific Information:
- *
- * See implementation in cpu.c
+ * @ingroup CPUContext
+ * Initialize the context to a state suitable for starting a
+ * task after a context restore operation. Generally, this
+ * involves:
+ *
+ * - setting a starting address
+ * - preparing the stack
+ * - preparing the stack and frame pointers
+ * - setting the proper interrupt level in the context
+ * - initializing the floating point context
+ *
+ * This routine generally does not set any unnecessary register
+ * in the context. The state of the "general data" registers is
+ * undefined at task start time.
+ *
+ * @param[in] _the_context is the context structure to be initialized
+ * @param[in] _stack_base is the lowest physical address of this task's stack
+ * @param[in] _size is the size of this task's stack
+ * @param[in] _isr is the interrupt disable level
+ * @param[in] _entry_point is the thread's entry point. This is
+ * always @a _Thread_Handler
+ * @param[in] _is_fp is TRUE if the thread is to be a floating
+ * point thread. This is typically only used on CPUs where the
+ * FPU may be easily disabled by software such as on the SPARC
+ * where the PSR contains an enable FPU bit.
+ *
+ * Port Specific Information:
+ *
+ * See implementation in cpu.c
*/
void _CPU_Context_Initialize(
Context_Control *the_context,
@@ -832,65 +839,65 @@ void _CPU_Context_Initialize(
);
/**
- * This routine is responsible for somehow restarting the currently
- * executing task. If you are lucky, then all that is necessary
- * is restoring the context. Otherwise, there will need to be
- * a special assembly routine which does something special in this
- * case. For many ports, simply adding a label to the restore path
- * of @ref _CPU_Context_switch will work. On other ports, it may be
- * possibly to load a few arguments and jump to the restore path. It will
- * not work if restarting self conflicts with the stack frame
- * assumptions of restoring a context.
+ * This routine is responsible for somehow restarting the currently
+ * executing task. If you are lucky, then all that is necessary
+ * is restoring the context. Otherwise, there will need to be
+ * a special assembly routine which does something special in this
+ * case. For many ports, simply adding a label to the restore path
+ * of @ref _CPU_Context_switch will work. On other ports, it may be
+ * possibly to load a few arguments and jump to the restore path. It will
+ * not work if restarting self conflicts with the stack frame
+ * assumptions of restoring a context.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Context_Restart_self( _the_context ) \
_CPU_Context_restore( (_the_context) );
/**
- * @ingroup CPUContext
- * The purpose of this macro is to allow the initial pointer into
- * a floating point context area (used to save the floating point
- * context) to be at an arbitrary place in the floating point
- * context area.
+ * @ingroup CPUContext
+ * The purpose of this macro is to allow the initial pointer into
+ * a floating point context area (used to save the floating point
+ * context) to be at an arbitrary place in the floating point
+ * context area.
*
- * This is necessary because some FP units are designed to have
- * their context saved as a stack which grows into lower addresses.
- * Other FP units can be saved by simply moving registers into offsets
- * from the base of the context area. Finally some FP units provide
- * a "dump context" instruction which could fill in from high to low
- * or low to high based on the whim of the CPU designers.
+ * This is necessary because some FP units are designed to have
+ * their context saved as a stack which grows into lower addresses.
+ * Other FP units can be saved by simply moving registers into offsets
+ * from the base of the context area. Finally some FP units provide
+ * a "dump context" instruction which could fill in from high to low
+ * or low to high based on the whim of the CPU designers.
*
- * @param[in] _base is the lowest physical address of the floating point
- * context area
- * @param[in] _offset is the offset into the floating point area
+ * @param[in] _base is the lowest physical address of the floating point
+ * context area
+ * @param[in] _offset is the offset into the floating point area
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Context_Fp_start( _base, _offset ) \
( (void *) _Addresses_Add_offset( (_base), (_offset) ) )
/**
- * This routine initializes the FP context area passed to it to.
- * There are a few standard ways in which to initialize the
- * floating point context. The code included for this macro assumes
- * that this is a CPU in which a "initial" FP context was saved into
- * @a _CPU_Null_fp_context and it simply copies it to the destination
- * context passed to it.
+ * This routine initializes the FP context area passed to it to.
+ * There are a few standard ways in which to initialize the
+ * floating point context. The code included for this macro assumes
+ * that this is a CPU in which a "initial" FP context was saved into
+ * @a _CPU_Null_fp_context and it simply copies it to the destination
+ * context passed to it.
*
- * Other floating point context save/restore models include:
- * -# not doing anything, and
- * -# putting a "null FP status word" in the correct place in the FP context.
+ * Other floating point context save/restore models include:
+ * -# not doing anything, and
+ * -# putting a "null FP status word" in the correct place in the FP context.
*
- * @param[in] _destination is the floating point context area
+ * @param[in] _destination is the floating point context area
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Context_Initialize_fp( _destination ) \
{ \
@@ -902,13 +909,13 @@ void _CPU_Context_Initialize(
/* Fatal Error manager macros */
/**
- * This routine copies _error into a known place -- typically a stack
- * location or a register, optionally disables interrupts, and
- * halts/stops the CPU.
+ * This routine copies _error into a known place -- typically a stack
+ * location or a register, optionally disables interrupts, and
+ * halts/stops the CPU.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Fatal_halt( _error ) \
{ \
@@ -925,68 +932,66 @@ void _CPU_Context_Initialize(
/* Bitfield handler macros */
/**
- * @defgroup CPUBitfield Processor Dependent Bitfield Manipulation
+ * @defgroup CPUBitfield Processor Dependent Bitfield Manipulation
*
- * This set of routines are used to implement fast searches for
- * the most important ready task.
+ * This set of routines are used to implement fast searches for
+ * the most important ready task.
*/
+/**@{**/
/**
- * @ingroup CPUBitfield
- * This definition is set to TRUE if the port uses the generic bitfield
- * manipulation implementation.
+ * This definition is set to TRUE if the port uses the generic bitfield
+ * manipulation implementation.
*/
#define CPU_USE_GENERIC_BITFIELD_CODE TRUE
/**
- * @ingroup CPUBitfield
- * This definition is set to TRUE if the port uses the data tables provided
- * by the generic bitfield manipulation implementation.
- * This can occur when actually using the generic bitfield manipulation
- * implementation or when implementing the same algorithm in assembly
- * language for improved performance. It is unlikely that a port will use
- * the data if it has a bitfield scan instruction.
+ * This definition is set to TRUE if the port uses the data tables provided
+ * by the generic bitfield manipulation implementation.
+ * This can occur when actually using the generic bitfield manipulation
+ * implementation or when implementing the same algorithm in assembly
+ * language for improved performance. It is unlikely that a port will use
+ * the data if it has a bitfield scan instruction.
*/
#define CPU_USE_GENERIC_BITFIELD_DATA TRUE
/**
- * @ingroup CPUBitfield
- * This routine sets @a _output to the bit number of the first bit
- * set in @a _value. @a _value is of CPU dependent type
- * @a Priority_bit_map_Control. This type may be either 16 or 32 bits
- * wide although only the 16 least significant bits will be used.
- *
- * There are a number of variables in using a "find first bit" type
- * instruction.
- *
- * -# What happens when run on a value of zero?
- * -# Bits may be numbered from MSB to LSB or vice-versa.
- * -# The numbering may be zero or one based.
- * -# The "find first bit" instruction may search from MSB or LSB.
- *
- * RTEMS guarantees that (1) will never happen so it is not a concern.
- * (2),(3), (4) are handled by the macros @ref _CPU_Priority_Mask and
- * @ref _CPU_Priority_bits_index. These three form a set of routines
- * which must logically operate together. Bits in the _value are
- * set and cleared based on masks built by @ref _CPU_Priority_Mask.
- * The basic major and minor values calculated by @ref _Priority_Major
- * and @ref _Priority_Minor are "massaged" by @ref _CPU_Priority_bits_index
- * to properly range between the values returned by the "find first bit"
- * instruction. This makes it possible for @ref _Priority_Get_highest to
- * calculate the major and directly index into the minor table.
- * This mapping is necessary to ensure that 0 (a high priority major/minor)
- * is the first bit found.
- *
- * This entire "find first bit" and mapping process depends heavily
- * on the manner in which a priority is broken into a major and minor
- * components with the major being the 4 MSB of a priority and minor
- * the 4 LSB. Thus (0 << 4) + 0 corresponds to priority 0 -- the highest
- * priority. And (15 << 4) + 14 corresponds to priority 254 -- the next
- * to the lowest priority.
- *
- * If your CPU does not have a "find first bit" instruction, then
- * there are ways to make do without it. Here are a handful of ways
- * to implement this in software:
+ * This routine sets @a _output to the bit number of the first bit
+ * set in @a _value. @a _value is of CPU dependent type
+ * @a Priority_bit_map_Control. This type may be either 16 or 32 bits
+ * wide although only the 16 least significant bits will be used.
+ *
+ * There are a number of variables in using a "find first bit" type
+ * instruction.
+ *
+ * -# What happens when run on a value of zero?
+ * -# Bits may be numbered from MSB to LSB or vice-versa.
+ * -# The numbering may be zero or one based.
+ * -# The "find first bit" instruction may search from MSB or LSB.
+ *
+ * RTEMS guarantees that (1) will never happen so it is not a concern.
+ * (2),(3), (4) are handled by the macros @ref _CPU_Priority_Mask and
+ * @ref _CPU_Priority_bits_index. These three form a set of routines
+ * which must logically operate together. Bits in the _value are
+ * set and cleared based on masks built by @ref _CPU_Priority_Mask.
+ * The basic major and minor values calculated by @ref _Priority_Major
+ * and @ref _Priority_Minor are "massaged" by @ref _CPU_Priority_bits_index
+ * to properly range between the values returned by the "find first bit"
+ * instruction. This makes it possible for @ref _Priority_Get_highest to
+ * calculate the major and directly index into the minor table.
+ * This mapping is necessary to ensure that 0 (a high priority major/minor)
+ * is the first bit found.
+ *
+ * This entire "find first bit" and mapping process depends heavily
+ * on the manner in which a priority is broken into a major and minor
+ * components with the major being the 4 MSB of a priority and minor
+ * the 4 LSB. Thus (0 << 4) + 0 corresponds to priority 0 -- the highest
+ * priority. And (15 << 4) + 14 corresponds to priority 254 -- the next
+ * to the lowest priority.
+ *
+ * If your CPU does not have a "find first bit" instruction, then
+ * there are ways to make do without it. Here are a handful of ways
+ * to implement this in software:
*
@verbatim
- a series of 16 bit test instructions
@@ -1003,15 +1008,15 @@ void _CPU_Context_Initialize(
_number += bit_set_table[ _value ]
@endverbatim
- * where bit_set_table[ 16 ] has values which indicate the first
- * bit set
+ * where bit_set_table[ 16 ] has values which indicate the first
+ * bit set
*
- * @param[in] _value is the value to be scanned
- * @param[in] _output is the first bit set
+ * @param[in] _value is the value to be scanned
+ * @param[in] _output is the first bit set
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#if (CPU_USE_GENERIC_BITFIELD_CODE == FALSE)
@@ -1024,14 +1029,16 @@ void _CPU_Context_Initialize(
/* end of Bitfield handler macros */
+/** @} */
+
/**
- * This routine builds the mask which corresponds to the bit fields
- * as searched by @ref _CPU_Bitfield_Find_first_bit. See the discussion
- * for that routine.
+ * This routine builds the mask which corresponds to the bit fields
+ * as searched by @ref _CPU_Bitfield_Find_first_bit. See the discussion
+ * for that routine.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#if (CPU_USE_GENERIC_BITFIELD_CODE == FALSE)
@@ -1041,17 +1048,17 @@ void _CPU_Context_Initialize(
#endif
/**
- * @ingroup CPUBitfield
- * This routine translates the bit numbers returned by
- * @ref _CPU_Bitfield_Find_first_bit into something suitable for use as
- * a major or minor component of a priority. See the discussion
- * for that routine.
+ * @ingroup CPUBitfield
+ * This routine translates the bit numbers returned by
+ * @ref _CPU_Bitfield_Find_first_bit into something suitable for use as
+ * a major or minor component of a priority. See the discussion
+ * for that routine.
*
- * @param[in] _priority is the major or minor number to translate
+ * @param[in] _priority is the major or minor number to translate
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#if (CPU_USE_GENERIC_BITFIELD_CODE == FALSE)
@@ -1065,27 +1072,27 @@ void _CPU_Context_Initialize(
/* functions */
/**
- * @brief CPU Initialize
- * This routine performs CPU dependent initialization.
+ * @brief CPU initialize.
+ * This routine performs CPU dependent initialization.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Initialize(void);
/**
- * @ingroup CPUInterrupt
- * This routine installs a "raw" interrupt handler directly into the
- * processor's vector table.
+ * @ingroup CPUInterrupt
+ * This routine installs a "raw" interrupt handler directly into the
+ * processor's vector table.
*
- * @param[in] vector is the vector number
- * @param[in] new_handler is the raw ISR handler to install
- * @param[in] old_handler is the previously installed ISR Handler
+ * @param[in] vector is the vector number
+ * @param[in] new_handler is the raw ISR handler to install
+ * @param[in] old_handler is the previously installed ISR Handler
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_ISR_install_raw_handler(
uint32_t vector,
@@ -1094,16 +1101,16 @@ void _CPU_ISR_install_raw_handler(
);
/**
- * @ingroup CPUInterrupt
- * This routine installs an interrupt vector.
+ * @ingroup CPUInterrupt
+ * This routine installs an interrupt vector.
*
- * @param[in] vector is the vector number
- * @param[in] new_handler is the RTEMS ISR handler to install
- * @param[in] old_handler is the previously installed ISR Handler
+ * @param[in] vector is the vector number
+ * @param[in] new_handler is the RTEMS ISR handler to install
+ * @param[in] old_handler is the previously installed ISR Handler
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_ISR_install_vector(
uint32_t vector,
@@ -1112,40 +1119,44 @@ void _CPU_ISR_install_vector(
);
/**
- * @ingroup CPUInterrupt
- * This routine installs the hardware interrupt stack pointer.
+ * @ingroup CPUInterrupt
+ * This routine installs the hardware interrupt stack pointer.
*
- * @note It need only be provided if @ref CPU_HAS_HARDWARE_INTERRUPT_STACK
- * is TRUE.
+ * @note It need only be provided if @ref CPU_HAS_HARDWARE_INTERRUPT_STACK
+ * is TRUE.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Install_interrupt_stack( void );
/**
- * This routine is the CPU dependent IDLE thread body.
+ * This routine is the CPU dependent IDLE thread body.
*
- * @note It need only be provided if @ref CPU_PROVIDES_IDLE_THREAD_BODY
- * is TRUE.
+ * @note It need only be provided if @ref CPU_PROVIDES_IDLE_THREAD_BODY
+ * is TRUE.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void *_CPU_Thread_Idle_body( uintptr_t ignored );
/**
- * @ingroup CPUContext
- * This routine switches from the run context to the heir context.
+ * @addtogroup CPUContext
+ */
+/**@{**/
+
+/**
+ * This routine switches from the run context to the heir context.
*
- * @param[in] run points to the context of the currently executing task
- * @param[in] heir points to the context of the heir task
+ * @param[in] run points to the context of the currently executing task
+ * @param[in] heir points to the context of the heir task
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_switch(
Context_Control *run,
@@ -1153,90 +1164,89 @@ void _CPU_Context_switch(
);
/**
- * @ingroup CPUContext
- * This routine is generally used only to restart self in an
- * efficient manner. It may simply be a label in @ref _CPU_Context_switch.
+ * This routine is generally used only to restart self in an
+ * efficient manner. It may simply be a label in @ref _CPU_Context_switch.
*
- * @param[in] new_context points to the context to be restored.
+ * @param[in] new_context points to the context to be restored.
*
- * @note May be unnecessary to reload some registers.
+ * @note May be unnecessary to reload some registers.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_restore(
Context_Control *new_context
) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE;
/**
- * @ingroup CPUContext
- * This routine saves the floating point context passed to it.
+ * This routine saves the floating point context passed to it.
*
- * @param[in] fp_context_ptr is a pointer to a pointer to a floating
- * point context area
+ * @param[in] fp_context_ptr is a pointer to a pointer to a floating
+ * point context area
*
- * @return on output @a *fp_context_ptr will contain the address that
- * should be used with @ref _CPU_Context_restore_fp to restore this context.
+ * @return on output @a *fp_context_ptr will contain the address that
+ * should be used with @ref _CPU_Context_restore_fp to restore this context.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_save_fp(
Context_Control_fp **fp_context_ptr
);
/**
- * @ingroup CPUContext
- * This routine restores the floating point context passed to it.
+ * This routine restores the floating point context passed to it.
*
- * @param[in] fp_context_ptr is a pointer to a pointer to a floating
- * point context area to restore
+ * @param[in] fp_context_ptr is a pointer to a pointer to a floating
+ * point context area to restore
*
- * @return on output @a *fp_context_ptr will contain the address that
- * should be used with @ref _CPU_Context_save_fp to save this context.
+ * @return on output @a *fp_context_ptr will contain the address that
+ * should be used with @ref _CPU_Context_save_fp to save this context.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_restore_fp(
Context_Control_fp **fp_context_ptr
);
+/** @} */
+
/* FIXME */
typedef CPU_Interrupt_frame CPU_Exception_frame;
void _CPU_Exception_frame_print( const CPU_Exception_frame *frame );
/**
- * @ingroup CPUEndian
- * The following routine swaps the endian format of an unsigned int.
- * It must be static because it is referenced indirectly.
+ * @ingroup CPUEndian
+ * The following routine swaps the endian format of an unsigned int.
+ * It must be static because it is referenced indirectly.
*
- * This version will work on any processor, but if there is a better
- * way for your CPU PLEASE use it. The most common way to do this is to:
+ * This version will work on any processor, but if there is a better
+ * way for your CPU PLEASE use it. The most common way to do this is to:
*
- * swap least significant two bytes with 16-bit rotate
- * swap upper and lower 16-bits
- * swap most significant two bytes with 16-bit rotate
+ * swap least significant two bytes with 16-bit rotate
+ * swap upper and lower 16-bits
+ * swap most significant two bytes with 16-bit rotate
*
- * Some CPUs have special instructions which swap a 32-bit quantity in
- * a single instruction (e.g. i486). It is probably best to avoid
- * an "endian swapping control bit" in the CPU. One good reason is
- * that interrupts would probably have to be disabled to ensure that
- * an interrupt does not try to access the same "chunk" with the wrong
- * endian. Another good reason is that on some CPUs, the endian bit
- * endianness for ALL fetches -- both code and data -- so the code
- * will be fetched incorrectly.
+ * Some CPUs have special instructions which swap a 32-bit quantity in
+ * a single instruction (e.g. i486). It is probably best to avoid
+ * an "endian swapping control bit" in the CPU. One good reason is
+ * that interrupts would probably have to be disabled to ensure that
+ * an interrupt does not try to access the same "chunk" with the wrong
+ * endian. Another good reason is that on some CPUs, the endian bit
+ * endianness for ALL fetches -- both code and data -- so the code
+ * will be fetched incorrectly.
*
- * @param[in] value is the value to be swapped
- * @return the value after being endian swapped
+ * @param[in] value is the value to be swapped
+ * @return the value after being endian swapped
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
static inline uint32_t CPU_swap_u32(
uint32_t value
@@ -1254,11 +1264,11 @@ static inline uint32_t CPU_swap_u32(
}
/**
- * @ingroup CPUEndian
- * This routine swaps a 16 bir quantity.
+ * @ingroup CPUEndian
+ * This routine swaps a 16 bir quantity.
*
- * @param[in] value is the value to be swapped
- * @return the value after being endian swapped
+ * @param[in] value is the value to be swapped
+ * @return the value after being endian swapped
*/
#define CPU_swap_u16( value ) \
(((value&0xff) << 8) | ((value >> 8)&0xff))
diff --git a/cpukit/score/cpu/bfin/rtems/score/cpu_asm.h b/cpukit/score/cpu/bfin/rtems/score/cpu_asm.h
index 7d23bc5a9a..f9543f15a7 100644
--- a/cpukit/score/cpu/bfin/rtems/score/cpu_asm.h
+++ b/cpukit/score/cpu/bfin/rtems/score/cpu_asm.h
@@ -1,10 +1,12 @@
/**
- * @file rtems/score/cpu_asm.h
+ * @file
+ *
+ * @brief Blackfin Assembly File
+ *
+ * Defines a couple of Macros used in cpu_asm.S
*/
/*
- * Defines a couple of Macros used in cpu_asm.S
- *
* COPYRIGHT (c) 2006 by Atos Automacao Industrial Ltda.
* written by Alain Schaefer <alain.schaefer@easc.ch>
* and Antonio Giovanini <antonio@atos.com.br>
diff --git a/cpukit/score/cpu/bfin/rtems/score/types.h b/cpukit/score/cpu/bfin/rtems/score/types.h
index 4f734bb033..5d4e12eb95 100644
--- a/cpukit/score/cpu/bfin/rtems/score/types.h
+++ b/cpukit/score/cpu/bfin/rtems/score/types.h
@@ -1,7 +1,13 @@
-/*
- * This include file contains type definitions pertaining to the
- * Blackfin processor family.
+/**
+ * @file
+ *
+ * @brief Blackfin CPU Type Definitions
*
+ * This include file contains type definitions pertaining to the
+ * Blackfin processor family.
+ */
+
+/*
* COPYRIGHT (c) 1989-2006.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/h8300/rtems/asm.h b/cpukit/score/cpu/h8300/rtems/asm.h
index 0f4adee915..a9fad26252 100644
--- a/cpukit/score/cpu/h8300/rtems/asm.h
+++ b/cpukit/score/cpu/h8300/rtems/asm.h
@@ -1,17 +1,20 @@
/**
- * @file rtems/asm.h
+ * @file
*
- * This include file attempts to address the problems
- * caused by incompatible flavors of assemblers and
- * toolsets. It primarily addresses variations in the
- * use of leading underscores on symbols and the requirement
- * that register names be preceded by a %.
+ * @brief Address the Problems Caused by Incompatible Flavor of
+ * Assemblers and Toolsets
+ *
+ * This include file attempts to address the problems
+ * caused by incompatible flavors of assemblers and
+ * toolsets. It primarily addresses variations in the
+ * use of leading underscores on symbols and the requirement
+ * that register names be preceded by a %.
+ *
+ * NOTE: The spacing in the use of these macros
+ * is critical to them working as advertised.
*/
/*
- * NOTE: The spacing in the use of these macros
- * is critical to them working as advertised.
- *
* COPYRIGHT:
*
* This file is based on similar code found in newlib available
@@ -69,23 +72,23 @@
*/
#define r0 REG(r0)
#define r1 REG(r1)
-#define r2 REG(r2)
-#define r3 REG(r3)
-#define r4 REG(r4)
-#define r5 REG(r5)
-#define r6 REG(r6)
-#define r7 REG(r7)
+#define r2 REG(r2)
+#define r3 REG(r3)
+#define r4 REG(r4)
+#define r5 REG(r5)
+#define r6 REG(r6)
+#define r7 REG(r7)
#define er0 REG(er0)
#define er1 REG(er1)
-#define er2 REG(er2)
-#define er3 REG(er3)
-#define er4 REG(er4)
-#define er5 REG(er5)
-#define er6 REG(er6)
-#define er7 REG(er7)
-
-#define sp REG(sp)
+#define er2 REG(er2)
+#define er3 REG(er3)
+#define er4 REG(er4)
+#define er5 REG(er5)
+#define er6 REG(er6)
+#define er7 REG(er7)
+
+#define sp REG(sp)
/*
* Define macros to handle section beginning and ends.
diff --git a/cpukit/score/cpu/h8300/rtems/score/cpu.h b/cpukit/score/cpu/h8300/rtems/score/cpu.h
index f8f41a821e..6031f9689b 100644
--- a/cpukit/score/cpu/h8300/rtems/score/cpu.h
+++ b/cpukit/score/cpu/h8300/rtems/score/cpu.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/cpu.h
+ * @file
+ *
+ * @brief Hitachi H8300 CPU Department Source
+ *
+ * This include file contains information pertaining to the H8300
+ * processor.
*/
/*
- * This include file contains information pertaining to the H8300
- * processor.
- *
* COPYRIGHT (c) 1989-2006.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/h8300/rtems/score/h8300.h b/cpukit/score/cpu/h8300/rtems/score/h8300.h
index dd7a3ec11b..3b5e87d626 100644
--- a/cpukit/score/cpu/h8300/rtems/score/h8300.h
+++ b/cpukit/score/cpu/h8300/rtems/score/h8300.h
@@ -1,11 +1,14 @@
/**
- * @file rtems/score/h8300.h
+ * @file
+ *
+ * @brief Information Required to Build RTEMS for a Particular Member
+ * of the Hitachi H8/300 Family
+ *
+ * This file contains information pertaining to the Hitachi H8/300
+ * processor family.
*/
/*
- * This file contains information pertaining to the Hitachi H8/300
- * processor family.
- *
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/h8300/rtems/score/types.h b/cpukit/score/cpu/h8300/rtems/score/types.h
index fae136ab45..f832c186fe 100644
--- a/cpukit/score/cpu/h8300/rtems/score/types.h
+++ b/cpukit/score/cpu/h8300/rtems/score/types.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/types.h
+ * @file
+ *
+ * @brief Hitachi H8300 CPU Type Definitions
+ *
+ * This include file contains type definitions pertaining to the Hitachi
+ * h8300 processor family.
*/
/*
- * This include file contains type definitions pertaining to the Hitachi
- * h8300 processor family.
- *
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/i386/rtems/asm.h b/cpukit/score/cpu/i386/rtems/asm.h
index 29594e0844..50b0fd71a0 100644
--- a/cpukit/score/cpu/i386/rtems/asm.h
+++ b/cpukit/score/cpu/i386/rtems/asm.h
@@ -1,17 +1,20 @@
/**
- * @file rtems/asm.h
+ * @file
*
- * This include file attempts to address the problems
- * caused by incompatible flavors of assemblers and
- * toolsets. It primarily addresses variations in the
- * use of leading underscores on symbols and the requirement
- * that register names be preceded by a %.
+ * @brief Address the Problems Caused by Incompatible Flavor of
+ * Assemblers and Toolsets
+ *
+ * This include file attempts to address the problems
+ * caused by incompatible flavors of assemblers and
+ * toolsets. It primarily addresses variations in the
+ * use of leading underscores on symbols and the requirement
+ * that register names be preceded by a %.
+ *
+ * NOTE: The spacing in the use of these macros
+ * is critical to them working as advertised.
*/
/*
- * NOTE: The spacing in the use of these macros
- * is critical to them working as advertised.
- *
* COPYRIGHT:
*
* This file is based on similar code found in newlib available
diff --git a/cpukit/score/cpu/i386/rtems/score/cpu.h b/cpukit/score/cpu/i386/rtems/score/cpu.h
index 03d6209981..66676047f8 100644
--- a/cpukit/score/cpu/i386/rtems/score/cpu.h
+++ b/cpukit/score/cpu/i386/rtems/score/cpu.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/cpu.h
+ * @file
+ *
+ * @brief Intel I386 CPU Dependent Source
+ *
+ * This include file contains information pertaining to the Intel
+ * i386 processor.
*/
/*
- * This include file contains information pertaining to the Intel
- * i386 processor.
- *
* COPYRIGHT (c) 1989-2011.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/i386/rtems/score/i386.h b/cpukit/score/cpu/i386/rtems/score/i386.h
index 8b98f4ba28..b21fb93957 100644
--- a/cpukit/score/cpu/i386/rtems/score/i386.h
+++ b/cpukit/score/cpu/i386/rtems/score/i386.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/i386.h
+ * @file
+ *
+ * @brief Intel I386 CPU Dependent Source
+ *
+ * This include file contains information pertaining to the Intel
+ * i386 processor.
*/
/*
- * This include file contains information pertaining to the Intel
- * i386 processor.
- *
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/i386/rtems/score/idtr.h b/cpukit/score/cpu/i386/rtems/score/idtr.h
index 401aebe2fa..8358fd5a16 100644
--- a/cpukit/score/cpu/i386/rtems/score/idtr.h
+++ b/cpukit/score/cpu/i386/rtems/score/idtr.h
@@ -1,19 +1,21 @@
/**
- * @file rtems/score/idtr.h
- */
-
-/*
+ * @file
+ *
+ * @brief Intel I386 Data Structures
+ *
* This file contains definitions for data structure related
* to Intel system programming. More information can be found
* on Intel site and more precisely in the following book :
*
- * Pentium Processor familly
- * Developper's Manual
+ * Pentium Processor familly
+ * Developper's Manual
*
- * Volume 3 : Architecture and Programming Manual
+ * Volume 3 : Architecture and Programming Manual
*
* Formerly contained in and extracted from libcpu/i386/cpu.h.
- *
+ */
+
+/*
* COPYRIGHT (C) 1998 Eric Valette (valette@crf.canon.fr)
* Canon Centre Recherche France.
*
diff --git a/cpukit/score/cpu/i386/rtems/score/interrupts.h b/cpukit/score/cpu/i386/rtems/score/interrupts.h
index 08ad2b16c0..bed6330781 100644
--- a/cpukit/score/cpu/i386/rtems/score/interrupts.h
+++ b/cpukit/score/cpu/i386/rtems/score/interrupts.h
@@ -1,12 +1,12 @@
/**
- * @file rtems/score/interrupts.h
+ * @file
+ *
+ * @brief Intel I386 Interrupt Macros
+ *
+ * Formerly contained in and extracted from libcpu/i386/cpu.h
*/
/*
- * i386 interrupt macros.
- *
- * Formerly contained in and extracted from libcpu/i386/cpu.h
- *
* COPYRIGHT (c) 1998 valette@crf.canon.fr
*
* The license and distribution terms for this file may be
@@ -28,9 +28,11 @@ typedef void (*rtems_raw_irq_enable) (const struct __rtems_raw_irq_connect_data
typedef void (*rtems_raw_irq_disable) (const struct __rtems_raw_irq_connect_data__*);
typedef int (*rtems_raw_irq_is_enabled) (const struct __rtems_raw_irq_connect_data__*);
-/*
- * Interrupt Level Macros
+/**
+ * @name Interrupt Level Macros
+ *
*/
+/**@{**/
#define i386_disable_interrupts( _level ) \
{ \
@@ -73,5 +75,7 @@ typedef int (*rtems_raw_irq_is_enabled) (const struct __rtems_raw_irq_connect_d
#define _CPU_ISR_Disable( _level ) i386_disable_interrupts( _level )
#define _CPU_ISR_Enable( _level ) i386_enable_interrupts( _level )
+/** @} */
+
#endif
#endif
diff --git a/cpukit/score/cpu/i386/rtems/score/registers.h b/cpukit/score/cpu/i386/rtems/score/registers.h
index 2b8f7700cd..f9754dcedb 100644
--- a/cpukit/score/cpu/i386/rtems/score/registers.h
+++ b/cpukit/score/cpu/i386/rtems/score/registers.h
@@ -1,10 +1,12 @@
/**
- * @file rtems/score/registers.h
+ * @file
+ *
+ * @brief Intel CPU Constants and Definitions
+ *
+ * This file contains definition and constants related to Intel Cpu
*/
/*
- * This file contains definition and constants related to Intel Cpu
- *
* COPYRIGHT (c) 1998 valette@crf.canon.fr
*
* The license and distribution terms for this file may be
diff --git a/cpukit/score/cpu/i386/rtems/score/types.h b/cpukit/score/cpu/i386/rtems/score/types.h
index b2c9d3ec57..104b0fcc92 100644
--- a/cpukit/score/cpu/i386/rtems/score/types.h
+++ b/cpukit/score/cpu/i386/rtems/score/types.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/types.h
+ * @file
+ *
+ * @brief Intel I386 CPU Type Definitions
+ *
+ * This include file contains type definitions pertaining to the Intel
+ * i386 processor family.
*/
/*
- * This include file contains type definitions pertaining to the Intel
- * i386 processor family.
- *
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/lm32/rtems/asm.h b/cpukit/score/cpu/lm32/rtems/asm.h
index df16e4efdc..15046df81c 100644
--- a/cpukit/score/cpu/lm32/rtems/asm.h
+++ b/cpukit/score/cpu/lm32/rtems/asm.h
@@ -1,17 +1,20 @@
/**
- * @file rtems/asm.h
+ * @file
*
- * This include file attempts to address the problems
- * caused by incompatible flavors of assemblers and
- * toolsets. It primarily addresses variations in the
- * use of leading underscores on symbols and the requirement
- * that register names be preceded by a %.
+ * @brief Address the Problems Caused by Incompatible Flavor of
+ * Assemblers and Toolsets
+ *
+ * This include file attempts to address the problems
+ * caused by incompatible flavors of assemblers and
+ * toolsets. It primarily addresses variations in the
+ * use of leading underscores on symbols and the requirement
+ * that register names be preceded by a %.
+ *
+ * NOTE: The spacing in the use of these macros
+ * is critical to them working as advertised.
*/
/*
- * NOTE: The spacing in the use of these macros
- * is critical to them working as advertised.
- *
* COPYRIGHT:
*
* This file is based on similar code found in newlib available
@@ -38,24 +41,24 @@
#ifndef __USER_LABEL_PREFIX__
/**
- * Recent versions of GNU cpp define variables which indicate the
- * need for underscores and percents. If not using GNU cpp or
- * the version does not support this, then you will obviously
- * have to define these as appropriate.
+ * Recent versions of GNU cpp define variables which indicate the
+ * need for underscores and percents. If not using GNU cpp or
+ * the version does not support this, then you will obviously
+ * have to define these as appropriate.
*
- * This symbol is prefixed to all C program symbols.
+ * This symbol is prefixed to all C program symbols.
*/
#define __USER_LABEL_PREFIX__ _
#endif
#ifndef __REGISTER_PREFIX__
/**
- * Recent versions of GNU cpp define variables which indicate the
- * need for underscores and percents. If not using GNU cpp or
- * the version does not support this, then you will obviously
- * have to define these as appropriate.
+ * Recent versions of GNU cpp define variables which indicate the
+ * need for underscores and percents. If not using GNU cpp or
+ * the version does not support this, then you will obviously
+ * have to define these as appropriate.
*
- * This symbol is prefixed to all register names.
+ * This symbol is prefixed to all register names.
*/
#define __REGISTER_PREFIX__
#endif
@@ -95,8 +98,9 @@
#define BEGIN_DATA
/** This macro is used to denote the end of a data section. */
#define END_DATA
-/** This macro is used to denote the beginning of the
- * unitialized data section.
+/**
+ * This macro is used to denote the beginning of the
+ * unitialized data section.
*/
#define BEGIN_BSS
/** This macro is used to denote the end of the unitialized data section. */
@@ -105,18 +109,18 @@
#define END
/**
- * This macro is used to declare a public global symbol.
+ * This macro is used to declare a public global symbol.
*
- * @note This must be tailored for a particular flavor of the C compiler.
- * They may need to put underscores in front of the symbols.
+ * NOTE: This must be tailored for a particular flavor of the C compiler.
+ * They may need to put underscores in front of the symbols.
*/
#define PUBLIC(sym) .globl SYM (sym)
/**
- * This macro is used to prototype a public global symbol.
+ * This macro is used to prototype a public global symbol.
*
- * @note This must be tailored for a particular flavor of the C compiler.
- * They may need to put underscores in front of the symbols.
+ * NOTE: This must be tailored for a particular flavor of the C compiler.
+ * They may need to put underscores in front of the symbols.
*/
#define EXTERN(sym) .globl SYM (sym)
diff --git a/cpukit/score/cpu/lm32/rtems/score/cpu.h b/cpukit/score/cpu/lm32/rtems/score/cpu.h
index 7f10a53820..1f8a370700 100644
--- a/cpukit/score/cpu/lm32/rtems/score/cpu.h
+++ b/cpukit/score/cpu/lm32/rtems/score/cpu.h
@@ -1,10 +1,10 @@
/**
- * @file rtems/score/cpu.h
- */
-
-/*
- * This include file contains information pertaining to the LM32
- * processor.
+ * @file
+ *
+ * @brief LM32 CPU Department Source
+ *
+ * This include file contains information pertaining to the LM32
+ * processor.
*/
/*
@@ -29,363 +29,365 @@ extern "C" {
/* conditional compilation parameters */
/**
- * Should the calls to @ref _Thread_Enable_dispatch be inlined?
+ * Should the calls to @ref _Thread_Enable_dispatch be inlined?
*
- * If TRUE, then they are inlined.
- * If FALSE, then a subroutine call is made.
+ * If TRUE, then they are inlined.
+ * If FALSE, then a subroutine call is made.
*
- * This conditional is an example of the classic trade-off of size
- * versus speed. Inlining the call (TRUE) typically increases the
- * size of RTEMS while speeding up the enabling of dispatching.
+ * This conditional is an example of the classic trade-off of size
+ * versus speed. Inlining the call (TRUE) typically increases the
+ * size of RTEMS while speeding up the enabling of dispatching.
*
- * @note In general, the @ref _Thread_Dispatch_disable_level will
- * only be 0 or 1 unless you are in an interrupt handler and that
- * interrupt handler invokes the executive.] When not inlined
- * something calls @ref _Thread_Enable_dispatch which in turns calls
- * @ref _Thread_Dispatch. If the enable dispatch is inlined, then
- * one subroutine call is avoided entirely.
+ * NOTE: In general, the @ref _Thread_Dispatch_disable_level will
+ * only be 0 or 1 unless you are in an interrupt handler and that
+ * interrupt handler invokes the executive.] When not inlined
+ * something calls @ref _Thread_Enable_dispatch which in turns calls
+ * @ref _Thread_Dispatch. If the enable dispatch is inlined, then
+ * one subroutine call is avoided entirely.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_INLINE_ENABLE_DISPATCH FALSE
/**
- * Should the body of the search loops in _Thread_queue_Enqueue_priority
- * be unrolled one time? In unrolled each iteration of the loop examines
- * two "nodes" on the chain being searched. Otherwise, only one node
- * is examined per iteration.
+ * Should the body of the search loops in _Thread_queue_Enqueue_priority
+ * be unrolled one time? In unrolled each iteration of the loop examines
+ * two "nodes" on the chain being searched. Otherwise, only one node
+ * is examined per iteration.
*
- * If TRUE, then the loops are unrolled.
- * If FALSE, then the loops are not unrolled.
+ * If TRUE, then the loops are unrolled.
+ * If FALSE, then the loops are not unrolled.
*
- * The primary factor in making this decision is the cost of disabling
- * and enabling interrupts (_ISR_Flash) versus the cost of rest of the
- * body of the loop. On some CPUs, the flash is more expensive than
- * one iteration of the loop body. In this case, it might be desirable
- * to unroll the loop. It is important to note that on some CPUs, this
- * code is the longest interrupt disable period in RTEMS. So it is
- * necessary to strike a balance when setting this parameter.
+ * The primary factor in making this decision is the cost of disabling
+ * and enabling interrupts (_ISR_Flash) versus the cost of rest of the
+ * body of the loop. On some CPUs, the flash is more expensive than
+ * one iteration of the loop body. In this case, it might be desirable
+ * to unroll the loop. It is important to note that on some CPUs, this
+ * code is the longest interrupt disable period in RTEMS. So it is
+ * necessary to strike a balance when setting this parameter.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_UNROLL_ENQUEUE_PRIORITY TRUE
/**
- * Does RTEMS manage a dedicated interrupt stack in software?
+ * Does RTEMS manage a dedicated interrupt stack in software?
*
- * If TRUE, then a stack is allocated in @ref _ISR_Handler_initialization.
- * If FALSE, nothing is done.
+ * If TRUE, then a stack is allocated in @ref _ISR_Handler_initialization.
+ * If FALSE, nothing is done.
*
- * If the CPU supports a dedicated interrupt stack in hardware,
- * then it is generally the responsibility of the BSP to allocate it
- * and set it up.
+ * If the CPU supports a dedicated interrupt stack in hardware,
+ * then it is generally the responsibility of the BSP to allocate it
+ * and set it up.
*
- * If the CPU does not support a dedicated interrupt stack, then
- * the porter has two options: (1) execute interrupts on the
- * stack of the interrupted task, and (2) have RTEMS manage a dedicated
- * interrupt stack.
+ * If the CPU does not support a dedicated interrupt stack, then
+ * the porter has two options: (1) execute interrupts on the
+ * stack of the interrupted task, and (2) have RTEMS manage a dedicated
+ * interrupt stack.
*
- * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
+ * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
*
- * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
- * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
- * possible that both are FALSE for a particular CPU. Although it
- * is unclear what that would imply about the interrupt processing
- * procedure on that CPU.
+ * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
+ * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
+ * possible that both are FALSE for a particular CPU. Although it
+ * is unclear what that would imply about the interrupt processing
+ * procedure on that CPU.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_HAS_SOFTWARE_INTERRUPT_STACK TRUE
/**
- * Does the CPU follow the simple vectored interrupt model?
+ * Does the CPU follow the simple vectored interrupt model?
*
- * If TRUE, then RTEMS allocates the vector table it internally manages.
- * If FALSE, then the BSP is assumed to allocate and manage the vector
- * table
+ * If TRUE, then RTEMS allocates the vector table it internally manages.
+ * If FALSE, then the BSP is assumed to allocate and manage the vector
+ * table
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_SIMPLE_VECTORED_INTERRUPTS TRUE
/**
- * Does this CPU have hardware support for a dedicated interrupt stack?
+ * Does this CPU have hardware support for a dedicated interrupt stack?
*
- * If TRUE, then it must be installed during initialization.
- * If FALSE, then no installation is performed.
+ * If TRUE, then it must be installed during initialization.
+ * If FALSE, then no installation is performed.
*
- * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
+ * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
*
- * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
- * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
- * possible that both are FALSE for a particular CPU. Although it
- * is unclear what that would imply about the interrupt processing
- * procedure on that CPU.
+ * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
+ * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
+ * possible that both are FALSE for a particular CPU. Although it
+ * is unclear what that would imply about the interrupt processing
+ * procedure on that CPU.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_HAS_HARDWARE_INTERRUPT_STACK FALSE
/**
- * Does RTEMS allocate a dedicated interrupt stack in the Interrupt Manager?
+ * Does RTEMS allocate a dedicated interrupt stack in the Interrupt Manager?
*
- * If TRUE, then the memory is allocated during initialization.
- * If FALSE, then the memory is allocated during initialization.
+ * If TRUE, then the memory is allocated during initialization.
+ * If FALSE, then the memory is allocated during initialization.
*
- * This should be TRUE is CPU_HAS_SOFTWARE_INTERRUPT_STACK is TRUE.
+ * This should be TRUE is CPU_HAS_SOFTWARE_INTERRUPT_STACK is TRUE.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_ALLOCATE_INTERRUPT_STACK TRUE
/**
- * Does the RTEMS invoke the user's ISR with the vector number and
- * a pointer to the saved interrupt frame (1) or just the vector
- * number (0)?
+ * Does the RTEMS invoke the user's ISR with the vector number and
+ * a pointer to the saved interrupt frame (1) or just the vector
+ * number (0)?
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_ISR_PASSES_FRAME_POINTER 1
/**
- * @def CPU_HARDWARE_FP
+ * @def CPU_HARDWARE_FP
*
- * Does the CPU have hardware floating point?
+ * Does the CPU have hardware floating point?
*
- * If TRUE, then the RTEMS_FLOATING_POINT task attribute is supported.
- * If FALSE, then the RTEMS_FLOATING_POINT task attribute is ignored.
+ * If TRUE, then the RTEMS_FLOATING_POINT task attribute is supported.
+ * If FALSE, then the RTEMS_FLOATING_POINT task attribute is ignored.
*
- * If there is a FP coprocessor such as the i387 or mc68881, then
- * the answer is TRUE.
+ * If there is a FP coprocessor such as the i387 or mc68881, then
+ * the answer is TRUE.
*
- * The macro name "NO_CPU_HAS_FPU" should be made CPU specific.
- * It indicates whether or not this CPU model has FP support. For
- * example, it would be possible to have an i386_nofp CPU model
- * which set this to false to indicate that you have an i386 without
- * an i387 and wish to leave floating point support out of RTEMS.
+ * The macro name "NO_CPU_HAS_FPU" should be made CPU specific.
+ * It indicates whether or not this CPU model has FP support. For
+ * example, it would be possible to have an i386_nofp CPU model
+ * which set this to false to indicate that you have an i386 without
+ * an i387 and wish to leave floating point support out of RTEMS.
*/
/**
- * @def CPU_SOFTWARE_FP
+ * @def CPU_SOFTWARE_FP
*
- * Does the CPU have no hardware floating point and GCC provides a
- * software floating point implementation which must be context
- * switched?
+ * Does the CPU have no hardware floating point and GCC provides a
+ * software floating point implementation which must be context
+ * switched?
*
- * This feature conditional is used to indicate whether or not there
- * is software implemented floating point that must be context
- * switched. The determination of whether or not this applies
- * is very tool specific and the state saved/restored is also
- * compiler specific.
+ * This feature conditional is used to indicate whether or not there
+ * is software implemented floating point that must be context
+ * switched. The determination of whether or not this applies
+ * is very tool specific and the state saved/restored is also
+ * compiler specific.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_HARDWARE_FP FALSE
#define CPU_SOFTWARE_FP FALSE
/**
- * Are all tasks RTEMS_FLOATING_POINT tasks implicitly?
+ * Are all tasks RTEMS_FLOATING_POINT tasks implicitly?
*
- * If TRUE, then the RTEMS_FLOATING_POINT task attribute is assumed.
- * If FALSE, then the RTEMS_FLOATING_POINT task attribute is followed.
+ * If TRUE, then the RTEMS_FLOATING_POINT task attribute is assumed.
+ * If FALSE, then the RTEMS_FLOATING_POINT task attribute is followed.
*
- * So far, the only CPUs in which this option has been used are the
- * HP PA-RISC and PowerPC. On the PA-RISC, The HP C compiler and
- * gcc both implicitly used the floating point registers to perform
- * integer multiplies. Similarly, the PowerPC port of gcc has been
- * seen to allocate floating point local variables and touch the FPU
- * even when the flow through a subroutine (like vfprintf()) might
- * not use floating point formats.
+ * So far, the only CPUs in which this option has been used are the
+ * HP PA-RISC and PowerPC. On the PA-RISC, The HP C compiler and
+ * gcc both implicitly used the floating point registers to perform
+ * integer multiplies. Similarly, the PowerPC port of gcc has been
+ * seen to allocate floating point local variables and touch the FPU
+ * even when the flow through a subroutine (like vfprintf()) might
+ * not use floating point formats.
*
- * If a function which you would not think utilize the FP unit DOES,
- * then one can not easily predict which tasks will use the FP hardware.
- * In this case, this option should be TRUE.
+ * If a function which you would not think utilize the FP unit DOES,
+ * then one can not easily predict which tasks will use the FP hardware.
+ * In this case, this option should be TRUE.
*
- * If @ref CPU_HARDWARE_FP is FALSE, then this should be FALSE as well.
+ * If @ref CPU_HARDWARE_FP is FALSE, then this should be FALSE as well.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_ALL_TASKS_ARE_FP FALSE
/**
- * Should the IDLE task have a floating point context?
+ * Should the IDLE task have a floating point context?
*
- * If TRUE, then the IDLE task is created as a RTEMS_FLOATING_POINT task
- * and it has a floating point context which is switched in and out.
- * If FALSE, then the IDLE task does not have a floating point context.
+ * If TRUE, then the IDLE task is created as a RTEMS_FLOATING_POINT task
+ * and it has a floating point context which is switched in and out.
+ * If FALSE, then the IDLE task does not have a floating point context.
*
- * Setting this to TRUE negatively impacts the time required to preempt
- * the IDLE task from an interrupt because the floating point context
- * must be saved as part of the preemption.
+ * Setting this to TRUE negatively impacts the time required to preempt
+ * the IDLE task from an interrupt because the floating point context
+ * must be saved as part of the preemption.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_IDLE_TASK_IS_FP FALSE
/**
- * Should the saving of the floating point registers be deferred
- * until a context switch is made to another different floating point
- * task?
+ * Should the saving of the floating point registers be deferred
+ * until a context switch is made to another different floating point
+ * task?
*
- * If TRUE, then the floating point context will not be stored until
- * necessary. It will remain in the floating point registers and not
- * disturned until another floating point task is switched to.
+ * If TRUE, then the floating point context will not be stored until
+ * necessary. It will remain in the floating point registers and not
+ * disturned until another floating point task is switched to.
*
- * If FALSE, then the floating point context is saved when a floating
- * point task is switched out and restored when the next floating point
- * task is restored. The state of the floating point registers between
- * those two operations is not specified.
+ * If FALSE, then the floating point context is saved when a floating
+ * point task is switched out and restored when the next floating point
+ * task is restored. The state of the floating point registers between
+ * those two operations is not specified.
*
- * If the floating point context does NOT have to be saved as part of
- * interrupt dispatching, then it should be safe to set this to TRUE.
+ * If the floating point context does NOT have to be saved as part of
+ * interrupt dispatching, then it should be safe to set this to TRUE.
*
- * Setting this flag to TRUE results in using a different algorithm
- * for deciding when to save and restore the floating point context.
- * The deferred FP switch algorithm minimizes the number of times
- * the FP context is saved and restored. The FP context is not saved
- * until a context switch is made to another, different FP task.
- * Thus in a system with only one FP task, the FP context will never
- * be saved or restored.
+ * Setting this flag to TRUE results in using a different algorithm
+ * for deciding when to save and restore the floating point context.
+ * The deferred FP switch algorithm minimizes the number of times
+ * the FP context is saved and restored. The FP context is not saved
+ * until a context switch is made to another, different FP task.
+ * Thus in a system with only one FP task, the FP context will never
+ * be saved or restored.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_USE_DEFERRED_FP_SWITCH TRUE
/**
- * Does this port provide a CPU dependent IDLE task implementation?
+ * Does this port provide a CPU dependent IDLE task implementation?
*
- * If TRUE, then the routine @ref _CPU_Thread_Idle_body
- * must be provided and is the default IDLE thread body instead of
- * @ref _CPU_Thread_Idle_body.
+ * If TRUE, then the routine @ref _CPU_Thread_Idle_body
+ * must be provided and is the default IDLE thread body instead of
+ * @ref _CPU_Thread_Idle_body.
*
- * If FALSE, then use the generic IDLE thread body if the BSP does
- * not provide one.
+ * If FALSE, then use the generic IDLE thread body if the BSP does
+ * not provide one.
*
- * This is intended to allow for supporting processors which have
- * a low power or idle mode. When the IDLE thread is executed, then
- * the CPU can be powered down.
+ * This is intended to allow for supporting processors which have
+ * a low power or idle mode. When the IDLE thread is executed, then
+ * the CPU can be powered down.
*
- * The order of precedence for selecting the IDLE thread body is:
+ * The order of precedence for selecting the IDLE thread body is:
*
- * -# BSP provided
- * -# CPU dependent (if provided)
- * -# generic (if no BSP and no CPU dependent)
+ * -# BSP provided
+ * -# CPU dependent (if provided)
+ * -# generic (if no BSP and no CPU dependent)
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_PROVIDES_IDLE_THREAD_BODY TRUE
/**
- * Does the stack grow up (toward higher addresses) or down
- * (toward lower addresses)?
+ * Does the stack grow up (toward higher addresses) or down
+ * (toward lower addresses)?
*
- * If TRUE, then the grows upward.
- * If FALSE, then the grows toward smaller addresses.
+ * If TRUE, then the grows upward.
+ * If FALSE, then the grows toward smaller addresses.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_STACK_GROWS_UP FALSE
/**
- * The following is the variable attribute used to force alignment
- * of critical RTEMS structures. On some processors it may make
- * sense to have these aligned on tighter boundaries than
- * the minimum requirements of the compiler in order to have as
- * much of the critical data area as possible in a cache line.
+ * The following is the variable attribute used to force alignment
+ * of critical RTEMS structures. On some processors it may make
+ * sense to have these aligned on tighter boundaries than
+ * the minimum requirements of the compiler in order to have as
+ * much of the critical data area as possible in a cache line.
*
- * The placement of this macro in the declaration of the variables
- * is based on the syntactically requirements of the GNU C
- * "__attribute__" extension. For example with GNU C, use
- * the following to force a structures to a 32 byte boundary.
+ * The placement of this macro in the declaration of the variables
+ * is based on the syntactically requirements of the GNU C
+ * "__attribute__" extension. For example with GNU C, use
+ * the following to force a structures to a 32 byte boundary.
*
- * __attribute__ ((aligned (32)))
+ * __attribute__ ((aligned (32)))
*
- * @note Currently only the Priority Bit Map table uses this feature.
- * To benefit from using this, the data must be heavily
- * used so it will stay in the cache and used frequently enough
- * in the executive to justify turning this on.
+ * NOTE: Currently only the Priority Bit Map table uses this feature.
+ * To benefit from using this, the data must be heavily
+ * used so it will stay in the cache and used frequently enough
+ * in the executive to justify turning this on.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * L2 cache lines are 32 bytes in Milkymist SoC
+ * L2 cache lines are 32 bytes in Milkymist SoC
*/
#define CPU_STRUCTURE_ALIGNMENT __attribute__ ((aligned (32)))
#define CPU_TIMESTAMP_USE_INT64_INLINE TRUE
/**
- * @defgroup CPUEndian Processor Dependent Endianness Support
+ * @defgroup CPUEndian Processor Dependent Endianness Support
+ *
+ * This group assists in issues related to processor endianness.
*
- * This group assists in issues related to processor endianness.
*/
+/**@{**/
/**
- * @ingroup CPUEndian
- * Define what is required to specify how the network to host conversion
- * routines are handled.
+ * Define what is required to specify how the network to host conversion
+ * routines are handled.
*
- * @note @a CPU_BIG_ENDIAN and @a CPU_LITTLE_ENDIAN should NOT have the
- * same values.
+ * NOTE: @a CPU_BIG_ENDIAN and @a CPU_LITTLE_ENDIAN should NOT have the
+ * same values.
*
- * @see CPU_LITTLE_ENDIAN
+ * @see CPU_LITTLE_ENDIAN
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_BIG_ENDIAN TRUE
/**
- * @ingroup CPUEndian
- * Define what is required to specify how the network to host conversion
- * routines are handled.
+ * Define what is required to specify how the network to host conversion
+ * routines are handled.
*
- * @note @ref CPU_BIG_ENDIAN and @ref CPU_LITTLE_ENDIAN should NOT have the
- * same values.
+ * NOTE: @ref CPU_BIG_ENDIAN and @ref CPU_LITTLE_ENDIAN should NOT have the
+ * same values.
*
- * @see CPU_BIG_ENDIAN
+ * @see CPU_BIG_ENDIAN
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_LITTLE_ENDIAN FALSE
+/** @} */
+
/**
- * @ingroup CPUInterrupt
- * The following defines the number of bits actually used in the
- * interrupt field of the task mode. How those bits map to the
- * CPU interrupt levels is defined by the routine @ref _CPU_ISR_Set_level.
+ * @ingroup CPUInterrupt
+ * The following defines the number of bits actually used in the
+ * interrupt field of the task mode. How those bits map to the
+ * CPU interrupt levels is defined by the routine @ref _CPU_ISR_Set_level.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_MODES_INTERRUPT_MASK 0x00000001
@@ -402,50 +404,50 @@ extern "C" {
/**
* @defgroup CPUContext Processor Dependent Context Management
*
- * From the highest level viewpoint, there are 2 types of context to save.
+ * From the highest level viewpoint, there are 2 types of context to save.
*
- * -# Interrupt registers to save
- * -# Task level registers to save
+ * -# Interrupt registers to save
+ * -# Task level registers to save
*
- * Since RTEMS handles integer and floating point contexts separately, this
- * means we have the following 3 context items:
+ * Since RTEMS handles integer and floating point contexts separately, this
+ * means we have the following 3 context items:
*
- * -# task level context stuff:: Context_Control
- * -# floating point task stuff:: Context_Control_fp
- * -# special interrupt level context :: CPU_Interrupt_frame
+ * -# task level context stuff:: Context_Control
+ * -# floating point task stuff:: Context_Control_fp
+ * -# special interrupt level context :: CPU_Interrupt_frame
*
- * On some processors, it is cost-effective to save only the callee
- * preserved registers during a task context switch. This means
- * that the ISR code needs to save those registers which do not
- * persist across function calls. It is not mandatory to make this
- * distinctions between the caller/callee saves registers for the
- * purpose of minimizing context saved during task switch and on interrupts.
- * If the cost of saving extra registers is minimal, simplicity is the
- * choice. Save the same context on interrupt entry as for tasks in
- * this case.
+ * On some processors, it is cost-effective to save only the callee
+ * preserved registers during a task context switch. This means
+ * that the ISR code needs to save those registers which do not
+ * persist across function calls. It is not mandatory to make this
+ * distinctions between the caller/callee saves registers for the
+ * purpose of minimizing context saved during task switch and on interrupts.
+ * If the cost of saving extra registers is minimal, simplicity is the
+ * choice. Save the same context on interrupt entry as for tasks in
+ * this case.
*
- * Additionally, if gdb is to be made aware of RTEMS tasks for this CPU, then
- * care should be used in designing the context area.
+ * Additionally, if gdb is to be made aware of RTEMS tasks for this CPU, then
+ * care should be used in designing the context area.
*
- * On some CPUs with hardware floating point support, the Context_Control_fp
- * structure will not be used or it simply consist of an array of a
- * fixed number of bytes. This is done when the floating point context
- * is dumped by a "FP save context" type instruction and the format
- * is not really defined by the CPU. In this case, there is no need
- * to figure out the exact format -- only the size. Of course, although
- * this is enough information for RTEMS, it is probably not enough for
- * a debugger such as gdb. But that is another problem.
+ * On some CPUs with hardware floating point support, the Context_Control_fp
+ * structure will not be used or it simply consist of an array of a
+ * fixed number of bytes. This is done when the floating point context
+ * is dumped by a "FP save context" type instruction and the format
+ * is not really defined by the CPU. In this case, there is no need
+ * to figure out the exact format -- only the size. Of course, although
+ * this is enough information for RTEMS, it is probably not enough for
+ * a debugger such as gdb. But that is another problem.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
+/**@{**/
/**
- * @ingroup CPUContext Management
- * This defines the minimal set of integer and processor state registers
- * that must be saved during a voluntary context switch from one thread
- * to another.
+ * This defines the minimal set of integer and processor state registers
+ * that must be saved during a voluntary context switch from one thread
+ * to another.
*/
typedef struct {
uint32_t r11;
@@ -472,30 +474,27 @@ typedef struct {
} Context_Control;
/**
- * @ingroup CPUContext Management
*
- * This macro returns the stack pointer associated with @a _context.
+ * This macro returns the stack pointer associated with @a _context.
*
- * @param[in] _context is the thread context area to access
+ * @param[in] _context is the thread context area to access
*
- * @return This method returns the stack pointer.
+ * @return This method returns the stack pointer.
*/
#define _CPU_Context_Get_SP( _context ) \
(_context)->sp
/**
- * @ingroup CPUContext Management
- * This defines the complete set of floating point registers that must
- * be saved during any context switch from one thread to another.
+ * This defines the complete set of floating point registers that must
+ * be saved during any context switch from one thread to another.
*/
typedef struct {
} Context_Control_fp;
/**
- * @ingroup CPUContext Management
- * This defines the set of integer and processor state registers that must
- * be saved during an interrupt. This set does not include any which are
- * in @ref Context_Control.
+ * This defines the set of integer and processor state registers that must
+ * be saved during an interrupt. This set does not include any which are
+ * in @ref Context_Control.
*/
typedef struct {
uint32_t r1;
@@ -514,173 +513,175 @@ typedef struct {
} CPU_Interrupt_frame;
/**
- * This variable is optional. It is used on CPUs on which it is difficult
- * to generate an "uninitialized" FP context. It is filled in by
- * @ref _CPU_Initialize and copied into the task's FP context area during
- * @ref _CPU_Context_Initialize.
+ * This variable is optional. It is used on CPUs on which it is difficult
+ * to generate an "uninitialized" FP context. It is filled in by
+ * @ref _CPU_Initialize and copied into the task's FP context area during
+ * @ref _CPU_Context_Initialize.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#if 0
SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
#endif
+/** @} */
+
/**
- * @defgroup CPUInterrupt Processor Dependent Interrupt Management
+ * @defgroup CPUInterrupt Processor Dependent Interrupt Management
*
- * On some CPUs, RTEMS supports a software managed interrupt stack.
- * This stack is allocated by the Interrupt Manager and the switch
- * is performed in @ref _ISR_Handler. These variables contain pointers
- * to the lowest and highest addresses in the chunk of memory allocated
- * for the interrupt stack. Since it is unknown whether the stack
- * grows up or down (in general), this give the CPU dependent
- * code the option of picking the version it wants to use.
+ * On some CPUs, RTEMS supports a software managed interrupt stack.
+ * This stack is allocated by the Interrupt Manager and the switch
+ * is performed in @ref _ISR_Handler. These variables contain pointers
+ * to the lowest and highest addresses in the chunk of memory allocated
+ * for the interrupt stack. Since it is unknown whether the stack
+ * grows up or down (in general), this give the CPU dependent
+ * code the option of picking the version it wants to use.
*
- * @note These two variables are required if the macro
- * @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK is defined as TRUE.
+ * NOTE: These two variables are required if the macro
+ * @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK is defined as TRUE.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
+/**@{**/
/*
- * Nothing prevents the porter from declaring more CPU specific variables.
+ * Nothing prevents the porter from declaring more CPU specific variables.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
/* XXX: if needed, put more variables here */
/**
- * @ingroup CPUContext
- * The size of the floating point context area. On some CPUs this
- * will not be a "sizeof" because the format of the floating point
- * area is not defined -- only the size is. This is usually on
- * CPUs with a "floating point save context" instruction.
+ * @ingroup CPUContext
+ * The size of the floating point context area. On some CPUs this
+ * will not be a "sizeof" because the format of the floating point
+ * area is not defined -- only the size is. This is usually on
+ * CPUs with a "floating point save context" instruction.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_CONTEXT_FP_SIZE sizeof( Context_Control_fp )
/**
- * Amount of extra stack (above minimum stack size) required by
- * MPCI receive server thread. Remember that in a multiprocessor
- * system this thread must exist and be able to process all directives.
+ * Amount of extra stack (above minimum stack size) required by
+ * MPCI receive server thread. Remember that in a multiprocessor
+ * system this thread must exist and be able to process all directives.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_MPCI_RECEIVE_SERVER_EXTRA_STACK 0
/**
- * @ingroup CPUInterrupt
- * This defines the number of entries in the @ref _ISR_Vector_table managed
- * by RTEMS.
+ * This defines the number of entries in the @ref _ISR_Vector_table managed
+ * by RTEMS.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_INTERRUPT_NUMBER_OF_VECTORS 32
/**
- * @ingroup CPUInterrupt
- * This defines the highest interrupt vector number for this port.
+ * This defines the highest interrupt vector number for this port.
*/
#define CPU_INTERRUPT_MAXIMUM_VECTOR_NUMBER (CPU_INTERRUPT_NUMBER_OF_VECTORS - 1)
/**
- * @ingroup CPUInterrupt
- * This is defined if the port has a special way to report the ISR nesting
- * level. Most ports maintain the variable @a _ISR_Nest_level.
+ * This is defined if the port has a special way to report the ISR nesting
+ * level. Most ports maintain the variable @a _ISR_Nest_level.
*/
#define CPU_PROVIDES_ISR_IS_IN_PROGRESS FALSE
+/** @} */
+
/**
- * @ingroup CPUContext
- * Should be large enough to run all RTEMS tests. This ensures
- * that a "reasonable" small application should not have any problems.
+ * @ingroup CPUContext
+ * Should be large enough to run all RTEMS tests. This ensures
+ * that a "reasonable" small application should not have any problems.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_STACK_MINIMUM_SIZE (1024*4)
#define CPU_SIZEOF_POINTER 4
/**
- * CPU's worst alignment requirement for data types on a byte boundary. This
- * alignment does not take into account the requirements for the stack.
+ * CPU's worst alignment requirement for data types on a byte boundary. This
+ * alignment does not take into account the requirements for the stack.
*
- * Port Specific Information:
- * The LM32 architecture manual simply states: "All memory accesses must be
- * aligned to the size of the access", and there is no hardware support
- * whatsoever for 64-bit numbers.
- * (lm32_archman.pdf, July 2009, p. 15)
+ * Port Specific Information:
+ * The LM32 architecture manual simply states: "All memory accesses must be
+ * aligned to the size of the access", and there is no hardware support
+ * whatsoever for 64-bit numbers.
+ * (lm32_archman.pdf, July 2009, p. 15)
*/
#define CPU_ALIGNMENT 4
/**
- * This number corresponds to the byte alignment requirement for the
- * heap handler. This alignment requirement may be stricter than that
- * for the data types alignment specified by @ref CPU_ALIGNMENT. It is
- * common for the heap to follow the same alignment requirement as
- * @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is strict enough for
- * the heap, then this should be set to @ref CPU_ALIGNMENT.
+ * This number corresponds to the byte alignment requirement for the
+ * heap handler. This alignment requirement may be stricter than that
+ * for the data types alignment specified by @ref CPU_ALIGNMENT. It is
+ * common for the heap to follow the same alignment requirement as
+ * @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is strict enough for
+ * the heap, then this should be set to @ref CPU_ALIGNMENT.
*
- * @note This does not have to be a power of 2 although it should be
- * a multiple of 2 greater than or equal to 2. The requirement
- * to be a multiple of 2 is because the heap uses the least
- * significant field of the front and back flags to indicate
- * that a block is in use or free. So you do not want any odd
- * length blocks really putting length data in that bit.
+ * NOTE: This does not have to be a power of 2 although it should be
+ * a multiple of 2 greater than or equal to 2. The requirement
+ * to be a multiple of 2 is because the heap uses the least
+ * significant field of the front and back flags to indicate
+ * that a block is in use or free. So you do not want any odd
+ * length blocks really putting length data in that bit.
*
- * On byte oriented architectures, @ref CPU_HEAP_ALIGNMENT normally will
- * have to be greater or equal to than @ref CPU_ALIGNMENT to ensure that
- * elements allocated from the heap meet all restrictions.
+ * On byte oriented architectures, @ref CPU_HEAP_ALIGNMENT normally will
+ * have to be greater or equal to than @ref CPU_ALIGNMENT to ensure that
+ * elements allocated from the heap meet all restrictions.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_HEAP_ALIGNMENT CPU_ALIGNMENT
/**
- * This number corresponds to the byte alignment requirement for memory
- * buffers allocated by the partition manager. This alignment requirement
- * may be stricter than that for the data types alignment specified by
- * @ref CPU_ALIGNMENT. It is common for the partition to follow the same
- * alignment requirement as @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is
- * strict enough for the partition, then this should be set to
- * @ref CPU_ALIGNMENT.
+ * This number corresponds to the byte alignment requirement for memory
+ * buffers allocated by the partition manager. This alignment requirement
+ * may be stricter than that for the data types alignment specified by
+ * @ref CPU_ALIGNMENT. It is common for the partition to follow the same
+ * alignment requirement as @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is
+ * strict enough for the partition, then this should be set to
+ * @ref CPU_ALIGNMENT.
*
- * @note This does not have to be a power of 2. It does have to
- * be greater or equal to than @ref CPU_ALIGNMENT.
+ * NOTE: This does not have to be a power of 2. It does have to
+ * be greater or equal to than @ref CPU_ALIGNMENT.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_PARTITION_ALIGNMENT CPU_ALIGNMENT
/**
- * This number corresponds to the byte alignment requirement for the
- * stack. This alignment requirement may be stricter than that for the
- * data types alignment specified by @ref CPU_ALIGNMENT.
+ * This number corresponds to the byte alignment requirement for the
+ * stack. This alignment requirement may be stricter than that for the
+ * data types alignment specified by @ref CPU_ALIGNMENT.
*
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * Stack is software-managed
+ * Stack is software-managed
*/
#define CPU_STACK_ALIGNMENT CPU_ALIGNMENT
@@ -689,76 +690,75 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
*/
/**
- * @ingroup CPUInterrupt
- * Support routine to initialize the RTEMS vector table after it is allocated.
+ * @addtogroup CPUInterrupt
+ */
+/**@{**/
+
+/**
+ * Support routine to initialize the RTEMS vector table after it is allocated.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Initialize_vectors()
/**
- * @ingroup CPUInterrupt
- * Disable all interrupts for an RTEMS critical section. The previous
- * level is returned in @a _isr_cookie.
+ * Disable all interrupts for an RTEMS critical section. The previous
+ * level is returned in @a _isr_cookie.
*
- * @param[out] _isr_cookie will contain the previous level cookie
+ * @param[out] _isr_cookie will contain the previous level cookie
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_ISR_Disable( _isr_cookie ) \
lm32_disable_interrupts( _isr_cookie );
/**
- * @ingroup CPUInterrupt
- * Enable interrupts to the previous level (returned by _CPU_ISR_Disable).
- * This indicates the end of an RTEMS critical section. The parameter
- * @a _isr_cookie is not modified.
+ * Enable interrupts to the previous level (returned by _CPU_ISR_Disable).
+ * This indicates the end of an RTEMS critical section. The parameter
+ * @a _isr_cookie is not modified.
*
- * @param[in] _isr_cookie contain the previous level cookie
+ * @param[in] _isr_cookie contain the previous level cookie
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_ISR_Enable( _isr_cookie ) \
lm32_enable_interrupts( _isr_cookie );
/**
- * @ingroup CPUInterrupt
- * This temporarily restores the interrupt to @a _isr_cookie before immediately
- * disabling them again. This is used to divide long RTEMS critical
- * sections into two or more parts. The parameter @a _isr_cookie is not
- * modified.
+ * This temporarily restores the interrupt to @a _isr_cookie before immediately
+ * disabling them again. This is used to divide long RTEMS critical
+ * sections into two or more parts. The parameter @a _isr_cookie is not
+ * modified.
*
- * @param[in] _isr_cookie contain the previous level cookie
+ * @param[in] _isr_cookie contain the previous level cookie
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_ISR_Flash( _isr_cookie ) \
lm32_flash_interrupts( _isr_cookie );
/**
- * @ingroup CPUInterrupt
+ * This routine and @ref _CPU_ISR_Get_level
+ * Map the interrupt level in task mode onto the hardware that the CPU
+ * actually provides. Currently, interrupt levels which do not
+ * map onto the CPU in a generic fashion are undefined. Someday,
+ * it would be nice if these were "mapped" by the application
+ * via a callout. For example, m68k has 8 levels 0 - 7, levels
+ * 8 - 255 would be available for bsp/application specific meaning.
+ * This could be used to manage a programmable interrupt controller
+ * via the rtems_task_mode directive.
*
- * This routine and @ref _CPU_ISR_Get_level
- * Map the interrupt level in task mode onto the hardware that the CPU
- * actually provides. Currently, interrupt levels which do not
- * map onto the CPU in a generic fashion are undefined. Someday,
- * it would be nice if these were "mapped" by the application
- * via a callout. For example, m68k has 8 levels 0 - 7, levels
- * 8 - 255 would be available for bsp/application specific meaning.
- * This could be used to manage a programmable interrupt controller
- * via the rtems_task_mode directive.
- *
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_ISR_Set_level( new_level ) \
{ \
@@ -766,52 +766,53 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
}
/**
- * @ingroup CPUInterrupt
- * Return the current interrupt disable level for this task in
- * the format used by the interrupt level portion of the task mode.
+ * Return the current interrupt disable level for this task in
+ * the format used by the interrupt level portion of the task mode.
*
- * @note This routine usually must be implemented as a subroutine.
+ * NOTE: This routine usually must be implemented as a subroutine.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
uint32_t _CPU_ISR_Get_level( void );
/* end of ISR handler macros */
+/** @} */
+
/* Context handler macros */
/**
- * @ingroup CPUContext
- * Initialize the context to a state suitable for starting a
- * task after a context restore operation. Generally, this
- * involves:
- *
- * - setting a starting address
- * - preparing the stack
- * - preparing the stack and frame pointers
- * - setting the proper interrupt level in the context
- * - initializing the floating point context
- *
- * This routine generally does not set any unnecessary register
- * in the context. The state of the "general data" registers is
- * undefined at task start time.
- *
- * @param[in] _the_context is the context structure to be initialized
- * @param[in] _stack_base is the lowest physical address of this task's stack
- * @param[in] _size is the size of this task's stack
- * @param[in] _isr is the interrupt disable level
- * @param[in] _entry_point is the thread's entry point. This is
- * always @a _Thread_Handler
- * @param[in] _is_fp is TRUE if the thread is to be a floating
- * point thread. This is typically only used on CPUs where the
- * FPU may be easily disabled by software such as on the SPARC
- * where the PSR contains an enable FPU bit.
+ * @ingroup CPUContext
+ * Initialize the context to a state suitable for starting a
+ * task after a context restore operation. Generally, this
+ * involves:
*
- * Port Specific Information:
+ * - setting a starting address
+ * - preparing the stack
+ * - preparing the stack and frame pointers
+ * - setting the proper interrupt level in the context
+ * - initializing the floating point context
*
- * XXX document implementation including references if appropriate
+ * This routine generally does not set any unnecessary register
+ * in the context. The state of the "general data" registers is
+ * undefined at task start time.
+ *
+ * @param[in] _the_context is the context structure to be initialized
+ * @param[in] _stack_base is the lowest physical address of this task's stack
+ * @param[in] _size is the size of this task's stack
+ * @param[in] _isr is the interrupt disable level
+ * @param[in] _entry_point is the thread's entry point. This is
+ * always @a _Thread_Handler
+ * @param[in] _is_fp is TRUE if the thread is to be a floating
+ * point thread. This is typically only used on CPUs where the
+ * FPU may be easily disabled by software such as on the SPARC
+ * where the PSR contains an enable FPU bit.
+ *
+ * Port Specific Information:
+ *
+ * XXX document implementation including references if appropriate
*/
extern char _gp[];
@@ -826,44 +827,44 @@ extern char _gp[];
} while ( 0 )
/**
- * This routine is responsible for somehow restarting the currently
- * executing task. If you are lucky, then all that is necessary
- * is restoring the context. Otherwise, there will need to be
- * a special assembly routine which does something special in this
- * case. For many ports, simply adding a label to the restore path
- * of @ref _CPU_Context_switch will work. On other ports, it may be
- * possibly to load a few arguments and jump to the restore path. It will
- * not work if restarting self conflicts with the stack frame
- * assumptions of restoring a context.
+ * This routine is responsible for somehow restarting the currently
+ * executing task. If you are lucky, then all that is necessary
+ * is restoring the context. Otherwise, there will need to be
+ * a special assembly routine which does something special in this
+ * case. For many ports, simply adding a label to the restore path
+ * of @ref _CPU_Context_switch will work. On other ports, it may be
+ * possibly to load a few arguments and jump to the restore path. It will
+ * not work if restarting self conflicts with the stack frame
+ * assumptions of restoring a context.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Context_Restart_self( _the_context ) \
_CPU_Context_restore( (_the_context) );
/**
- * @ingroup CPUContext
- * The purpose of this macro is to allow the initial pointer into
- * a floating point context area (used to save the floating point
- * context) to be at an arbitrary place in the floating point
- * context area.
+ * @ingroup CPUContext
+ * The purpose of this macro is to allow the initial pointer into
+ * a floating point context area (used to save the floating point
+ * context) to be at an arbitrary place in the floating point
+ * context area.
*
- * This is necessary because some FP units are designed to have
- * their context saved as a stack which grows into lower addresses.
- * Other FP units can be saved by simply moving registers into offsets
- * from the base of the context area. Finally some FP units provide
- * a "dump context" instruction which could fill in from high to low
- * or low to high based on the whim of the CPU designers.
+ * This is necessary because some FP units are designed to have
+ * their context saved as a stack which grows into lower addresses.
+ * Other FP units can be saved by simply moving registers into offsets
+ * from the base of the context area. Finally some FP units provide
+ * a "dump context" instruction which could fill in from high to low
+ * or low to high based on the whim of the CPU designers.
*
- * @param[in] _base is the lowest physical address of the floating point
- * context area
- * @param[in] _offset is the offset into the floating point area
+ * @param[in] _base is the lowest physical address of the floating point
+ * context area
+ * @param[in] _offset is the offset into the floating point area
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Context_Fp_start( _base, _offset )
#if 0
@@ -871,22 +872,22 @@ extern char _gp[];
#endif
/**
- * This routine initializes the FP context area passed to it to.
- * There are a few standard ways in which to initialize the
- * floating point context. The code included for this macro assumes
- * that this is a CPU in which a "initial" FP context was saved into
- * @a _CPU_Null_fp_context and it simply copies it to the destination
- * context passed to it.
+ * This routine initializes the FP context area passed to it to.
+ * There are a few standard ways in which to initialize the
+ * floating point context. The code included for this macro assumes
+ * that this is a CPU in which a "initial" FP context was saved into
+ * @a _CPU_Null_fp_context and it simply copies it to the destination
+ * context passed to it.
*
- * Other floating point context save/restore models include:
- * -# not doing anything, and
- * -# putting a "null FP status word" in the correct place in the FP context.
+ * Other floating point context save/restore models include:
+ * -# not doing anything, and
+ * -# putting a "null FP status word" in the correct place in the FP context.
*
- * @param[in] _destination is the floating point context area
+ * @param[in] _destination is the floating point context area
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Context_Initialize_fp( _destination )
#if 0
@@ -900,13 +901,13 @@ extern char _gp[];
/* Fatal Error manager macros */
/**
- * This routine copies _error into a known place -- typically a stack
- * location or a register, optionally disables interrupts, and
- * halts/stops the CPU.
+ * This routine copies _error into a known place -- typically a stack
+ * location or a register, optionally disables interrupts, and
+ * halts/stops the CPU.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Fatal_halt( _error ) \
{ \
@@ -917,68 +918,66 @@ extern char _gp[];
/* Bitfield handler macros */
/**
- * @defgroup CPUBitfield Processor Dependent Bitfield Manipulation
+ * @defgroup CPUBitfield Processor Dependent Bitfield Manipulation
*
- * This set of routines are used to implement fast searches for
- * the most important ready task.
+ * This set of routines are used to implement fast searches for
+ * the most important ready task.
*/
+/**@{**/
/**
- * @ingroup CPUBitfield
- * This definition is set to TRUE if the port uses the generic bitfield
- * manipulation implementation.
+ * This definition is set to TRUE if the port uses the generic bitfield
+ * manipulation implementation.
*/
#define CPU_USE_GENERIC_BITFIELD_CODE TRUE
/**
- * @ingroup CPUBitfield
- * This definition is set to TRUE if the port uses the data tables provided
- * by the generic bitfield manipulation implementation.
- * This can occur when actually using the generic bitfield manipulation
- * implementation or when implementing the same algorithm in assembly
- * language for improved performance. It is unlikely that a port will use
- * the data if it has a bitfield scan instruction.
+ * This definition is set to TRUE if the port uses the data tables provided
+ * by the generic bitfield manipulation implementation.
+ * This can occur when actually using the generic bitfield manipulation
+ * implementation or when implementing the same algorithm in assembly
+ * language for improved performance. It is unlikely that a port will use
+ * the data if it has a bitfield scan instruction.
*/
#define CPU_USE_GENERIC_BITFIELD_DATA TRUE
/**
- * @ingroup CPUBitfield
- * This routine sets @a _output to the bit number of the first bit
- * set in @a _value. @a _value is of CPU dependent type
- * @a Priority_bit_map_Control. This type may be either 16 or 32 bits
- * wide although only the 16 least significant bits will be used.
- *
- * There are a number of variables in using a "find first bit" type
- * instruction.
- *
- * -# What happens when run on a value of zero?
- * -# Bits may be numbered from MSB to LSB or vice-versa.
- * -# The numbering may be zero or one based.
- * -# The "find first bit" instruction may search from MSB or LSB.
- *
- * RTEMS guarantees that (1) will never happen so it is not a concern.
- * (2),(3), (4) are handled by the macros @ref _CPU_Priority_Mask and
- * @ref _CPU_Priority_bits_index. These three form a set of routines
- * which must logically operate together. Bits in the _value are
- * set and cleared based on masks built by @ref _CPU_Priority_Mask.
- * The basic major and minor values calculated by @ref _Priority_Major
- * and @ref _Priority_Minor are "massaged" by @ref _CPU_Priority_bits_index
- * to properly range between the values returned by the "find first bit"
- * instruction. This makes it possible for @ref _Priority_Get_highest to
- * calculate the major and directly index into the minor table.
- * This mapping is necessary to ensure that 0 (a high priority major/minor)
- * is the first bit found.
- *
- * This entire "find first bit" and mapping process depends heavily
- * on the manner in which a priority is broken into a major and minor
- * components with the major being the 4 MSB of a priority and minor
- * the 4 LSB. Thus (0 << 4) + 0 corresponds to priority 0 -- the highest
- * priority. And (15 << 4) + 14 corresponds to priority 254 -- the next
- * to the lowest priority.
- *
- * If your CPU does not have a "find first bit" instruction, then
- * there are ways to make do without it. Here are a handful of ways
- * to implement this in software:
+ * This routine sets @a _output to the bit number of the first bit
+ * set in @a _value. @a _value is of CPU dependent type
+ * @a Priority_bit_map_Control. This type may be either 16 or 32 bits
+ * wide although only the 16 least significant bits will be used.
+ *
+ * There are a number of variables in using a "find first bit" type
+ * instruction.
+ *
+ * -# What happens when run on a value of zero?
+ * -# Bits may be numbered from MSB to LSB or vice-versa.
+ * -# The numbering may be zero or one based.
+ * -# The "find first bit" instruction may search from MSB or LSB.
+ *
+ * RTEMS guarantees that (1) will never happen so it is not a concern.
+ * (2),(3), (4) are handled by the macros @ref _CPU_Priority_Mask and
+ * @ref _CPU_Priority_bits_index. These three form a set of routines
+ * which must logically operate together. Bits in the _value are
+ * set and cleared based on masks built by @ref _CPU_Priority_Mask.
+ * The basic major and minor values calculated by @ref _Priority_Major
+ * and @ref _Priority_Minor are "massaged" by @ref _CPU_Priority_bits_index
+ * to properly range between the values returned by the "find first bit"
+ * instruction. This makes it possible for @ref _Priority_Get_highest to
+ * calculate the major and directly index into the minor table.
+ * This mapping is necessary to ensure that 0 (a high priority major/minor)
+ * is the first bit found.
+ *
+ * This entire "find first bit" and mapping process depends heavily
+ * on the manner in which a priority is broken into a major and minor
+ * components with the major being the 4 MSB of a priority and minor
+ * the 4 LSB. Thus (0 << 4) + 0 corresponds to priority 0 -- the highest
+ * priority. And (15 << 4) + 14 corresponds to priority 254 -- the next
+ * to the lowest priority.
+ *
+ * If your CPU does not have a "find first bit" instruction, then
+ * there are ways to make do without it. Here are a handful of ways
+ * to implement this in software:
*
@verbatim
- a series of 16 bit test instructions
@@ -995,15 +994,15 @@ extern char _gp[];
_number += bit_set_table[ _value ]
@endverbatim
- * where bit_set_table[ 16 ] has values which indicate the first
- * bit set
+ * where bit_set_table[ 16 ] has values which indicate the first
+ * bit set
*
- * @param[in] _value is the value to be scanned
- * @param[in] _output is the first bit set
+ * @param[in] _value is the value to be scanned
+ * @param[in] _output is the first bit set
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#if (CPU_USE_GENERIC_BITFIELD_CODE == FALSE)
@@ -1015,14 +1014,16 @@ extern char _gp[];
/* end of Bitfield handler macros */
+/** @} */
+
/**
- * This routine builds the mask which corresponds to the bit fields
- * as searched by @ref _CPU_Bitfield_Find_first_bit. See the discussion
- * for that routine.
+ * This routine builds the mask which corresponds to the bit fields
+ * as searched by @ref _CPU_Bitfield_Find_first_bit. See the discussion
+ * for that routine.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#if (CPU_USE_GENERIC_BITFIELD_CODE == FALSE)
@@ -1032,17 +1033,17 @@ extern char _gp[];
#endif
/**
- * @ingroup CPUBitfield
- * This routine translates the bit numbers returned by
- * @ref _CPU_Bitfield_Find_first_bit into something suitable for use as
- * a major or minor component of a priority. See the discussion
- * for that routine.
+ * @ingroup CPUBitfield
+ * This routine translates the bit numbers returned by
+ * @ref _CPU_Bitfield_Find_first_bit into something suitable for use as
+ * a major or minor component of a priority. See the discussion
+ * for that routine.
*
- * @param[in] _priority is the major or minor number to translate
+ * @param[in] _priority is the major or minor number to translate
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#if (CPU_USE_GENERIC_BITFIELD_CODE == FALSE)
@@ -1056,26 +1057,30 @@ extern char _gp[];
/* functions */
/**
- * This routine performs CPU dependent initialization.
+ * This routine performs CPU dependent initialization.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Initialize(void);
/**
- * @ingroup CPUInterrupt
- * This routine installs a "raw" interrupt handler directly into the
- * processor's vector table.
+ * @addtogroup CPUInterrupt
+ */
+/**@{**/
+
+/**
+ * This routine installs a "raw" interrupt handler directly into the
+ * processor's vector table.
*
- * @param[in] vector is the vector number
- * @param[in] new_handler is the raw ISR handler to install
- * @param[in] old_handler is the previously installed ISR Handler
+ * @param[in] vector is the vector number
+ * @param[in] new_handler is the raw ISR handler to install
+ * @param[in] old_handler is the previously installed ISR Handler
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_ISR_install_raw_handler(
uint32_t vector,
@@ -1084,16 +1089,15 @@ void _CPU_ISR_install_raw_handler(
);
/**
- * @ingroup CPUInterrupt
- * This routine installs an interrupt vector.
+ * This routine installs an interrupt vector.
*
- * @param[in] vector is the vector number
- * @param[in] new_handler is the RTEMS ISR handler to install
- * @param[in] old_handler is the previously installed ISR Handler
+ * @param[in] vector is the vector number
+ * @param[in] new_handler is the RTEMS ISR handler to install
+ * @param[in] old_handler is the previously installed ISR Handler
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_ISR_install_vector(
uint32_t vector,
@@ -1102,40 +1106,41 @@ void _CPU_ISR_install_vector(
);
/**
- * @ingroup CPUInterrupt
- * This routine installs the hardware interrupt stack pointer.
+ * This routine installs the hardware interrupt stack pointer.
*
- * @note It need only be provided if @ref CPU_HAS_HARDWARE_INTERRUPT_STACK
- * is TRUE.
+ * NOTE: It need only be provided if @ref CPU_HAS_HARDWARE_INTERRUPT_STACK
+ * is TRUE.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Install_interrupt_stack( void );
+/** @} */
+
/**
- * This routine is the CPU dependent IDLE thread body.
+ * This routine is the CPU dependent IDLE thread body.
*
- * @note It need only be provided if @ref CPU_PROVIDES_IDLE_THREAD_BODY
- * is TRUE.
+ * NOTE: It need only be provided if @ref CPU_PROVIDES_IDLE_THREAD_BODY
+ * is TRUE.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void *_CPU_Thread_Idle_body( uintptr_t ignored );
/**
- * @ingroup CPUContext
- * This routine switches from the run context to the heir context.
+ * @ingroup CPUContext
+ * This routine switches from the run context to the heir context.
*
- * @param[in] run points to the context of the currently executing task
- * @param[in] heir points to the context of the heir task
+ * @param[in] run points to the context of the currently executing task
+ * @param[in] heir points to the context of the heir task
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_switch(
Context_Control *run,
@@ -1143,90 +1148,94 @@ void _CPU_Context_switch(
);
/**
- * @ingroup CPUContext
- * This routine is generally used only to restart self in an
- * efficient manner. It may simply be a label in @ref _CPU_Context_switch.
+ * @addtogroup CPUContext
+ */
+/**@{**/
+
+/**
+ * This routine is generally used only to restart self in an
+ * efficient manner. It may simply be a label in @ref _CPU_Context_switch.
*
- * @param[in] new_context points to the context to be restored.
+ * @param[in] new_context points to the context to be restored.
*
- * @note May be unnecessary to reload some registers.
+ * NOTE: May be unnecessary to reload some registers.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_restore(
Context_Control *new_context
) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE;
/**
- * @ingroup CPUContext
- * This routine saves the floating point context passed to it.
+ * This routine saves the floating point context passed to it.
*
- * @param[in] fp_context_ptr is a pointer to a pointer to a floating
- * point context area
+ * @param[in] fp_context_ptr is a pointer to a pointer to a floating
+ * point context area
*
- * @return on output @a *fp_context_ptr will contain the address that
- * should be used with @ref _CPU_Context_restore_fp to restore this context.
+ * @return on output @a *fp_context_ptr will contain the address that
+ * should be used with @ref _CPU_Context_restore_fp to restore this context.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_save_fp(
Context_Control_fp **fp_context_ptr
);
/**
- * @ingroup CPUContext
- * This routine restores the floating point context passed to it.
+ * This routine restores the floating point context passed to it.
*
- * @param[in] fp_context_ptr is a pointer to a pointer to a floating
- * point context area to restore
+ * @param[in] fp_context_ptr is a pointer to a pointer to a floating
+ * point context area to restore
*
- * @return on output @a *fp_context_ptr will contain the address that
- * should be used with @ref _CPU_Context_save_fp to save this context.
+ * @return on output @a *fp_context_ptr will contain the address that
+ * should be used with @ref _CPU_Context_save_fp to save this context.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_restore_fp(
Context_Control_fp **fp_context_ptr
);
+/** @} */
+
/* FIXME */
typedef CPU_Interrupt_frame CPU_Exception_frame;
void _CPU_Exception_frame_print( const CPU_Exception_frame *frame );
/**
- * @ingroup CPUEndian
- * The following routine swaps the endian format of an unsigned int.
- * It must be static because it is referenced indirectly.
+ * @ingroup CPUEndian
+ * The following routine swaps the endian format of an unsigned int.
+ * It must be static because it is referenced indirectly.
*
- * This version will work on any processor, but if there is a better
- * way for your CPU PLEASE use it. The most common way to do this is to:
+ * This version will work on any processor, but if there is a better
+ * way for your CPU PLEASE use it. The most common way to do this is to:
*
- * swap least significant two bytes with 16-bit rotate
- * swap upper and lower 16-bits
- * swap most significant two bytes with 16-bit rotate
+ * swap least significant two bytes with 16-bit rotate
+ * swap upper and lower 16-bits
+ * swap most significant two bytes with 16-bit rotate
*
- * Some CPUs have special instructions which swap a 32-bit quantity in
- * a single instruction (e.g. i486). It is probably best to avoid
- * an "endian swapping control bit" in the CPU. One good reason is
- * that interrupts would probably have to be disabled to ensure that
- * an interrupt does not try to access the same "chunk" with the wrong
- * endian. Another good reason is that on some CPUs, the endian bit
- * endianness for ALL fetches -- both code and data -- so the code
- * will be fetched incorrectly.
+ * Some CPUs have special instructions which swap a 32-bit quantity in
+ * a single instruction (e.g. i486). It is probably best to avoid
+ * an "endian swapping control bit" in the CPU. One good reason is
+ * that interrupts would probably have to be disabled to ensure that
+ * an interrupt does not try to access the same "chunk" with the wrong
+ * endian. Another good reason is that on some CPUs, the endian bit
+ * endianness for ALL fetches -- both code and data -- so the code
+ * will be fetched incorrectly.
*
- * @param[in] value is the value to be swapped
- * @return the value after being endian swapped
+ * @param[in] value is the value to be swapped
+ * @return the value after being endian swapped
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
static inline uint32_t CPU_swap_u32(
uint32_t value
@@ -1244,11 +1253,11 @@ static inline uint32_t CPU_swap_u32(
}
/**
- * @ingroup CPUEndian
- * This routine swaps a 16 bir quantity.
+ * @ingroup CPUEndian
+ * This routine swaps a 16 bir quantity.
*
- * @param[in] value is the value to be swapped
- * @return the value after being endian swapped
+ * @param[in] value is the value to be swapped
+ * @return the value after being endian swapped
*/
static inline uint16_t CPU_swap_u16(uint16_t v)
{
diff --git a/cpukit/score/cpu/lm32/rtems/score/cpu_asm.h b/cpukit/score/cpu/lm32/rtems/score/cpu_asm.h
index 7eada7827d..49d0aed5f3 100644
--- a/cpukit/score/cpu/lm32/rtems/score/cpu_asm.h
+++ b/cpukit/score/cpu/lm32/rtems/score/cpu_asm.h
@@ -1,12 +1,14 @@
/**
- * @file rtems/score/cpu_asm.h
+ * @file
+ *
+ * @brief LM32 CPU Assembly File
+ *
+ * Very loose template for an include file for the cpu_asm.? file
+ * if it is implemented as a ".S" file (preprocessed by cpp) instead
+ * of a ".s" file (preprocessed by gm4 or gasp).
*/
/*
- * Very loose template for an include file for the cpu_asm.? file
- * if it is implemented as a ".S" file (preprocessed by cpp) instead
- * of a ".s" file (preprocessed by gm4 or gasp).
- *
* COPYRIGHT (c) 1989-2008.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/lm32/rtems/score/lm32.h b/cpukit/score/cpu/lm32/rtems/score/lm32.h
index b1d5edd688..4d03d953ed 100644
--- a/cpukit/score/cpu/lm32/rtems/score/lm32.h
+++ b/cpukit/score/cpu/lm32/rtems/score/lm32.h
@@ -1,11 +1,14 @@
-/* lm32.h
- *
- * This file sets up basic CPU dependency settings based on
- * compiler settings. For example, it can determine if
- * floating point is available. This particular implementation
- * is specified to the NO CPU port.
+/**
+ * @file
*
+ * @brief LM32 Set up Basic CPU Dependency Settings Based on Compiler Settings
*
+ * This file sets up basic CPU dependency settings based on
+ * compiler settings. For example, it can determine if
+ * floating point is available. This particular implementation
+ * is specified to the NO CPU port.
+ */
+/*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/lm32/rtems/score/types.h b/cpukit/score/cpu/lm32/rtems/score/types.h
index aee9f923c1..7caae46e61 100644
--- a/cpukit/score/cpu/lm32/rtems/score/types.h
+++ b/cpukit/score/cpu/lm32/rtems/score/types.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/types.h
+ * @file
+ *
+ * @brief LM32 CPU Type Definitions
+ *
+ * This include file contains type definitions pertaining to the
+ * Lattice lm32 processor family.
*/
/*
- * This include file contains type definitions pertaining to the
- * Lattice lm32 processor family.
- *
* COPYRIGHT (c) 1989-2006.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/m32c/rtems/asm.h b/cpukit/score/cpu/m32c/rtems/asm.h
index 6d9dcb75b6..f3f244d066 100644
--- a/cpukit/score/cpu/m32c/rtems/asm.h
+++ b/cpukit/score/cpu/m32c/rtems/asm.h
@@ -1,17 +1,20 @@
/**
- * @file rtems/asm.h
+ * @file
+ *
+ * @brief Address the Problems Caused by Incompatible Flavor of
+ * Assemblers and Toolsets
*
- * This include file attempts to address the problems
- * caused by incompatible flavors of assemblers and
- * toolsets. It primarily addresses variations in the
- * use of leading underscores on symbols and the requirement
- * that register names be preceded by a %.
+ * This include file attempts to address the problems
+ * caused by incompatible flavors of assemblers and
+ * toolsets. It primarily addresses variations in the
+ * use of leading underscores on symbols and the requirement
+ * that register names be preceded by a %.
+ *
+ * NOTE: The spacing in the use of these macros
+ * is critical to them working as advertised.
*/
/*
- * NOTE: The spacing in the use of these macros
- * is critical to them working as advertised.
- *
* COPYRIGHT:
*
* This file is based on similar code found in newlib available
@@ -38,24 +41,21 @@
#ifndef __USER_LABEL_PREFIX__
/**
- * Recent versions of GNU cpp define variables which indicate the
- * need for underscores and percents. If not using GNU cpp or
- * the version does not support this, then you will obviously
- * have to define these as appropriate.
+ * Recent versions of GNU cpp define variables which indicate the
+ * need for underscores and percents. If not using GNU cpp or
+ * the version does not support this, then you will obviously
+ * have to define these as appropriate.
*
- * This symbol is prefixed to all C program symbols.
+ * This symbol is prefixed to all C program symbols.
*/
#define __USER_LABEL_PREFIX__ _
#endif
#ifndef __REGISTER_PREFIX__
/**
- * Recent versions of GNU cpp define variables which indicate the
- * need for underscores and percents. If not using GNU cpp or
- * the version does not support this, then you will obviously
- * have to define these as appropriate.
+ * @see __USER_LABEL_PREFIX__
*
- * This symbol is prefixed to all register names.
+ * This symbol is prefixed to all register names.
*/
#define __REGISTER_PREFIX__
#endif
@@ -83,7 +83,9 @@
#define BEGIN_CODE_DCL .text
/** This macro is used to denote the end of a code declaration. */
#define END_CODE_DCL
-/** This macro is used to denote the beginning of a data declaration section. */
+/**
+ * This macro is used to denote the beginning of a data declaration section.
+ */
#define BEGIN_DATA_DCL .data
/** This macro is used to denote the end of a data declaration section. */
#define END_DATA_DCL
@@ -105,18 +107,17 @@
#define END
/**
- * This macro is used to declare a public global symbol.
+ * This macro is used to declare a public global symbol.
*
- * @note This must be tailored for a particular flavor of the C compiler.
- * They may need to put underscores in front of the symbols.
+ * NOTE: This must be tailored for a particular flavor of the C compiler.
+ * They may need to put underscores in front of the symbols.
*/
#define PUBLIC(sym) .globl SYM (sym)
/**
- * This macro is used to prototype a public global symbol.
+ * This macro is used to prototype a public global symbol.
*
- * @note This must be tailored for a particular flavor of the C compiler.
- * They may need to put underscores in front of the symbols.
+ * @see PUBLIC(sym) .globl SYM (sym)
*/
#define EXTERN(sym) .globl SYM (sym)
diff --git a/cpukit/score/cpu/m32c/rtems/score/cpu.h b/cpukit/score/cpu/m32c/rtems/score/cpu.h
index 10cdc5b60a..8d9acc37f3 100644
--- a/cpukit/score/cpu/m32c/rtems/score/cpu.h
+++ b/cpukit/score/cpu/m32c/rtems/score/cpu.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/score/cpu.h
+ * @file
+ *
+ * @brief M32C CPU Dependent Source
*/
/*
@@ -43,172 +45,172 @@ extern "C" {
#define RTEMS_USE_16_BIT_OBJECT
/**
- * Should the calls to @ref _Thread_Enable_dispatch be inlined?
+ * Should the calls to @ref _Thread_Enable_dispatch be inlined?
*
- * If TRUE, then they are inlined.
- * If FALSE, then a subroutine call is made.
+ * If TRUE, then they are inlined.
+ * If FALSE, then a subroutine call is made.
*
- * This conditional is an example of the classic trade-off of size
- * versus speed. Inlining the call (TRUE) typically increases the
- * size of RTEMS while speeding up the enabling of dispatching.
+ * This conditional is an example of the classic trade-off of size
+ * versus speed. Inlining the call (TRUE) typically increases the
+ * size of RTEMS while speeding up the enabling of dispatching.
*
- * @note In general, the @ref _Thread_Dispatch_disable_level will
- * only be 0 or 1 unless you are in an interrupt handler and that
- * interrupt handler invokes the executive.] When not inlined
- * something calls @ref _Thread_Enable_dispatch which in turns calls
- * @ref _Thread_Dispatch. If the enable dispatch is inlined, then
- * one subroutine call is avoided entirely.
+ * NOTE: In general, the @ref _Thread_Dispatch_disable_level will
+ * only be 0 or 1 unless you are in an interrupt handler and that
+ * interrupt handler invokes the executive.] When not inlined
+ * something calls @ref _Thread_Enable_dispatch which in turns calls
+ * @ref _Thread_Dispatch. If the enable dispatch is inlined, then
+ * one subroutine call is avoided entirely.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_INLINE_ENABLE_DISPATCH FALSE
/**
- * Should the body of the search loops in _Thread_queue_Enqueue_priority
- * be unrolled one time? In unrolled each iteration of the loop examines
- * two "nodes" on the chain being searched. Otherwise, only one node
- * is examined per iteration.
- *
- * If TRUE, then the loops are unrolled.
- * If FALSE, then the loops are not unrolled.
- *
- * The primary factor in making this decision is the cost of disabling
- * and enabling interrupts (_ISR_Flash) versus the cost of rest of the
- * body of the loop. On some CPUs, the flash is more expensive than
- * one iteration of the loop body. In this case, it might be desirable
- * to unroll the loop. It is important to note that on some CPUs, this
- * code is the longest interrupt disable period in RTEMS. So it is
- * necessary to strike a balance when setting this parameter.
+ * Should the body of the search loops in _Thread_queue_Enqueue_priority
+ * be unrolled one time? In unrolled each iteration of the loop examines
+ * two "nodes" on the chain being searched. Otherwise, only one node
+ * is examined per iteration.
*
- * Port Specific Information:
+ * If TRUE, then the loops are unrolled.
+ * If FALSE, then the loops are not unrolled.
*
- * XXX document implementation including references if appropriate
+ * The primary factor in making this decision is the cost of disabling
+ * and enabling interrupts (_ISR_Flash) versus the cost of rest of the
+ * body of the loop. On some CPUs, the flash is more expensive than
+ * one iteration of the loop body. In this case, it might be desirable
+ * to unroll the loop. It is important to note that on some CPUs, this
+ * code is the longest interrupt disable period in RTEMS. So it is
+ * necessary to strike a balance when setting this parameter.
+ *
+ * Port Specific Information:
+ *
+ * XXX document implementation including references if appropriate
*/
#define CPU_UNROLL_ENQUEUE_PRIORITY TRUE
/**
- * Does RTEMS manage a dedicated interrupt stack in software?
+ * Does RTEMS manage a dedicated interrupt stack in software?
*
- * If TRUE, then a stack is allocated in @ref _ISR_Handler_initialization.
- * If FALSE, nothing is done.
+ * If TRUE, then a stack is allocated in @ref _ISR_Handler_initialization.
+ * If FALSE, nothing is done.
*
- * If the CPU supports a dedicated interrupt stack in hardware,
- * then it is generally the responsibility of the BSP to allocate it
- * and set it up.
+ * If the CPU supports a dedicated interrupt stack in hardware,
+ * then it is generally the responsibility of the BSP to allocate it
+ * and set it up.
*
- * If the CPU does not support a dedicated interrupt stack, then
- * the porter has two options: (1) execute interrupts on the
- * stack of the interrupted task, and (2) have RTEMS manage a dedicated
- * interrupt stack.
+ * If the CPU does not support a dedicated interrupt stack, then
+ * the porter has two options: (1) execute interrupts on the
+ * stack of the interrupted task, and (2) have RTEMS manage a dedicated
+ * interrupt stack.
*
- * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
+ * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
*
- * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
- * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
- * possible that both are FALSE for a particular CPU. Although it
- * is unclear what that would imply about the interrupt processing
- * procedure on that CPU.
+ * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
+ * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
+ * possible that both are FALSE for a particular CPU. Although it
+ * is unclear what that would imply about the interrupt processing
+ * procedure on that CPU.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_HAS_SOFTWARE_INTERRUPT_STACK FALSE
/**
- * Does the CPU follow the simple vectored interrupt model?
+ * Does the CPU follow the simple vectored interrupt model?
*
- * If TRUE, then RTEMS allocates the vector table it internally manages.
- * If FALSE, then the BSP is assumed to allocate and manage the vector
- * table
+ * If TRUE, then RTEMS allocates the vector table it internally manages.
+ * If FALSE, then the BSP is assumed to allocate and manage the vector
+ * table
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_SIMPLE_VECTORED_INTERRUPTS TRUE
/**
- * Does this CPU have hardware support for a dedicated interrupt stack?
+ * Does this CPU have hardware support for a dedicated interrupt stack?
*
- * If TRUE, then it must be installed during initialization.
- * If FALSE, then no installation is performed.
+ * If TRUE, then it must be installed during initialization.
+ * If FALSE, then no installation is performed.
*
- * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
+ * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
*
- * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
- * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
- * possible that both are FALSE for a particular CPU. Although it
- * is unclear what that would imply about the interrupt processing
- * procedure on that CPU.
+ * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
+ * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
+ * possible that both are FALSE for a particular CPU. Although it
+ * is unclear what that would imply about the interrupt processing
+ * procedure on that CPU.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_HAS_HARDWARE_INTERRUPT_STACK TRUE
/**
- * Does RTEMS allocate a dedicated interrupt stack in the Interrupt Manager?
+ * Does RTEMS allocate a dedicated interrupt stack in the Interrupt Manager?
*
- * If TRUE, then the memory is allocated during initialization.
- * If FALSE, then the memory is allocated during initialization.
+ * If TRUE, then the memory is allocated during initialization.
+ * If FALSE, then the memory is allocated during initialization.
*
- * This should be TRUE is CPU_HAS_SOFTWARE_INTERRUPT_STACK is TRUE.
+ * This should be TRUE is CPU_HAS_SOFTWARE_INTERRUPT_STACK is TRUE.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_ALLOCATE_INTERRUPT_STACK TRUE
/**
- * Does the RTEMS invoke the user's ISR with the vector number and
- * a pointer to the saved interrupt frame (1) or just the vector
- * number (0)?
+ * Does the RTEMS invoke the user's ISR with the vector number and
+ * a pointer to the saved interrupt frame (1) or just the vector
+ * number (0)?
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_ISR_PASSES_FRAME_POINTER 0
/**
- * @def CPU_HARDWARE_FP
+ * @def CPU_HARDWARE_FP
*
- * Does the CPU have hardware floating point?
+ * Does the CPU have hardware floating point?
*
- * If TRUE, then the RTEMS_FLOATING_POINT task attribute is supported.
- * If FALSE, then the RTEMS_FLOATING_POINT task attribute is ignored.
+ * If TRUE, then the RTEMS_FLOATING_POINT task attribute is supported.
+ * If FALSE, then the RTEMS_FLOATING_POINT task attribute is ignored.
*
- * If there is a FP coprocessor such as the i387 or mc68881, then
- * the answer is TRUE.
+ * If there is a FP coprocessor such as the i387 or mc68881, then
+ * the answer is TRUE.
*
- * The macro name "M32C_HAS_FPU" should be made CPU specific.
- * It indicates whether or not this CPU model has FP support. For
- * example, it would be possible to have an i386_nofp CPU model
- * which set this to false to indicate that you have an i386 without
- * an i387 and wish to leave floating point support out of RTEMS.
+ * The macro name "M32C_HAS_FPU" should be made CPU specific.
+ * It indicates whether or not this CPU model has FP support. For
+ * example, it would be possible to have an i386_nofp CPU model
+ * which set this to false to indicate that you have an i386 without
+ * an i387 and wish to leave floating point support out of RTEMS.
*/
/**
- * @def CPU_SOFTWARE_FP
+ * @def CPU_SOFTWARE_FP
*
- * Does the CPU have no hardware floating point and GCC provides a
- * software floating point implementation which must be context
- * switched?
+ * Does the CPU have no hardware floating point and GCC provides a
+ * software floating point implementation which must be context
+ * switched?
*
- * This feature conditional is used to indicate whether or not there
- * is software implemented floating point that must be context
- * switched. The determination of whether or not this applies
- * is very tool specific and the state saved/restored is also
- * compiler specific.
+ * This feature conditional is used to indicate whether or not there
+ * is software implemented floating point that must be context
+ * switched. The determination of whether or not this applies
+ * is very tool specific and the state saved/restored is also
+ * compiler specific.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#if ( M32C_HAS_FPU == 1 )
#define CPU_HARDWARE_FP TRUE
@@ -220,192 +222,195 @@ extern "C" {
#define CPU_CONTEXT_FP_SIZE 0
/**
- * Are all tasks RTEMS_FLOATING_POINT tasks implicitly?
+ * Are all tasks RTEMS_FLOATING_POINT tasks implicitly?
*
- * If TRUE, then the RTEMS_FLOATING_POINT task attribute is assumed.
- * If FALSE, then the RTEMS_FLOATING_POINT task attribute is followed.
+ * If TRUE, then the RTEMS_FLOATING_POINT task attribute is assumed.
+ * If FALSE, then the RTEMS_FLOATING_POINT task attribute is followed.
*
- * So far, the only CPUs in which this option has been used are the
- * HP PA-RISC and PowerPC. On the PA-RISC, The HP C compiler and
- * gcc both implicitly used the floating point registers to perform
- * integer multiplies. Similarly, the PowerPC port of gcc has been
- * seen to allocate floating point local variables and touch the FPU
- * even when the flow through a subroutine (like vfprintf()) might
- * not use floating point formats.
+ * So far, the only CPUs in which this option has been used are the
+ * HP PA-RISC and PowerPC. On the PA-RISC, The HP C compiler and
+ * gcc both implicitly used the floating point registers to perform
+ * integer multiplies. Similarly, the PowerPC port of gcc has been
+ * seen to allocate floating point local variables and touch the FPU
+ * even when the flow through a subroutine (like vfprintf()) might
+ * not use floating point formats.
*
- * If a function which you would not think utilize the FP unit DOES,
- * then one can not easily predict which tasks will use the FP hardware.
- * In this case, this option should be TRUE.
+ * If a function which you would not think utilize the FP unit DOES,
+ * then one can not easily predict which tasks will use the FP hardware.
+ * In this case, this option should be TRUE.
*
- * If @ref CPU_HARDWARE_FP is FALSE, then this should be FALSE as well.
+ * If @ref CPU_HARDWARE_FP is FALSE, then this should be FALSE as well.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_ALL_TASKS_ARE_FP TRUE
/**
- * Should the IDLE task have a floating point context?
+ * Should the IDLE task have a floating point context?
*
- * If TRUE, then the IDLE task is created as a RTEMS_FLOATING_POINT task
- * and it has a floating point context which is switched in and out.
- * If FALSE, then the IDLE task does not have a floating point context.
+ * If TRUE, then the IDLE task is created as a RTEMS_FLOATING_POINT task
+ * and it has a floating point context which is switched in and out.
+ * If FALSE, then the IDLE task does not have a floating point context.
*
- * Setting this to TRUE negatively impacts the time required to preempt
- * the IDLE task from an interrupt because the floating point context
- * must be saved as part of the preemption.
+ * Setting this to TRUE negatively impacts the time required to preempt
+ * the IDLE task from an interrupt because the floating point context
+ * must be saved as part of the preemption.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_IDLE_TASK_IS_FP FALSE
/**
- * Should the saving of the floating point registers be deferred
- * until a context switch is made to another different floating point
- * task?
- *
- * If TRUE, then the floating point context will not be stored until
- * necessary. It will remain in the floating point registers and not
- * disturned until another floating point task is switched to.
- *
- * If FALSE, then the floating point context is saved when a floating
- * point task is switched out and restored when the next floating point
- * task is restored. The state of the floating point registers between
- * those two operations is not specified.
- *
- * If the floating point context does NOT have to be saved as part of
- * interrupt dispatching, then it should be safe to set this to TRUE.
- *
- * Setting this flag to TRUE results in using a different algorithm
- * for deciding when to save and restore the floating point context.
- * The deferred FP switch algorithm minimizes the number of times
- * the FP context is saved and restored. The FP context is not saved
- * until a context switch is made to another, different FP task.
- * Thus in a system with only one FP task, the FP context will never
- * be saved or restored.
+ * Should the saving of the floating point registers be deferred
+ * until a context switch is made to another different floating point
+ * task?
*
- * Port Specific Information:
+ * If TRUE, then the floating point context will not be stored until
+ * necessary. It will remain in the floating point registers and not
+ * disturned until another floating point task is switched to.
*
- * XXX document implementation including references if appropriate
+ * If FALSE, then the floating point context is saved when a floating
+ * point task is switched out and restored when the next floating point
+ * task is restored. The state of the floating point registers between
+ * those two operations is not specified.
+ *
+ * If the floating point context does NOT have to be saved as part of
+ * interrupt dispatching, then it should be safe to set this to TRUE.
+ *
+ * Setting this flag to TRUE results in using a different algorithm
+ * for deciding when to save and restore the floating point context.
+ * The deferred FP switch algorithm minimizes the number of times
+ * the FP context is saved and restored. The FP context is not saved
+ * until a context switch is made to another, different FP task.
+ * Thus in a system with only one FP task, the FP context will never
+ * be saved or restored.
+ *
+ * Port Specific Information:
+ *
+ * XXX document implementation including references if appropriate
*/
#define CPU_USE_DEFERRED_FP_SWITCH TRUE
/**
- * Does this port provide a CPU dependent IDLE task implementation?
+ * Does this port provide a CPU dependent IDLE task implementation?
*
- * If TRUE, then the routine @ref _CPU_Thread_Idle_body
- * must be provided and is the default IDLE thread body instead of
- * @ref _CPU_Thread_Idle_body.
+ * If TRUE, then the routine @ref _CPU_Thread_Idle_body
+ * must be provided and is the default IDLE thread body instead of
+ * @ref _CPU_Thread_Idle_body.
*
- * If FALSE, then use the generic IDLE thread body if the BSP does
- * not provide one.
+ * If FALSE, then use the generic IDLE thread body if the BSP does
+ * not provide one.
*
- * This is intended to allow for supporting processors which have
- * a low power or idle mode. When the IDLE thread is executed, then
- * the CPU can be powered down.
+ * This is intended to allow for supporting processors which have
+ * a low power or idle mode. When the IDLE thread is executed, then
+ * the CPU can be powered down.
*
- * The order of precedence for selecting the IDLE thread body is:
+ * The order of precedence for selecting the IDLE thread body is:
*
- * -# BSP provided
- * -# CPU dependent (if provided)
- * -# generic (if no BSP and no CPU dependent)
+ * -# BSP provided
+ * -# CPU dependent (if provided)
+ * -# generic (if no BSP and no CPU dependent)
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_PROVIDES_IDLE_THREAD_BODY TRUE
/**
- * Does the stack grow up (toward higher addresses) or down
- * (toward lower addresses)?
+ * Does the stack grow up (toward higher addresses) or down
+ * (toward lower addresses)?
*
- * If TRUE, then the grows upward.
- * If FALSE, then the grows toward smaller addresses.
+ * If TRUE, then the grows upward.
+ * If FALSE, then the grows toward smaller addresses.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_STACK_GROWS_UP TRUE
/**
- * The following is the variable attribute used to force alignment
- * of critical RTEMS structures. On some processors it may make
- * sense to have these aligned on tighter boundaries than
- * the minimum requirements of the compiler in order to have as
- * much of the critical data area as possible in a cache line.
+ * The following is the variable attribute used to force alignment
+ * of critical RTEMS structures. On some processors it may make
+ * sense to have these aligned on tighter boundaries than
+ * the minimum requirements of the compiler in order to have as
+ * much of the critical data area as possible in a cache line.
*
- * The placement of this macro in the declaration of the variables
- * is based on the syntactically requirements of the GNU C
- * "__attribute__" extension. For example with GNU C, use
- * the following to force a structures to a 32 byte boundary.
+ * The placement of this macro in the declaration of the variables
+ * is based on the syntactically requirements of the GNU C
+ * "__attribute__" extension. For example with GNU C, use
+ * the following to force a structures to a 32 byte boundary.
*
- * __attribute__ ((aligned (32)))
+ * __attribute__ ((aligned (32)))
*
- * @note Currently only the Priority Bit Map table uses this feature.
- * To benefit from using this, the data must be heavily
- * used so it will stay in the cache and used frequently enough
- * in the executive to justify turning this on.
+ * NOTE: Currently only the Priority Bit Map table uses this feature.
+ * To benefit from using this, the data must be heavily
+ * used so it will stay in the cache and used frequently enough
+ * in the executive to justify turning this on.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_STRUCTURE_ALIGNMENT __attribute__ ((aligned (2)))
#define CPU_TIMESTAMP_USE_STRUCT_TIMESPEC TRUE
/**
- * @defgroup CPUEndian Processor Dependent Endianness Support
+ * @defgroup CPUEndian Processor Dependent Endianness Support
*
- * This group assists in issues related to processor endianness.
+ * This group assists in issues related to processor endianness.
+ *
*/
+/**@{**/
/**
- * @ingroup CPUEndian
- * Define what is required to specify how the network to host conversion
- * routines are handled.
+ * Define what is required to specify how the network to host conversion
+ * routines are handled.
*
- * @note @a CPU_BIG_ENDIAN and @a CPU_LITTLE_ENDIAN should NOT have the
- * same values.
+ * NOTE: @a CPU_BIG_ENDIAN and @a CPU_LITTLE_ENDIAN should NOT have the
+ * same values.
*
- * @see CPU_LITTLE_ENDIAN
+ * @see CPU_LITTLE_ENDIAN
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_BIG_ENDIAN TRUE
/**
- * @ingroup CPUEndian
- * Define what is required to specify how the network to host conversion
- * routines are handled.
+ * Define what is required to specify how the network to host conversion
+ * routines are handled.
*
- * @note @ref CPU_BIG_ENDIAN and @ref CPU_LITTLE_ENDIAN should NOT have the
- * same values.
+ * NOTE: @ref CPU_BIG_ENDIAN and @ref CPU_LITTLE_ENDIAN should NOT have the
+ * same values.
*
- * @see CPU_BIG_ENDIAN
+ * @see CPU_BIG_ENDIAN
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_LITTLE_ENDIAN FALSE
+/** @} */
+
/**
- * @ingroup CPUInterrupt
- * The following defines the number of bits actually used in the
- * interrupt field of the task mode. How those bits map to the
- * CPU interrupt levels is defined by the routine @ref _CPU_ISR_Set_level.
+ * @ingroup CPUInterrupt
+ *
+ * The following defines the number of bits actually used in the
+ * interrupt field of the task mode. How those bits map to the
+ * CPU interrupt levels is defined by the routine @ref _CPU_ISR_Set_level.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_MODES_INTERRUPT_MASK 0x00000001
@@ -422,50 +427,52 @@ extern "C" {
/**
* @defgroup CPUContext Processor Dependent Context Management
*
- * From the highest level viewpoint, there are 2 types of context to save.
+ * From the highest level viewpoint, there are 2 types of context to save.
*
- * -# Interrupt registers to save
- * -# Task level registers to save
+ * -# Interrupt registers to save
+ * -# Task level registers to save
*
- * Since RTEMS handles integer and floating point contexts separately, this
- * means we have the following 3 context items:
+ * Since RTEMS handles integer and floating point contexts separately, this
+ * means we have the following 3 context items:
*
- * -# task level context stuff:: Context_Control
- * -# floating point task stuff:: Context_Control_fp
- * -# special interrupt level context :: CPU_Interrupt_frame
+ * -# task level context stuff:: Context_Control
+ * -# floating point task stuff:: Context_Control_fp
+ * -# special interrupt level context :: CPU_Interrupt_frame
*
- * On some processors, it is cost-effective to save only the callee
- * preserved registers during a task context switch. This means
- * that the ISR code needs to save those registers which do not
- * persist across function calls. It is not mandatory to make this
- * distinctions between the caller/callee saves registers for the
- * purpose of minimizing context saved during task switch and on interrupts.
- * If the cost of saving extra registers is minimal, simplicity is the
- * choice. Save the same context on interrupt entry as for tasks in
- * this case.
+ * On some processors, it is cost-effective to save only the callee
+ * preserved registers during a task context switch. This means
+ * that the ISR code needs to save those registers which do not
+ * persist across function calls. It is not mandatory to make this
+ * distinctions between the caller/callee saves registers for the
+ * purpose of minimizing context saved during task switch and on interrupts.
+ * If the cost of saving extra registers is minimal, simplicity is the
+ * choice. Save the same context on interrupt entry as for tasks in
+ * this case.
*
- * Additionally, if gdb is to be made aware of RTEMS tasks for this CPU, then
- * care should be used in designing the context area.
+ * Additionally, if gdb is to be made aware of RTEMS tasks for this CPU, then
+ * care should be used in designing the context area.
*
- * On some CPUs with hardware floating point support, the Context_Control_fp
- * structure will not be used or it simply consist of an array of a
- * fixed number of bytes. This is done when the floating point context
- * is dumped by a "FP save context" type instruction and the format
- * is not really defined by the CPU. In this case, there is no need
- * to figure out the exact format -- only the size. Of course, although
- * this is enough information for RTEMS, it is probably not enough for
- * a debugger such as gdb. But that is another problem.
+ * On some CPUs with hardware floating point support, the Context_Control_fp
+ * structure will not be used or it simply consist of an array of a
+ * fixed number of bytes. This is done when the floating point context
+ * is dumped by a "FP save context" type instruction and the format
+ * is not really defined by the CPU. In this case, there is no need
+ * to figure out the exact format -- only the size. Of course, although
+ * this is enough information for RTEMS, it is probably not enough for
+ * a debugger such as gdb. But that is another problem.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
+/**@{**/
/**
- * @ingroup CPUContext Management
- * This defines the minimal set of integer and processor state registers
- * that must be saved during a voluntary context switch from one thread
- * to another.
+ * @ingroup Management
+ *
+ * This defines the minimal set of integer and processor state registers
+ * that must be saved during a voluntary context switch from one thread
+ * to another.
*/
typedef struct {
/** This will contain the stack pointer. */
@@ -475,49 +482,55 @@ typedef struct {
} Context_Control;
/**
- * @ingroup CPUContext Management
+ * @ingroup Management
*
- * This macro returns the stack pointer associated with @a _context.
+ * This macro returns the stack pointer associated with @a _context.
*
- * @param[in] _context is the thread context area to access
+ * @param[in] _context is the thread context area to access
*
- * @return This method returns the stack pointer.
+ * @return This method returns the stack pointer.
*/
#define _CPU_Context_Get_SP( _context ) \
(_context)->sp
/**
- * @ingroup CPUContext Management
- * This defines the set of integer and processor state registers that must
- * be saved during an interrupt. This set does not include any which are
- * in @ref Context_Control.
+ * @ingroup Management
+ *
+ * This defines the set of integer and processor state registers that must
+ * be saved during an interrupt. This set does not include any which are
+ * in @ref Context_Control.
*/
typedef struct {
- /** This field is a hint that a port will have a number of integer
- * registers that need to be saved when an interrupt occurs or
- * when a context switch occurs at the end of an ISR.
+ /**
+ * This field is a hint that a port will have a number of integer
+ * registers that need to be saved when an interrupt occurs or
+ * when a context switch occurs at the end of an ISR.
*/
uint32_t special_interrupt_register;
} CPU_Interrupt_frame;
+/** @} */
+
/**
- * @defgroup CPUInterrupt Processor Dependent Interrupt Management
+ * @defgroup CPUInterrupt Processor Dependent Interrupt Management
*
- * On some CPUs, RTEMS supports a software managed interrupt stack.
- * This stack is allocated by the Interrupt Manager and the switch
- * is performed in @ref _ISR_Handler. These variables contain pointers
- * to the lowest and highest addresses in the chunk of memory allocated
- * for the interrupt stack. Since it is unknown whether the stack
- * grows up or down (in general), this give the CPU dependent
- * code the option of picking the version it wants to use.
+ * On some CPUs, RTEMS supports a software managed interrupt stack.
+ * This stack is allocated by the Interrupt Manager and the switch
+ * is performed in @ref _ISR_Handler. These variables contain pointers
+ * to the lowest and highest addresses in the chunk of memory allocated
+ * for the interrupt stack. Since it is unknown whether the stack
+ * grows up or down (in general), this give the CPU dependent
+ * code the option of picking the version it wants to use.
*
- * @note These two variables are required if the macro
- * @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK is defined as TRUE.
+ * NOTE: These two variables are required if the macro
+ * @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK is defined as TRUE.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
+ *
*/
+/**@{**/
/*
* Nothing prevents the porter from declaring more CPU specific variables.
@@ -530,48 +543,46 @@ typedef struct {
/* XXX: if needed, put more variables here */
/**
- * Amount of extra stack (above minimum stack size) required by
- * MPCI receive server thread. Remember that in a multiprocessor
- * system this thread must exist and be able to process all directives.
+ * Amount of extra stack (above minimum stack size) required by
+ * MPCI receive server thread. Remember that in a multiprocessor
+ * system this thread must exist and be able to process all directives.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_MPCI_RECEIVE_SERVER_EXTRA_STACK 0
/**
- * @ingroup CPUInterrupt
- * This defines the number of entries in the @ref _ISR_Vector_table managed
- * by RTEMS.
+ * This defines the number of entries in the @ref _ISR_Vector_table managed
+ * by RTEMS.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_INTERRUPT_NUMBER_OF_VECTORS 32
-/**
- * @ingroup CPUInterrupt
- * This defines the highest interrupt vector number for this port.
- */
+/** This defines the highest interrupt vector number for this port. */
#define CPU_INTERRUPT_MAXIMUM_VECTOR_NUMBER (CPU_INTERRUPT_NUMBER_OF_VECTORS - 1)
/**
- * @ingroup CPUInterrupt
- * This is defined if the port has a special way to report the ISR nesting
- * level. Most ports maintain the variable @a _ISR_Nest_level.
+ * This is defined if the port has a special way to report the ISR nesting
+ * level. Most ports maintain the variable @a _ISR_Nest_level.
*/
#define CPU_PROVIDES_ISR_IS_IN_PROGRESS FALSE
+/** @} */
+
/**
- * @ingroup CPUContext
- * Should be large enough to run all RTEMS tests. This ensures
- * that a "reasonable" small application should not have any problems.
+ * @ingroup CPUContext
+ *
+ * Should be large enough to run all RTEMS tests. This ensures
+ * that a "reasonable" small application should not have any problems.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_STACK_MINIMUM_SIZE (2048L)
@@ -582,70 +593,70 @@ typedef struct {
#endif
/**
- * CPU's worst alignment requirement for data types on a byte boundary. This
- * alignment does not take into account the requirements for the stack.
+ * CPU's worst alignment requirement for data types on a byte boundary. This
+ * alignment does not take into account the requirements for the stack.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_ALIGNMENT 2
/**
- * This number corresponds to the byte alignment requirement for the
- * heap handler. This alignment requirement may be stricter than that
- * for the data types alignment specified by @ref CPU_ALIGNMENT. It is
- * common for the heap to follow the same alignment requirement as
- * @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is strict enough for
- * the heap, then this should be set to @ref CPU_ALIGNMENT.
- *
- * @note This does not have to be a power of 2 although it should be
- * a multiple of 2 greater than or equal to 2. The requirement
- * to be a multiple of 2 is because the heap uses the least
- * significant field of the front and back flags to indicate
- * that a block is in use or free. So you do not want any odd
- * length blocks really putting length data in that bit.
- *
- * On byte oriented architectures, @ref CPU_HEAP_ALIGNMENT normally will
- * have to be greater or equal to than @ref CPU_ALIGNMENT to ensure that
- * elements allocated from the heap meet all restrictions.
+ * This number corresponds to the byte alignment requirement for the
+ * heap handler. This alignment requirement may be stricter than that
+ * for the data types alignment specified by @ref CPU_ALIGNMENT. It is
+ * common for the heap to follow the same alignment requirement as
+ * @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is strict enough for
+ * the heap, then this should be set to @ref CPU_ALIGNMENT.
*
- * Port Specific Information:
+ * NOTE: This does not have to be a power of 2 although it should be
+ * a multiple of 2 greater than or equal to 2. The requirement
+ * to be a multiple of 2 is because the heap uses the least
+ * significant field of the front and back flags to indicate
+ * that a block is in use or free. So you do not want any odd
+ * length blocks really putting length data in that bit.
*
- * XXX document implementation including references if appropriate
+ * On byte oriented architectures, @ref CPU_HEAP_ALIGNMENT normally will
+ * have to be greater or equal to than @ref CPU_ALIGNMENT to ensure that
+ * elements allocated from the heap meet all restrictions.
+ *
+ * Port Specific Information:
+ *
+ * XXX document implementation including references if appropriate
*/
#define CPU_HEAP_ALIGNMENT 4
/**
- * This number corresponds to the byte alignment requirement for memory
- * buffers allocated by the partition manager. This alignment requirement
- * may be stricter than that for the data types alignment specified by
- * @ref CPU_ALIGNMENT. It is common for the partition to follow the same
- * alignment requirement as @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is
- * strict enough for the partition, then this should be set to
- * @ref CPU_ALIGNMENT.
+ * This number corresponds to the byte alignment requirement for memory
+ * buffers allocated by the partition manager. This alignment requirement
+ * may be stricter than that for the data types alignment specified by
+ * @ref CPU_ALIGNMENT. It is common for the partition to follow the same
+ * alignment requirement as @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is
+ * strict enough for the partition, then this should be set to
+ * @ref CPU_ALIGNMENT.
*
- * @note This does not have to be a power of 2. It does have to
- * be greater or equal to than @ref CPU_ALIGNMENT.
+ * NOTE: This does not have to be a power of 2. It does have to
+ * be greater or equal to than @ref CPU_ALIGNMENT.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_PARTITION_ALIGNMENT CPU_ALIGNMENT
/**
- * This number corresponds to the byte alignment requirement for the
- * stack. This alignment requirement may be stricter than that for the
- * data types alignment specified by @ref CPU_ALIGNMENT. If the
- * @ref CPU_ALIGNMENT is strict enough for the stack, then this should be
- * set to 0.
+ * This number corresponds to the byte alignment requirement for the
+ * stack. This alignment requirement may be stricter than that for the
+ * data types alignment specified by @ref CPU_ALIGNMENT. If the
+ * @ref CPU_ALIGNMENT is strict enough for the stack, then this should be
+ * set to 0.
*
- * @note This must be a power of 2 either 0 or greater than @ref CPU_ALIGNMENT.
+ * NOTE: This must be a power of 2 either 0 or greater than @ref CPU_ALIGNMENT.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_STACK_ALIGNMENT 0
@@ -654,25 +665,27 @@ typedef struct {
*/
/**
- * @ingroup CPUInterrupt
- * Support routine to initialize the RTEMS vector table after it is allocated.
+ * @ingroup CPUInterrupt
+ *
+ * Support routine to initialize the RTEMS vector table after it is allocated.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Initialize_vectors()
/**
- * @ingroup CPUInterrupt
- * Disable all interrupts for an RTEMS critical section. The previous
- * level is returned in @a _isr_cookie.
+ * @ingroup CPUInterrupt
+ *
+ * Disable all interrupts for an RTEMS critical section. The previous
+ * level is returned in @a _isr_cookie.
*
- * @param[out] _isr_cookie will contain the previous level cookie
+ * @param[out] _isr_cookie will contain the previous level cookie
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_ISR_Disable( _isr_cookie ) \
do { \
@@ -683,16 +696,17 @@ typedef struct {
} while(0)
/**
- * @ingroup CPUInterrupt
- * Enable interrupts to the previous level (returned by _CPU_ISR_Disable).
- * This indicates the end of an RTEMS critical section. The parameter
- * @a _isr_cookie is not modified.
+ * @ingroup CPUInterrupt
+ *
+ * Enable interrupts to the previous level (returned by _CPU_ISR_Disable).
+ * This indicates the end of an RTEMS critical section. The parameter
+ * @a _isr_cookie is not modified.
*
- * @param[in] _isr_cookie contain the previous level cookie
+ * @param[in] _isr_cookie contain the previous level cookie
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_ISR_Enable(_isr_cookie) \
do { \
@@ -701,17 +715,18 @@ typedef struct {
} while(0)
/**
- * @ingroup CPUInterrupt
- * This temporarily restores the interrupt to @a _isr_cookie before immediately
- * disabling them again. This is used to divide long RTEMS critical
- * sections into two or more parts. The parameter @a _isr_cookie is not
- * modified.
+ * @ingroup CPUInterrupt
+ *
+ * This temporarily restores the interrupt to @a _isr_cookie before immediately
+ * disabling them again. This is used to divide long RTEMS critical
+ * sections into two or more parts. The parameter @a _isr_cookie is not
+ * modified.
*
- * @param[in] _isr_cookie contain the previous level cookie
+ * @param[in] _isr_cookie contain the previous level cookie
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_ISR_Flash( _isr_cookie ) \
do { \
@@ -721,21 +736,21 @@ typedef struct {
} while(0)
/**
- * @ingroup CPUInterrupt
- *
- * This routine and @ref _CPU_ISR_Get_level
- * Map the interrupt level in task mode onto the hardware that the CPU
- * actually provides. Currently, interrupt levels which do not
- * map onto the CPU in a generic fashion are undefined. Someday,
- * it would be nice if these were "mapped" by the application
- * via a callout. For example, m68k has 8 levels 0 - 7, levels
- * 8 - 255 would be available for bsp/application specific meaning.
- * This could be used to manage a programmable interrupt controller
- * via the rtems_task_mode directive.
+ * @ingroup CPUInterrupt
*
- * Port Specific Information:
+ * This routine and @ref _CPU_ISR_Get_level
+ * Map the interrupt level in task mode onto the hardware that the CPU
+ * actually provides. Currently, interrupt levels which do not
+ * map onto the CPU in a generic fashion are undefined. Someday,
+ * it would be nice if these were "mapped" by the application
+ * via a callout. For example, m68k has 8 levels 0 - 7, levels
+ * 8 - 255 would be available for bsp/application specific meaning.
+ *This could be used to manage a programmable interrupt controller
+ * via the rtems_task_mode directive.
*
- * XXX document implementation including references if appropriate
+ * Port Specific Information:
+ *
+ * XXX document implementation including references if appropriate
*/
#define _CPU_ISR_Set_level( _new_level ) \
do { \
@@ -744,15 +759,16 @@ typedef struct {
} while(0)
/**
- * @ingroup CPUInterrupt
- * Return the current interrupt disable level for this task in
- * the format used by the interrupt level portion of the task mode.
+ * @ingroup CPUInterrupt
+ *
+ * Return the current interrupt disable level for this task in
+ * the format used by the interrupt level portion of the task mode.
*
- * @note This routine usually must be implemented as a subroutine.
+ * NOTE: This routine usually must be implemented as a subroutine.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
uint32_t _CPU_ISR_Get_level( void );
@@ -761,35 +777,36 @@ uint32_t _CPU_ISR_Get_level( void );
/* Context handler macros */
/**
- * @ingroup CPUContext
- * Initialize the context to a state suitable for starting a
- * task after a context restore operation. Generally, this
- * involves:
- *
- * - setting a starting address
- * - preparing the stack
- * - preparing the stack and frame pointers
- * - setting the proper interrupt level in the context
- * - initializing the floating point context
- *
- * This routine generally does not set any unnecessary register
- * in the context. The state of the "general data" registers is
- * undefined at task start time.
- *
- * @param[in] _the_context is the context structure to be initialized
- * @param[in] _stack_base is the lowest physical address of this task's stack
- * @param[in] _size is the size of this task's stack
- * @param[in] _isr is the interrupt disable level
- * @param[in] _entry_point is the thread's entry point. This is
- * always @a _Thread_Handler
- * @param[in] _is_fp is TRUE if the thread is to be a floating
- * point thread. This is typically only used on CPUs where the
- * FPU may be easily disabled by software such as on the SPARC
- * where the PSR contains an enable FPU bit.
- *
- * Port Specific Information:
- *
- * XXX document implementation including references if appropriate
+ * @ingroup CPUContext
+ *
+ * Initialize the context to a state suitable for starting a
+ * task after a context restore operation. Generally, this
+ * involves:
+ *
+ * - setting a starting address
+ * - preparing the stack
+ * - preparing the stack and frame pointers
+ * - setting the proper interrupt level in the context
+ * - initializing the floating point context
+ *
+ * This routine generally does not set any unnecessary register
+ * in the context. The state of the "general data" registers is
+ * undefined at task start time.
+ *
+ * @param[in] _the_context is the context structure to be initialized
+ * @param[in] _stack_base is the lowest physical address of this task's stack
+ * @param[in] _size is the size of this task's stack
+ * @param[in] _isr is the interrupt disable level
+ * @param[in] _entry_point is the thread's entry point. This is
+ * always @a _Thread_Handler
+ * @param[in] _is_fp is TRUE if the thread is to be a floating
+ * point thread. This is typically only used on CPUs where the
+ * FPU may be easily disabled by software such as on the SPARC
+ * where the PSR contains an enable FPU bit.
+ *
+ * Port Specific Information:
+ *
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_Initialize(
Context_Control *the_context,
@@ -801,66 +818,67 @@ void _CPU_Context_Initialize(
);
/**
- * This routine is responsible for somehow restarting the currently
- * executing task. If you are lucky, then all that is necessary
- * is restoring the context. Otherwise, there will need to be
- * a special assembly routine which does something special in this
- * case. For many ports, simply adding a label to the restore path
- * of @ref _CPU_Context_switch will work. On other ports, it may be
- * possibly to load a few arguments and jump to the restore path. It will
- * not work if restarting self conflicts with the stack frame
- * assumptions of restoring a context.
+ * This routine is responsible for somehow restarting the currently
+ * executing task. If you are lucky, then all that is necessary
+ * is restoring the context. Otherwise, there will need to be
+ * a special assembly routine which does something special in this
+ * case. For many ports, simply adding a label to the restore path
+ * of @ref _CPU_Context_switch will work. On other ports, it may be
+ * possibly to load a few arguments and jump to the restore path. It will
+ * not work if restarting self conflicts with the stack frame
+ * assumptions of restoring a context.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_Restart_self(
Context_Control *the_context
);
/**
- * @ingroup CPUContext
- * The purpose of this macro is to allow the initial pointer into
- * a floating point context area (used to save the floating point
- * context) to be at an arbitrary place in the floating point
- * context area.
- *
- * This is necessary because some FP units are designed to have
- * their context saved as a stack which grows into lower addresses.
- * Other FP units can be saved by simply moving registers into offsets
- * from the base of the context area. Finally some FP units provide
- * a "dump context" instruction which could fill in from high to low
- * or low to high based on the whim of the CPU designers.
- *
- * @param[in] _base is the lowest physical address of the floating point
- * context area
- * @param[in] _offset is the offset into the floating point area
+ * @ingroup CPUContext
+ *
+ * The purpose of this macro is to allow the initial pointer into
+ * a floating point context area (used to save the floating point
+ * context) to be at an arbitrary place in the floating point
+ * context area.
*
- * Port Specific Information:
+ * This is necessary because some FP units are designed to have
+ * their context saved as a stack which grows into lower addresses.
+ * Other FP units can be saved by simply moving registers into offsets
+ * from the base of the context area. Finally some FP units provide
+ * a "dump context" instruction which could fill in from high to low
+ * or low to high based on the whim of the CPU designers.
*
- * XXX document implementation including references if appropriate
+ * @param[in] _base is the lowest physical address of the floating point
+ * context area
+ * @param[in] _offset is the offset into the floating point area
+ *
+ * Port Specific Information:
+ *
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Context_Fp_start( _base, _offset ) \
( (void *) _Addresses_Add_offset( (_base), (_offset) ) )
/**
- * This routine initializes the FP context area passed to it to.
- * There are a few standard ways in which to initialize the
- * floating point context. The code included for this macro assumes
- * that this is a CPU in which a "initial" FP context was saved into
- * @a _CPU_Null_fp_context and it simply copies it to the destination
- * context passed to it.
+ * This routine initializes the FP context area passed to it to.
+ * There are a few standard ways in which to initialize the
+ * floating point context. The code included for this macro assumes
+ * that this is a CPU in which a "initial" FP context was saved into
+ * @a _CPU_Null_fp_context and it simply copies it to the destination
+ * context passed to it.
*
- * Other floating point context save/restore models include:
- * -# not doing anything, and
- * -# putting a "null FP status word" in the correct place in the FP context.
+ * Other floating point context save/restore models include:
+ * -# not doing anything, and
+ * -# putting a "null FP status word" in the correct place in the FP context.
*
- * @param[in] _destination is the floating point context area
+ * @param[in] _destination is the floating point context area
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Context_Initialize_fp( _destination ) \
{ \
@@ -872,13 +890,13 @@ void _CPU_Context_Restart_self(
/* Fatal Error manager macros */
/**
- * This routine copies _error into a known place -- typically a stack
- * location or a register, optionally disables interrupts, and
- * halts/stops the CPU.
+ * This routine copies _error into a known place -- typically a stack
+ * location or a register, optionally disables interrupts, and
+ * halts/stops the CPU.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Fatal_halt( _error ) \
{ \
@@ -889,68 +907,66 @@ void _CPU_Context_Restart_self(
/* Bitfield handler macros */
/**
- * @defgroup CPUBitfield Processor Dependent Bitfield Manipulation
+ * @defgroup CPUBitfield Processor Dependent Bitfield Manipulation
*
- * This set of routines are used to implement fast searches for
- * the most important ready task.
+ * This set of routines are used to implement fast searches for
+ * the most important ready task.
*/
+/**@{**/
/**
- * @ingroup CPUBitfield
- * This definition is set to TRUE if the port uses the generic bitfield
- * manipulation implementation.
+ * This definition is set to TRUE if the port uses the generic bitfield
+ * manipulation implementation.
*/
#define CPU_USE_GENERIC_BITFIELD_CODE TRUE
/**
- * @ingroup CPUBitfield
- * This definition is set to TRUE if the port uses the data tables provided
- * by the generic bitfield manipulation implementation.
- * This can occur when actually using the generic bitfield manipulation
- * implementation or when implementing the same algorithm in assembly
- * language for improved performance. It is unlikely that a port will use
- * the data if it has a bitfield scan instruction.
+ * This definition is set to TRUE if the port uses the data tables provided
+ * by the generic bitfield manipulation implementation.
+ * This can occur when actually using the generic bitfield manipulation
+ * implementation or when implementing the same algorithm in assembly
+ * language for improved performance. It is unlikely that a port will use
+ * the data if it has a bitfield scan instruction.
*/
#define CPU_USE_GENERIC_BITFIELD_DATA TRUE
/**
- * @ingroup CPUBitfield
- * This routine sets @a _output to the bit number of the first bit
- * set in @a _value. @a _value is of CPU dependent type
- * @a Priority_bit_map_Control. This type may be either 16 or 32 bits
- * wide although only the 16 least significant bits will be used.
- *
- * There are a number of variables in using a "find first bit" type
- * instruction.
- *
- * -# What happens when run on a value of zero?
- * -# Bits may be numbered from MSB to LSB or vice-versa.
- * -# The numbering may be zero or one based.
- * -# The "find first bit" instruction may search from MSB or LSB.
- *
- * RTEMS guarantees that (1) will never happen so it is not a concern.
- * (2),(3), (4) are handled by the macros @ref _CPU_Priority_Mask and
- * @ref _CPU_Priority_bits_index. These three form a set of routines
- * which must logically operate together. Bits in the _value are
- * set and cleared based on masks built by @ref _CPU_Priority_Mask.
- * The basic major and minor values calculated by @ref _Priority_Major
- * and @ref _Priority_Minor are "massaged" by @ref _CPU_Priority_bits_index
- * to properly range between the values returned by the "find first bit"
- * instruction. This makes it possible for @ref _Priority_Get_highest to
- * calculate the major and directly index into the minor table.
- * This mapping is necessary to ensure that 0 (a high priority major/minor)
- * is the first bit found.
- *
- * This entire "find first bit" and mapping process depends heavily
- * on the manner in which a priority is broken into a major and minor
- * components with the major being the 4 MSB of a priority and minor
- * the 4 LSB. Thus (0 << 4) + 0 corresponds to priority 0 -- the highest
- * priority. And (15 << 4) + 14 corresponds to priority 254 -- the next
- * to the lowest priority.
- *
- * If your CPU does not have a "find first bit" instruction, then
- * there are ways to make do without it. Here are a handful of ways
- * to implement this in software:
+ * This routine sets @a _output to the bit number of the first bit
+ * set in @a _value. @a _value is of CPU dependent type
+ * @a Priority_bit_map_Control. This type may be either 16 or 32 bits
+ * wide although only the 16 least significant bits will be used.
+ *
+ * There are a number of variables in using a "find first bit" type
+ * instruction.
+ *
+ * -# What happens when run on a value of zero?
+ * -# Bits may be numbered from MSB to LSB or vice-versa.
+ * -# The numbering may be zero or one based.
+ * -# The "find first bit" instruction may search from MSB or LSB.
+ *
+ * RTEMS guarantees that (1) will never happen so it is not a concern.
+ * (2),(3), (4) are handled by the macros @ref _CPU_Priority_Mask and
+ * @ref _CPU_Priority_bits_index. These three form a set of routines
+ * which must logically operate together. Bits in the _value are
+ * set and cleared based on masks built by @ref _CPU_Priority_Mask.
+ * The basic major and minor values calculated by @ref _Priority_Major
+ * and @ref _Priority_Minor are "massaged" by @ref _CPU_Priority_bits_index
+ * to properly range between the values returned by the "find first bit"
+ * instruction. This makes it possible for @ref _Priority_Get_highest to
+ * calculate the major and directly index into the minor table.
+ * This mapping is necessary to ensure that 0 (a high priority major/minor)
+ * is the first bit found.
+ *
+ * This entire "find first bit" and mapping process depends heavily
+ * on the manner in which a priority is broken into a major and minor
+ * components with the major being the 4 MSB of a priority and minor
+ * the 4 LSB. Thus (0 << 4) + 0 corresponds to priority 0 -- the highest
+ * priority. And (15 << 4) + 14 corresponds to priority 254 -- the next
+ * to the lowest priority.
+ *
+ * If your CPU does not have a "find first bit" instruction, then
+ * there are ways to make do without it. Here are a handful of ways
+ * to implement this in software:
*
@verbatim
- a series of 16 bit test instructions
@@ -967,15 +983,15 @@ void _CPU_Context_Restart_self(
_number += bit_set_table[ _value ]
@endverbatim
- * where bit_set_table[ 16 ] has values which indicate the first
- * bit set
+ * where bit_set_table[ 16 ] has values which indicate the first
+ * bit set
*
- * @param[in] _value is the value to be scanned
- * @param[in] _output is the first bit set
+ * @param[in] _value is the value to be scanned
+ * @param[in] _output is the first bit set
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#if (CPU_USE_GENERIC_BITFIELD_CODE == FALSE)
@@ -988,13 +1004,13 @@ void _CPU_Context_Restart_self(
/* end of Bitfield handler macros */
/**
- * This routine builds the mask which corresponds to the bit fields
- * as searched by @ref _CPU_Bitfield_Find_first_bit. See the discussion
- * for that routine.
+ * This routine builds the mask which corresponds to the bit fields
+ * as searched by @ref _CPU_Bitfield_Find_first_bit. See the discussion
+ * for that routine.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#if (CPU_USE_GENERIC_BITFIELD_CODE == FALSE)
@@ -1004,17 +1020,16 @@ void _CPU_Context_Restart_self(
#endif
/**
- * @ingroup CPUBitfield
- * This routine translates the bit numbers returned by
- * @ref _CPU_Bitfield_Find_first_bit into something suitable for use as
- * a major or minor component of a priority. See the discussion
- * for that routine.
+ * This routine translates the bit numbers returned by
+ * @ref _CPU_Bitfield_Find_first_bit into something suitable for use as
+ * a major or minor component of a priority. See the discussion
+ * for that routine.
*
- * @param[in] _priority is the major or minor number to translate
+ * @param[in] _priority is the major or minor number to translate
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#if (CPU_USE_GENERIC_BITFIELD_CODE == FALSE)
@@ -1023,31 +1038,34 @@ void _CPU_Context_Restart_self(
#endif
+/** @} */
+
/* end of Priority handler macros */
/* functions */
/**
- * This routine performs CPU dependent initialization.
+ * This routine performs CPU dependent initialization.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Initialize(void);
/**
- * @ingroup CPUInterrupt
- * This routine installs a "raw" interrupt handler directly into the
- * processor's vector table.
+ * @ingroup CPUInterrupt
*
- * @param[in] vector is the vector number
- * @param[in] new_handler is the raw ISR handler to install
- * @param[in] old_handler is the previously installed ISR Handler
+ * This routine installs a "raw" interrupt handler directly into the
+ * processor's vector table.
*
- * Port Specific Information:
+ * @param[in] vector is the vector number
+ * @param[in] new_handler is the raw ISR handler to install
+ * @param[in] old_handler is the previously installed ISR Handler
*
- * XXX document implementation including references if appropriate
+ * Port Specific Information:
+ *
+ * XXX document implementation including references if appropriate
*/
void _CPU_ISR_install_raw_handler(
uint32_t vector,
@@ -1056,16 +1074,17 @@ void _CPU_ISR_install_raw_handler(
);
/**
- * @ingroup CPUInterrupt
- * This routine installs an interrupt vector.
+ * @ingroup CPUInterrupt
+ *
+ * This routine installs an interrupt vector.
*
- * @param[in] vector is the vector number
- * @param[in] new_handler is the RTEMS ISR handler to install
- * @param[in] old_handler is the previously installed ISR Handler
+ * @param[in] vector is the vector number
+ * @param[in] new_handler is the RTEMS ISR handler to install
+ * @param[in] old_handler is the previously installed ISR Handler
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_ISR_install_vector(
uint32_t vector,
@@ -1074,40 +1093,42 @@ void _CPU_ISR_install_vector(
);
/**
- * @ingroup CPUInterrupt
- * This routine installs the hardware interrupt stack pointer.
+ * @ingroup CPUInterrupt
*
- * @note It need only be provided if @ref CPU_HAS_HARDWARE_INTERRUPT_STACK
- * is TRUE.
+ * This routine installs the hardware interrupt stack pointer.
*
- * Port Specific Information:
+ * NOTE: It need only be provided if @ref CPU_HAS_HARDWARE_INTERRUPT_STACK
+ * is TRUE.
*
- * XXX document implementation including references if appropriate
+ * Port Specific Information:
+ *
+ * XXX document implementation including references if appropriate
*/
void _CPU_Install_interrupt_stack( void );
/**
- * This routine is the CPU dependent IDLE thread body.
+ * This routine is the CPU dependent IDLE thread body.
*
- * @note It need only be provided if @ref CPU_PROVIDES_IDLE_THREAD_BODY
- * is TRUE.
+ * NOTE: It need only be provided if @ref CPU_PROVIDES_IDLE_THREAD_BODY
+ * is TRUE.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void *_CPU_Thread_Idle_body( uintptr_t ignored );
/**
- * @ingroup CPUContext
- * This routine switches from the run context to the heir context.
+ * @ingroup CPUContext
+ *
+ * This routine switches from the run context to the heir context.
*
- * @param[in] run points to the context of the currently executing task
- * @param[in] heir points to the context of the heir task
+ * @param[in] run points to the context of the currently executing task
+ * @param[in] heir points to the context of the heir task
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_switch(
Context_Control *run,
@@ -1115,17 +1136,18 @@ void _CPU_Context_switch(
);
/**
- * @ingroup CPUContext
- * This routine is generally used only to restart self in an
- * efficient manner. It may simply be a label in @ref _CPU_Context_switch.
+ * @ingroup CPUContext
+ *
+ * This routine is generally used only to restart self in an
+ * efficient manner. It may simply be a label in @ref _CPU_Context_switch.
*
- * @param[in] new_context points to the context to be restored.
+ * @param[in] new_context points to the context to be restored.
*
- * @note May be unnecessary to reload some registers.
+ * NOTE: May be unnecessary to reload some registers.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_restore(
Context_Control *new_context
@@ -1137,32 +1159,33 @@ typedef CPU_Interrupt_frame CPU_Exception_frame;
void _CPU_Exception_frame_print( const CPU_Exception_frame *frame );
/**
- * @ingroup CPUEndian
- * The following routine swaps the endian format of an unsigned int.
- * It must be static because it is referenced indirectly.
+ * @ingroup CPUEndian
+ *
+ * The following routine swaps the endian format of an unsigned int.
+ * It must be static because it is referenced indirectly.
*
- * This version will work on any processor, but if there is a better
- * way for your CPU PLEASE use it. The most common way to do this is to:
+ * This version will work on any processor, but if there is a better
+ * way for your CPU PLEASE use it. The most common way to do this is to:
*
- * swap least significant two bytes with 16-bit rotate
- * swap upper and lower 16-bits
- * swap most significant two bytes with 16-bit rotate
+ * swap least significant two bytes with 16-bit rotate
+ * swap upper and lower 16-bits
+ * swap most significant two bytes with 16-bit rotate
*
- * Some CPUs have special instructions which swap a 32-bit quantity in
- * a single instruction (e.g. i486). It is probably best to avoid
- * an "endian swapping control bit" in the CPU. One good reason is
- * that interrupts would probably have to be disabled to ensure that
- * an interrupt does not try to access the same "chunk" with the wrong
- * endian. Another good reason is that on some CPUs, the endian bit
- * endianness for ALL fetches -- both code and data -- so the code
- * will be fetched incorrectly.
+ * Some CPUs have special instructions which swap a 32-bit quantity in
+ * a single instruction (e.g. i486). It is probably best to avoid
+ * an "endian swapping control bit" in the CPU. One good reason is
+ * that interrupts would probably have to be disabled to ensure that
+ * an interrupt does not try to access the same "chunk" with the wrong
+ * endian. Another good reason is that on some CPUs, the endian bit
+ * endianness for ALL fetches -- both code and data -- so the code
+ * will be fetched incorrectly.
*
- * @param[in] value is the value to be swapped
- * @return the value after being endian swapped
+ * @param[in] value is the value to be swapped
+ * @return the value after being endian swapped
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
static inline uint32_t CPU_swap_u32(
uint32_t value
@@ -1180,11 +1203,12 @@ static inline uint32_t CPU_swap_u32(
}
/**
- * @ingroup CPUEndian
- * This routine swaps a 16 bir quantity.
+ * @ingroup CPUEndian
+ *
+ * This routine swaps a 16 bir quantity.
*
- * @param[in] value is the value to be swapped
- * @return the value after being endian swapped
+ * @param[in] value is the value to be swapped
+ * @return the value after being endian swapped
*/
#define CPU_swap_u16( value ) \
(((value&0xff) << 8) | ((value >> 8)&0xff))
diff --git a/cpukit/score/cpu/m32c/rtems/score/cpu_asm.h b/cpukit/score/cpu/m32c/rtems/score/cpu_asm.h
index e3797a93f9..1519fbb6f3 100644
--- a/cpukit/score/cpu/m32c/rtems/score/cpu_asm.h
+++ b/cpukit/score/cpu/m32c/rtems/score/cpu_asm.h
@@ -1,12 +1,14 @@
/**
- * @file rtems/score/cpu_asm.h
+ * @file
+ *
+ * @brief M32C CPU Assembly File
+ *
+ * Very loose template for an include file for the cpu_asm.? file
+ * if it is implemented as a ".S" file (preprocessed by cpp) instead
+ * of a ".s" file (preprocessed by gm4 or gasp).
*/
/*
- * Very loose template for an include file for the cpu_asm.? file
- * if it is implemented as a ".S" file (preprocessed by cpp) instead
- * of a ".s" file (preprocessed by gm4 or gasp).
- *
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/m32c/rtems/score/m32c.h b/cpukit/score/cpu/m32c/rtems/score/m32c.h
index 5cd3e71103..9be83e71e4 100644
--- a/cpukit/score/cpu/m32c/rtems/score/m32c.h
+++ b/cpukit/score/cpu/m32c/rtems/score/m32c.h
@@ -1,9 +1,15 @@
-/*
- * This file sets up basic CPU dependency settings based on
- * compiler settings. For example, it can determine if
- * floating point is available. This particular implementation
- * is specified to the NO CPU port.
+/**
+ * @file
+ *
+ * @brief M32C Set up Basic CPU Dependency Settings Based on Compiler Settings
*
+ * This file sets up basic CPU dependency settings based on
+ * compiler settings. For example, it can determine if
+ * floating point is available. This particular implementation
+ * is specified to the NO CPU port.
+ */
+
+/*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/m32c/rtems/score/types.h b/cpukit/score/cpu/m32c/rtems/score/types.h
index b9636ad780..4f1e7fe519 100644
--- a/cpukit/score/cpu/m32c/rtems/score/types.h
+++ b/cpukit/score/cpu/m32c/rtems/score/types.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/types.h
+ * @file
+ *
+ * @brief M32C CPU Type Definitions
+ *
+ * This include file contains type definitions pertaining to the Intel
+ * m32c processor family.
*/
/*
- * This include file contains type definitions pertaining to the Intel
- * m32c processor family.
- *
* COPYRIGHT (c) 1989-2006.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/m32c/varvects.h b/cpukit/score/cpu/m32c/varvects.h
index 30884edbd8..7168482b54 100644
--- a/cpukit/score/cpu/m32c/varvects.h
+++ b/cpukit/score/cpu/m32c/varvects.h
@@ -1,37 +1,41 @@
-/*
-
-Copyright (c) 2008 Red Hat Incorporated.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
+/**
+ * @file
+ *
+ * @brief M32C Built-in Variable Vector Table Interface
+ *
+ * This file defines the interface to the built-in variable vector
+ * table in R8C/M16C/M32C chips.
+ */
- The name of Red Hat Incorporated may not be used to endorse
- or promote products derived from this software without specific
- prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-*/
-
-/* This file defines the interface to the built-in variable vector
- table in R8C/M16C/M32C chips. */
+/*
+ * Copyright (c) 2008 Red Hat Incorporated.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * The name of Red Hat Incorporated may not be used to endorse
+ * or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
#ifndef _VARVECTS_H_
#define _VARVECTS_H_
diff --git a/cpukit/score/cpu/m32r/rtems/asm.h b/cpukit/score/cpu/m32r/rtems/asm.h
index cd258c513b..11f5b876b9 100644
--- a/cpukit/score/cpu/m32r/rtems/asm.h
+++ b/cpukit/score/cpu/m32r/rtems/asm.h
@@ -1,17 +1,20 @@
/**
- * @file rtems/asm.h
+ * @file
*
- * This include file attempts to address the problems
- * caused by incompatible flavors of assemblers and
- * toolsets. It primarily addresses variations in the
- * use of leading underscores on symbols and the requirement
- * that register names be preceded by a %.
+ * @brief Address the Problems Caused by Incompatible Flavor of
+ * Assemblers and Toolsets
+ *
+ * This include file attempts to address the problems
+ * caused by incompatible flavors of assemblers and
+ * toolsets. It primarily addresses variations in the
+ * use of leading underscores on symbols and the requirement
+ * that register names be preceded by a %.
+ *
+ * NOTE: The spacing in the use of these macros
+ * is critical to them working as advertised.
*/
/*
- * NOTE: The spacing in the use of these macros
- * is critical to them working as advertised.
- *
* COPYRIGHT:
*
* This file is based on similar code found in newlib available
@@ -38,24 +41,24 @@
#ifndef __USER_LABEL_PREFIX__
/**
- * Recent versions of GNU cpp define variables which indicate the
- * need for underscores and percents. If not using GNU cpp or
- * the version does not support this, then you will obviously
- * have to define these as appropriate.
+ * Recent versions of GNU cpp define variables which indicate the
+ * need for underscores and percents. If not using GNU cpp or
+ * the version does not support this, then you will obviously
+ * have to define these as appropriate.
*
- * This symbol is prefixed to all C program symbols.
+ * This symbol is prefixed to all C program symbols.
*/
#define __USER_LABEL_PREFIX__ _
#endif
#ifndef __REGISTER_PREFIX__
/**
- * Recent versions of GNU cpp define variables which indicate the
- * need for underscores and percents. If not using GNU cpp or
- * the version does not support this, then you will obviously
- * have to define these as appropriate.
+ * Recent versions of GNU cpp define variables which indicate the
+ * need for underscores and percents. If not using GNU cpp or
+ * the version does not support this, then you will obviously
+ * have to define these as appropriate.
*
- * This symbol is prefixed to all register names.
+ * This symbol is prefixed to all register names.
*/
#define __REGISTER_PREFIX__
#endif
@@ -95,8 +98,9 @@
#define BEGIN_DATA
/** This macro is used to denote the end of a data section. */
#define END_DATA
-/** This macro is used to denote the beginning of the
- * unitialized data section.
+/**
+ * This macro is used to denote the beginning of the
+ * unitialized data section.
*/
#define BEGIN_BSS
/** This macro is used to denote the end of the unitialized data section. */
@@ -105,18 +109,18 @@
#define END
/**
- * This macro is used to declare a public global symbol.
+ * This macro is used to declare a public global symbol.
*
- * @note This must be tailored for a particular flavor of the C compiler.
- * They may need to put underscores in front of the symbols.
+ * NOTE: This must be tailored for a particular flavor of the C compiler.
+ * They may need to put underscores in front of the symbols.
*/
#define PUBLIC(sym) .globl SYM (sym)
/**
- * This macro is used to prototype a public global symbol.
+ * This macro is used to prototype a public global symbol.
*
- * @note This must be tailored for a particular flavor of the C compiler.
- * They may need to put underscores in front of the symbols.
+ * NOTE: This must be tailored for a particular flavor of the C compiler.
+ * They may need to put underscores in front of the symbols.
*/
#define EXTERN(sym) .globl SYM (sym)
diff --git a/cpukit/score/cpu/m32r/rtems/score/cpu.h b/cpukit/score/cpu/m32r/rtems/score/cpu.h
index d6886ffefc..8c8a9c1c30 100644
--- a/cpukit/score/cpu/m32r/rtems/score/cpu.h
+++ b/cpukit/score/cpu/m32r/rtems/score/cpu.h
@@ -1,22 +1,22 @@
/**
- * @file rtems/score/cpu.h
- */
-
-/*
- * This include file contains information pertaining to the XXX
- * processor.
+ * @file
+ *
+ * @brief Intel M32R CPU Dependent Source
+ *
+ * This include file contains information pertaining to the XXX
+ * processor.
*
- * @note This file is part of a porting template that is intended
- * to be used as the starting point when porting RTEMS to a new
- * CPU family. The following needs to be done when using this as
- * the starting point for a new port:
+ * NOTE: This file is part of a porting template that is intended
+ * to be used as the starting point when porting RTEMS to a new
+ * CPU family. The following needs to be done when using this as
+ * the starting point for a new port:
*
- * + Anywhere there is an XXX, it should be replaced
- * with information about the CPU family being ported to.
+ * + Anywhere there is an XXX, it should be replaced
+ * with information about the CPU family being ported to.
*
- * + At the end of each comment section, there is a heading which
- * says "Port Specific Information:". When porting to RTEMS,
- * add CPU family specific information in this section
+ * + At the end of each comment section, there is a heading which
+ * says "Port Specific Information:". When porting to RTEMS,
+ * add CPU family specific information in this section
*/
/*
@@ -41,172 +41,172 @@ extern "C" {
/* conditional compilation parameters */
/**
- * Should the calls to @ref _Thread_Enable_dispatch be inlined?
+ * Should the calls to @ref _Thread_Enable_dispatch be inlined?
*
- * If TRUE, then they are inlined.
- * If FALSE, then a subroutine call is made.
+ * If TRUE, then they are inlined.
+ * If FALSE, then a subroutine call is made.
*
- * This conditional is an example of the classic trade-off of size
- * versus speed. Inlining the call (TRUE) typically increases the
- * size of RTEMS while speeding up the enabling of dispatching.
+ * This conditional is an example of the classic trade-off of size
+ * versus speed. Inlining the call (TRUE) typically increases the
+ * size of RTEMS while speeding up the enabling of dispatching.
*
- * @note In general, the @ref _Thread_Dispatch_disable_level will
- * only be 0 or 1 unless you are in an interrupt handler and that
- * interrupt handler invokes the executive.] When not inlined
- * something calls @ref _Thread_Enable_dispatch which in turns calls
- * @ref _Thread_Dispatch. If the enable dispatch is inlined, then
- * one subroutine call is avoided entirely.
+ * NOTE: In general, the @ref _Thread_Dispatch_disable_level will
+ * only be 0 or 1 unless you are in an interrupt handler and that
+ * interrupt handler invokes the executive.] When not inlined
+ * something calls @ref _Thread_Enable_dispatch which in turns calls
+ * @ref _Thread_Dispatch. If the enable dispatch is inlined, then
+ * one subroutine call is avoided entirely.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_INLINE_ENABLE_DISPATCH FALSE
/**
- * Should the body of the search loops in _Thread_queue_Enqueue_priority
- * be unrolled one time? In unrolled each iteration of the loop examines
- * two "nodes" on the chain being searched. Otherwise, only one node
- * is examined per iteration.
+ * Should the body of the search loops in _Thread_queue_Enqueue_priority
+ * be unrolled one time? In unrolled each iteration of the loop examines
+ * two "nodes" on the chain being searched. Otherwise, only one node
+ * is examined per iteration.
*
- * If TRUE, then the loops are unrolled.
- * If FALSE, then the loops are not unrolled.
+ * If TRUE, then the loops are unrolled.
+ * If FALSE, then the loops are not unrolled.
*
- * The primary factor in making this decision is the cost of disabling
- * and enabling interrupts (_ISR_Flash) versus the cost of rest of the
- * body of the loop. On some CPUs, the flash is more expensive than
- * one iteration of the loop body. In this case, it might be desirable
- * to unroll the loop. It is important to note that on some CPUs, this
- * code is the longest interrupt disable period in RTEMS. So it is
- * necessary to strike a balance when setting this parameter.
+ * The primary factor in making this decision is the cost of disabling
+ * and enabling interrupts (_ISR_Flash) versus the cost of rest of the
+ * body of the loop. On some CPUs, the flash is more expensive than
+ * one iteration of the loop body. In this case, it might be desirable
+ * to unroll the loop. It is important to note that on some CPUs, this
+ * code is the longest interrupt disable period in RTEMS. So it is
+ * necessary to strike a balance when setting this parameter.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_UNROLL_ENQUEUE_PRIORITY TRUE
/**
- * Does RTEMS manage a dedicated interrupt stack in software?
+ * Does RTEMS manage a dedicated interrupt stack in software?
*
- * If TRUE, then a stack is allocated in @ref _ISR_Handler_initialization.
- * If FALSE, nothing is done.
+ * If TRUE, then a stack is allocated in @ref _ISR_Handler_initialization.
+ * If FALSE, nothing is done.
*
- * If the CPU supports a dedicated interrupt stack in hardware,
- * then it is generally the responsibility of the BSP to allocate it
- * and set it up.
+ * If the CPU supports a dedicated interrupt stack in hardware,
+ * then it is generally the responsibility of the BSP to allocate it
+ * and set it up.
*
- * If the CPU does not support a dedicated interrupt stack, then
- * the porter has two options: (1) execute interrupts on the
- * stack of the interrupted task, and (2) have RTEMS manage a dedicated
- * interrupt stack.
+ * If the CPU does not support a dedicated interrupt stack, then
+ * the porter has two options: (1) execute interrupts on the
+ * stack of the interrupted task, and (2) have RTEMS manage a dedicated
+ * interrupt stack.
*
- * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
+ * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
*
- * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
- * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
- * possible that both are FALSE for a particular CPU. Although it
- * is unclear what that would imply about the interrupt processing
- * procedure on that CPU.
+ * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
+ * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
+ * possible that both are FALSE for a particular CPU. Although it
+ * is unclear what that would imply about the interrupt processing
+ * procedure on that CPU.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_HAS_SOFTWARE_INTERRUPT_STACK FALSE
/**
- * Does the CPU follow the simple vectored interrupt model?
+ * Does the CPU follow the simple vectored interrupt model?
*
- * If TRUE, then RTEMS allocates the vector table it internally manages.
- * If FALSE, then the BSP is assumed to allocate and manage the vector
- * table
+ * If TRUE, then RTEMS allocates the vector table it internally manages.
+ * If FALSE, then the BSP is assumed to allocate and manage the vector
+ * table
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_SIMPLE_VECTORED_INTERRUPTS TRUE
/**
- * Does this CPU have hardware support for a dedicated interrupt stack?
+ * Does this CPU have hardware support for a dedicated interrupt stack?
*
- * If TRUE, then it must be installed during initialization.
- * If FALSE, then no installation is performed.
+ * If TRUE, then it must be installed during initialization.
+ * If FALSE, then no installation is performed.
*
- * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
+ * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
*
- * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
- * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
- * possible that both are FALSE for a particular CPU. Although it
- * is unclear what that would imply about the interrupt processing
- * procedure on that CPU.
+ * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
+ * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
+ * possible that both are FALSE for a particular CPU. Although it
+ * is unclear what that would imply about the interrupt processing
+ * procedure on that CPU.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_HAS_HARDWARE_INTERRUPT_STACK TRUE
/**
- * Does RTEMS allocate a dedicated interrupt stack in the Interrupt Manager?
+ * Does RTEMS allocate a dedicated interrupt stack in the Interrupt Manager?
*
- * If TRUE, then the memory is allocated during initialization.
- * If FALSE, then the memory is allocated during initialization.
+ * If TRUE, then the memory is allocated during initialization.
+ * If FALSE, then the memory is allocated during initialization.
*
- * This should be TRUE is CPU_HAS_SOFTWARE_INTERRUPT_STACK is TRUE.
+ * This should be TRUE is CPU_HAS_SOFTWARE_INTERRUPT_STACK is TRUE.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_ALLOCATE_INTERRUPT_STACK TRUE
/**
- * Does the RTEMS invoke the user's ISR with the vector number and
- * a pointer to the saved interrupt frame (1) or just the vector
- * number (0)?
+ * Does the RTEMS invoke the user's ISR with the vector number and
+ * a pointer to the saved interrupt frame (1) or just the vector
+ * number (0)?
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_ISR_PASSES_FRAME_POINTER 0
/**
- * @def CPU_HARDWARE_FP
+ * @def CPU_HARDWARE_FP
*
- * Does the CPU have hardware floating point?
+ * Does the CPU have hardware floating point?
*
- * If TRUE, then the RTEMS_FLOATING_POINT task attribute is supported.
- * If FALSE, then the RTEMS_FLOATING_POINT task attribute is ignored.
+ * If TRUE, then the RTEMS_FLOATING_POINT task attribute is supported.
+ * If FALSE, then the RTEMS_FLOATING_POINT task attribute is ignored.
*
- * If there is a FP coprocessor such as the i387 or mc68881, then
- * the answer is TRUE.
+ * If there is a FP coprocessor such as the i387 or mc68881, then
+ * the answer is TRUE.
*
- * The macro name "M32R_HAS_FPU" should be made CPU specific.
- * It indicates whether or not this CPU model has FP support. For
- * example, it would be possible to have an i386_nofp CPU model
- * which set this to false to indicate that you have an i386 without
- * an i387 and wish to leave floating point support out of RTEMS.
+ * The macro name "M32R_HAS_FPU" should be made CPU specific.
+ * It indicates whether or not this CPU model has FP support. For
+ * example, it would be possible to have an i386_nofp CPU model
+ * which set this to false to indicate that you have an i386 without
+ * an i387 and wish to leave floating point support out of RTEMS.
*/
/**
- * @def CPU_SOFTWARE_FP
+ * @def CPU_SOFTWARE_FP
*
- * Does the CPU have no hardware floating point and GCC provides a
- * software floating point implementation which must be context
- * switched?
+ * Does the CPU have no hardware floating point and GCC provides a
+ * software floating point implementation which must be context
+ * switched?
*
- * This feature conditional is used to indicate whether or not there
- * is software implemented floating point that must be context
- * switched. The determination of whether or not this applies
- * is very tool specific and the state saved/restored is also
- * compiler specific.
+ * This feature conditional is used to indicate whether or not there
+ * is software implemented floating point that must be context
+ * switched. The determination of whether or not this applies
+ * is very tool specific and the state saved/restored is also
+ * compiler specific.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#if ( M32R_HAS_FPU == 1 )
#define CPU_HARDWARE_FP TRUE
@@ -216,201 +216,203 @@ extern "C" {
#define CPU_SOFTWARE_FP FALSE
/**
- * Are all tasks RTEMS_FLOATING_POINT tasks implicitly?
+ * Are all tasks RTEMS_FLOATING_POINT tasks implicitly?
*
- * If TRUE, then the RTEMS_FLOATING_POINT task attribute is assumed.
- * If FALSE, then the RTEMS_FLOATING_POINT task attribute is followed.
+ * If TRUE, then the RTEMS_FLOATING_POINT task attribute is assumed.
+ * If FALSE, then the RTEMS_FLOATING_POINT task attribute is followed.
*
- * So far, the only CPUs in which this option has been used are the
- * HP PA-RISC and PowerPC. On the PA-RISC, The HP C compiler and
- * gcc both implicitly used the floating point registers to perform
- * integer multiplies. Similarly, the PowerPC port of gcc has been
- * seen to allocate floating point local variables and touch the FPU
- * even when the flow through a subroutine (like vfprintf()) might
- * not use floating point formats.
+ * So far, the only CPUs in which this option has been used are the
+ * HP PA-RISC and PowerPC. On the PA-RISC, The HP C compiler and
+ * gcc both implicitly used the floating point registers to perform
+ * integer multiplies. Similarly, the PowerPC port of gcc has been
+ * seen to allocate floating point local variables and touch the FPU
+ * even when the flow through a subroutine (like vfprintf()) might
+ * not use floating point formats.
*
- * If a function which you would not think utilize the FP unit DOES,
- * then one can not easily predict which tasks will use the FP hardware.
- * In this case, this option should be TRUE.
+ * If a function which you would not think utilize the FP unit DOES,
+ * then one can not easily predict which tasks will use the FP hardware.
+ * In this case, this option should be TRUE.
*
- * If @ref CPU_HARDWARE_FP is FALSE, then this should be FALSE as well.
+ * If @ref CPU_HARDWARE_FP is FALSE, then this should be FALSE as well.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_ALL_TASKS_ARE_FP TRUE
/**
- * Should the IDLE task have a floating point context?
+ * Should the IDLE task have a floating point context?
*
- * If TRUE, then the IDLE task is created as a RTEMS_FLOATING_POINT task
- * and it has a floating point context which is switched in and out.
- * If FALSE, then the IDLE task does not have a floating point context.
+ * If TRUE, then the IDLE task is created as a RTEMS_FLOATING_POINT task
+ * and it has a floating point context which is switched in and out.
+ * If FALSE, then the IDLE task does not have a floating point context.
*
- * Setting this to TRUE negatively impacts the time required to preempt
- * the IDLE task from an interrupt because the floating point context
- * must be saved as part of the preemption.
+ * Setting this to TRUE negatively impacts the time required to preempt
+ * the IDLE task from an interrupt because the floating point context
+ * must be saved as part of the preemption.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_IDLE_TASK_IS_FP FALSE
/**
- * Should the saving of the floating point registers be deferred
- * until a context switch is made to another different floating point
- * task?
+ * Should the saving of the floating point registers be deferred
+ * until a context switch is made to another different floating point
+ * task?
*
- * If TRUE, then the floating point context will not be stored until
- * necessary. It will remain in the floating point registers and not
- * disturned until another floating point task is switched to.
+ * If TRUE, then the floating point context will not be stored until
+ * necessary. It will remain in the floating point registers and not
+ * disturned until another floating point task is switched to.
*
- * If FALSE, then the floating point context is saved when a floating
- * point task is switched out and restored when the next floating point
- * task is restored. The state of the floating point registers between
- * those two operations is not specified.
+ * If FALSE, then the floating point context is saved when a floating
+ * point task is switched out and restored when the next floating point
+ * task is restored. The state of the floating point registers between
+ * those two operations is not specified.
*
- * If the floating point context does NOT have to be saved as part of
- * interrupt dispatching, then it should be safe to set this to TRUE.
+ * If the floating point context does NOT have to be saved as part of
+ * interrupt dispatching, then it should be safe to set this to TRUE.
*
- * Setting this flag to TRUE results in using a different algorithm
- * for deciding when to save and restore the floating point context.
- * The deferred FP switch algorithm minimizes the number of times
- * the FP context is saved and restored. The FP context is not saved
- * until a context switch is made to another, different FP task.
- * Thus in a system with only one FP task, the FP context will never
- * be saved or restored.
+ * Setting this flag to TRUE results in using a different algorithm
+ * for deciding when to save and restore the floating point context.
+ * The deferred FP switch algorithm minimizes the number of times
+ * the FP context is saved and restored. The FP context is not saved
+ * until a context switch is made to another, different FP task.
+ * Thus in a system with only one FP task, the FP context will never
+ * be saved or restored.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_USE_DEFERRED_FP_SWITCH TRUE
/**
- * Does this port provide a CPU dependent IDLE task implementation?
+ * Does this port provide a CPU dependent IDLE task implementation?
*
- * If TRUE, then the routine @ref _CPU_Thread_Idle_body
- * must be provided and is the default IDLE thread body instead of
- * @ref _CPU_Thread_Idle_body.
+ * If TRUE, then the routine @ref _CPU_Thread_Idle_body
+ * must be provided and is the default IDLE thread body instead of
+ * @ref _CPU_Thread_Idle_body.
*
- * If FALSE, then use the generic IDLE thread body if the BSP does
- * not provide one.
+ * If FALSE, then use the generic IDLE thread body if the BSP does
+ * not provide one.
*
- * This is intended to allow for supporting processors which have
- * a low power or idle mode. When the IDLE thread is executed, then
- * the CPU can be powered down.
+ * This is intended to allow for supporting processors which have
+ * a low power or idle mode. When the IDLE thread is executed, then
+ * the CPU can be powered down.
*
- * The order of precedence for selecting the IDLE thread body is:
+ * The order of precedence for selecting the IDLE thread body is:
*
- * -# BSP provided
- * -# CPU dependent (if provided)
- * -# generic (if no BSP and no CPU dependent)
+ * -# BSP provided
+ * -# CPU dependent (if provided)
+ * -# generic (if no BSP and no CPU dependent)
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_PROVIDES_IDLE_THREAD_BODY FALSE
/**
- * Does the stack grow up (toward higher addresses) or down
- * (toward lower addresses)?
+ * Does the stack grow up (toward higher addresses) or down
+ * (toward lower addresses)?
*
- * If TRUE, then the grows upward.
- * If FALSE, then the grows toward smaller addresses.
+ * If TRUE, then the grows upward.
+ * If FALSE, then the grows toward smaller addresses.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_STACK_GROWS_UP TRUE
/**
- * The following is the variable attribute used to force alignment
- * of critical RTEMS structures. On some processors it may make
- * sense to have these aligned on tighter boundaries than
- * the minimum requirements of the compiler in order to have as
- * much of the critical data area as possible in a cache line.
+ * The following is the variable attribute used to force alignment
+ * of critical RTEMS structures. On some processors it may make
+ * sense to have these aligned on tighter boundaries than
+ * the minimum requirements of the compiler in order to have as
+ * much of the critical data area as possible in a cache line.
*
- * The placement of this macro in the declaration of the variables
- * is based on the syntactically requirements of the GNU C
- * "__attribute__" extension. For example with GNU C, use
- * the following to force a structures to a 32 byte boundary.
+ * The placement of this macro in the declaration of the variables
+ * is based on the syntactically requirements of the GNU C
+ * "__attribute__" extension. For example with GNU C, use
+ * the following to force a structures to a 32 byte boundary.
*
- * __attribute__ ((aligned (32)))
+ * __attribute__ ((aligned (32)))
*
- * @note Currently only the Priority Bit Map table uses this feature.
- * To benefit from using this, the data must be heavily
- * used so it will stay in the cache and used frequently enough
- * in the executive to justify turning this on.
+ * NOTE: Currently only the Priority Bit Map table uses this feature.
+ * To benefit from using this, the data must be heavily
+ * used so it will stay in the cache and used frequently enough
+ * in the executive to justify turning this on.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_STRUCTURE_ALIGNMENT
#define CPU_TIMESTAMP_USE_STRUCT_TIMESPEC TRUE
/**
- * @defgroup CPUEndian Processor Dependent Endianness Support
+ * @defgroup CPUEndian Processor Dependent Endianness Support
+ *
+ * This group assists in issues related to processor endianness.
*
- * This group assists in issues related to processor endianness.
*/
+/**@{**/
/**
- * @ingroup CPUEndian
- * Define what is required to specify how the network to host conversion
- * routines are handled.
+ * Define what is required to specify how the network to host conversion
+ * routines are handled.
*
- * @note @a CPU_BIG_ENDIAN and @a CPU_LITTLE_ENDIAN should NOT have the
- * same values.
+ * NOTE: @a CPU_BIG_ENDIAN and @a CPU_LITTLE_ENDIAN should NOT have the
+ * same values.
*
- * @see CPU_LITTLE_ENDIAN
+ * @see CPU_LITTLE_ENDIAN
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_BIG_ENDIAN TRUE
/**
- * @ingroup CPUEndian
- * Define what is required to specify how the network to host conversion
- * routines are handled.
+ * Define what is required to specify how the network to host conversion
+ * routines are handled.
*
- * @note @ref CPU_BIG_ENDIAN and @ref CPU_LITTLE_ENDIAN should NOT have the
- * same values.
+ * NOTE: @ref CPU_BIG_ENDIAN and @ref CPU_LITTLE_ENDIAN should NOT have the
+ * same values.
*
- * @see CPU_BIG_ENDIAN
+ * @see CPU_BIG_ENDIAN
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_LITTLE_ENDIAN FALSE
+/** @} */
+
/**
- * @ingroup CPUInterrupt
- * The following defines the number of bits actually used in the
- * interrupt field of the task mode. How those bits map to the
- * CPU interrupt levels is defined by the routine @ref _CPU_ISR_Set_level.
+ * @ingroup CPUInterrupt
+ * The following defines the number of bits actually used in the
+ * interrupt field of the task mode. How those bits map to the
+ * CPU interrupt levels is defined by the routine @ref _CPU_ISR_Set_level.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_MODES_INTERRUPT_MASK 0x00000001
/*
- * Processor defined structures required for cpukit/score.
+ * Processor defined structures required for cpukit/score.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
/* may need to put some structures here. */
@@ -418,50 +420,50 @@ extern "C" {
/**
* @defgroup CPUContext Processor Dependent Context Management
*
- * From the highest level viewpoint, there are 2 types of context to save.
+ * From the highest level viewpoint, there are 2 types of context to save.
*
- * -# Interrupt registers to save
- * -# Task level registers to save
+ * -# Interrupt registers to save
+ * -# Task level registers to save
*
- * Since RTEMS handles integer and floating point contexts separately, this
- * means we have the following 3 context items:
+ * Since RTEMS handles integer and floating point contexts separately, this
+ * means we have the following 3 context items:
*
- * -# task level context stuff:: Context_Control
- * -# floating point task stuff:: Context_Control_fp
- * -# special interrupt level context :: CPU_Interrupt_frame
+ * -# task level context stuff:: Context_Control
+ * -# floating point task stuff:: Context_Control_fp
+ * -# special interrupt level context :: CPU_Interrupt_frame
*
- * On some processors, it is cost-effective to save only the callee
- * preserved registers during a task context switch. This means
- * that the ISR code needs to save those registers which do not
- * persist across function calls. It is not mandatory to make this
- * distinctions between the caller/callee saves registers for the
- * purpose of minimizing context saved during task switch and on interrupts.
- * If the cost of saving extra registers is minimal, simplicity is the
- * choice. Save the same context on interrupt entry as for tasks in
- * this case.
+ * On some processors, it is cost-effective to save only the callee
+ * preserved registers during a task context switch. This means
+ * that the ISR code needs to save those registers which do not
+ * persist across function calls. It is not mandatory to make this
+ * distinctions between the caller/callee saves registers for the
+ * purpose of minimizing context saved during task switch and on interrupts.
+ * If the cost of saving extra registers is minimal, simplicity is the
+ * choice. Save the same context on interrupt entry as for tasks in
+ * this case.
*
- * Additionally, if gdb is to be made aware of RTEMS tasks for this CPU, then
- * care should be used in designing the context area.
+ * Additionally, if gdb is to be made aware of RTEMS tasks for this CPU, then
+ * care should be used in designing the context area.
*
- * On some CPUs with hardware floating point support, the Context_Control_fp
- * structure will not be used or it simply consist of an array of a
- * fixed number of bytes. This is done when the floating point context
- * is dumped by a "FP save context" type instruction and the format
- * is not really defined by the CPU. In this case, there is no need
- * to figure out the exact format -- only the size. Of course, although
- * this is enough information for RTEMS, it is probably not enough for
- * a debugger such as gdb. But that is another problem.
+ * On some CPUs with hardware floating point support, the Context_Control_fp
+ * structure will not be used or it simply consist of an array of a
+ * fixed number of bytes. This is done when the floating point context
+ * is dumped by a "FP save context" type instruction and the format
+ * is not really defined by the CPU. In this case, there is no need
+ * to figure out the exact format -- only the size. Of course, although
+ * this is enough information for RTEMS, it is probably not enough for
+ * a debugger such as gdb. But that is another problem.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
+/**@{**/
/**
- * @ingroup CPUContext Management
- * This defines the minimal set of integer and processor state registers
- * that must be saved during a voluntary context switch from one thread
- * to another.
+ * This defines the minimal set of integer and processor state registers
+ * that must be saved during a voluntary context switch from one thread
+ * to another.
*/
typedef struct {
/** r8 -- temporary register */
@@ -487,21 +489,18 @@ typedef struct {
} Context_Control;
/**
- * @ingroup CPUContext Management
+ * This macro returns the stack pointer associated with @a _context.
*
- * This macro returns the stack pointer associated with @a _context.
+ * @param[in] _context is the thread context area to access
*
- * @param[in] _context is the thread context area to access
- *
- * @return This method returns the stack pointer.
+ * @return This method returns the stack pointer.
*/
#define _CPU_Context_Get_SP( _context ) \
(_context)->r15_sp
/**
- * @ingroup CPUContext Management
- * This defines the complete set of floating point registers that must
- * be saved during any context switch from one thread to another.
+ * This defines the complete set of floating point registers that must
+ * be saved during any context switch from one thread to another.
*/
typedef struct {
/** FPU registers are listed here */
@@ -509,49 +508,51 @@ typedef struct {
} Context_Control_fp;
/**
- * @ingroup CPUContext Management
- * This defines the set of integer and processor state registers that must
- * be saved during an interrupt. This set does not include any which are
- * in @ref Context_Control.
+ * This defines the set of integer and processor state registers that must
+ * be saved during an interrupt. This set does not include any which are
+ * in @ref Context_Control.
*/
typedef struct {
/** This field is a hint that a port will have a number of integer
- * registers that need to be saved when an interrupt occurs or
- * when a context switch occurs at the end of an ISR.
+ * registers that need to be saved when an interrupt occurs or
+ * when a context switch occurs at the end of an ISR.
*/
uint32_t special_interrupt_register;
} CPU_Interrupt_frame;
/**
- * This variable is optional. It is used on CPUs on which it is difficult
- * to generate an "uninitialized" FP context. It is filled in by
- * @ref _CPU_Initialize and copied into the task's FP context area during
- * @ref _CPU_Context_Initialize.
+ * This variable is optional. It is used on CPUs on which it is difficult
+ * to generate an "uninitialized" FP context. It is filled in by
+ * @ref _CPU_Initialize and copied into the task's FP context area during
+ * @ref _CPU_Context_Initialize.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
+/** @} */
+
/**
- * @defgroup CPUInterrupt Processor Dependent Interrupt Management
+ * @defgroup CPUInterrupt Processor Dependent Interrupt Management
*
- * On some CPUs, RTEMS supports a software managed interrupt stack.
- * This stack is allocated by the Interrupt Manager and the switch
- * is performed in @ref _ISR_Handler. These variables contain pointers
- * to the lowest and highest addresses in the chunk of memory allocated
- * for the interrupt stack. Since it is unknown whether the stack
- * grows up or down (in general), this give the CPU dependent
- * code the option of picking the version it wants to use.
+ * On some CPUs, RTEMS supports a software managed interrupt stack.
+ * This stack is allocated by the Interrupt Manager and the switch
+ * is performed in @ref _ISR_Handler. These variables contain pointers
+ * to the lowest and highest addresses in the chunk of memory allocated
+ * for the interrupt stack. Since it is unknown whether the stack
+ * grows up or down (in general), this give the CPU dependent
+ * code the option of picking the version it wants to use.
*
- * @note These two variables are required if the macro
- * @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK is defined as TRUE.
+ * NOTE: These two variables are required if the macro
+ * @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK is defined as TRUE.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
+/**@{**/
/*
* Nothing prevents the porter from declaring more CPU specific variables.
@@ -564,131 +565,130 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
/* XXX: if needed, put more variables here */
/**
- * @ingroup CPUContext
- * The size of the floating point context area. On some CPUs this
- * will not be a "sizeof" because the format of the floating point
- * area is not defined -- only the size is. This is usually on
- * CPUs with a "floating point save context" instruction.
+ * @ingroup CPUContext
+ * The size of the floating point context area. On some CPUs this
+ * will not be a "sizeof" because the format of the floating point
+ * area is not defined -- only the size is. This is usually on
+ * CPUs with a "floating point save context" instruction.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_CONTEXT_FP_SIZE sizeof( Context_Control_fp )
/**
- * Amount of extra stack (above minimum stack size) required by
- * MPCI receive server thread. Remember that in a multiprocessor
- * system this thread must exist and be able to process all directives.
+ * Amount of extra stack (above minimum stack size) required by
+ * MPCI receive server thread. Remember that in a multiprocessor
+ * system this thread must exist and be able to process all directives.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_MPCI_RECEIVE_SERVER_EXTRA_STACK 0
/**
- * @ingroup CPUInterrupt
- * This defines the number of entries in the @ref _ISR_Vector_table managed
- * by RTEMS.
+ * This defines the number of entries in the @ref _ISR_Vector_table managed
+ * by RTEMS.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_INTERRUPT_NUMBER_OF_VECTORS 32
/**
- * @ingroup CPUInterrupt
- * This defines the highest interrupt vector number for this port.
+ * This defines the highest interrupt vector number for this port.
*/
#define CPU_INTERRUPT_MAXIMUM_VECTOR_NUMBER (CPU_INTERRUPT_NUMBER_OF_VECTORS - 1)
/**
- * @ingroup CPUInterrupt
- * This is defined if the port has a special way to report the ISR nesting
- * level. Most ports maintain the variable @a _ISR_Nest_level.
+ * This is defined if the port has a special way to report the ISR nesting
+ * level. Most ports maintain the variable @a _ISR_Nest_level.
*/
#define CPU_PROVIDES_ISR_IS_IN_PROGRESS FALSE
+/** @} */
+
/**
- * @ingroup CPUContext
- * Should be large enough to run all RTEMS tests. This ensures
- * that a "reasonable" small application should not have any problems.
+ * @ingroup CPUContext
+ * Should be large enough to run all RTEMS tests. This ensures
+ * that a "reasonable" small application should not have any problems.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_STACK_MINIMUM_SIZE (1024)
#define CPU_SIZEOF_POINTER 4
/**
- * CPU's worst alignment requirement for data types on a byte boundary. This
- * alignment does not take into account the requirements for the stack.
+ * CPU's worst alignment requirement for data types on a byte boundary. This
+ * alignment does not take into account the requirements for the stack.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_ALIGNMENT 8
/**
- * This number corresponds to the byte alignment requirement for the
- * heap handler. This alignment requirement may be stricter than that
- * for the data types alignment specified by @ref CPU_ALIGNMENT. It is
- * common for the heap to follow the same alignment requirement as
- * @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is strict enough for
- * the heap, then this should be set to @ref CPU_ALIGNMENT.
+ * This number corresponds to the byte alignment requirement for the
+ * heap handler. This alignment requirement may be stricter than that
+ * for the data types alignment specified by @ref CPU_ALIGNMENT. It is
+ * common for the heap to follow the same alignment requirement as
+ * @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is strict enough for
+ * the heap, then this should be set to @ref CPU_ALIGNMENT.
*
- * @note This does not have to be a power of 2 although it should be
- * a multiple of 2 greater than or equal to 2. The requirement
- * to be a multiple of 2 is because the heap uses the least
- * significant field of the front and back flags to indicate
- * that a block is in use or free. So you do not want any odd
- * length blocks really putting length data in that bit.
+ * NOTE: This does not have to be a power of 2 although it should be
+ * a multiple of 2 greater than or equal to 2. The requirement
+ * to be a multiple of 2 is because the heap uses the least
+ * significant field of the front and back flags to indicate
+ * that a block is in use or free. So you do not want any odd
+ * length blocks really putting length data in that bit.
*
- * On byte oriented architectures, @ref CPU_HEAP_ALIGNMENT normally will
- * have to be greater or equal to than @ref CPU_ALIGNMENT to ensure that
- * elements allocated from the heap meet all restrictions.
+ * On byte oriented architectures, @ref CPU_HEAP_ALIGNMENT normally will
+ * have to be greater or equal to than @ref CPU_ALIGNMENT to ensure that
+ * elements allocated from the heap meet all restrictions.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_HEAP_ALIGNMENT CPU_ALIGNMENT
/**
- * This number corresponds to the byte alignment requirement for memory
- * buffers allocated by the partition manager. This alignment requirement
- * may be stricter than that for the data types alignment specified by
- * @ref CPU_ALIGNMENT. It is common for the partition to follow the same
- * alignment requirement as @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is
- * strict enough for the partition, then this should be set to
- * @ref CPU_ALIGNMENT.
+ * This number corresponds to the byte alignment requirement for memory
+ * buffers allocated by the partition manager. This alignment requirement
+ * may be stricter than that for the data types alignment specified by
+ * @ref CPU_ALIGNMENT. It is common for the partition to follow the same
+ * alignment requirement as @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is
+ * strict enough for the partition, then this should be set to
+ * @ref CPU_ALIGNMENT.
*
- * @note This does not have to be a power of 2. It does have to
- * be greater or equal to than @ref CPU_ALIGNMENT.
+ * NOTE: This does not have to be a power of 2. It does have to
+ * be greater or equal to than @ref CPU_ALIGNMENT.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_PARTITION_ALIGNMENT CPU_ALIGNMENT
/**
- * This number corresponds to the byte alignment requirement for the
- * stack. This alignment requirement may be stricter than that for the
- * data types alignment specified by @ref CPU_ALIGNMENT. If the
- * @ref CPU_ALIGNMENT is strict enough for the stack, then this should be
- * set to 0.
+ * This number corresponds to the byte alignment requirement for the
+ * stack. This alignment requirement may be stricter than that for the
+ * data types alignment specified by @ref CPU_ALIGNMENT. If the
+ * @ref CPU_ALIGNMENT is strict enough for the stack, then this should be
+ * set to 0.
*
- * @note This must be a power of 2 either 0 or greater than @ref CPU_ALIGNMENT.
+ * NOTE: This must be a power of 2 either 0 or greater than @ref CPU_ALIGNMENT.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_STACK_ALIGNMENT 0
@@ -697,25 +697,28 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
*/
/**
- * @ingroup CPUInterrupt
- * Support routine to initialize the RTEMS vector table after it is allocated.
+ * @addtogroup CPUInterrupt
+ */
+/**@{**/
+
+/**
+ * Support routine to initialize the RTEMS vector table after it is allocated.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Initialize_vectors()
/**
- * @ingroup CPUInterrupt
- * Disable all interrupts for an RTEMS critical section. The previous
- * level is returned in @a _isr_cookie.
+ * Disable all interrupts for an RTEMS critical section. The previous
+ * level is returned in @a _isr_cookie.
*
- * @param[out] _isr_cookie will contain the previous level cookie
+ * @param[out] _isr_cookie will contain the previous level cookie
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_ISR_Disable( _isr_cookie ) \
{ \
@@ -723,16 +726,15 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
}
/**
- * @ingroup CPUInterrupt
- * Enable interrupts to the previous level (returned by _CPU_ISR_Disable).
- * This indicates the end of an RTEMS critical section. The parameter
- * @a _isr_cookie is not modified.
+ * Enable interrupts to the previous level (returned by _CPU_ISR_Disable).
+ * This indicates the end of an RTEMS critical section. The parameter
+ * @a _isr_cookie is not modified.
*
- * @param[in] _isr_cookie contain the previous level cookie
+ * @param[in] _isr_cookie contain the previous level cookie
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_ISR_Enable( _isr_cookie ) \
{ \
@@ -740,91 +742,90 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
}
/**
- * @ingroup CPUInterrupt
- * This temporarily restores the interrupt to @a _isr_cookie before immediately
- * disabling them again. This is used to divide long RTEMS critical
- * sections into two or more parts. The parameter @a _isr_cookie is not
- * modified.
+ * This temporarily restores the interrupt to @a _isr_cookie before immediately
+ * disabling them again. This is used to divide long RTEMS critical
+ * sections into two or more parts. The parameter @a _isr_cookie is not
+ * modified.
*
- * @param[in] _isr_cookie contain the previous level cookie
+ * @param[in] _isr_cookie contain the previous level cookie
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_ISR_Flash( _isr_cookie ) \
{ \
}
/**
- * @ingroup CPUInterrupt
+ * This routine and @ref _CPU_ISR_Get_level
+ * Map the interrupt level in task mode onto the hardware that the CPU
+ * actually provides. Currently, interrupt levels which do not
+ * map onto the CPU in a generic fashion are undefined. Someday,
+ * it would be nice if these were "mapped" by the application
+ * via a callout. For example, m68k has 8 levels 0 - 7, levels
+ * 8 - 255 would be available for bsp/application specific meaning.
+ * This could be used to manage a programmable interrupt controller
+ * via the rtems_task_mode directive.
*
- * This routine and @ref _CPU_ISR_Get_level
- * Map the interrupt level in task mode onto the hardware that the CPU
- * actually provides. Currently, interrupt levels which do not
- * map onto the CPU in a generic fashion are undefined. Someday,
- * it would be nice if these were "mapped" by the application
- * via a callout. For example, m68k has 8 levels 0 - 7, levels
- * 8 - 255 would be available for bsp/application specific meaning.
- * This could be used to manage a programmable interrupt controller
- * via the rtems_task_mode directive.
- *
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_ISR_Set_level( new_level ) \
{ \
}
/**
- * @ingroup CPUInterrupt
- * Return the current interrupt disable level for this task in
- * the format used by the interrupt level portion of the task mode.
+ * Return the current interrupt disable level for this task in
+ * the format used by the interrupt level portion of the task mode.
*
- * @note This routine usually must be implemented as a subroutine.
+ * NOTE: This routine usually must be implemented as a subroutine.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
uint32_t _CPU_ISR_Get_level( void );
/* end of ISR handler macros */
+/** @} */
+
/* Context handler macros */
/**
- * @brief CPU Context Initialize
- * @ingroup CPUContext
- * Initialize the context to a state suitable for starting a
- * task after a context restore operation. Generally, this
- * involves:
- *
- * - setting a starting address
- * - preparing the stack
- * - preparing the stack and frame pointers
- * - setting the proper interrupt level in the context
- * - initializing the floating point context
- *
- * This routine generally does not set any unnecessary register
- * in the context. The state of the "general data" registers is
- * undefined at task start time.
- *
- * @param[in] _the_context is the context structure to be initialized
- * @param[in] _stack_base is the lowest physical address of this task's stack
- * @param[in] _size is the size of this task's stack
- * @param[in] _isr is the interrupt disable level
- * @param[in] _entry_point is the thread's entry point. This is
- * always @a _Thread_Handler
- * @param[in] _is_fp is TRUE if the thread is to be a floating
- * point thread. This is typically only used on CPUs where the
- * FPU may be easily disabled by software such as on the SPARC
- * where the PSR contains an enable FPU bit.
+ * @brief Initialize CPU context.
*
- * Port Specific Information:
+ * @ingroup CPUContext
+ * Initialize the context to a state suitable for starting a
+ * task after a context restore operation. Generally, this
+ * involves:
*
- * XXX document implementation including references if appropriate
+ * - setting a starting address
+ * - preparing the stack
+ * - preparing the stack and frame pointers
+ * - setting the proper interrupt level in the context
+ * - initializing the floating point context
+ *
+ * This routine generally does not set any unnecessary register
+ * in the context. The state of the "general data" registers is
+ * undefined at task start time.
+ *
+ * @param[in] _the_context is the context structure to be initialized
+ * @param[in] _stack_base is the lowest physical address of this task's stack
+ * @param[in] _size is the size of this task's stack
+ * @param[in] _isr is the interrupt disable level
+ * @param[in] _entry_point is the thread's entry point. This is
+ * always @a _Thread_Handler
+ * @param[in] _is_fp is TRUE if the thread is to be a floating
+ * point thread. This is typically only used on CPUs where the
+ * FPU may be easily disabled by software such as on the SPARC
+ * where the PSR contains an enable FPU bit.
+ *
+ * Port Specific Information:
+ *
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_Initialize(
Context_Control *the_context,
@@ -836,66 +837,66 @@ void _CPU_Context_Initialize(
);
/**
- * This routine is responsible for somehow restarting the currently
- * executing task. If you are lucky, then all that is necessary
- * is restoring the context. Otherwise, there will need to be
- * a special assembly routine which does something special in this
- * case. For many ports, simply adding a label to the restore path
- * of @ref _CPU_Context_switch will work. On other ports, it may be
- * possibly to load a few arguments and jump to the restore path. It will
- * not work if restarting self conflicts with the stack frame
- * assumptions of restoring a context.
+ * This routine is responsible for somehow restarting the currently
+ * executing task. If you are lucky, then all that is necessary
+ * is restoring the context. Otherwise, there will need to be
+ * a special assembly routine which does something special in this
+ * case. For many ports, simply adding a label to the restore path
+ * of @ref _CPU_Context_switch will work. On other ports, it may be
+ * possibly to load a few arguments and jump to the restore path. It will
+ * not work if restarting self conflicts with the stack frame
+ * assumptions of restoring a context.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_Restart_self(
Context_Control *the_context
);
/**
- * @ingroup CPUContext
- * The purpose of this macro is to allow the initial pointer into
- * a floating point context area (used to save the floating point
- * context) to be at an arbitrary place in the floating point
- * context area.
+ * @ingroup CPUContext
+ * The purpose of this macro is to allow the initial pointer into
+ * a floating point context area (used to save the floating point
+ * context) to be at an arbitrary place in the floating point
+ * context area.
*
- * This is necessary because some FP units are designed to have
- * their context saved as a stack which grows into lower addresses.
- * Other FP units can be saved by simply moving registers into offsets
- * from the base of the context area. Finally some FP units provide
- * a "dump context" instruction which could fill in from high to low
- * or low to high based on the whim of the CPU designers.
+ * This is necessary because some FP units are designed to have
+ * their context saved as a stack which grows into lower addresses.
+ * Other FP units can be saved by simply moving registers into offsets
+ * from the base of the context area. Finally some FP units provide
+ * a "dump context" instruction which could fill in from high to low
+ * or low to high based on the whim of the CPU designers.
*
- * @param[in] _base is the lowest physical address of the floating point
- * context area
- * @param[in] _offset is the offset into the floating point area
+ * @param[in] _base is the lowest physical address of the floating point
+ * context area
+ * @param[in] _offset is the offset into the floating point area
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Context_Fp_start( _base, _offset ) \
( (void *) _Addresses_Add_offset( (_base), (_offset) ) )
/**
- * This routine initializes the FP context area passed to it to.
- * There are a few standard ways in which to initialize the
- * floating point context. The code included for this macro assumes
- * that this is a CPU in which a "initial" FP context was saved into
- * @a _CPU_Null_fp_context and it simply copies it to the destination
- * context passed to it.
+ * This routine initializes the FP context area passed to it to.
+ * There are a few standard ways in which to initialize the
+ * floating point context. The code included for this macro assumes
+ * that this is a CPU in which a "initial" FP context was saved into
+ * @a _CPU_Null_fp_context and it simply copies it to the destination
+ * context passed to it.
*
- * Other floating point context save/restore models include:
- * -# not doing anything, and
- * -# putting a "null FP status word" in the correct place in the FP context.
+ * Other floating point context save/restore models include:
+ * -# not doing anything, and
+ * -# putting a "null FP status word" in the correct place in the FP context.
*
- * @param[in] _destination is the floating point context area
+ * @param[in] _destination is the floating point context area
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Context_Initialize_fp( _destination ) \
{ \
@@ -907,13 +908,13 @@ void _CPU_Context_Restart_self(
/* Fatal Error manager macros */
/**
- * This routine copies _error into a known place -- typically a stack
- * location or a register, optionally disables interrupts, and
- * halts/stops the CPU.
+ * This routine copies _error into a known place -- typically a stack
+ * location or a register, optionally disables interrupts, and
+ * halts/stops the CPU.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Fatal_halt( _error ) \
{ \
@@ -924,68 +925,66 @@ void _CPU_Context_Restart_self(
/* Bitfield handler macros */
/**
- * @defgroup CPUBitfield Processor Dependent Bitfield Manipulation
+ * @defgroup CPUBitfield Processor Dependent Bitfield Manipulation
*
- * This set of routines are used to implement fast searches for
- * the most important ready task.
+ * This set of routines are used to implement fast searches for
+ * the most important ready task.
*/
+/**@{**/
/**
- * @ingroup CPUBitfield
- * This definition is set to TRUE if the port uses the generic bitfield
- * manipulation implementation.
+ * This definition is set to TRUE if the port uses the generic bitfield
+ * manipulation implementation.
*/
#define CPU_USE_GENERIC_BITFIELD_CODE TRUE
/**
- * @ingroup CPUBitfield
- * This definition is set to TRUE if the port uses the data tables provided
- * by the generic bitfield manipulation implementation.
- * This can occur when actually using the generic bitfield manipulation
- * implementation or when implementing the same algorithm in assembly
- * language for improved performance. It is unlikely that a port will use
- * the data if it has a bitfield scan instruction.
+ * This definition is set to TRUE if the port uses the data tables provided
+ * by the generic bitfield manipulation implementation.
+ * This can occur when actually using the generic bitfield manipulation
+ * implementation or when implementing the same algorithm in assembly
+ * language for improved performance. It is unlikely that a port will use
+ * the data if it has a bitfield scan instruction.
*/
#define CPU_USE_GENERIC_BITFIELD_DATA TRUE
/**
- * @ingroup CPUBitfield
- * This routine sets @a _output to the bit number of the first bit
- * set in @a _value. @a _value is of CPU dependent type
- * @a Priority_bit_map_Control. This type may be either 16 or 32 bits
- * wide although only the 16 least significant bits will be used.
- *
- * There are a number of variables in using a "find first bit" type
- * instruction.
- *
- * -# What happens when run on a value of zero?
- * -# Bits may be numbered from MSB to LSB or vice-versa.
- * -# The numbering may be zero or one based.
- * -# The "find first bit" instruction may search from MSB or LSB.
- *
- * RTEMS guarantees that (1) will never happen so it is not a concern.
- * (2),(3), (4) are handled by the macros @ref _CPU_Priority_Mask and
- * @ref _CPU_Priority_bits_index. These three form a set of routines
- * which must logically operate together. Bits in the _value are
- * set and cleared based on masks built by @ref _CPU_Priority_Mask.
- * The basic major and minor values calculated by @ref _Priority_Major
- * and @ref _Priority_Minor are "massaged" by @ref _CPU_Priority_bits_index
- * to properly range between the values returned by the "find first bit"
- * instruction. This makes it possible for @ref _Priority_Get_highest to
- * calculate the major and directly index into the minor table.
- * This mapping is necessary to ensure that 0 (a high priority major/minor)
- * is the first bit found.
- *
- * This entire "find first bit" and mapping process depends heavily
- * on the manner in which a priority is broken into a major and minor
- * components with the major being the 4 MSB of a priority and minor
- * the 4 LSB. Thus (0 << 4) + 0 corresponds to priority 0 -- the highest
- * priority. And (15 << 4) + 14 corresponds to priority 254 -- the next
- * to the lowest priority.
- *
- * If your CPU does not have a "find first bit" instruction, then
- * there are ways to make do without it. Here are a handful of ways
- * to implement this in software:
+ * This routine sets @a _output to the bit number of the first bit
+ * set in @a _value. @a _value is of CPU dependent type
+ * @a Priority_bit_map_Control. This type may be either 16 or 32 bits
+ * wide although only the 16 least significant bits will be used.
+ *
+ * There are a number of variables in using a "find first bit" type
+ * instruction.
+ *
+ * -# What happens when run on a value of zero?
+ * -# Bits may be numbered from MSB to LSB or vice-versa.
+ * -# The numbering may be zero or one based.
+ * -# The "find first bit" instruction may search from MSB or LSB.
+ *
+ * RTEMS guarantees that (1) will never happen so it is not a concern.
+ * (2),(3), (4) are handled by the macros @ref _CPU_Priority_Mask and
+ * @ref _CPU_Priority_bits_index. These three form a set of routines
+ * which must logically operate together. Bits in the _value are
+ * set and cleared based on masks built by @ref _CPU_Priority_Mask.
+ * The basic major and minor values calculated by @ref _Priority_Major
+ * and @ref _Priority_Minor are "massaged" by @ref _CPU_Priority_bits_index
+ * to properly range between the values returned by the "find first bit"
+ * instruction. This makes it possible for @ref _Priority_Get_highest to
+ * calculate the major and directly index into the minor table.
+ * This mapping is necessary to ensure that 0 (a high priority major/minor)
+ * is the first bit found.
+ *
+ * This entire "find first bit" and mapping process depends heavily
+ * on the manner in which a priority is broken into a major and minor
+ * components with the major being the 4 MSB of a priority and minor
+ * the 4 LSB. Thus (0 << 4) + 0 corresponds to priority 0 -- the highest
+ * priority. And (15 << 4) + 14 corresponds to priority 254 -- the next
+ * to the lowest priority.
+ *
+ * If your CPU does not have a "find first bit" instruction, then
+ * there are ways to make do without it. Here are a handful of ways
+ * to implement this in software:
*
@verbatim
- a series of 16 bit test instructions
@@ -1002,15 +1001,15 @@ void _CPU_Context_Restart_self(
_number += bit_set_table[ _value ]
@endverbatim
- * where bit_set_table[ 16 ] has values which indicate the first
- * bit set
+ * where bit_set_table[ 16 ] has values which indicate the first
+ * bit set
*
- * @param[in] _value is the value to be scanned
- * @param[in] _output is the first bit set
+ * @param[in] _value is the value to be scanned
+ * @param[in] _output is the first bit set
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#if (CPU_USE_GENERIC_BITFIELD_CODE == FALSE)
@@ -1023,13 +1022,13 @@ void _CPU_Context_Restart_self(
/* end of Bitfield handler macros */
/**
- * This routine builds the mask which corresponds to the bit fields
- * as searched by @ref _CPU_Bitfield_Find_first_bit. See the discussion
- * for that routine.
+ * This routine builds the mask which corresponds to the bit fields
+ * as searched by @ref _CPU_Bitfield_Find_first_bit. See the discussion
+ * for that routine.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#if (CPU_USE_GENERIC_BITFIELD_CODE == FALSE)
@@ -1039,17 +1038,16 @@ void _CPU_Context_Restart_self(
#endif
/**
- * @ingroup CPUBitfield
- * This routine translates the bit numbers returned by
- * @ref _CPU_Bitfield_Find_first_bit into something suitable for use as
- * a major or minor component of a priority. See the discussion
- * for that routine.
+ * This routine translates the bit numbers returned by
+ * @ref _CPU_Bitfield_Find_first_bit into something suitable for use as
+ * a major or minor component of a priority. See the discussion
+ * for that routine.
*
- * @param[in] _priority is the major or minor number to translate
+ * @param[in] _priority is the major or minor number to translate
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#if (CPU_USE_GENERIC_BITFIELD_CODE == FALSE)
@@ -1060,30 +1058,33 @@ void _CPU_Context_Restart_self(
/* end of Priority handler macros */
+/** @} */
+
/* functions */
/**
- * @brief CPU Initialize
- * This routine performs CPU dependent initialization.
+ * @brief CPU initialization.
*
- * Port Specific Information:
+ * This routine performs CPU dependent initialization.
*
- * XXX document implementation including references if appropriate
+ * Port Specific Information:
+ *
+ * XXX document implementation including references if appropriate
*/
void _CPU_Initialize(void);
/**
- * @ingroup CPUInterrupt
- * This routine installs a "raw" interrupt handler directly into the
- * processor's vector table.
+ * @ingroup CPUInterrupt
+ * This routine installs a "raw" interrupt handler directly into the
+ * processor's vector table.
*
- * @param[in] vector is the vector number
- * @param[in] new_handler is the raw ISR handler to install
- * @param[in] old_handler is the previously installed ISR Handler
+ * @param[in] vector is the vector number
+ * @param[in] new_handler is the raw ISR handler to install
+ * @param[in] old_handler is the previously installed ISR Handler
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_ISR_install_raw_handler(
uint32_t vector,
@@ -1092,16 +1093,16 @@ void _CPU_ISR_install_raw_handler(
);
/**
- * @ingroup CPUInterrupt
- * This routine installs an interrupt vector.
+ * @ingroup CPUInterrupt
+ * This routine installs an interrupt vector.
*
- * @param[in] vector is the vector number
- * @param[in] new_handler is the RTEMS ISR handler to install
- * @param[in] old_handler is the previously installed ISR Handler
+ * @param[in] vector is the vector number
+ * @param[in] new_handler is the RTEMS ISR handler to install
+ * @param[in] old_handler is the previously installed ISR Handler
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_ISR_install_vector(
uint32_t vector,
@@ -1110,28 +1111,28 @@ void _CPU_ISR_install_vector(
);
/**
- * @ingroup CPUInterrupt
- * This routine installs the hardware interrupt stack pointer.
+ * @ingroup CPUInterrupt
+ * This routine installs the hardware interrupt stack pointer.
*
- * @note It need only be provided if @ref CPU_HAS_HARDWARE_INTERRUPT_STACK
- * is TRUE.
+ * NOTE: It need only be provided if @ref CPU_HAS_HARDWARE_INTERRUPT_STACK
+ * is TRUE.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Install_interrupt_stack( void );
/**
- * @ingroup CPUContext
- * This routine switches from the run context to the heir context.
+ * @ingroup CPUContext
+ * This routine switches from the run context to the heir context.
*
- * @param[in] run points to the context of the currently executing task
- * @param[in] heir points to the context of the heir task
+ * @param[in] run points to the context of the currently executing task
+ * @param[in] heir points to the context of the heir task
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_switch(
Context_Control *run,
@@ -1139,90 +1140,94 @@ void _CPU_Context_switch(
);
/**
- * @ingroup CPUContext
- * This routine is generally used only to restart self in an
- * efficient manner. It may simply be a label in @ref _CPU_Context_switch.
+ * @addtogroup CPUContext
+ */
+/**@{**/
+
+/**
+ * This routine is generally used only to restart self in an
+ * efficient manner. It may simply be a label in @ref _CPU_Context_switch.
*
- * @param[in] new_context points to the context to be restored.
+ * @param[in] new_context points to the context to be restored.
*
- * @note May be unnecessary to reload some registers.
+ * NOTE: May be unnecessary to reload some registers.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_restore(
Context_Control *new_context
) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE;
/**
- * @ingroup CPUContext
- * This routine saves the floating point context passed to it.
+ * This routine saves the floating point context passed to it.
*
- * @param[in] fp_context_ptr is a pointer to a pointer to a floating
- * point context area
+ * @param[in] fp_context_ptr is a pointer to a pointer to a floating
+ * point context area
*
- * @return on output @a *fp_context_ptr will contain the address that
- * should be used with @ref _CPU_Context_restore_fp to restore this context.
+ * @return on output @a *fp_context_ptr will contain the address that
+ * should be used with @ref _CPU_Context_restore_fp to restore this context.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_save_fp(
Context_Control_fp **fp_context_ptr
);
/**
- * @ingroup CPUContext
- * This routine restores the floating point context passed to it.
+ * This routine restores the floating point context passed to it.
*
- * @param[in] fp_context_ptr is a pointer to a pointer to a floating
- * point context area to restore
+ * @param[in] fp_context_ptr is a pointer to a pointer to a floating
+ * point context area to restore
*
- * @return on output @a *fp_context_ptr will contain the address that
- * should be used with @ref _CPU_Context_save_fp to save this context.
+ * @return on output @a *fp_context_ptr will contain the address that
+ * should be used with @ref _CPU_Context_save_fp to save this context.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_restore_fp(
Context_Control_fp **fp_context_ptr
);
+/** @} */
+
/* FIXME */
typedef CPU_Interrupt_frame CPU_Exception_frame;
void _CPU_Exception_frame_print( const CPU_Exception_frame *frame );
/**
- * @ingroup CPUEndian
- * The following routine swaps the endian format of an unsigned int.
- * It must be static because it is referenced indirectly.
+ * @ingroup CPUEndian
+ * The following routine swaps the endian format of an unsigned int.
+ * It must be static because it is referenced indirectly.
*
- * This version will work on any processor, but if there is a better
- * way for your CPU PLEASE use it. The most common way to do this is to:
+ * This version will work on any processor, but if there is a better
+ * way for your CPU PLEASE use it. The most common way to do this is to:
*
- * swap least significant two bytes with 16-bit rotate
- * swap upper and lower 16-bits
- * swap most significant two bytes with 16-bit rotate
+ * swap least significant two bytes with 16-bit rotate
+ * swap upper and lower 16-bits
+ * swap most significant two bytes with 16-bit rotate
*
- * Some CPUs have special instructions which swap a 32-bit quantity in
- * a single instruction (e.g. i486). It is probably best to avoid
- * an "endian swapping control bit" in the CPU. One good reason is
- * that interrupts would probably have to be disabled to ensure that
- * an interrupt does not try to access the same "chunk" with the wrong
- * endian. Another good reason is that on some CPUs, the endian bit
- * endianness for ALL fetches -- both code and data -- so the code
- * will be fetched incorrectly.
+ * Some CPUs have special instructions which swap a 32-bit quantity in
+ * a single instruction (e.g. i486). It is probably best to avoid
+ * an "endian swapping control bit" in the CPU. One good reason is
+ * that interrupts would probably have to be disabled to ensure that
+ * an interrupt does not try to access the same "chunk" with the wrong
+ * endian. Another good reason is that on some CPUs, the endian bit
+ * endianness for ALL fetches -- both code and data -- so the code
+ * will be fetched incorrectly.
*
- * @param[in] value is the value to be swapped
- * @return the value after being endian swapped
+ * @param[in] value is the value to be swapped
+ * @return the value after being endian swapped
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
static inline uint32_t CPU_swap_u32(
uint32_t value
@@ -1240,11 +1245,11 @@ static inline uint32_t CPU_swap_u32(
}
/**
- * @ingroup CPUEndian
- * This routine swaps a 16 bir quantity.
+ * @ingroup CPUEndian
+ * This routine swaps a 16 bir quantity.
*
- * @param[in] value is the value to be swapped
- * @return the value after being endian swapped
+ * @param[in] value is the value to be swapped
+ * @return the value after being endian swapped
*/
#define CPU_swap_u16( value ) \
(((value&0xff) << 8) | ((value >> 8)&0xff))
diff --git a/cpukit/score/cpu/m32r/rtems/score/cpu_asm.h b/cpukit/score/cpu/m32r/rtems/score/cpu_asm.h
index e3797a93f9..51648b1597 100644
--- a/cpukit/score/cpu/m32r/rtems/score/cpu_asm.h
+++ b/cpukit/score/cpu/m32r/rtems/score/cpu_asm.h
@@ -1,12 +1,14 @@
/**
- * @file rtems/score/cpu_asm.h
+ * @file
+ *
+ * @brief Intel M32R Assembly File
+ *
+ * Very loose template for an include file for the cpu_asm.? file
+ * if it is implemented as a ".S" file (preprocessed by cpp) instead
+ * of a ".s" file (preprocessed by gm4 or gasp).
*/
/*
- * Very loose template for an include file for the cpu_asm.? file
- * if it is implemented as a ".S" file (preprocessed by cpp) instead
- * of a ".s" file (preprocessed by gm4 or gasp).
- *
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/m32r/rtems/score/m32r.h b/cpukit/score/cpu/m32r/rtems/score/m32r.h
index d4dbe69744..98461dfa37 100644
--- a/cpukit/score/cpu/m32r/rtems/score/m32r.h
+++ b/cpukit/score/cpu/m32r/rtems/score/m32r.h
@@ -1,9 +1,15 @@
-/*
- * This file sets up basic CPU dependency settings based on
- * compiler settings. For example, it can determine if
- * floating point is available. This particular implementation
- * is specified to the NO CPU port.
+/**
+ * @file
+ *
+ * @brief Set up Basic CPU Dependency Settings Based on Compiler Settings
*
+ * This file sets up basic CPU dependency settings based on
+ * compiler settings. For example, it can determine if
+ * floating point is available. This particular implementation
+ * is specified to the NO CPU port.
+ */
+
+/*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/m32r/rtems/score/types.h b/cpukit/score/cpu/m32r/rtems/score/types.h
index 839ac98cc6..829b668f69 100644
--- a/cpukit/score/cpu/m32r/rtems/score/types.h
+++ b/cpukit/score/cpu/m32r/rtems/score/types.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/types.h
+ * @file
+ *
+ * @brief Intel M32R CPU Type Definitions
+ *
+ * This include file contains type definitions pertaining to the Intel
+ * m32r processor family.
*/
/*
- * This include file contains type definitions pertaining to the Intel
- * m32r processor family.
- *
* COPYRIGHT (c) 1989-2006.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/m68k/rtems/asm.h b/cpukit/score/cpu/m68k/rtems/asm.h
index f6abbd6d32..cbd2a7f8b2 100644
--- a/cpukit/score/cpu/m68k/rtems/asm.h
+++ b/cpukit/score/cpu/m68k/rtems/asm.h
@@ -1,17 +1,20 @@
/**
- * @file rtems/asm.h
+ * @file
+ *
+ * @brief Address the Problems Caused by Incompatible Flavor of
+ * Assemblers and Toolsets
*
- * This include file attempts to address the problems
- * caused by incompatible flavors of assemblers and
- * toolsets. It primarily addresses variations in the
- * use of leading underscores on symbols and the requirement
- * that register names be preceded by a %.
+ * This include file attempts to address the problems
+ * caused by incompatible flavors of assemblers and
+ * toolsets. It primarily addresses variations in the
+ * use of leading underscores on symbols and the requirement
+ * that register names be preceded by a %.
+ *
+ * NOTE: The spacing in the use of these macros
+ * is critical to them working as advertised.
*/
/*
- * NOTE: The spacing in the use of these macros
- * is critical to them working as advertised.
- *
* COPYRIGHT:
*
* This file is based on similar code found in newlib available
diff --git a/cpukit/score/cpu/m68k/rtems/m68k/m68302.h b/cpukit/score/cpu/m68k/rtems/m68k/m68302.h
index bcda554948..acf55f50c5 100644
--- a/cpukit/score/cpu/m68k/rtems/m68k/m68302.h
+++ b/cpukit/score/cpu/m68k/rtems/m68k/m68302.h
@@ -1,7 +1,7 @@
-/*
- *------------------------------------------------------------------
+/**
+ * @file
*
- * m68302.h - Definitions for Motorola MC68302 processor.
+ * @brief Definitions for Motorola MC68302 Processor
*
* Section references in this file refer to revision 2 of Motorola's
* "MC68302 Integrated Multiprotocol Processor User's Manual".
@@ -9,7 +9,9 @@
*
* Based on Don Meyer's cpu68302.h that was posted in comp.sys.m68k
* on 17 February, 1993.
- *
+ */
+
+/*
* COPYRIGHT 1995 David W. Glessner.
*
* Redistribution and use in source and binary forms are permitted
diff --git a/cpukit/score/cpu/m68k/rtems/m68k/m68360.h b/cpukit/score/cpu/m68k/rtems/m68k/m68360.h
index 5c7b90691f..dc181d0cdf 100644
--- a/cpukit/score/cpu/m68k/rtems/m68k/m68360.h
+++ b/cpukit/score/cpu/m68k/rtems/m68k/m68360.h
@@ -1,3 +1,8 @@
+/**
+ * @file
+ *
+ * @brief Definitions for Motorola MC68360 Processor
+ */
/*
**************************************************************************
**************************************************************************
@@ -707,7 +712,7 @@ typedef struct m360_ {
unsigned char _pad14[0xF0-0xD0];
unsigned char _pad15[0x100-0xF0];
unsigned char _pad16[0x500-0x100];
-
+
/*
* IDMA1 Block
*/
@@ -725,7 +730,7 @@ typedef struct m360_ {
unsigned char csr1;
unsigned char _pad21;
unsigned short _pad22;
-
+
/*
* SDMA Block
*/
@@ -733,7 +738,7 @@ typedef struct m360_ {
unsigned char _pad23;
unsigned short sdcr;
unsigned long sdar;
-
+
/*
* IDMA2 Block
*/
@@ -750,7 +755,7 @@ typedef struct m360_ {
unsigned char _pad28;
unsigned short _pad29;
unsigned long _pad30;
-
+
/*
* CPIC Block
*/
@@ -774,7 +779,7 @@ typedef struct m360_ {
unsigned short pcint;
unsigned short _pad32;
unsigned long _pad33[5];
-
+
/*
* TIMER Block
*/
@@ -802,7 +807,7 @@ typedef struct m360_ {
unsigned short ter3;
unsigned short ter4;
unsigned long _pad36[2];
-
+
/*
* CP Block
*/
diff --git a/cpukit/score/cpu/m68k/rtems/m68k/qsm.h b/cpukit/score/cpu/m68k/rtems/m68k/qsm.h
index 312dfa8325..32dbc1d5f9 100644
--- a/cpukit/score/cpu/m68k/rtems/m68k/qsm.h
+++ b/cpukit/score/cpu/m68k/rtems/m68k/qsm.h
@@ -1,7 +1,7 @@
-/*
- *-------------------------------------------------------------------
+/**
+ * @file
*
- * QSM -- Queued Serial Module
+ * @brief Motorola M68K Queued Serial Module
*
* The QSM contains two serial interfaces: (a) the queued serial
* peripheral interface (QSPI) and the serial communication interface
@@ -15,7 +15,9 @@
* For more information, refer to Motorola's "Modular Microcontroller
* Family Queued Serial Module Reference Manual" (Motorola document
* QSMRM/AD).
- *
+ */
+
+/*
* This file was created by John S. Gwynne to support Motorola's 68332 MCU.
*
* Redistribution and use in source and binary forms are permitted
diff --git a/cpukit/score/cpu/m68k/rtems/m68k/sim.h b/cpukit/score/cpu/m68k/rtems/m68k/sim.h
index 42eae109d9..cec6b84cc1 100644
--- a/cpukit/score/cpu/m68k/rtems/m68k/sim.h
+++ b/cpukit/score/cpu/m68k/rtems/m68k/sim.h
@@ -1,7 +1,7 @@
-/*
- *-------------------------------------------------------------------
+/**
+ * @file
*
- * SIM -- System Integration Module
+ * @brief Motorola M68K System Integration Module
*
* The system integration module (SIM) is used on many Motorola 16-
* and 32-bit MCUs for the following functions:
@@ -23,7 +23,9 @@
* For more information, refer to Motorola's "Modular Microcontroller
* Family System Integration Module Reference Manual" (Motorola document
* SIMRM/AD).
- *
+ */
+
+/*
* This file was created by John S. Gwynne to support Motorola's 68332 MCU.
*
* Redistribution and use in source and binary forms are permitted
diff --git a/cpukit/score/cpu/m68k/rtems/score/cpu.h b/cpukit/score/cpu/m68k/rtems/score/cpu.h
index fb970eb108..8575f90e19 100644
--- a/cpukit/score/cpu/m68k/rtems/score/cpu.h
+++ b/cpukit/score/cpu/m68k/rtems/score/cpu.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/cpu.h
+ * @file
+ *
+ * @brief Motorola M68K CPU Dependent Source
+ *
+ * This include file contains information pertaining to the Motorola
+ * m68xxx processor family.
*/
/*
- * This include file contains information pertaining to the Motorola
- * m68xxx processor family.
- *
* COPYRIGHT (c) 1989-2011.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/m68k/rtems/score/m68k.h b/cpukit/score/cpu/m68k/rtems/score/m68k.h
index cc2f11dc40..2c646c5bcf 100644
--- a/cpukit/score/cpu/m68k/rtems/score/m68k.h
+++ b/cpukit/score/cpu/m68k/rtems/score/m68k.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/m68k.h
+ * @file
+ *
+ * @brief Motorola M68K CPU Dependent Source
+ *
+ * This include file contains information pertaining to the Motorola
+ * m68xxx processor family.
*/
/*
- * This include file contains information pertaining to the Motorola
- * m68xxx processor family.
- *
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/m68k/rtems/score/types.h b/cpukit/score/cpu/m68k/rtems/score/types.h
index 8591511075..a901c90542 100644
--- a/cpukit/score/cpu/m68k/rtems/score/types.h
+++ b/cpukit/score/cpu/m68k/rtems/score/types.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/types.h
+ * @file
+ *
+ * @brief Motorola M68K CPU Type Definitions
+ *
+ * This include file contains type definitions pertaining to the Motorola
+ * m68xxx processor family.
*/
/*
- * This include file contains type definitions pertaining to the Motorola
- * m68xxx processor family.
- *
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/mips/rtems/asm.h b/cpukit/score/cpu/mips/rtems/asm.h
index 73e4366b87..9c84f61990 100644
--- a/cpukit/score/cpu/mips/rtems/asm.h
+++ b/cpukit/score/cpu/mips/rtems/asm.h
@@ -1,17 +1,20 @@
/**
- * @file rtems/asm.h
+ * @file
*
- * This include file attempts to address the problems
- * caused by incompatible flavors of assemblers and
- * toolsets. It primarily addresses variations in the
- * use of leading underscores on symbols and the requirement
- * that register names be preceded by a %.
+ * @brief Address the Problems Caused by Incompatible Flavor of
+ * Assemblers and Toolsets
+ *
+ * This include file attempts to address the problems
+ * caused by incompatible flavors of assemblers and
+ * toolsets. It primarily addresses variations in the
+ * use of leading underscores on symbols and the requirement
+ * that register names be preceded by a %.
+ *
+ * NOTE: The spacing in the use of these macros
+ * is critical to them working as advertised.
*/
/*
- * NOTE: The spacing in the use of these macros
- * is critical to them working as advertised.
- *
* COPYRIGHT:
*
* This file is based on similar code found in newlib available
diff --git a/cpukit/score/cpu/mips/rtems/mips/idtcpu.h b/cpukit/score/cpu/mips/rtems/mips/idtcpu.h
index c1a934098f..927bbec133 100644
--- a/cpukit/score/cpu/mips/rtems/mips/idtcpu.h
+++ b/cpukit/score/cpu/mips/rtems/mips/idtcpu.h
@@ -1,33 +1,46 @@
-/*
-
-Based upon IDT provided code with the following release:
-
-This source code has been made available to you by IDT on an AS-IS
-basis. Anyone receiving this source is licensed under IDT copyrights
-to use it in any way he or she deems fit, including copying it,
-modifying it, compiling it, and redistributing it either with or
-without modifications. No license under IDT patents or patent
-applications is to be implied by the copyright license.
-
-Any user of this software should understand that IDT cannot provide
-technical support for this software and will not be responsible for
-any consequences resulting from the use of this software.
-
-Any person who transfers this source code or any derivative work must
-include the IDT copyright notice, this paragraph, and the preceeding
-two paragraphs in the transferred software.
-
-COPYRIGHT IDT CORPORATION 1996
-LICENSED MATERIAL - PROGRAM PROPERTY OF IDT
-*/
+/**
+ * @file idtcpu.h
+ *
+ * @brief CPU Related Definitions
+ *
+ * 950313: Ketan added sreg/lreg and R_SZ for 64-bit saves
+ * added Register definition for XContext reg.
+ * Look towards end of this file.
+ */
/*
-** idtcpu.h -- cpu related defines
-*/
+ * Based upon IDT provided code with the following release:
+ *
+ * This source code has been made available to you by IDT on an AS-IS
+ * basis. Anyone receiving this source is licensed under IDT copyrights
+ * to use it in any way he or she deems fit, including copying it,
+ * modifying it, compiling it, and redistributing it either with or
+ * without modifications. No license under IDT patents or patent
+ * applications is to be implied by the copyright license.
+ *
+ * Any user of this software should understand that IDT cannot provide
+ * technical support for this software and will not be responsible for
+ * any consequences resulting from the use of this software.
+ *
+ * Any person who transfers this source code or any derivative work must
+ * include the IDT copyright notice, this paragraph, and the preceeding
+ * two paragraphs in the transferred software.
+ *
+ * COPYRIGHT IDT CORPORATION 1996
+ * LICENSED MATERIAL - PROGRAM PROPERTY OF IDT
+ */
#ifndef _RTEMS_MIPS_IDTCPU_H
#define _RTEMS_MIPS_IDTCPU_H
+/**
+ * @defgroup MipsSet_idtcpu CPU Related Definitions
+ *
+ * @ingroup MIPS
+ *
+ */
+/**@{*/
+
/*
* 950313: Ketan added Register definition for XContext reg.
* added define for WAIT instruction.
@@ -92,7 +105,7 @@ LICENSED MATERIAL - PROGRAM PROPERTY OF IDT
** Cache size constants
*/
#define MINCACHE 0x200 /* 512 For 3041. */
-#define MAXCACHE 0x40000 /* 256*1024 256k */
+#define MAXCACHE 0x40000 /* 256*1024 256k */
#if __mips == 32
/* R4000 configuration register definitions */
@@ -691,5 +704,5 @@ LICENSED MATERIAL - PROGRAM PROPERTY OF IDT
#define CALG $17
#endif
+/**@}*/
#endif /* _RTEMS_MIPS_IDTCPU_H */
-
diff --git a/cpukit/score/cpu/mips/rtems/mips/iregdef.h b/cpukit/score/cpu/mips/rtems/mips/iregdef.h
index 631e5aa178..5d41074184 100644
--- a/cpukit/score/cpu/mips/rtems/mips/iregdef.h
+++ b/cpukit/score/cpu/mips/rtems/mips/iregdef.h
@@ -1,44 +1,51 @@
-/*
-
-Based upon IDT provided code with the following release:
-
-This source code has been made available to you by IDT on an AS-IS
-basis. Anyone receiving this source is licensed under IDT copyrights
-to use it in any way he or she deems fit, including copying it,
-modifying it, compiling it, and redistributing it either with or
-without modifications. No license under IDT patents or patent
-applications is to be implied by the copyright license.
-
-Any user of this software should understand that IDT cannot provide
-technical support for this software and will not be responsible for
-any consequences resulting from the use of this software.
-
-Any person who transfers this source code or any derivative work must
-include the IDT copyright notice, this paragraph, and the preceeding
-two paragraphs in the transferred software.
-
-COPYRIGHT IDT CORPORATION 1996
-LICENSED MATERIAL - PROGRAM PROPERTY OF IDT
-
+/**
+ * @file iregdef.h
+ *
+ * @brief IDT R3000 Register Structure
+ *
+ * 950313: Ketan added sreg/lreg and R_SZ for 64-bit saves
+ * added Register definition for XContext reg.
+ * Look towards end of this file.
+ */
/*
-** iregdef.h - IDT R3000 register structure header file
-**
-** Copyright 1989 Integrated Device Technology, Inc
-** All Rights Reserved
-**
-*/
+ * Copyright 1989 Integrated Device Technology, Inc
+ * All Rights Reserved
+ *
+ * Based upon IDT provided code with the following release:
+ *
+ * This source code has been made available to you by IDT on an AS-IS
+ * basis. Anyone receiving this source is licensed under IDT copyrights
+ * to use it in any way he or she deems fit, including copying it,
+ * modifying it, compiling it, and redistributing it either with or
+ * without modifications. No license under IDT patents or patent
+ * applications is to be implied by the copyright license.
+ *
+ * Any user of this software should understand that IDT cannot provide
+ * technical support for this software and will not be responsible for
+ * any consequences resulting from the use of this software.
+ *
+ * Any person who transfers this source code or any derivative work must
+ * include the IDT copyright notice, this paragraph, and the preceeding
+ * two paragraphs in the transferred software.
+ *
+ * COPYRIGHT IDT CORPORATION 1996
+ * LICENSED MATERIAL - PROGRAM PROPERTY OF IDT
+ */
+
#ifndef _RTEMS_MIPS_IREGDEF_H
#define _RTEMS_MIPS_IREGDEF_H
-/*
- * 950313: Ketan added sreg/lreg and R_SZ for 64-bit saves
- * added Register definition for XContext reg.
- * Look towards end of this file.
+/**
+ * @defgroup MipsSet_iregdef Register Structure
+ *
+ * @ingroup MIPS
+ *
*/
-/*
-** register names
-*/
+/**@{*/
+
+/* register names */
+
#define r0 $0
#define r1 $1
#define r2 $2
@@ -326,5 +333,5 @@ LICENSED MATERIAL - PROGRAM PROPERTY OF IDT
/* Ketan till here */
#endif
+/**@}*/
#endif /* _RTEMS_MIPS_IREGDEF_H */
-
diff --git a/cpukit/score/cpu/mips/rtems/score/cpu.h b/cpukit/score/cpu/mips/rtems/score/cpu.h
index 1da23db423..b4d040e72b 100644
--- a/cpukit/score/cpu/mips/rtems/score/cpu.h
+++ b/cpukit/score/cpu/mips/rtems/score/cpu.h
@@ -1,7 +1,7 @@
/**
* @file
- *
- * Mips CPU Dependent Header File
+ *
+ * @brief Mips CPU Dependent Header File
*
* Conversion to MIPS port by Alan Cudmore <alanc@linuxstart.com> and
* Joel Sherrill <joel@OARcorp.com>.
@@ -42,6 +42,14 @@
#ifndef _RTEMS_SCORE_CPU_H
#define _RTEMS_SCORE_CPU_H
+/**
+ * @defgroup ScoreCPU CPU CPU
+ *
+ * @ingroup Score
+ *
+ */
+/**@{*/
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -211,7 +219,7 @@ extern "C" {
* all tasks floating point.
*/
-#define CPU_ALL_TASKS_ARE_FP CPU_HARDWARE_FP
+#define CPU_ALL_TASKS_ARE_FP CPU_HARDWARE_FP
/*
* Should the IDLE task have a floating point context?
@@ -1172,4 +1180,5 @@ static inline uint32_t CPU_swap_u32(
}
#endif
+/**@}*/
#endif
diff --git a/cpukit/score/cpu/mips/rtems/score/mips.h b/cpukit/score/cpu/mips/rtems/score/mips.h
index f81fd32ec2..8348501e30 100644
--- a/cpukit/score/cpu/mips/rtems/score/mips.h
+++ b/cpukit/score/cpu/mips/rtems/score/mips.h
@@ -1,5 +1,14 @@
/**
* @file rtems/score/mips.h
+ *
+ * @brief Information to build RTEMS for a "no cpu" while in protected mode.
+ *
+ * This file contains the information required to build
+ * RTEMS for a particular member of the "no cpu"
+ * family when executing in protected mode. It does
+ * this by setting variables to indicate which implementation
+ * dependent features are present in a particular member
+ * of the family.
*/
/*
@@ -14,6 +23,14 @@
#ifndef _RTEMS_SCORE_MIPS_H
#define _RTEMS_SCORE_MIPS_H
+/**
+ * @defgroup ScoreMips RTEMS no cpu Build Information
+ *
+ * @ingroup Score
+ *
+ */
+/**@{*/
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -277,5 +294,6 @@ extern "C" {
}
#endif
+/**@}*/
#endif /* _RTEMS_SCORE_MIPS_H */
/* end of include file */
diff --git a/cpukit/score/cpu/mips/rtems/score/types.h b/cpukit/score/cpu/mips/rtems/score/types.h
index f26819a739..f935389271 100644
--- a/cpukit/score/cpu/mips/rtems/score/types.h
+++ b/cpukit/score/cpu/mips/rtems/score/types.h
@@ -1,11 +1,13 @@
/**
* @file rtems/score/types.h
+ *
+ * @brief Type Definitions Pertaining to the MIPS Processor Family
+ *
+ * This include file contains type definitions pertaining to the MIPS
+ * processor family.
*/
/*
- * This include file contains type definitions pertaining to the MIPS
- * processor family.
- *
* COPYRIGHT (c) 1989-2001.
* On-Line Applications Research Corporation (OAR).
*
@@ -18,6 +20,14 @@
#ifndef _RTEMS_SCORE_TYPES_H
#define _RTEMS_SCORE_TYPES_H
+/**
+ * @defgroup ScoreTypes MIPS Processor Family Type Definitions
+ *
+ * @ingroup Score
+ *
+ */
+/**@{*/
+
#include <rtems/score/basedefs.h>
#ifndef ASM
@@ -40,4 +50,5 @@ typedef void ( *mips_isr_entry )( void );
#endif /* !ASM */
+/**@}*/
#endif
diff --git a/cpukit/score/cpu/nios2/nios2-eic-il-low-level.S b/cpukit/score/cpu/nios2/nios2-eic-il-low-level.S
index 42da434da6..f214f4ddef 100644
--- a/cpukit/score/cpu/nios2/nios2-eic-il-low-level.S
+++ b/cpukit/score/cpu/nios2/nios2-eic-il-low-level.S
@@ -160,7 +160,6 @@ do_thread_dispatch:
ldw r10, FRAME_OFFSET_R10(sp)
ldw r11, FRAME_OFFSET_R11(sp)
ldw r12, FRAME_OFFSET_R12(sp)
- ldw r13, FRAME_OFFSET_R13(sp)
/*
* Disable interrupts.
@@ -180,15 +179,16 @@ do_thread_dispatch:
wrctl status, r15
/* Load thread dispatch necessary */
- ldb r12, %gprel(_Per_CPU_Information + PER_CPU_DISPATCH_NEEDED)(gp)
+ ldb r13, %gprel(_Per_CPU_Information + PER_CPU_DISPATCH_NEEDED)(gp)
/* Is thread dispatch necessary? */
- bne r12, zero, enable_interrupts_before_thread_dispatch
+ bne r13, zero, enable_interrupts_before_thread_dispatch
/* Enable Nios II specific thread dispatch */
stw zero, %gprel(_Nios2_Thread_dispatch_disabled)(gp)
/* Restore remaining volatile register */
+ ldw r13, FRAME_OFFSET_R13(sp)
ldw r14, FRAME_OFFSET_R14(sp)
ldw r15, FRAME_OFFSET_R15(sp)
diff --git a/cpukit/score/cpu/nios2/rtems/asm.h b/cpukit/score/cpu/nios2/rtems/asm.h
index 0725d7c0ed..45ccd8b050 100644
--- a/cpukit/score/cpu/nios2/rtems/asm.h
+++ b/cpukit/score/cpu/nios2/rtems/asm.h
@@ -1,17 +1,20 @@
/**
- * @file rtems/asm.h
+ * @file
*
- * This include file attempts to address the problems
- * caused by incompatible flavors of assemblers and
- * toolsets. It primarily addresses variations in the
- * use of leading underscores on symbols and the requirement
- * that register names be preceded by a %.
+ * @brief Address the Problems Caused by Incompatible Flavor of
+ * Assemblers and Toolsets
+ *
+ * This include file attempts to address the problems
+ * caused by incompatible flavors of assemblers and
+ * toolsets. It primarily addresses variations in the
+ * use of leading underscores on symbols and the requirement
+ * that register names be preceded by a %.
+ *
+ * @note The spacing in the use of these macros
+ * is critical to them working as advertised.
*/
/*
- * NOTE: The spacing in the use of these macros
- * is critical to them working as advertised.
- *
* COPYRIGHT:
*
* This file is based on similar code found in newlib available
diff --git a/cpukit/score/cpu/nios2/rtems/score/cpu.h b/cpukit/score/cpu/nios2/rtems/score/cpu.h
index 7beb4ec06f..6db6d1d46c 100644
--- a/cpukit/score/cpu/nios2/rtems/score/cpu.h
+++ b/cpukit/score/cpu/nios2/rtems/score/cpu.h
@@ -1,3 +1,9 @@
+/**
+ * @file
+ *
+ * @brief Altera Nios II CPU Department Source
+ */
+
/*
* Copyright (c) 2011 embedded brains GmbH
*
@@ -253,8 +259,8 @@ void _CPU_Initialize_vectors( void );
* _CPU_ISR_Disable(). The value is not modified.
*
* This flash code is optimal for all Nios II configurations. The rdctl does
- * not flush the pipeline and has only a late result penalty. The wrctl on the
- * other hand leads to a pipeline flush.
+ * not flush the pipeline and has only a late result penalty. The wrctl on
+ * the other hand leads to a pipeline flush.
*/
#define _CPU_ISR_Flash( _isr_cookie ) \
do { \
@@ -319,14 +325,12 @@ void _CPU_Context_Initialize(
void _CPU_Fatal_halt( uint32_t _error ) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE;
/**
- * @brief CPU Initialize
- *
+ * @brief CPU initialization.
*/
void _CPU_Initialize( void );
/**
- * @brief CPU ISR Install Raw Handler
- *
+ * @brief CPU ISR install raw handler.
*/
void _CPU_ISR_install_raw_handler(
uint32_t vector,
@@ -335,8 +339,7 @@ void _CPU_ISR_install_raw_handler(
);
/**
- * @brief CPU ISR Install Vector.
- *
+ * @brief CPU ISR install vector.
*/
void _CPU_ISR_install_vector(
uint32_t vector,
diff --git a/cpukit/score/cpu/nios2/rtems/score/cpu_asm.h b/cpukit/score/cpu/nios2/rtems/score/cpu_asm.h
index d0572d8b2a..8c0e046c34 100644
--- a/cpukit/score/cpu/nios2/rtems/score/cpu_asm.h
+++ b/cpukit/score/cpu/nios2/rtems/score/cpu_asm.h
@@ -1,12 +1,14 @@
/**
- * @file rtems/score/cpu_asm.h
+ * @file
+ *
+ * @brief Altera Nios II Assembly File
+ *
+ * Very loose template for an include file for the cpu_asm.? file
+ * if it is implemented as a ".S" file (preprocessed by cpp) instead
+ * of a ".s" file (preprocessed by gm4 or gasp).
*/
/*
- * Very loose template for an include file for the cpu_asm.? file
- * if it is implemented as a ".S" file (preprocessed by cpp) instead
- * of a ".s" file (preprocessed by gm4 or gasp).
- *
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/nios2/rtems/score/nios2-utility.h b/cpukit/score/cpu/nios2/rtems/score/nios2-utility.h
index b99dd02cd2..078484fe6b 100644
--- a/cpukit/score/cpu/nios2/rtems/score/nios2-utility.h
+++ b/cpukit/score/cpu/nios2/rtems/score/nios2-utility.h
@@ -1,3 +1,8 @@
+/**
+ * @file
+ *
+ * @brief NIOS II Utility
+ */
/*
* Copyright (c) 2011 embedded brains GmbH. All rights reserved.
*
@@ -496,9 +501,8 @@ static inline void _Nios2_MPU_Restore( uint32_t config )
_Nios2_Set_ctlreg_config( config );
}
-/*
- * @brief Nios2 MPU Disable Protected
- *
+/**
+ * @brief Nios2 MPU disable protected.
*/
uint32_t _Nios2_MPU_Disable_protected( void );
diff --git a/cpukit/score/cpu/nios2/rtems/score/nios2.h b/cpukit/score/cpu/nios2/rtems/score/nios2.h
index 9fd8bff0f3..9a8e232eee 100644
--- a/cpukit/score/cpu/nios2/rtems/score/nios2.h
+++ b/cpukit/score/cpu/nios2/rtems/score/nios2.h
@@ -1,11 +1,16 @@
-/* nios2.h
- *
- * This file sets up basic CPU dependency settings based on
- * compiler settings. For example, it can determine if
- * floating point is available. This particular implementation
- * is specific to the NIOS2 port.
+/**
+ * @file
*
+ * @brief NIOS II Set up Basic CPU Dependency Settings Based on
+ * Compiler Settings
*
+ * This file sets up basic CPU dependency settings based on
+ * compiler settings. For example, it can determine if
+ * floating point is available. This particular implementation
+ * is specific to the NIOS2 port.
+ */
+
+/*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/nios2/rtems/score/types.h b/cpukit/score/cpu/nios2/rtems/score/types.h
index 48c1ebacb9..13a4ecba94 100644
--- a/cpukit/score/cpu/nios2/rtems/score/types.h
+++ b/cpukit/score/cpu/nios2/rtems/score/types.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/types.h
+ * @file
+ *
+ * @brief Altera Nios II CPU Type Definitions
+ *
+ * This include file contains type definitions pertaining to the
+ * Altera Nios II processor family.
*/
/*
- * This include file contains type definitions pertaining to the
- * Altera Nios II processor family.
- *
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/no_cpu/rtems/asm.h b/cpukit/score/cpu/no_cpu/rtems/asm.h
index 90708e3cfc..926e3964e5 100644
--- a/cpukit/score/cpu/no_cpu/rtems/asm.h
+++ b/cpukit/score/cpu/no_cpu/rtems/asm.h
@@ -1,17 +1,19 @@
/**
* @file rtems/asm.h
*
+ * @brief Addresses Incompatible Flavors Problems
+ *
* This include file attempts to address the problems
* caused by incompatible flavors of assemblers and
* toolsets. It primarily addresses variations in the
* use of leading underscores on symbols and the requirement
* that register names be preceded by a %.
+ *
+ * NOTE: The spacing in the use of these macros
+ * is critical to them working as advertised.
*/
/*
- * NOTE: The spacing in the use of these macros
- * is critical to them working as advertised.
- *
* COPYRIGHT:
*
* This file is based on similar code found in newlib available
@@ -26,6 +28,13 @@
#ifndef _RTEMS_ASM_H
#define _RTEMS_ASM_H
+/**
+ * @defgroup no_cpuAsm Address Incompatible Flavors Problems
+ *
+ * @ingroup no_cpu
+ */
+/**@{*/
+
/*
* Indicate we are in an assembly file and get the basic CPU definitions.
*/
@@ -120,4 +129,5 @@
*/
#define EXTERN(sym) .globl SYM (sym)
+/**@}*/
#endif
diff --git a/cpukit/score/cpu/no_cpu/rtems/score/cpu.h b/cpukit/score/cpu/no_cpu/rtems/score/cpu.h
index fe63aea3fc..8c4a61bbb4 100644
--- a/cpukit/score/cpu/no_cpu/rtems/score/cpu.h
+++ b/cpukit/score/cpu/no_cpu/rtems/score/cpu.h
@@ -41,172 +41,172 @@ extern "C" {
/* conditional compilation parameters */
/**
- * Should the calls to @ref _Thread_Enable_dispatch be inlined?
+ * Should the calls to @ref _Thread_Enable_dispatch be inlined?
*
- * If TRUE, then they are inlined.
- * If FALSE, then a subroutine call is made.
+ * If TRUE, then they are inlined.
+ * If FALSE, then a subroutine call is made.
*
- * This conditional is an example of the classic trade-off of size
- * versus speed. Inlining the call (TRUE) typically increases the
- * size of RTEMS while speeding up the enabling of dispatching.
+ * This conditional is an example of the classic trade-off of size
+ * versus speed. Inlining the call (TRUE) typically increases the
+ * size of RTEMS while speeding up the enabling of dispatching.
*
- * @note In general, the @ref _Thread_Dispatch_disable_level will
- * only be 0 or 1 unless you are in an interrupt handler and that
- * interrupt handler invokes the executive.] When not inlined
- * something calls @ref _Thread_Enable_dispatch which in turns calls
- * @ref _Thread_Dispatch. If the enable dispatch is inlined, then
- * one subroutine call is avoided entirely.
+ * NOTE: In general, the @ref _Thread_Dispatch_disable_level will
+ * only be 0 or 1 unless you are in an interrupt handler and that
+ * interrupt handler invokes the executive.] When not inlined
+ * something calls @ref _Thread_Enable_dispatch which in turns calls
+ * @ref _Thread_Dispatch. If the enable dispatch is inlined, then
+ * one subroutine call is avoided entirely.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_INLINE_ENABLE_DISPATCH FALSE
/**
- * Should the body of the search loops in _Thread_queue_Enqueue_priority
- * be unrolled one time? In unrolled each iteration of the loop examines
- * two "nodes" on the chain being searched. Otherwise, only one node
- * is examined per iteration.
+ * Should the body of the search loops in _Thread_queue_Enqueue_priority
+ * be unrolled one time? In unrolled each iteration of the loop examines
+ * two "nodes" on the chain being searched. Otherwise, only one node
+ * is examined per iteration.
*
- * If TRUE, then the loops are unrolled.
- * If FALSE, then the loops are not unrolled.
+ * If TRUE, then the loops are unrolled.
+ * If FALSE, then the loops are not unrolled.
*
- * The primary factor in making this decision is the cost of disabling
- * and enabling interrupts (_ISR_Flash) versus the cost of rest of the
- * body of the loop. On some CPUs, the flash is more expensive than
- * one iteration of the loop body. In this case, it might be desirable
- * to unroll the loop. It is important to note that on some CPUs, this
- * code is the longest interrupt disable period in RTEMS. So it is
- * necessary to strike a balance when setting this parameter.
+ * The primary factor in making this decision is the cost of disabling
+ * and enabling interrupts (_ISR_Flash) versus the cost of rest of the
+ * body of the loop. On some CPUs, the flash is more expensive than
+ * one iteration of the loop body. In this case, it might be desirable
+ * to unroll the loop. It is important to note that on some CPUs, this
+ * code is the longest interrupt disable period in RTEMS. So it is
+ * necessary to strike a balance when setting this parameter.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_UNROLL_ENQUEUE_PRIORITY TRUE
/**
- * Does RTEMS manage a dedicated interrupt stack in software?
+ * Does RTEMS manage a dedicated interrupt stack in software?
*
- * If TRUE, then a stack is allocated in @ref _ISR_Handler_initialization.
- * If FALSE, nothing is done.
+ * If TRUE, then a stack is allocated in @ref _ISR_Handler_initialization.
+ * If FALSE, nothing is done.
*
- * If the CPU supports a dedicated interrupt stack in hardware,
- * then it is generally the responsibility of the BSP to allocate it
- * and set it up.
+ * If the CPU supports a dedicated interrupt stack in hardware,
+ * then it is generally the responsibility of the BSP to allocate it
+ * and set it up.
*
- * If the CPU does not support a dedicated interrupt stack, then
- * the porter has two options: (1) execute interrupts on the
- * stack of the interrupted task, and (2) have RTEMS manage a dedicated
- * interrupt stack.
+ * If the CPU does not support a dedicated interrupt stack, then
+ * the porter has two options: (1) execute interrupts on the
+ * stack of the interrupted task, and (2) have RTEMS manage a dedicated
+ * interrupt stack.
*
- * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
+ * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
*
- * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
- * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
- * possible that both are FALSE for a particular CPU. Although it
- * is unclear what that would imply about the interrupt processing
- * procedure on that CPU.
+ * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
+ * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
+ * possible that both are FALSE for a particular CPU. Although it
+ * is unclear what that would imply about the interrupt processing
+ * procedure on that CPU.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_HAS_SOFTWARE_INTERRUPT_STACK FALSE
/**
- * Does the CPU follow the simple vectored interrupt model?
+ * Does the CPU follow the simple vectored interrupt model?
*
- * If TRUE, then RTEMS allocates the vector table it internally manages.
- * If FALSE, then the BSP is assumed to allocate and manage the vector
- * table
+ * If TRUE, then RTEMS allocates the vector table it internally manages.
+ * If FALSE, then the BSP is assumed to allocate and manage the vector
+ * table
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_SIMPLE_VECTORED_INTERRUPTS TRUE
/**
- * Does this CPU have hardware support for a dedicated interrupt stack?
+ * Does this CPU have hardware support for a dedicated interrupt stack?
*
- * If TRUE, then it must be installed during initialization.
- * If FALSE, then no installation is performed.
+ * If TRUE, then it must be installed during initialization.
+ * If FALSE, then no installation is performed.
*
- * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
+ * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
*
- * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
- * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
- * possible that both are FALSE for a particular CPU. Although it
- * is unclear what that would imply about the interrupt processing
- * procedure on that CPU.
+ * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
+ * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
+ * possible that both are FALSE for a particular CPU. Although it
+ * is unclear what that would imply about the interrupt processing
+ * procedure on that CPU.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_HAS_HARDWARE_INTERRUPT_STACK TRUE
/**
- * Does RTEMS allocate a dedicated interrupt stack in the Interrupt Manager?
+ * Does RTEMS allocate a dedicated interrupt stack in the Interrupt Manager?
*
- * If TRUE, then the memory is allocated during initialization.
- * If FALSE, then the memory is allocated during initialization.
+ * If TRUE, then the memory is allocated during initialization.
+ * If FALSE, then the memory is allocated during initialization.
*
- * This should be TRUE is CPU_HAS_SOFTWARE_INTERRUPT_STACK is TRUE.
+ * This should be TRUE is CPU_HAS_SOFTWARE_INTERRUPT_STACK is TRUE.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_ALLOCATE_INTERRUPT_STACK TRUE
/**
- * Does the RTEMS invoke the user's ISR with the vector number and
- * a pointer to the saved interrupt frame (1) or just the vector
- * number (0)?
+ * Does the RTEMS invoke the user's ISR with the vector number and
+ * a pointer to the saved interrupt frame (1) or just the vector
+ * number (0)?
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_ISR_PASSES_FRAME_POINTER 0
/**
- * @def CPU_HARDWARE_FP
+ * @def CPU_HARDWARE_FP
*
- * Does the CPU have hardware floating point?
+ * Does the CPU have hardware floating point?
*
- * If TRUE, then the RTEMS_FLOATING_POINT task attribute is supported.
- * If FALSE, then the RTEMS_FLOATING_POINT task attribute is ignored.
+ * If TRUE, then the RTEMS_FLOATING_POINT task attribute is supported.
+ * If FALSE, then the RTEMS_FLOATING_POINT task attribute is ignored.
*
- * If there is a FP coprocessor such as the i387 or mc68881, then
- * the answer is TRUE.
+ * If there is a FP coprocessor such as the i387 or mc68881, then
+ * the answer is TRUE.
*
- * The macro name "NO_CPU_HAS_FPU" should be made CPU specific.
- * It indicates whether or not this CPU model has FP support. For
- * example, it would be possible to have an i386_nofp CPU model
- * which set this to false to indicate that you have an i386 without
- * an i387 and wish to leave floating point support out of RTEMS.
+ * The macro name "NO_CPU_HAS_FPU" should be made CPU specific.
+ * It indicates whether or not this CPU model has FP support. For
+ * example, it would be possible to have an i386_nofp CPU model
+ * which set this to false to indicate that you have an i386 without
+ * an i387 and wish to leave floating point support out of RTEMS.
*/
/**
- * @def CPU_SOFTWARE_FP
+ * @def CPU_SOFTWARE_FP
*
- * Does the CPU have no hardware floating point and GCC provides a
- * software floating point implementation which must be context
- * switched?
+ * Does the CPU have no hardware floating point and GCC provides a
+ * software floating point implementation which must be context
+ * switched?
*
- * This feature conditional is used to indicate whether or not there
- * is software implemented floating point that must be context
- * switched. The determination of whether or not this applies
- * is very tool specific and the state saved/restored is also
- * compiler specific.
+ * This feature conditional is used to indicate whether or not there
+ * is software implemented floating point that must be context
+ * switched. The determination of whether or not this applies
+ * is very tool specific and the state saved/restored is also
+ * compiler specific.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#if ( NO_CPU_HAS_FPU == 1 )
#define CPU_HARDWARE_FP TRUE
@@ -216,260 +216,261 @@ extern "C" {
#define CPU_SOFTWARE_FP FALSE
/**
- * Are all tasks RTEMS_FLOATING_POINT tasks implicitly?
+ * Are all tasks RTEMS_FLOATING_POINT tasks implicitly?
*
- * If TRUE, then the RTEMS_FLOATING_POINT task attribute is assumed.
- * If FALSE, then the RTEMS_FLOATING_POINT task attribute is followed.
+ * If TRUE, then the RTEMS_FLOATING_POINT task attribute is assumed.
+ * If FALSE, then the RTEMS_FLOATING_POINT task attribute is followed.
*
- * So far, the only CPUs in which this option has been used are the
- * HP PA-RISC and PowerPC. On the PA-RISC, The HP C compiler and
- * gcc both implicitly used the floating point registers to perform
- * integer multiplies. Similarly, the PowerPC port of gcc has been
- * seen to allocate floating point local variables and touch the FPU
- * even when the flow through a subroutine (like vfprintf()) might
- * not use floating point formats.
+ * So far, the only CPUs in which this option has been used are the
+ * HP PA-RISC and PowerPC. On the PA-RISC, The HP C compiler and
+ * gcc both implicitly used the floating point registers to perform
+ * integer multiplies. Similarly, the PowerPC port of gcc has been
+ * seen to allocate floating point local variables and touch the FPU
+ * even when the flow through a subroutine (like vfprintf()) might
+ * not use floating point formats.
*
- * If a function which you would not think utilize the FP unit DOES,
- * then one can not easily predict which tasks will use the FP hardware.
- * In this case, this option should be TRUE.
+ * If a function which you would not think utilize the FP unit DOES,
+ * then one can not easily predict which tasks will use the FP hardware.
+ * In this case, this option should be TRUE.
*
- * If @ref CPU_HARDWARE_FP is FALSE, then this should be FALSE as well.
+ * If @ref CPU_HARDWARE_FP is FALSE, then this should be FALSE as well.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_ALL_TASKS_ARE_FP TRUE
/**
- * Should the IDLE task have a floating point context?
+ * Should the IDLE task have a floating point context?
*
- * If TRUE, then the IDLE task is created as a RTEMS_FLOATING_POINT task
- * and it has a floating point context which is switched in and out.
- * If FALSE, then the IDLE task does not have a floating point context.
+ * If TRUE, then the IDLE task is created as a RTEMS_FLOATING_POINT task
+ * and it has a floating point context which is switched in and out.
+ * If FALSE, then the IDLE task does not have a floating point context.
*
- * Setting this to TRUE negatively impacts the time required to preempt
- * the IDLE task from an interrupt because the floating point context
- * must be saved as part of the preemption.
+ * Setting this to TRUE negatively impacts the time required to preempt
+ * the IDLE task from an interrupt because the floating point context
+ * must be saved as part of the preemption.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_IDLE_TASK_IS_FP FALSE
/**
- * Should the saving of the floating point registers be deferred
- * until a context switch is made to another different floating point
- * task?
+ * Should the saving of the floating point registers be deferred
+ * until a context switch is made to another different floating point
+ * task?
*
- * If TRUE, then the floating point context will not be stored until
- * necessary. It will remain in the floating point registers and not
- * disturned until another floating point task is switched to.
+ * If TRUE, then the floating point context will not be stored until
+ * necessary. It will remain in the floating point registers and not
+ * disturned until another floating point task is switched to.
*
- * If FALSE, then the floating point context is saved when a floating
- * point task is switched out and restored when the next floating point
- * task is restored. The state of the floating point registers between
- * those two operations is not specified.
+ * If FALSE, then the floating point context is saved when a floating
+ * point task is switched out and restored when the next floating point
+ * task is restored. The state of the floating point registers between
+ * those two operations is not specified.
*
- * If the floating point context does NOT have to be saved as part of
- * interrupt dispatching, then it should be safe to set this to TRUE.
+ * If the floating point context does NOT have to be saved as part of
+ * interrupt dispatching, then it should be safe to set this to TRUE.
*
- * Setting this flag to TRUE results in using a different algorithm
- * for deciding when to save and restore the floating point context.
- * The deferred FP switch algorithm minimizes the number of times
- * the FP context is saved and restored. The FP context is not saved
- * until a context switch is made to another, different FP task.
- * Thus in a system with only one FP task, the FP context will never
- * be saved or restored.
+ * Setting this flag to TRUE results in using a different algorithm
+ * for deciding when to save and restore the floating point context.
+ * The deferred FP switch algorithm minimizes the number of times
+ * the FP context is saved and restored. The FP context is not saved
+ * until a context switch is made to another, different FP task.
+ * Thus in a system with only one FP task, the FP context will never
+ * be saved or restored.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_USE_DEFERRED_FP_SWITCH TRUE
/**
- * Does this port provide a CPU dependent IDLE task implementation?
+ * Does this port provide a CPU dependent IDLE task implementation?
*
- * If TRUE, then the routine @ref _CPU_Thread_Idle_body
- * must be provided and is the default IDLE thread body instead of
- * @ref _CPU_Thread_Idle_body.
+ * If TRUE, then the routine @ref _CPU_Thread_Idle_body
+ * must be provided and is the default IDLE thread body instead of
+ * @ref _CPU_Thread_Idle_body.
*
- * If FALSE, then use the generic IDLE thread body if the BSP does
- * not provide one.
+ * If FALSE, then use the generic IDLE thread body if the BSP does
+ * not provide one.
*
- * This is intended to allow for supporting processors which have
- * a low power or idle mode. When the IDLE thread is executed, then
- * the CPU can be powered down.
+ * This is intended to allow for supporting processors which have
+ * a low power or idle mode. When the IDLE thread is executed, then
+ * the CPU can be powered down.
*
- * The order of precedence for selecting the IDLE thread body is:
+ * The order of precedence for selecting the IDLE thread body is:
*
- * -# BSP provided
- * -# CPU dependent (if provided)
- * -# generic (if no BSP and no CPU dependent)
+ * -# BSP provided
+ * -# CPU dependent (if provided)
+ * -# generic (if no BSP and no CPU dependent)
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_PROVIDES_IDLE_THREAD_BODY TRUE
/**
- * Does the stack grow up (toward higher addresses) or down
- * (toward lower addresses)?
+ * Does the stack grow up (toward higher addresses) or down
+ * (toward lower addresses)?
*
- * If TRUE, then the grows upward.
- * If FALSE, then the grows toward smaller addresses.
+ * If TRUE, then the grows upward.
+ * If FALSE, then the grows toward smaller addresses.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_STACK_GROWS_UP TRUE
/**
- * The following is the variable attribute used to force alignment
- * of critical RTEMS structures. On some processors it may make
- * sense to have these aligned on tighter boundaries than
- * the minimum requirements of the compiler in order to have as
- * much of the critical data area as possible in a cache line.
+ * The following is the variable attribute used to force alignment
+ * of critical RTEMS structures. On some processors it may make
+ * sense to have these aligned on tighter boundaries than
+ * the minimum requirements of the compiler in order to have as
+ * much of the critical data area as possible in a cache line.
*
- * The placement of this macro in the declaration of the variables
- * is based on the syntactically requirements of the GNU C
- * "__attribute__" extension. For example with GNU C, use
- * the following to force a structures to a 32 byte boundary.
+ * The placement of this macro in the declaration of the variables
+ * is based on the syntactically requirements of the GNU C
+ * "__attribute__" extension. For example with GNU C, use
+ * the following to force a structures to a 32 byte boundary.
*
- * __attribute__ ((aligned (32)))
+ * __attribute__ ((aligned (32)))
*
- * @note Currently only the Priority Bit Map table uses this feature.
- * To benefit from using this, the data must be heavily
- * used so it will stay in the cache and used frequently enough
- * in the executive to justify turning this on.
+ * NOTE: Currently only the Priority Bit Map table uses this feature.
+ * To benefit from using this, the data must be heavily
+ * used so it will stay in the cache and used frequently enough
+ * in the executive to justify turning this on.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_STRUCTURE_ALIGNMENT
/**
- * @defgroup CPUTimestamp Processor Dependent Timestamp Support
+ * @defgroup CPUTimestamp Processor Dependent Timestamp Support
*
- * This group assists in issues related to timestamp implementation.
+ * This group assists in issues related to timestamp implementation.
*
- * The port must choose exactly one of the following defines:
- * - #define CPU_TIMESTAMP_USE_STRUCT_TIMESPEC TRUE
- * - #define CPU_TIMESTAMP_USE_INT64 TRUE
- * - #define CPU_TIMESTAMP_USE_INT64_INLINE TRUE
+ * The port must choose exactly one of the following defines:
+ * - #define CPU_TIMESTAMP_USE_STRUCT_TIMESPEC TRUE
+ * - #define CPU_TIMESTAMP_USE_INT64 TRUE
+ * - #define CPU_TIMESTAMP_USE_INT64_INLINE TRUE
*
- * Performance of int64_t versus struct timespec
- * =============================================
+ * Performance of int64_t versus struct timespec
+ * =============================================
*
- * On PowerPC/psim, inlined int64_t saves ~50 instructions on each
- * _Thread_Dispatch operation which results in a context switch.
- * This works out to be about 10% faster dispatches and 7.5% faster
- * blocking semaphore obtains. The following numbers are in instructions
- * and from tm02 and tm26.
+ * On PowerPC/psim, inlined int64_t saves ~50 instructions on each
+ * _Thread_Dispatch operation which results in a context switch.
+ * This works out to be about 10% faster dispatches and 7.5% faster
+ * blocking semaphore obtains. The following numbers are in instructions
+ * and from tm02 and tm26.
*
- * timespec int64 inlined int64
- * dispatch: 446 446 400
- * blocking sem obtain: 627 626 581
+ * timespec int64 inlined int64
+ * dispatch: 446 446 400
+ * blocking sem obtain: 627 626 581
*
- * On SPARC/sis, inlined int64_t shows the same percentage gains.
- * The following numbers are in microseconds and from tm02 and tm26.
+ * On SPARC/sis, inlined int64_t shows the same percentage gains.
+ * The following numbers are in microseconds and from tm02 and tm26.
*
- * timespec int64 inlined int64
- * dispatch: 59 61 53
- * blocking sem obtain: 98 100 92
+ * timespec int64 inlined int64
+ * dispatch: 59 61 53
+ * blocking sem obtain: 98 100 92
*
- * Inlining appears to have a tendency to increase the size of
- * some executables.
- * Not inlining reduces the execution improvement but does not seem to
- * be an improvement on the PowerPC and SPARC. The struct timespec
- * and the executables with int64 not inlined are about the same size.
+ * Inlining appears to have a tendency to increase the size of
+ * some executables.
+ * Not inlining reduces the execution improvement but does not seem to
+ * be an improvement on the PowerPC and SPARC. The struct timespec
+ * and the executables with int64 not inlined are about the same size.
+ *
*/
+/**@{**/
/**
- * @ingroup CPUTimestamp
- *
- * Selects the timestamp implementation using struct timespec.
+ * Selects the timestamp implementation using struct timespec.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_TIMESTAMP_USE_STRUCT_TIMESPEC TRUE
/**
- * @ingroup CPUTimestamp
+ * Selects the timestamp implementation using int64_t and no inlined methods.
*
- * Selects the timestamp implementation using int64_t and no inlined methods.
- *
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_TIMESTAMP_USE_INT64 TRUE
/**
- * @ingroup CPUTimestamp
- *
- * Selects the timestamp implementation using int64_t and inlined methods.
+ * Selects the timestamp implementation using int64_t and inlined methods.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_TIMESTAMP_USE_INT64_INLINE TRUE
+/** @} */
+
/**
- * @defgroup CPUEndian Processor Dependent Endianness Support
+ * @defgroup CPUEndian Processor Dependent Endianness Support
*
- * This group assists in issues related to processor endianness.
+ * This group assists in issues related to processor endianness.
+ *
*/
+/**@{**/
/**
- * @ingroup CPUEndian
- * Define what is required to specify how the network to host conversion
- * routines are handled.
+ * Define what is required to specify how the network to host conversion
+ * routines are handled.
*
- * @note @a CPU_BIG_ENDIAN and @a CPU_LITTLE_ENDIAN should NOT have the
- * same values.
+ * NOTE: @a CPU_BIG_ENDIAN and @a CPU_LITTLE_ENDIAN should NOT have the
+ * same values.
*
- * @see CPU_LITTLE_ENDIAN
+ * @see CPU_LITTLE_ENDIAN
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_BIG_ENDIAN TRUE
/**
- * @ingroup CPUEndian
- * Define what is required to specify how the network to host conversion
- * routines are handled.
+ * Define what is required to specify how the network to host conversion
+ * routines are handled.
*
- * @note @ref CPU_BIG_ENDIAN and @ref CPU_LITTLE_ENDIAN should NOT have the
- * same values.
+ * NOTE: @ref CPU_BIG_ENDIAN and @ref CPU_LITTLE_ENDIAN should NOT have the
+ * same values.
*
- * @see CPU_BIG_ENDIAN
+ * @see CPU_BIG_ENDIAN
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_LITTLE_ENDIAN FALSE
+/** @} */
+
/**
- * @ingroup CPUInterrupt
- * The following defines the number of bits actually used in the
- * interrupt field of the task mode. How those bits map to the
- * CPU interrupt levels is defined by the routine @ref _CPU_ISR_Set_level.
+ * @ingroup CPUInterrupt
+ *
+ * The following defines the number of bits actually used in the
+ * interrupt field of the task mode. How those bits map to the
+ * CPU interrupt levels is defined by the routine @ref _CPU_ISR_Set_level.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_MODES_INTERRUPT_MASK 0x00000001
@@ -486,83 +487,89 @@ extern "C" {
/**
* @defgroup CPUContext Processor Dependent Context Management
*
- * From the highest level viewpoint, there are 2 types of context to save.
+ * From the highest level viewpoint, there are 2 types of context to save.
*
- * -# Interrupt registers to save
- * -# Task level registers to save
+ * -# Interrupt registers to save
+ * -# Task level registers to save
*
- * Since RTEMS handles integer and floating point contexts separately, this
- * means we have the following 3 context items:
+ * Since RTEMS handles integer and floating point contexts separately, this
+ * means we have the following 3 context items:
*
- * -# task level context stuff:: Context_Control
- * -# floating point task stuff:: Context_Control_fp
- * -# special interrupt level context :: CPU_Interrupt_frame
+ * -# task level context stuff:: Context_Control
+ * -# floating point task stuff:: Context_Control_fp
+ * -# special interrupt level context :: CPU_Interrupt_frame
*
- * On some processors, it is cost-effective to save only the callee
- * preserved registers during a task context switch. This means
- * that the ISR code needs to save those registers which do not
- * persist across function calls. It is not mandatory to make this
- * distinctions between the caller/callee saves registers for the
- * purpose of minimizing context saved during task switch and on interrupts.
- * If the cost of saving extra registers is minimal, simplicity is the
- * choice. Save the same context on interrupt entry as for tasks in
- * this case.
+ * On some processors, it is cost-effective to save only the callee
+ * preserved registers during a task context switch. This means
+ * that the ISR code needs to save those registers which do not
+ * persist across function calls. It is not mandatory to make this
+ * distinctions between the caller/callee saves registers for the
+ * purpose of minimizing context saved during task switch and on interrupts.
+ * If the cost of saving extra registers is minimal, simplicity is the
+ * choice. Save the same context on interrupt entry as for tasks in
+ * this case.
*
- * Additionally, if gdb is to be made aware of RTEMS tasks for this CPU, then
- * care should be used in designing the context area.
+ * Additionally, if gdb is to be made aware of RTEMS tasks for this CPU, then
+ * care should be used in designing the context area.
*
- * On some CPUs with hardware floating point support, the Context_Control_fp
- * structure will not be used or it simply consist of an array of a
- * fixed number of bytes. This is done when the floating point context
- * is dumped by a "FP save context" type instruction and the format
- * is not really defined by the CPU. In this case, there is no need
- * to figure out the exact format -- only the size. Of course, although
- * this is enough information for RTEMS, it is probably not enough for
- * a debugger such as gdb. But that is another problem.
+ * On some CPUs with hardware floating point support, the Context_Control_fp
+ * structure will not be used or it simply consist of an array of a
+ * fixed number of bytes. This is done when the floating point context
+ * is dumped by a "FP save context" type instruction and the format
+ * is not really defined by the CPU. In this case, there is no need
+ * to figure out the exact format -- only the size. Of course, although
+ * this is enough information for RTEMS, it is probably not enough for
+ * a debugger such as gdb. But that is another problem.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
+ *
*/
+/**@{**/
/**
- * @ingroup CPUContext Management
- * This defines the minimal set of integer and processor state registers
- * that must be saved during a voluntary context switch from one thread
- * to another.
+ * @ingroup Management
+ * This defines the minimal set of integer and processor state registers
+ * that must be saved during a voluntary context switch from one thread
+ * to another.
*/
typedef struct {
- /** This field is a hint that a port will have a number of integer
- * registers that need to be saved at a context switch.
+ /**
+ * This field is a hint that a port will have a number of integer
+ * registers that need to be saved at a context switch.
*/
uint32_t some_integer_register;
- /** This field is a hint that a port will have a number of system
- * registers that need to be saved at a context switch.
+ /**
+ * This field is a hint that a port will have a number of system
+ * registers that need to be saved at a context switch.
*/
uint32_t some_system_register;
- /** This field is a hint that a port will have a register that
- * is the stack pointer.
+ /**
+ * This field is a hint that a port will have a register that
+ * is the stack pointer.
*/
uint32_t stack_pointer;
} Context_Control;
/**
- * @ingroup CPUContext Management
+ * @ingroup Management
*
- * This macro returns the stack pointer associated with @a _context.
+ * This macro returns the stack pointer associated with @a _context.
*
- * @param[in] _context is the thread context area to access
+ * @param[in] _context is the thread context area to access
*
- * @return This method returns the stack pointer.
+ * @return This method returns the stack pointer.
*/
#define _CPU_Context_Get_SP( _context ) \
(_context)->stack_pointer
/**
- * @ingroup CPUContext Management
- * This defines the complete set of floating point registers that must
- * be saved during any context switch from one thread to another.
+ * @ingroup Management
+ *
+ * This defines the complete set of floating point registers that must
+ * be saved during any context switch from one thread to another.
*/
typedef struct {
/** FPU registers are listed here */
@@ -570,48 +577,52 @@ typedef struct {
} Context_Control_fp;
/**
- * @ingroup CPUContext Management
- * This defines the set of integer and processor state registers that must
- * be saved during an interrupt. This set does not include any which are
- * in @ref Context_Control.
+ * @ingroup Management
+ *
+ * This defines the set of integer and processor state registers that must
+ * be saved during an interrupt. This set does not include any which are
+ * in @ref Context_Control.
*/
typedef struct {
- /** This field is a hint that a port will have a number of integer
- * registers that need to be saved when an interrupt occurs or
- * when a context switch occurs at the end of an ISR.
+ /**
+ * This field is a hint that a port will have a number of integer
+ * registers that need to be saved when an interrupt occurs or
+ * when a context switch occurs at the end of an ISR.
*/
uint32_t special_interrupt_register;
} CPU_Interrupt_frame;
/**
- * This variable is optional. It is used on CPUs on which it is difficult
- * to generate an "uninitialized" FP context. It is filled in by
- * @ref _CPU_Initialize and copied into the task's FP context area during
- * @ref _CPU_Context_Initialize.
+ * This variable is optional. It is used on CPUs on which it is difficult
+ * to generate an "uninitialized" FP context. It is filled in by
+ * @ref _CPU_Initialize and copied into the task's FP context area during
+ * @ref _CPU_Context_Initialize.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
+/** @} */
+
/**
- * @defgroup CPUInterrupt Processor Dependent Interrupt Management
+ * @defgroup CPUInterrupt Processor Dependent Interrupt Management
*
- * On some CPUs, RTEMS supports a software managed interrupt stack.
- * This stack is allocated by the Interrupt Manager and the switch
- * is performed in @ref _ISR_Handler. These variables contain pointers
- * to the lowest and highest addresses in the chunk of memory allocated
- * for the interrupt stack. Since it is unknown whether the stack
- * grows up or down (in general), this give the CPU dependent
- * code the option of picking the version it wants to use.
+ * On some CPUs, RTEMS supports a software managed interrupt stack.
+ * This stack is allocated by the Interrupt Manager and the switch
+ * is performed in @ref _ISR_Handler. These variables contain pointers
+ * to the lowest and highest addresses in the chunk of memory allocated
+ * for the interrupt stack. Since it is unknown whether the stack
+ * grows up or down (in general), this give the CPU dependent
+ * code the option of picking the version it wants to use.
*
- * @note These two variables are required if the macro
- * @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK is defined as TRUE.
+ * NOTE: These two variables are required if the macro
+ * @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK is defined as TRUE.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
/*
@@ -625,138 +636,143 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
/* XXX: if needed, put more variables here */
/**
- * @ingroup CPUContext
- * The size of the floating point context area. On some CPUs this
- * will not be a "sizeof" because the format of the floating point
- * area is not defined -- only the size is. This is usually on
- * CPUs with a "floating point save context" instruction.
+ * @ingroup CPUContext
+ *
+ * The size of the floating point context area. On some CPUs this
+ * will not be a "sizeof" because the format of the floating point
+ * area is not defined -- only the size is. This is usually on
+ * CPUs with a "floating point save context" instruction.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_CONTEXT_FP_SIZE sizeof( Context_Control_fp )
/**
- * Amount of extra stack (above minimum stack size) required by
- * MPCI receive server thread. Remember that in a multiprocessor
- * system this thread must exist and be able to process all directives.
+ * Amount of extra stack (above minimum stack size) required by
+ * MPCI receive server thread. Remember that in a multiprocessor
+ * system this thread must exist and be able to process all directives.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_MPCI_RECEIVE_SERVER_EXTRA_STACK 0
/**
- * @ingroup CPUInterrupt
- * This defines the number of entries in the @ref _ISR_Vector_table managed
- * by RTEMS.
+ * @ingroup CPUInterrupt
+ *
+ * This defines the number of entries in the @ref _ISR_Vector_table managed
+ * by RTEMS.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_INTERRUPT_NUMBER_OF_VECTORS 32
/**
- * @ingroup CPUInterrupt
- * This defines the highest interrupt vector number for this port.
+ * @ingroup CPUInterrupt
+ *
+ * This defines the highest interrupt vector number for this port.
*/
#define CPU_INTERRUPT_MAXIMUM_VECTOR_NUMBER (CPU_INTERRUPT_NUMBER_OF_VECTORS - 1)
/**
- * @ingroup CPUInterrupt
- * This is defined if the port has a special way to report the ISR nesting
- * level. Most ports maintain the variable @a _ISR_Nest_level.
+ * @ingroup CPUInterrupt
+ *
+ * This is defined if the port has a special way to report the ISR nesting
+ * level. Most ports maintain the variable @a _ISR_Nest_level.
*/
#define CPU_PROVIDES_ISR_IS_IN_PROGRESS FALSE
/**
- * @ingroup CPUContext
- * Should be large enough to run all RTEMS tests. This ensures
- * that a "reasonable" small application should not have any problems.
+ * @ingroup CPUContext
+ *
+ * Should be large enough to run all RTEMS tests. This ensures
+ * that a "reasonable" small application should not have any problems.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_STACK_MINIMUM_SIZE (1024*4)
/**
- * Size of a pointer.
+ * Size of a pointer.
*
- * This must be an integer literal that can be used by the assembler. This
- * value will be used to calculate offsets of structure members. These
- * offsets will be used in assembler code.
+ * This must be an integer literal that can be used by the assembler. This
+ * value will be used to calculate offsets of structure members. These
+ * offsets will be used in assembler code.
*/
#define CPU_SIZEOF_POINTER 4
/**
- * CPU's worst alignment requirement for data types on a byte boundary. This
- * alignment does not take into account the requirements for the stack.
+ * CPU's worst alignment requirement for data types on a byte boundary. This
+ * alignment does not take into account the requirements for the stack.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_ALIGNMENT 8
/**
- * This number corresponds to the byte alignment requirement for the
- * heap handler. This alignment requirement may be stricter than that
- * for the data types alignment specified by @ref CPU_ALIGNMENT. It is
- * common for the heap to follow the same alignment requirement as
- * @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is strict enough for
- * the heap, then this should be set to @ref CPU_ALIGNMENT.
+ * This number corresponds to the byte alignment requirement for the
+ * heap handler. This alignment requirement may be stricter than that
+ * for the data types alignment specified by @ref CPU_ALIGNMENT. It is
+ * common for the heap to follow the same alignment requirement as
+ * @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is strict enough for
+ * the heap, then this should be set to @ref CPU_ALIGNMENT.
*
- * @note This does not have to be a power of 2 although it should be
- * a multiple of 2 greater than or equal to 2. The requirement
- * to be a multiple of 2 is because the heap uses the least
- * significant field of the front and back flags to indicate
- * that a block is in use or free. So you do not want any odd
- * length blocks really putting length data in that bit.
+ * NOTE: This does not have to be a power of 2 although it should be
+ * a multiple of 2 greater than or equal to 2. The requirement
+ * to be a multiple of 2 is because the heap uses the least
+ * significant field of the front and back flags to indicate
+ * that a block is in use or free. So you do not want any odd
+ * length blocks really putting length data in that bit.
*
- * On byte oriented architectures, @ref CPU_HEAP_ALIGNMENT normally will
- * have to be greater or equal to than @ref CPU_ALIGNMENT to ensure that
- * elements allocated from the heap meet all restrictions.
+ * On byte oriented architectures, @ref CPU_HEAP_ALIGNMENT normally will
+ * have to be greater or equal to than @ref CPU_ALIGNMENT to ensure that
+ * elements allocated from the heap meet all restrictions.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_HEAP_ALIGNMENT CPU_ALIGNMENT
/**
- * This number corresponds to the byte alignment requirement for memory
- * buffers allocated by the partition manager. This alignment requirement
- * may be stricter than that for the data types alignment specified by
- * @ref CPU_ALIGNMENT. It is common for the partition to follow the same
- * alignment requirement as @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is
- * strict enough for the partition, then this should be set to
- * @ref CPU_ALIGNMENT.
+ * This number corresponds to the byte alignment requirement for memory
+ * buffers allocated by the partition manager. This alignment requirement
+ * may be stricter than that for the data types alignment specified by
+ * @ref CPU_ALIGNMENT. It is common for the partition to follow the same
+ * alignment requirement as @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is
+ * strict enough for the partition, then this should be set to
+ * @ref CPU_ALIGNMENT.
*
- * @note This does not have to be a power of 2. It does have to
- * be greater or equal to than @ref CPU_ALIGNMENT.
+ * NOTE: This does not have to be a power of 2. It does have to
+ * be greater or equal to than @ref CPU_ALIGNMENT.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_PARTITION_ALIGNMENT CPU_ALIGNMENT
/**
- * This number corresponds to the byte alignment requirement for the
- * stack. This alignment requirement may be stricter than that for the
- * data types alignment specified by @ref CPU_ALIGNMENT. If the
- * @ref CPU_ALIGNMENT is strict enough for the stack, then this should be
- * set to 0.
+ * This number corresponds to the byte alignment requirement for the
+ * stack. This alignment requirement may be stricter than that for the
+ * data types alignment specified by @ref CPU_ALIGNMENT. If the
+ * @ref CPU_ALIGNMENT is strict enough for the stack, then this should be
+ * set to 0.
*
- * @note This must be a power of 2 either 0 or greater than @ref CPU_ALIGNMENT.
+ * NOTE: This must be a power of 2 either 0 or greater than @ref CPU_ALIGNMENT.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_STACK_ALIGNMENT 0
@@ -765,25 +781,27 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
*/
/**
- * @ingroup CPUInterrupt
- * Support routine to initialize the RTEMS vector table after it is allocated.
+ * @ingroup CPUInterrupt
+ *
+ * Support routine to initialize the RTEMS vector table after it is allocated.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Initialize_vectors()
/**
- * @ingroup CPUInterrupt
- * Disable all interrupts for an RTEMS critical section. The previous
- * level is returned in @a _isr_cookie.
+ * @ingroup CPUInterrupt
+ *
+ * Disable all interrupts for an RTEMS critical section. The previous
+ * level is returned in @a _isr_cookie.
*
- * @param[out] _isr_cookie will contain the previous level cookie
+ * @param[out] _isr_cookie will contain the previous level cookie
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_ISR_Disable( _isr_cookie ) \
{ \
@@ -791,69 +809,72 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
}
/**
- * @ingroup CPUInterrupt
- * Enable interrupts to the previous level (returned by _CPU_ISR_Disable).
- * This indicates the end of an RTEMS critical section. The parameter
- * @a _isr_cookie is not modified.
+ * @ingroup CPUInterrupt
+ *
+ * Enable interrupts to the previous level (returned by _CPU_ISR_Disable).
+ * This indicates the end of an RTEMS critical section. The parameter
+ * @a _isr_cookie is not modified.
*
- * @param[in] _isr_cookie contain the previous level cookie
+ * @param[in] _isr_cookie contain the previous level cookie
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_ISR_Enable( _isr_cookie ) \
{ \
}
/**
- * @ingroup CPUInterrupt
- * This temporarily restores the interrupt to @a _isr_cookie before immediately
- * disabling them again. This is used to divide long RTEMS critical
- * sections into two or more parts. The parameter @a _isr_cookie is not
- * modified.
+ * @ingroup CPUInterrupt
+ *
+ * This temporarily restores the interrupt to @a _isr_cookie before immediately
+ * disabling them again. This is used to divide long RTEMS critical
+ * sections into two or more parts. The parameter @a _isr_cookie is not
+ * modified.
*
- * @param[in] _isr_cookie contain the previous level cookie
+ * @param[in] _isr_cookie contain the previous level cookie
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_ISR_Flash( _isr_cookie ) \
{ \
}
/**
- * @ingroup CPUInterrupt
+ * @ingroup CPUInterrupt
*
- * This routine and @ref _CPU_ISR_Get_level
- * Map the interrupt level in task mode onto the hardware that the CPU
- * actually provides. Currently, interrupt levels which do not
- * map onto the CPU in a generic fashion are undefined. Someday,
- * it would be nice if these were "mapped" by the application
- * via a callout. For example, m68k has 8 levels 0 - 7, levels
- * 8 - 255 would be available for bsp/application specific meaning.
- * This could be used to manage a programmable interrupt controller
- * via the rtems_task_mode directive.
+ * This routine and @ref _CPU_ISR_Get_level
+ * Map the interrupt level in task mode onto the hardware that the CPU
+ * actually provides. Currently, interrupt levels which do not
+ * map onto the CPU in a generic fashion are undefined. Someday,
+ * it would be nice if these were "mapped" by the application
+ * via a callout. For example, m68k has 8 levels 0 - 7, levels
+ * 8 - 255 would be available for bsp/application specific meaning.
+ * This could be used to manage a programmable interrupt controller
+ * via the rtems_task_mode directive.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_ISR_Set_level( new_level ) \
{ \
}
/**
- * @ingroup CPUInterrupt
- * Return the current interrupt disable level for this task in
- * the format used by the interrupt level portion of the task mode.
+ * @ingroup CPUInterrupt
+ *
+ * Return the current interrupt disable level for this task in
+ * the format used by the interrupt level portion of the task mode.
*
- * @note This routine usually must be implemented as a subroutine.
+ * NOTE: This routine usually must be implemented as a subroutine.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
uint32_t _CPU_ISR_Get_level( void );
@@ -863,34 +884,35 @@ uint32_t _CPU_ISR_Get_level( void );
/**
* @ingroup CPUContext
- * Initialize the context to a state suitable for starting a
- * task after a context restore operation. Generally, this
- * involves:
- *
- * - setting a starting address
- * - preparing the stack
- * - preparing the stack and frame pointers
- * - setting the proper interrupt level in the context
- * - initializing the floating point context
- *
- * This routine generally does not set any unnecessary register
- * in the context. The state of the "general data" registers is
- * undefined at task start time.
- *
- * @param[in] _the_context is the context structure to be initialized
- * @param[in] _stack_base is the lowest physical address of this task's stack
- * @param[in] _size is the size of this task's stack
- * @param[in] _isr is the interrupt disable level
- * @param[in] _entry_point is the thread's entry point. This is
- * always @a _Thread_Handler
- * @param[in] _is_fp is TRUE if the thread is to be a floating
- * point thread. This is typically only used on CPUs where the
- * FPU may be easily disabled by software such as on the SPARC
- * where the PSR contains an enable FPU bit.
- *
- * Port Specific Information:
- *
- * XXX document implementation including references if appropriate
+ *
+ * Initialize the context to a state suitable for starting a
+ * task after a context restore operation. Generally, this
+ * involves:
+ *
+ * - setting a starting address
+ * - preparing the stack
+ * - preparing the stack and frame pointers
+ * - setting the proper interrupt level in the context
+ * - initializing the floating point context
+ *
+ * This routine generally does not set any unnecessary register
+ * in the context. The state of the "general data" registers is
+ * undefined at task start time.
+ *
+ * @param[in] _the_context is the context structure to be initialized
+ * @param[in] _stack_base is the lowest physical address of this task's stack
+ * @param[in] _size is the size of this task's stack
+ * @param[in] _isr is the interrupt disable level
+ * @param[in] _entry_point is the thread's entry point. This is
+ * always @a _Thread_Handler
+ * @param[in] _is_fp is TRUE if the thread is to be a floating
+ * point thread. This is typically only used on CPUs where the
+ * FPU may be easily disabled by software such as on the SPARC
+ * where the PSR contains an enable FPU bit.
+ *
+ * Port Specific Information:
+ *
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Context_Initialize( _the_context, _stack_base, _size, \
_isr, _entry_point, _is_fp ) \
@@ -898,65 +920,66 @@ uint32_t _CPU_ISR_Get_level( void );
}
/**
- * This routine is responsible for somehow restarting the currently
- * executing task. If you are lucky, then all that is necessary
- * is restoring the context. Otherwise, there will need to be
- * a special assembly routine which does something special in this
- * case. For many ports, simply adding a label to the restore path
- * of @ref _CPU_Context_switch will work. On other ports, it may be
- * possibly to load a few arguments and jump to the restore path. It will
- * not work if restarting self conflicts with the stack frame
- * assumptions of restoring a context.
+ * This routine is responsible for somehow restarting the currently
+ * executing task. If you are lucky, then all that is necessary
+ * is restoring the context. Otherwise, there will need to be
+ * a special assembly routine which does something special in this
+ * case. For many ports, simply adding a label to the restore path
+ * of @ref _CPU_Context_switch will work. On other ports, it may be
+ * possibly to load a few arguments and jump to the restore path. It will
+ * not work if restarting self conflicts with the stack frame
+ * assumptions of restoring a context.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Context_Restart_self( _the_context ) \
_CPU_Context_restore( (_the_context) );
/**
- * @ingroup CPUContext
- * The purpose of this macro is to allow the initial pointer into
- * a floating point context area (used to save the floating point
- * context) to be at an arbitrary place in the floating point
- * context area.
- *
- * This is necessary because some FP units are designed to have
- * their context saved as a stack which grows into lower addresses.
- * Other FP units can be saved by simply moving registers into offsets
- * from the base of the context area. Finally some FP units provide
- * a "dump context" instruction which could fill in from high to low
- * or low to high based on the whim of the CPU designers.
- *
- * @param[in] _base is the lowest physical address of the floating point
- * context area
- * @param[in] _offset is the offset into the floating point area
+ * @ingroup CPUContext
+ *
+ * The purpose of this macro is to allow the initial pointer into
+ * a floating point context area (used to save the floating point
+ * context) to be at an arbitrary place in the floating point
+ *context area.
*
- * Port Specific Information:
+ * This is necessary because some FP units are designed to have
+ * their context saved as a stack which grows into lower addresses.
+ * Other FP units can be saved by simply moving registers into offsets
+ * from the base of the context area. Finally some FP units provide
+ * a "dump context" instruction which could fill in from high to low
+ * or low to high based on the whim of the CPU designers.
*
- * XXX document implementation including references if appropriate
+ * @param[in] _base is the lowest physical address of the floating point
+ * context area
+ * @param[in] _offset is the offset into the floating point area
+ *
+ * Port Specific Information:
+ *
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Context_Fp_start( _base, _offset ) \
( (void *) _Addresses_Add_offset( (_base), (_offset) ) )
/**
- * This routine initializes the FP context area passed to it to.
- * There are a few standard ways in which to initialize the
- * floating point context. The code included for this macro assumes
- * that this is a CPU in which a "initial" FP context was saved into
- * @a _CPU_Null_fp_context and it simply copies it to the destination
- * context passed to it.
+ * This routine initializes the FP context area passed to it to.
+ * There are a few standard ways in which to initialize the
+ * floating point context. The code included for this macro assumes
+ * that this is a CPU in which a "initial" FP context was saved into
+ * @a _CPU_Null_fp_context and it simply copies it to the destination
+ * context passed to it.
*
- * Other floating point context save/restore models include:
- * -# not doing anything, and
- * -# putting a "null FP status word" in the correct place in the FP context.
+ * Other floating point context save/restore models include:
+ * -# not doing anything, and
+ * -# putting a "null FP status word" in the correct place in the FP context.
*
- * @param[in] _destination is the floating point context area
+ * @param[in] _destination is the floating point context area
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Context_Initialize_fp( _destination ) \
{ \
@@ -968,13 +991,13 @@ uint32_t _CPU_ISR_Get_level( void );
/* Fatal Error manager macros */
/**
- * This routine copies _error into a known place -- typically a stack
- * location or a register, optionally disables interrupts, and
- * halts/stops the CPU.
+ * This routine copies _error into a known place -- typically a stack
+ * location or a register, optionally disables interrupts, and
+ * halts/stops the CPU.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Fatal_halt( _error ) \
{ \
@@ -985,68 +1008,67 @@ uint32_t _CPU_ISR_Get_level( void );
/* Bitfield handler macros */
/**
- * @defgroup CPUBitfield Processor Dependent Bitfield Manipulation
+ * @defgroup CPUBitfield Processor Dependent Bitfield Manipulation
*
- * This set of routines are used to implement fast searches for
- * the most important ready task.
+ * This set of routines are used to implement fast searches for
+ * the most important ready task.
+ *
*/
+/**@{**/
/**
- * @ingroup CPUBitfield
- * This definition is set to TRUE if the port uses the generic bitfield
- * manipulation implementation.
+ * This definition is set to TRUE if the port uses the generic bitfield
+ * manipulation implementation.
*/
#define CPU_USE_GENERIC_BITFIELD_CODE TRUE
/**
- * @ingroup CPUBitfield
- * This definition is set to TRUE if the port uses the data tables provided
- * by the generic bitfield manipulation implementation.
- * This can occur when actually using the generic bitfield manipulation
- * implementation or when implementing the same algorithm in assembly
- * language for improved performance. It is unlikely that a port will use
- * the data if it has a bitfield scan instruction.
+ * This definition is set to TRUE if the port uses the data tables provided
+ * by the generic bitfield manipulation implementation.
+ * This can occur when actually using the generic bitfield manipulation
+ * implementation or when implementing the same algorithm in assembly
+ * language for improved performance. It is unlikely that a port will use
+ * the data if it has a bitfield scan instruction.
*/
#define CPU_USE_GENERIC_BITFIELD_DATA TRUE
/**
- * @ingroup CPUBitfield
- * This routine sets @a _output to the bit number of the first bit
- * set in @a _value. @a _value is of CPU dependent type
- * @a Priority_bit_map_Control. This type may be either 16 or 32 bits
- * wide although only the 16 least significant bits will be used.
- *
- * There are a number of variables in using a "find first bit" type
- * instruction.
- *
- * -# What happens when run on a value of zero?
- * -# Bits may be numbered from MSB to LSB or vice-versa.
- * -# The numbering may be zero or one based.
- * -# The "find first bit" instruction may search from MSB or LSB.
- *
- * RTEMS guarantees that (1) will never happen so it is not a concern.
- * (2),(3), (4) are handled by the macros @ref _CPU_Priority_Mask and
- * @ref _CPU_Priority_bits_index. These three form a set of routines
- * which must logically operate together. Bits in the _value are
- * set and cleared based on masks built by @ref _CPU_Priority_Mask.
- * The basic major and minor values calculated by @ref _Priority_Major
- * and @ref _Priority_Minor are "massaged" by @ref _CPU_Priority_bits_index
- * to properly range between the values returned by the "find first bit"
- * instruction. This makes it possible for @ref _Priority_Get_highest to
- * calculate the major and directly index into the minor table.
- * This mapping is necessary to ensure that 0 (a high priority major/minor)
- * is the first bit found.
- *
- * This entire "find first bit" and mapping process depends heavily
- * on the manner in which a priority is broken into a major and minor
- * components with the major being the 4 MSB of a priority and minor
- * the 4 LSB. Thus (0 << 4) + 0 corresponds to priority 0 -- the highest
- * priority. And (15 << 4) + 14 corresponds to priority 254 -- the next
- * to the lowest priority.
- *
- * If your CPU does not have a "find first bit" instruction, then
- * there are ways to make do without it. Here are a handful of ways
- * to implement this in software:
+ * This routine sets @a _output to the bit number of the first bit
+ * set in @a _value. @a _value is of CPU dependent type
+ * @a Priority_bit_map_Control. This type may be either 16 or 32 bits
+ * wide although only the 16 least significant bits will be used.
+ *
+ * There are a number of variables in using a "find first bit" type
+ * instruction.
+ *
+ * -# What happens when run on a value of zero?
+ * -# Bits may be numbered from MSB to LSB or vice-versa.
+ * -# The numbering may be zero or one based.
+ * -# The "find first bit" instruction may search from MSB or LSB.
+ *
+ * RTEMS guarantees that (1) will never happen so it is not a concern.
+ * (2),(3), (4) are handled by the macros @ref _CPU_Priority_Mask and
+ * @ref _CPU_Priority_bits_index. These three form a set of routines
+ * which must logically operate together. Bits in the _value are
+ * set and cleared based on masks built by @ref _CPU_Priority_Mask.
+ * The basic major and minor values calculated by @ref _Priority_Major
+ * and @ref _Priority_Minor are "massaged" by @ref _CPU_Priority_bits_index
+ * to properly range between the values returned by the "find first bit"
+ * instruction. This makes it possible for @ref _Priority_Get_highest to
+ * calculate the major and directly index into the minor table.
+ * This mapping is necessary to ensure that 0 (a high priority major/minor)
+ * is the first bit found.
+ *
+ * This entire "find first bit" and mapping process depends heavily
+ * on the manner in which a priority is broken into a major and minor
+ * components with the major being the 4 MSB of a priority and minor
+ * the 4 LSB. Thus (0 << 4) + 0 corresponds to priority 0 -- the highest
+ * priority. And (15 << 4) + 14 corresponds to priority 254 -- the next
+ * to the lowest priority.
+ *
+ * If your CPU does not have a "find first bit" instruction, then
+ * there are ways to make do without it. Here are a handful of ways
+ * to implement this in software:
*
@verbatim
- a series of 16 bit test instructions
@@ -1063,15 +1085,15 @@ uint32_t _CPU_ISR_Get_level( void );
_number += bit_set_table[ _value ]
@endverbatim
- * where bit_set_table[ 16 ] has values which indicate the first
- * bit set
+ * where bit_set_table[ 16 ] has values which indicate the first
+ * bit set
*
- * @param[in] _value is the value to be scanned
- * @param[in] _output is the first bit set
+ * @param[in] _value is the value to be scanned
+ * @param[in] _output is the first bit set
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#if (CPU_USE_GENERIC_BITFIELD_CODE == FALSE)
@@ -1081,16 +1103,18 @@ uint32_t _CPU_ISR_Get_level( void );
}
#endif
+/** @} */
+
/* end of Bitfield handler macros */
/**
- * This routine builds the mask which corresponds to the bit fields
- * as searched by @ref _CPU_Bitfield_Find_first_bit. See the discussion
- * for that routine.
+ * This routine builds the mask which corresponds to the bit fields
+ * as searched by @ref _CPU_Bitfield_Find_first_bit. See the discussion
+ * for that routine.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#if (CPU_USE_GENERIC_BITFIELD_CODE == FALSE)
@@ -1100,17 +1124,18 @@ uint32_t _CPU_ISR_Get_level( void );
#endif
/**
- * @ingroup CPUBitfield
- * This routine translates the bit numbers returned by
- * @ref _CPU_Bitfield_Find_first_bit into something suitable for use as
- * a major or minor component of a priority. See the discussion
- * for that routine.
+ * @ingroup CPUBitfield
+ *
+ * This routine translates the bit numbers returned by
+ * @ref _CPU_Bitfield_Find_first_bit into something suitable for use as
+ * a major or minor component of a priority. See the discussion
+ * for that routine.
*
- * @param[in] _priority is the major or minor number to translate
+ * @param[in] _priority is the major or minor number to translate
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#if (CPU_USE_GENERIC_BITFIELD_CODE == FALSE)
@@ -1124,26 +1149,27 @@ uint32_t _CPU_ISR_Get_level( void );
/* functions */
/**
- * This routine performs CPU dependent initialization.
+ * This routine performs CPU dependent initialization.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Initialize(void);
/**
- * @ingroup CPUInterrupt
- * This routine installs a "raw" interrupt handler directly into the
- * processor's vector table.
+ * @ingroup CPUInterrupt
+ *
+ * This routine installs a "raw" interrupt handler directly into the
+ * processor's vector table.
*
- * @param[in] vector is the vector number
- * @param[in] new_handler is the raw ISR handler to install
- * @param[in] old_handler is the previously installed ISR Handler
+ * @param[in] vector is the vector number
+ * @param[in] new_handler is the raw ISR handler to install
+ * @param[in] old_handler is the previously installed ISR Handler
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_ISR_install_raw_handler(
uint32_t vector,
@@ -1152,16 +1178,17 @@ void _CPU_ISR_install_raw_handler(
);
/**
- * @ingroup CPUInterrupt
- * This routine installs an interrupt vector.
+ * @ingroup CPUInterrupt
+ *
+ * This routine installs an interrupt vector.
*
- * @param[in] vector is the vector number
- * @param[in] new_handler is the RTEMS ISR handler to install
- * @param[in] old_handler is the previously installed ISR Handler
+ * @param[in] vector is the vector number
+ * @param[in] new_handler is the RTEMS ISR handler to install
+ * @param[in] old_handler is the previously installed ISR Handler
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_ISR_install_vector(
uint32_t vector,
@@ -1170,40 +1197,41 @@ void _CPU_ISR_install_vector(
);
/**
- * @ingroup CPUInterrupt
- * This routine installs the hardware interrupt stack pointer.
+ * @ingroup CPUInterrupt
+ * This routine installs the hardware interrupt stack pointer.
*
- * @note It need only be provided if @ref CPU_HAS_HARDWARE_INTERRUPT_STACK
- * is TRUE.
+ * NOTE: It need only be provided if @ref CPU_HAS_HARDWARE_INTERRUPT_STACK
+ * is TRUE.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Install_interrupt_stack( void );
/**
- * This routine is the CPU dependent IDLE thread body.
+ * This routine is the CPU dependent IDLE thread body.
*
- * @note It need only be provided if @ref CPU_PROVIDES_IDLE_THREAD_BODY
+ * NOTE: It need only be provided if @ref CPU_PROVIDES_IDLE_THREAD_BODY
* is TRUE.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void *_CPU_Thread_Idle_body( uintptr_t ignored );
/**
- * @ingroup CPUContext
- * This routine switches from the run context to the heir context.
+ * @ingroup CPUContext
+ *
+ * This routine switches from the run context to the heir context.
*
- * @param[in] run points to the context of the currently executing task
- * @param[in] heir points to the context of the heir task
+ * @param[in] run points to the context of the currently executing task
+ * @param[in] heir points to the context of the heir task
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_switch(
Context_Control *run,
@@ -1211,66 +1239,69 @@ void _CPU_Context_switch(
);
/**
- * @ingroup CPUContext
- * This routine is generally used only to restart self in an
- * efficient manner. It may simply be a label in @ref _CPU_Context_switch.
+ * @ingroup CPUContext
+ *
+ * This routine is generally used only to restart self in an
+ * efficient manner. It may simply be a label in @ref _CPU_Context_switch.
*
- * @param[in] new_context points to the context to be restored.
+ * @param[in] new_context points to the context to be restored.
*
- * @note May be unnecessary to reload some registers.
+ * NOTE: May be unnecessary to reload some registers.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_restore(
Context_Control *new_context
) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE;
/**
- * @ingroup CPUContext
- * This routine saves the floating point context passed to it.
+ * @ingroup CPUContext
+ *
+ * This routine saves the floating point context passed to it.
*
- * @param[in] fp_context_ptr is a pointer to a pointer to a floating
- * point context area
+ * @param[in] fp_context_ptr is a pointer to a pointer to a floating
+ * point context area
*
- * @return on output @a *fp_context_ptr will contain the address that
- * should be used with @ref _CPU_Context_restore_fp to restore this context.
+ * @return on output @a *fp_context_ptr will contain the address that
+ * should be used with @ref _CPU_Context_restore_fp to restore this context.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_save_fp(
Context_Control_fp **fp_context_ptr
);
/**
- * @ingroup CPUContext
- * This routine restores the floating point context passed to it.
+ * @ingroup CPUContext
+ *
+ * This routine restores the floating point context passed to it.
*
- * @param[in] fp_context_ptr is a pointer to a pointer to a floating
- * point context area to restore
+ * @param[in] fp_context_ptr is a pointer to a pointer to a floating
+ * point context area to restore
*
- * @return on output @a *fp_context_ptr will contain the address that
- * should be used with @ref _CPU_Context_save_fp to save this context.
+ * @return on output @a *fp_context_ptr will contain the address that
+ * should be used with @ref _CPU_Context_save_fp to save this context.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_restore_fp(
Context_Control_fp **fp_context_ptr
);
/**
- * @brief The set of registers that specifies the complete processor state.
+ * @brief The set of registers that specifies the complete processor state.
*
- * The CPU exception frame may be available in fatal error conditions like for
- * example illegal opcodes, instruction fetch errors, or data access errors.
+ * The CPU exception frame may be available in fatal error conditions like for
+ * example illegal opcodes, instruction fetch errors, or data access errors.
*
- * @see rtems_fatal(), RTEMS_FATAL_SOURCE_EXCEPTION, and
- * rtems_exception_frame_print().
+ * @see rtems_fatal(), RTEMS_FATAL_SOURCE_EXCEPTION, and
+ * rtems_exception_frame_print().
*/
typedef struct {
uint32_t processor_state_register;
@@ -1279,39 +1310,40 @@ typedef struct {
} CPU_Exception_frame;
/**
- * @brief Prints the exception frame via printk().
+ * @brief Prints the exception frame via printk().
*
- * @see rtems_fatal() and RTEMS_FATAL_SOURCE_EXCEPTION.
+ * @see rtems_fatal() and RTEMS_FATAL_SOURCE_EXCEPTION.
*/
void _CPU_Exception_frame_print( const CPU_Exception_frame *frame );
/**
- * @ingroup CPUEndian
- * The following routine swaps the endian format of an unsigned int.
- * It must be static because it is referenced indirectly.
+ * @ingroup CPUEndian
+ *
+ * The following routine swaps the endian format of an unsigned int.
+ * It must be static because it is referenced indirectly.
*
- * This version will work on any processor, but if there is a better
- * way for your CPU PLEASE use it. The most common way to do this is to:
+ * This version will work on any processor, but if there is a better
+ * way for your CPU PLEASE use it. The most common way to do this is to:
*
- * swap least significant two bytes with 16-bit rotate
- * swap upper and lower 16-bits
- * swap most significant two bytes with 16-bit rotate
+ * swap least significant two bytes with 16-bit rotate
+ * swap upper and lower 16-bits
+ * swap most significant two bytes with 16-bit rotate
*
- * Some CPUs have special instructions which swap a 32-bit quantity in
- * a single instruction (e.g. i486). It is probably best to avoid
- * an "endian swapping control bit" in the CPU. One good reason is
- * that interrupts would probably have to be disabled to ensure that
- * an interrupt does not try to access the same "chunk" with the wrong
- * endian. Another good reason is that on some CPUs, the endian bit
- * endianness for ALL fetches -- both code and data -- so the code
- * will be fetched incorrectly.
+ * Some CPUs have special instructions which swap a 32-bit quantity in
+ * a single instruction (e.g. i486). It is probably best to avoid
+ * an "endian swapping control bit" in the CPU. One good reason is
+ * that interrupts would probably have to be disabled to ensure that
+ * an interrupt does not try to access the same "chunk" with the wrong
+ * endian. Another good reason is that on some CPUs, the endian bit
+ * endianness for ALL fetches -- both code and data -- so the code
+ * will be fetched incorrectly.
*
- * @param[in] value is the value to be swapped
- * @return the value after being endian swapped
+ * @param[in] value is the value to be swapped
+ * @return the value after being endian swapped
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
static inline uint32_t CPU_swap_u32(
uint32_t value
@@ -1329,11 +1361,12 @@ static inline uint32_t CPU_swap_u32(
}
/**
- * @ingroup CPUEndian
- * This routine swaps a 16 bir quantity.
+ * @ingroup CPUEndian
+ *
+ * This routine swaps a 16 bir quantity.
*
- * @param[in] value is the value to be swapped
- * @return the value after being endian swapped
+ * @param[in] value is the value to be swapped
+ * @return the value after being endian swapped
*/
#define CPU_swap_u16( value ) \
(((value&0xff) << 8) | ((value >> 8)&0xff))
diff --git a/cpukit/score/cpu/no_cpu/rtems/score/cpu_asm.h b/cpukit/score/cpu/no_cpu/rtems/score/cpu_asm.h
index e3797a93f9..94dfdc11e8 100644
--- a/cpukit/score/cpu/no_cpu/rtems/score/cpu_asm.h
+++ b/cpukit/score/cpu/no_cpu/rtems/score/cpu_asm.h
@@ -1,11 +1,15 @@
/**
- * @file rtems/score/cpu_asm.h
+ * @file
+ *
+ * @brief No-CPU Assembly File
+ *
+ * Very loose template for an include file for the cpu_asm.? file
+ * if it is implemented as a ".S" file (preprocessed by cpp) instead
+ * of a ".s" file (preprocessed by gm4 or gasp).
*/
/*
- * Very loose template for an include file for the cpu_asm.? file
- * if it is implemented as a ".S" file (preprocessed by cpp) instead
- * of a ".s" file (preprocessed by gm4 or gasp).
+ *
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
diff --git a/cpukit/score/cpu/no_cpu/rtems/score/types.h b/cpukit/score/cpu/no_cpu/rtems/score/types.h
index 74240aa1e4..81ae8ccf15 100644
--- a/cpukit/score/cpu/no_cpu/rtems/score/types.h
+++ b/cpukit/score/cpu/no_cpu/rtems/score/types.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/types.h
+ * @file
+ *
+ * @brief No-CPU Type Definitions
+ *
+ * This include file contains type definitions pertaining to the Intel
+ * no_cpu processor family.
*/
/*
- * This include file contains type definitions pertaining to the Intel
- * no_cpu processor family.
- *
* COPYRIGHT (c) 1989-2006.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/powerpc/rtems/asm.h b/cpukit/score/cpu/powerpc/rtems/asm.h
index 594e3232bb..62571ad4eb 100644
--- a/cpukit/score/cpu/powerpc/rtems/asm.h
+++ b/cpukit/score/cpu/powerpc/rtems/asm.h
@@ -1,17 +1,20 @@
/**
- * @file rtems/asm.h
+ * @file
+ *
+ * @brief Address the Problems Caused by Incompatible Flavor of
+ * Assemblers and Toolsets
*
- * This include file attempts to address the problems
- * caused by incompatible flavors of assemblers and
- * toolsets. It primarily addresses variations in the
- * use of leading underscores on symbols and the requirement
- * that register names be preceded by a %.
+ * This include file attempts to address the problems
+ * caused by incompatible flavors of assemblers and
+ * toolsets. It primarily addresses variations in the
+ * use of leading underscores on symbols and the requirement
+ * that register names be preceded by a %.
+ *
+ * NOTE: The spacing in the use of these macros
+ * is critical to them working as advertised.
*/
/*
- * NOTE: The spacing in the use of these macros
- * is critical to them working as advertised.
- *
* COPYRIGHT:
*
* This file is based on similar code found in newlib available
diff --git a/cpukit/score/cpu/powerpc/rtems/powerpc/registers.h b/cpukit/score/cpu/powerpc/rtems/powerpc/registers.h
index 7090203a02..a64291ed15 100644
--- a/cpukit/score/cpu/powerpc/rtems/powerpc/registers.h
+++ b/cpukit/score/cpu/powerpc/rtems/powerpc/registers.h
@@ -1,6 +1,12 @@
-/*
+/**
+ * @file
+ *
+ * @brief PowerPc MSR and Registers Access Definitions
+ *
* This file contains some powerpc MSR and registers access definitions.
- *
+ */
+
+/*
* COPYRIGHT (C) 1999 Eric Valette (valette@crf.canon.fr)
* Canon Centre Recherche France.
*
diff --git a/cpukit/score/cpu/powerpc/rtems/score/cpu.h b/cpukit/score/cpu/powerpc/rtems/score/cpu.h
index e776f3ccf2..37d8c34bb9 100644
--- a/cpukit/score/cpu/powerpc/rtems/score/cpu.h
+++ b/cpukit/score/cpu/powerpc/rtems/score/cpu.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/score/cpu.h
+ * @file
+ *
+ * @brief PowerPC CPU Department Source
*/
/*
diff --git a/cpukit/score/cpu/powerpc/rtems/score/powerpc.h b/cpukit/score/cpu/powerpc/rtems/score/powerpc.h
index bee0695000..691c81ce83 100644
--- a/cpukit/score/cpu/powerpc/rtems/score/powerpc.h
+++ b/cpukit/score/cpu/powerpc/rtems/score/powerpc.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/powerpc.h
+ * @file
+ *
+ * @brief IBM/Motorola Power Pc Definitions
+ *
+ * This file contains definitions for the IBM/Motorola PowerPC
+ * family members.
*/
/*
- * This file contains definitions for the IBM/Motorola PowerPC
- * family members.
- *
* Author: Andrew Bray <andy@i-cubed.co.uk>
*
* COPYRIGHT (c) 1995 by i-cubed ltd.
diff --git a/cpukit/score/cpu/powerpc/rtems/score/types.h b/cpukit/score/cpu/powerpc/rtems/score/types.h
index 1f61bfe6ef..0b5f16e6b9 100644
--- a/cpukit/score/cpu/powerpc/rtems/score/types.h
+++ b/cpukit/score/cpu/powerpc/rtems/score/types.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/types.h
+ * @file
+ *
+ * @brief PowerPC CPU Type Definitions
+ *
+ * This include file contains type definitions pertaining to the PowerPC
+ * processor family.
*/
/*
- * This include file contains type definitions pertaining to the PowerPC
- * processor family.
- *
* Author: Andrew Bray <andy@i-cubed.co.uk>
*
* COPYRIGHT (c) 1995 by i-cubed ltd.
diff --git a/cpukit/score/cpu/sh/rtems/asm.h b/cpukit/score/cpu/sh/rtems/asm.h
index b2cbce6020..d7ad694365 100644
--- a/cpukit/score/cpu/sh/rtems/asm.h
+++ b/cpukit/score/cpu/sh/rtems/asm.h
@@ -1,20 +1,23 @@
/**
- * @file rtems/asm.h
+ * @file
*
- * This include file attempts to address the problems
- * caused by incompatible flavors of assemblers and
- * toolsets. It primarily addresses variations in the
- * use of leading underscores on symbols and the requirement
- * that register names be preceded by a %.
+ * @brief Address the Problems Caused by Incompatible Flavor of
+ * Assemblers and Toolsets
+ *
+ * This include file attempts to address the problems
+ * caused by incompatible flavors of assemblers and
+ * toolsets. It primarily addresses variations in the
+ * use of leading underscores on symbols and the requirement
+ * that register names be preceded by a %.
+ *
+ * @note The spacing in the use of these macros
+ * is critical to them working as advertised.
*/
/*
* Authors: Ralf Corsepius (corsepiu@faw.uni-ulm.de) and
* Bernd Becker (becker@faw.uni-ulm.de)
*
- * NOTE: The spacing in the use of these macros
- * is critical to them working as advertised.
- *
* COPYRIGHT:
*
* This file is based on similar code found in newlib available
diff --git a/cpukit/score/cpu/sh/rtems/score/sh.h b/cpukit/score/cpu/sh/rtems/score/sh.h
index 507a812bc7..e7ab9c0850 100644
--- a/cpukit/score/cpu/sh/rtems/score/sh.h
+++ b/cpukit/score/cpu/sh/rtems/score/sh.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/sh.h
+ * @file
+ *
+ * @brief Hitachi SH CPU Department Source
+ *
+ * This include file contains information pertaining to the Hitachi SH
+ * processor.
*/
/*
- * This include file contains information pertaining to the Hitachi SH
- * processor.
- *
* Authors: Ralf Corsepius (corsepiu@faw.uni-ulm.de) and
* Bernd Becker (becker@faw.uni-ulm.de)
*
diff --git a/cpukit/score/cpu/sh/rtems/score/sh_io.h b/cpukit/score/cpu/sh/rtems/score/sh_io.h
index 6cb1ffcb0f..fcbdbcee42 100644
--- a/cpukit/score/cpu/sh/rtems/score/sh_io.h
+++ b/cpukit/score/cpu/sh/rtems/score/sh_io.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/sh_io.h
+ * @file
+ *
+ * @brief Macros to Access Memory Mapped Devices on the SH7000-Architecture
+ *
+ * These are some macros to access memory mapped devices
+ * on the SH7000-architecture.
*/
/*
- * These are some macros to access memory mapped devices
- * on the SH7000-architecture.
- *
* Inspired from the linux kernel's include/asm/io.h
*
* Authors: Ralf Corsepius (corsepiu@faw.uni-ulm.de) and
diff --git a/cpukit/score/cpu/sh/rtems/score/types.h b/cpukit/score/cpu/sh/rtems/score/types.h
index 8f0b06c79c..5943a42bc9 100644
--- a/cpukit/score/cpu/sh/rtems/score/types.h
+++ b/cpukit/score/cpu/sh/rtems/score/types.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/types.h
+ * @file
+ *
+ * @brief Hitachi SH CPU Type Definitions
+ *
+ * This include file contains information pertaining to the Hitachi SH
+ * processor.
*/
/*
- * This include file contains information pertaining to the Hitachi SH
- * processor.
- *
* Authors: Ralf Corsepius (corsepiu@faw.uni-ulm.de) and
* Bernd Becker (becker@faw.uni-ulm.de)
*
diff --git a/cpukit/score/cpu/sparc/rtems/asm.h b/cpukit/score/cpu/sparc/rtems/asm.h
index 530197eeb8..a2b11f63fc 100644
--- a/cpukit/score/cpu/sparc/rtems/asm.h
+++ b/cpukit/score/cpu/sparc/rtems/asm.h
@@ -1,17 +1,20 @@
/**
- * @file rtems/asm.h
+ * @file
*
- * This include file attempts to address the problems
- * caused by incompatible flavors of assemblers and
- * toolsets. It primarily addresses variations in the
- * use of leading underscores on symbols and the requirement
- * that register names be preceded by a %.
+ * @brief Address the Problems Caused by Incompatible Flavor of
+ * Assemblers and Toolsets
+ *
+ * This include file attempts to address the problems
+ * caused by incompatible flavors of assemblers and
+ * toolsets. It primarily addresses variations in the
+ * use of leading underscores on symbols and the requirement
+ * that register names be preceded by a %.
+ *
+ * NOTE: The spacing in the use of these macros
+ * is critical to them working as advertised.
*/
/*
- * NOTE: The spacing in the use of these macros
- * is critical to them working as advertised.
- *
* COPYRIGHT:
*
* This file is based on similar code found in newlib available
diff --git a/cpukit/score/cpu/sparc/rtems/score/cpu.h b/cpukit/score/cpu/sparc/rtems/score/cpu.h
index 6e88b9efcb..610235568b 100644
--- a/cpukit/score/cpu/sparc/rtems/score/cpu.h
+++ b/cpukit/score/cpu/sparc/rtems/score/cpu.h
@@ -1,8 +1,10 @@
/**
- * @file rtems/score/cpu.h
+ * @file
*
- * This include file contains information pertaining to the port of
- * the executive to the SPARC processor.
+ * @brief SPARC CPU Department Source
+ *
+ * This include file contains information pertaining to the port of
+ * the executive to the SPARC processor.
*/
/*
@@ -27,94 +29,94 @@ extern "C" {
/* conditional compilation parameters */
/**
- * Should the calls to _Thread_Enable_dispatch be inlined?
+ * Should the calls to _Thread_Enable_dispatch be inlined?
*
- * - If TRUE, then they are inlined.
- * - If FALSE, then a subroutine call is made.
+ * - If TRUE, then they are inlined.
+ * - If FALSE, then a subroutine call is made.
*
- * On this port, it is faster to inline _Thread_Enable_dispatch.
+ * On this port, it is faster to inline _Thread_Enable_dispatch.
*/
#define CPU_INLINE_ENABLE_DISPATCH TRUE
/**
- * Should the body of the search loops in _Thread_queue_Enqueue_priority
- * be unrolled one time? In unrolled each iteration of the loop examines
- * two "nodes" on the chain being searched. Otherwise, only one node
- * is examined per iteration.
+ * Should the body of the search loops in _Thread_queue_Enqueue_priority
+ * be unrolled one time? In unrolled each iteration of the loop examines
+ * two "nodes" on the chain being searched. Otherwise, only one node
+ * is examined per iteration.
*
- * - If TRUE, then the loops are unrolled.
- * - If FALSE, then the loops are not unrolled.
+ * - If TRUE, then the loops are unrolled.
+ * - If FALSE, then the loops are not unrolled.
*
- * This parameter could go either way on the SPARC. The interrupt flash
- * code is relatively lengthy given the requirements for nops following
- * writes to the psr. But if the clock speed were high enough, this would
- * not represent a great deal of time.
+ * This parameter could go either way on the SPARC. The interrupt flash
+ * code is relatively lengthy given the requirements for nops following
+ * writes to the psr. But if the clock speed were high enough, this would
+ * not represent a great deal of time.
*/
#define CPU_UNROLL_ENQUEUE_PRIORITY TRUE
/**
- * Does the executive manage a dedicated interrupt stack in software?
+ * Does the executive manage a dedicated interrupt stack in software?
*
- * If TRUE, then a stack is allocated in _ISR_Handler_initialization.
- * If FALSE, nothing is done.
+ * If TRUE, then a stack is allocated in _ISR_Handler_initialization.
+ * If FALSE, nothing is done.
*
- * The SPARC does not have a dedicated HW interrupt stack and one has
- * been implemented in SW.
+ * The SPARC does not have a dedicated HW interrupt stack and one has
+ * been implemented in SW.
*/
#define CPU_HAS_SOFTWARE_INTERRUPT_STACK TRUE
/**
- * Does the CPU follow the simple vectored interrupt model?
+ * Does the CPU follow the simple vectored interrupt model?
*
- * - If TRUE, then RTEMS allocates the vector table it internally manages.
- * - If FALSE, then the BSP is assumed to allocate and manage the vector
- * table
+ * - If TRUE, then RTEMS allocates the vector table it internally manages.
+ * - If FALSE, then the BSP is assumed to allocate and manage the vector
+ * table
*
- * THe SPARC is a simple vectored architecture. Usually there is no
- * PIC and the CPU directly vectors the interrupts.
+ * THe SPARC is a simple vectored architecture. Usually there is no
+ * PIC and the CPU directly vectors the interrupts.
*/
#define CPU_SIMPLE_VECTORED_INTERRUPTS TRUE
-/**
- * Does this CPU have hardware support for a dedicated interrupt stack?
+/**
+ * Does this CPU have hardware support for a dedicated interrupt stack?
*
- * - If TRUE, then it must be installed during initialization.
- * - If FALSE, then no installation is performed.
+ * - If TRUE, then it must be installed during initialization.
+ * - If FALSE, then no installation is performed.
*
- * The SPARC does not have a dedicated HW interrupt stack.
+ * The SPARC does not have a dedicated HW interrupt stack.
*/
#define CPU_HAS_HARDWARE_INTERRUPT_STACK FALSE
/**
- * Do we allocate a dedicated interrupt stack in the Interrupt Manager?
+ * Do we allocate a dedicated interrupt stack in the Interrupt Manager?
*
- * - If TRUE, then the memory is allocated during initialization.
- * - If FALSE, then the memory is allocated during initialization.
+ * - If TRUE, then the memory is allocated during initialization.
+ * - If FALSE, then the memory is allocated during initialization.
*
- * The SPARC does not have hardware support for switching to a
- * dedicated interrupt stack. The port includes support for doing this
- * in software.
+ * The SPARC does not have hardware support for switching to a
+ * dedicated interrupt stack. The port includes support for doing this
+ * in software.
*
*/
#define CPU_ALLOCATE_INTERRUPT_STACK TRUE
/**
- * Does the RTEMS invoke the user's ISR with the vector number and
- * a pointer to the saved interrupt frame (1) or just the vector
- * number (0)?
+ * Does the RTEMS invoke the user's ISR with the vector number and
+ * a pointer to the saved interrupt frame (1) or just the vector
+ * number (0)?
*
- * The SPARC port does not pass an Interrupt Stack Frame pointer to
- * interrupt handlers.
+ * The SPARC port does not pass an Interrupt Stack Frame pointer to
+ * interrupt handlers.
*/
#define CPU_ISR_PASSES_FRAME_POINTER 0
/**
- * Does the CPU have hardware floating point?
+ * Does the CPU have hardware floating point?
*
- * - If TRUE, then the FLOATING_POINT task attribute is supported.
- * - If FALSE, then the FLOATING_POINT task attribute is ignored.
+ * - If TRUE, then the FLOATING_POINT task attribute is supported.
+ * - If FALSE, then the FLOATING_POINT task attribute is ignored.
*
- * This is set based upon the multilib settings.
+ * This is set based upon the multilib settings.
*/
#if ( SPARC_HAS_FPU == 1 )
#define CPU_HARDWARE_FP TRUE
@@ -123,123 +125,123 @@ extern "C" {
#endif
/**
- * The SPARC GCC port does not have a software floating point library
- * that requires RTEMS assistance.
+ * The SPARC GCC port does not have a software floating point library
+ * that requires RTEMS assistance.
*/
#define CPU_SOFTWARE_FP FALSE
/**
- * Are all tasks FLOATING_POINT tasks implicitly?
+ * Are all tasks FLOATING_POINT tasks implicitly?
*
- * - If TRUE, then the FLOATING_POINT task attribute is assumed.
- * - If FALSE, then the FLOATING_POINT task attribute is followed.
+ * - If TRUE, then the FLOATING_POINT task attribute is assumed.
+ * - If FALSE, then the FLOATING_POINT task attribute is followed.
*
- * The SPARC GCC port does not implicitly use floating point registers.
+ * The SPARC GCC port does not implicitly use floating point registers.
*/
#define CPU_ALL_TASKS_ARE_FP FALSE
/**
- * Should the IDLE task have a floating point context?
+ * Should the IDLE task have a floating point context?
*
- * - If TRUE, then the IDLE task is created as a FLOATING_POINT task
- * and it has a floating point context which is switched in and out.
- * - If FALSE, then the IDLE task does not have a floating point context.
+ * - If TRUE, then the IDLE task is created as a FLOATING_POINT task
+ * and it has a floating point context which is switched in and out.
+ * - If FALSE, then the IDLE task does not have a floating point context.
*
- * The IDLE task does not have to be floating point on the SPARC.
+ * The IDLE task does not have to be floating point on the SPARC.
*/
#define CPU_IDLE_TASK_IS_FP FALSE
/**
- * Should the saving of the floating point registers be deferred
- * until a context switch is made to another different floating point
- * task?
+ * Should the saving of the floating point registers be deferred
+ * until a context switch is made to another different floating point
+ * task?
*
- * - If TRUE, then the floating point context will not be stored until
- * necessary. It will remain in the floating point registers and not
- * disturned until another floating point task is switched to.
+ * - If TRUE, then the floating point context will not be stored until
+ * necessary. It will remain in the floating point registers and not
+ * disturned until another floating point task is switched to.
*
- * - If FALSE, then the floating point context is saved when a floating
- * point task is switched out and restored when the next floating point
- * task is restored. The state of the floating point registers between
- * those two operations is not specified.
+ * - If FALSE, then the floating point context is saved when a floating
+ * point task is switched out and restored when the next floating point
+ * task is restored. The state of the floating point registers between
+ * those two operations is not specified.
*
- * On the SPARC, we can disable the FPU for integer only tasks so
- * it is safe to defer floating point context switches.
+ * On the SPARC, we can disable the FPU for integer only tasks so
+ * it is safe to defer floating point context switches.
*/
#define CPU_USE_DEFERRED_FP_SWITCH TRUE
/**
- * Does this port provide a CPU dependent IDLE task implementation?
+ * Does this port provide a CPU dependent IDLE task implementation?
*
- * - If TRUE, then the routine _CPU_Thread_Idle_body
- * must be provided and is the default IDLE thread body instead of
- * _CPU_Thread_Idle_body.
+ * - If TRUE, then the routine _CPU_Thread_Idle_body
+ * must be provided and is the default IDLE thread body instead of
+ * _CPU_Thread_Idle_body.
*
- * - If FALSE, then use the generic IDLE thread body if the BSP does
- * not provide one.
+ * - If FALSE, then use the generic IDLE thread body if the BSP does
+ * not provide one.
*
- * The SPARC architecture does not have a low power or halt instruction.
- * It is left to the BSP and/or CPU specific code to provide an IDLE
- * thread body which is aware of low power modes.
+ * The SPARC architecture does not have a low power or halt instruction.
+ * It is left to the BSP and/or CPU specific code to provide an IDLE
+ * thread body which is aware of low power modes.
*/
#define CPU_PROVIDES_IDLE_THREAD_BODY FALSE
/**
- * Does the stack grow up (toward higher addresses) or down
- * (toward lower addresses)?
+ * Does the stack grow up (toward higher addresses) or down
+ * (toward lower addresses)?
*
- * - If TRUE, then the grows upward.
- * - If FALSE, then the grows toward smaller addresses.
+ * - If TRUE, then the grows upward.
+ * - If FALSE, then the grows toward smaller addresses.
*
- * The stack grows to lower addresses on the SPARC.
+ * The stack grows to lower addresses on the SPARC.
*/
#define CPU_STACK_GROWS_UP FALSE
/**
- * The following is the variable attribute used to force alignment
- * of critical data structures. On some processors it may make
- * sense to have these aligned on tighter boundaries than
- * the minimum requirements of the compiler in order to have as
- * much of the critical data area as possible in a cache line.
+ * The following is the variable attribute used to force alignment
+ * of critical data structures. On some processors it may make
+ * sense to have these aligned on tighter boundaries than
+ * the minimum requirements of the compiler in order to have as
+ * much of the critical data area as possible in a cache line.
*
- * The SPARC does not appear to have particularly strict alignment
- * requirements. This value was chosen to take advantages of caches.
+ * The SPARC does not appear to have particularly strict alignment
+ * requirements. This value was chosen to take advantages of caches.
*/
#define CPU_STRUCTURE_ALIGNMENT __attribute__ ((aligned (16)))
#define CPU_TIMESTAMP_USE_INT64_INLINE TRUE
/**
- * Define what is required to specify how the network to host conversion
- * routines are handled.
+ * Define what is required to specify how the network to host conversion
+ * routines are handled.
*
- * The SPARC is big endian.
+ * The SPARC is big endian.
*/
#define CPU_BIG_ENDIAN TRUE
/**
- * Define what is required to specify how the network to host conversion
- * routines are handled.
+ * Define what is required to specify how the network to host conversion
+ * routines are handled.
*
- * The SPARC is NOT little endian.
+ * The SPARC is NOT little endian.
*/
#define CPU_LITTLE_ENDIAN FALSE
/**
- * The following defines the number of bits actually used in the
- * interrupt field of the task mode. How those bits map to the
- * CPU interrupt levels is defined by the routine _CPU_ISR_Set_level().
+ * The following defines the number of bits actually used in the
+ * interrupt field of the task mode. How those bits map to the
+ * CPU interrupt levels is defined by the routine _CPU_ISR_Set_level().
*
- * The SPARC has 16 interrupt levels in the PIL field of the PSR.
+ * The SPARC has 16 interrupt levels in the PIL field of the PSR.
*/
#define CPU_MODES_INTERRUPT_MASK 0x0000000F
#ifndef ASM
/**
- * This structure represents the organization of the minimum stack frame
- * for the SPARC. More framing information is required in certain situaions
- * such as when there are a large number of out parameters or when the callee
- * must save floating point registers.
+ * This structure represents the organization of the minimum stack frame
+ * for the SPARC. More framing information is required in certain situaions
+ * such as when there are a large number of out parameters or when the callee
+ * must save floating point registers.
*/
typedef struct {
/** This is the offset of the l0 register. */
@@ -278,8 +280,8 @@ typedef struct {
void *structure_return_address;
/*
- * The following are for the callee to save the register arguments in
- * should this be necessary.
+ * The following are for the callee to save the register arguments in
+ * should this be necessary.
*/
/** This is the offset of the register for saved argument 0. */
uint32_t saved_arg0;
@@ -354,35 +356,36 @@ typedef struct {
/**
* @defgroup Contexts SPARC Context Structures
*
- * Generally there are 2 types of context to save.
- * + Interrupt registers to save
- * + Task level registers to save
+ * @ingroup Score
+ *
+ * Generally there are 2 types of context to save.
+ * + Interrupt registers to save
+ * + Task level registers to save
*
- * This means we have the following 3 context items:
- * + task level context stuff:: Context_Control
- * + floating point task stuff:: Context_Control_fp
- * + special interrupt level context :: Context_Control_interrupt
+ * This means we have the following 3 context items:
+ * + task level context stuff:: Context_Control
+ * + floating point task stuff:: Context_Control_fp
+ * + special interrupt level context :: Context_Control_interrupt
*
- * On the SPARC, we are relatively conservative in that we save most
- * of the CPU state in the context area. The ET (enable trap) bit and
- * the CWP (current window pointer) fields of the PSR are considered
- * system wide resources and are not maintained on a per-thread basis.
+ * On the SPARC, we are relatively conservative in that we save most
+ * of the CPU state in the context area. The ET (enable trap) bit and
+ * the CWP (current window pointer) fields of the PSR are considered
+ * system wide resources and are not maintained on a per-thread basis.
*/
+/**@{**/
#ifndef ASM
/**
- * @brief SPARC Basic Context
+ * @brief SPARC basic context.
*
- * @ingroup Contexts
- *
- * This structure defines the basic integer and processor state context
- * for the SPARC architecture.
+ * This structure defines the basic integer and processor state context
+ * for the SPARC architecture.
*/
typedef struct {
/**
- * Using a double g0_g1 will put everything in this structure on a
- * double word boundary which allows us to use double word loads
- * and stores safely in the context switch.
+ * Using a double g0_g1 will put everything in this structure on a
+ * double word boundary which allows us to use double word loads
+ * and stores safely in the context switch.
*/
double g0_g1;
/** This will contain the contents of the g2 register. */
@@ -460,9 +463,9 @@ typedef struct {
} Context_Control;
/**
- * This macro provides a CPU independent way for RTEMS to access the
- * stack pointer in a context structure. The actual name and offset is
- * CPU architecture dependent.
+ * This macro provides a CPU independent way for RTEMS to access the
+ * stack pointer in a context structure. The actual name and offset is
+ * CPU architecture dependent.
*/
#define _CPU_Context_Get_SP( _context ) \
(_context)->o6_sp
@@ -551,11 +554,9 @@ typedef struct {
#ifndef ASM
/**
- * @brief SPARC Basic Context
- *
- * @ingroup Contexts
+ * @brief SPARC basic context.
*
- * This structure defines floating point context area.
+ * This structure defines floating point context area.
*/
typedef struct {
/** This will contain the contents of the f0 and f1 register. */
@@ -640,13 +641,15 @@ typedef struct {
#ifndef ASM
+/** @} */
+
/**
- * @brief Interrupt Stack Frame (ISF)
+ * @brief Interrupt stack frame (ISF).
*
- * Context saved on stack for an interrupt.
+ * Context saved on stack for an interrupt.
*
- * @note The PSR, PC, and NPC are only saved in this structure for the
- * benefit of the user's handler.
+ * NOTE: The PSR, PC, and NPC are only saved in this structure for the
+ * benefit of the user's handler.
*/
typedef struct {
/** On an interrupt, we must save the minimum stack frame. */
@@ -748,27 +751,27 @@ typedef struct {
#ifndef ASM
/**
- * This variable is contains the initialize context for the FP unit.
- * It is filled in by _CPU_Initialize and copied into the task's FP
- * context area during _CPU_Context_Initialize.
+ * This variable is contains the initialize context for the FP unit.
+ * It is filled in by _CPU_Initialize and copied into the task's FP
+ * context area during _CPU_Context_Initialize.
*/
SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context CPU_STRUCTURE_ALIGNMENT;
/**
- * This flag is context switched with each thread. It indicates
- * that THIS thread has an _ISR_Dispatch stack frame on its stack.
- * By using this flag, we can avoid nesting more interrupt dispatching
- * attempts on a previously interrupted thread's stack.
+ * This flag is context switched with each thread. It indicates
+ * that THIS thread has an _ISR_Dispatch stack frame on its stack.
+ * By using this flag, we can avoid nesting more interrupt dispatching
+ * attempts on a previously interrupted thread's stack.
*/
SCORE_EXTERN volatile uint32_t _CPU_ISR_Dispatch_disable;
/**
- * The following type defines an entry in the SPARC's trap table.
+ * The following type defines an entry in the SPARC's trap table.
*
- * @note The instructions chosen are RTEMS dependent although one is
- * obligated to use two of the four instructions to perform a
- * long jump. The other instructions load one register with the
- * trap type (a.k.a. vector) and another with the psr.
+ * NOTE: The instructions chosen are RTEMS dependent although one is
+ * obligated to use two of the four instructions to perform a
+ * long jump. The other instructions load one register with the
+ * trap type (a.k.a. vector) and another with the psr.
*/
typedef struct {
/** This will contain a "mov %psr, %l0" instruction. */
@@ -782,52 +785,52 @@ typedef struct {
} CPU_Trap_table_entry;
/**
- * This is the set of opcodes for the instructions loaded into a trap
- * table entry. The routine which installs a handler is responsible
- * for filling in the fields for the _handler address and the _vector
- * trap type.
+ * This is the set of opcodes for the instructions loaded into a trap
+ * table entry. The routine which installs a handler is responsible
+ * for filling in the fields for the _handler address and the _vector
+ * trap type.
*
- * The constants following this structure are masks for the fields which
- * must be filled in when the handler is installed.
+ * The constants following this structure are masks for the fields which
+ * must be filled in when the handler is installed.
*/
extern const CPU_Trap_table_entry _CPU_Trap_slot_template;
/**
- * The size of the floating point context area.
+ * The size of the floating point context area.
*/
#define CPU_CONTEXT_FP_SIZE sizeof( Context_Control_fp )
#endif
/**
- * Amount of extra stack (above minimum stack size) required by
- * MPCI receive server thread. Remember that in a multiprocessor
- * system this thread must exist and be able to process all directives.
+ * Amount of extra stack (above minimum stack size) required by
+ * MPCI receive server thread. Remember that in a multiprocessor
+ * system this thread must exist and be able to process all directives.
*/
#define CPU_MPCI_RECEIVE_SERVER_EXTRA_STACK 1024
/**
- * This defines the number of entries in the ISR_Vector_table managed
- * by the executive.
- *
- * On the SPARC, there are really only 256 vectors. However, the executive
- * has no easy, fast, reliable way to determine which traps are synchronous
- * and which are asynchronous. By default, synchronous traps return to the
- * instruction which caused the interrupt. So if you install a software
- * trap handler as an executive interrupt handler (which is desirable since
- * RTEMS takes care of window and register issues), then the executive needs
- * to know that the return address is to the trap rather than the instruction
- * following the trap.
- *
- * So vectors 0 through 255 are treated as regular asynchronous traps which
- * provide the "correct" return address. Vectors 256 through 512 are assumed
- * by the executive to be synchronous and to require that the return address
- * be fudged.
- *
- * If you use this mechanism to install a trap handler which must reexecute
- * the instruction which caused the trap, then it should be installed as
- * an asynchronous trap. This will avoid the executive changing the return
- * address.
+ * This defines the number of entries in the ISR_Vector_table managed
+ * by the executive.
+ *
+ * On the SPARC, there are really only 256 vectors. However, the executive
+ * has no easy, fast, reliable way to determine which traps are synchronous
+ * and which are asynchronous. By default, synchronous traps return to the
+ * instruction which caused the interrupt. So if you install a software
+ * trap handler as an executive interrupt handler (which is desirable since
+ * RTEMS takes care of window and register issues), then the executive needs
+ * to know that the return address is to the trap rather than the instruction
+ * following the trap.
+ *
+ * So vectors 0 through 255 are treated as regular asynchronous traps which
+ * provide the "correct" return address. Vectors 256 through 512 are assumed
+ * by the executive to be synchronous and to require that the return address
+ * be fudged.
+ *
+ * If you use this mechanism to install a trap handler which must reexecute
+ * the instruction which caused the trap, then it should be installed as
+ * an asynchronous trap. This will avoid the executive changing the return
+ * address.
*/
#define CPU_INTERRUPT_NUMBER_OF_VECTORS 256
@@ -838,18 +841,18 @@ extern const CPU_Trap_table_entry _CPU_Trap_slot_template;
#define CPU_INTERRUPT_MAXIMUM_VECTOR_NUMBER 511
/**
- * This is the bit step in a vector number to indicate it is being installed
- * as a synchronous trap.
+ * This is the bit step in a vector number to indicate it is being installed
+ * as a synchronous trap.
*/
#define SPARC_SYNCHRONOUS_TRAP_BIT_MASK 0x100
/**
- * This macro indicates that @a _trap as an asynchronous trap.
+ * This macro indicates that @a _trap as an asynchronous trap.
*/
#define SPARC_ASYNCHRONOUS_TRAP( _trap ) (_trap)
/**
- * This macro indicates that @a _trap as a synchronous trap.
+ * This macro indicates that @a _trap as a synchronous trap.
*/
#define SPARC_SYNCHRONOUS_TRAP( _trap ) ((_trap) + 256 )
@@ -859,69 +862,69 @@ extern const CPU_Trap_table_entry _CPU_Trap_slot_template;
#define SPARC_REAL_TRAP_NUMBER( _trap ) ((_trap) % 256)
/**
- * This is defined if the port has a special way to report the ISR nesting
- * level. Most ports maintain the variable _ISR_Nest_level.
+ * This is defined if the port has a special way to report the ISR nesting
+ * level. Most ports maintain the variable _ISR_Nest_level.
*/
#define CPU_PROVIDES_ISR_IS_IN_PROGRESS FALSE
/**
- * Should be large enough to run all tests. This ensures
- * that a "reasonable" small application should not have any problems.
+ * Should be large enough to run all tests. This ensures
+ * that a "reasonable" small application should not have any problems.
*
- * This appears to be a fairly generous number for the SPARC since
- * represents a call depth of about 20 routines based on the minimum
- * stack frame.
+ * This appears to be a fairly generous number for the SPARC since
+ * represents a call depth of about 20 routines based on the minimum
+ * stack frame.
*/
#define CPU_STACK_MINIMUM_SIZE (1024*4)
#define CPU_SIZEOF_POINTER 4
/**
- * CPU's worst alignment requirement for data types on a byte boundary. This
- * alignment does not take into account the requirements for the stack.
+ * CPU's worst alignment requirement for data types on a byte boundary. This
+ * alignment does not take into account the requirements for the stack.
*
- * On the SPARC, this is required for double word loads and stores.
+ * On the SPARC, this is required for double word loads and stores.
*/
#define CPU_ALIGNMENT 8
/**
- * This number corresponds to the byte alignment requirement for the
- * heap handler. This alignment requirement may be stricter than that
- * for the data types alignment specified by CPU_ALIGNMENT. It is
- * common for the heap to follow the same alignment requirement as
- * CPU_ALIGNMENT. If the CPU_ALIGNMENT is strict enough for the heap,
- * then this should be set to CPU_ALIGNMENT.
+ * This number corresponds to the byte alignment requirement for the
+ * heap handler. This alignment requirement may be stricter than that
+ * for the data types alignment specified by CPU_ALIGNMENT. It is
+ * common for the heap to follow the same alignment requirement as
+ * CPU_ALIGNMENT. If the CPU_ALIGNMENT is strict enough for the heap,
+ * then this should be set to CPU_ALIGNMENT.
*
- * @note This does not have to be a power of 2. It does have to
- * be greater or equal to than CPU_ALIGNMENT.
+ * NOTE: This does not have to be a power of 2. It does have to
+ * be greater or equal to than CPU_ALIGNMENT.
*/
#define CPU_HEAP_ALIGNMENT CPU_ALIGNMENT
/**
- * This number corresponds to the byte alignment requirement for memory
- * buffers allocated by the partition manager. This alignment requirement
- * may be stricter than that for the data types alignment specified by
- * CPU_ALIGNMENT. It is common for the partition to follow the same
- * alignment requirement as CPU_ALIGNMENT. If the CPU_ALIGNMENT is strict
- * enough for the partition, then this should be set to CPU_ALIGNMENT.
+ * This number corresponds to the byte alignment requirement for memory
+ * buffers allocated by the partition manager. This alignment requirement
+ * may be stricter than that for the data types alignment specified by
+ * CPU_ALIGNMENT. It is common for the partition to follow the same
+ * alignment requirement as CPU_ALIGNMENT. If the CPU_ALIGNMENT is strict
+ * enough for the partition, then this should be set to CPU_ALIGNMENT.
*
- * @note This does not have to be a power of 2. It does have to
- * be greater or equal to than CPU_ALIGNMENT.
+ * NOTE: This does not have to be a power of 2. It does have to
+ * be greater or equal to than CPU_ALIGNMENT.
*/
#define CPU_PARTITION_ALIGNMENT CPU_ALIGNMENT
/**
- * This number corresponds to the byte alignment requirement for the
- * stack. This alignment requirement may be stricter than that for the
- * data types alignment specified by CPU_ALIGNMENT. If the CPU_ALIGNMENT
- * is strict enough for the stack, then this should be set to 0.
+ * This number corresponds to the byte alignment requirement for the
+ * stack. This alignment requirement may be stricter than that for the
+ * data types alignment specified by CPU_ALIGNMENT. If the CPU_ALIGNMENT
+ * is strict enough for the stack, then this should be set to 0.
*
- * @note This must be a power of 2 either 0 or greater than CPU_ALIGNMENT.
+ * NOTE: This must be a power of 2 either 0 or greater than CPU_ALIGNMENT.
*
- * The alignment restrictions for the SPARC are not that strict but this
- * should unsure that the stack is always sufficiently alignment that the
- * window overflow, underflow, and flush routines can use double word loads
- * and stores.
+ * The alignment restrictions for the SPARC are not that strict but this
+ * should unsure that the stack is always sufficiently alignment that the
+ * window overflow, underflow, and flush routines can use double word loads
+ * and stores.
*/
#define CPU_STACK_ALIGNMENT 16
@@ -932,49 +935,49 @@ extern const CPU_Trap_table_entry _CPU_Trap_slot_template;
*/
/**
- * Support routine to initialize the RTEMS vector table after it is allocated.
+ * Support routine to initialize the RTEMS vector table after it is allocated.
*/
#define _CPU_Initialize_vectors()
/**
- * Disable all interrupts for a critical section. The previous
- * level is returned in _level.
+ * Disable all interrupts for a critical section. The previous
+ * level is returned in _level.
*/
#define _CPU_ISR_Disable( _level ) \
(_level) = sparc_disable_interrupts()
/**
- * Enable interrupts to the previous level (returned by _CPU_ISR_Disable).
- * This indicates the end of a critical section. The parameter
- * _level is not modified.
+ * Enable interrupts to the previous level (returned by _CPU_ISR_Disable).
+ * This indicates the end of a critical section. The parameter
+ * _level is not modified.
*/
#define _CPU_ISR_Enable( _level ) \
sparc_enable_interrupts( _level )
/**
- * This temporarily restores the interrupt to _level before immediately
- * disabling them again. This is used to divide long critical
- * sections into two or more parts. The parameter _level is not
- * modified.
+ * This temporarily restores the interrupt to _level before immediately
+ * disabling them again. This is used to divide long critical
+ * sections into two or more parts. The parameter _level is not
+ * modified.
*/
#define _CPU_ISR_Flash( _level ) \
sparc_flash_interrupts( _level )
/**
- * Map interrupt level in task mode onto the hardware that the CPU
- * actually provides. Currently, interrupt levels which do not
- * map onto the CPU in a straight fashion are undefined.
+ * Map interrupt level in task mode onto the hardware that the CPU
+ * actually provides. Currently, interrupt levels which do not
+ * map onto the CPU in a straight fashion are undefined.
*/
#define _CPU_ISR_Set_level( _newlevel ) \
sparc_enable_interrupts( _newlevel << 8)
/**
- * @brief Obtain the Current Interrupt Disable Level
+ * @brief Obtain the current interrupt disable level.
*
- * This method is invoked to return the current interrupt disable level.
+ * This method is invoked to return the current interrupt disable level.
*
- * @return This method returns the current interrupt disable level.
- */
+ * @return This method returns the current interrupt disable level.
+ */
uint32_t _CPU_ISR_Get_level( void );
/* end of ISR handler macros */
@@ -982,15 +985,15 @@ uint32_t _CPU_ISR_Get_level( void );
/* Context handler macros */
/**
- * Initialize the context to a state suitable for starting a
- * task after a context restore operation. Generally, this
- * involves:
+ * Initialize the context to a state suitable for starting a
+ * task after a context restore operation. Generally, this
+ * involves:
*
- * - setting a starting address
- * - preparing the stack
- * - preparing the stack and frame pointers
- * - setting the proper interrupt level in the context
- * - initializing the floating point context
+ * - setting a starting address
+ * - preparing the stack
+ * - preparing the stack and frame pointers
+ * - setting the proper interrupt level in the context
+ * - initializing the floating point context
*
* @param[in] the_context points to the context area
* @param[in] stack_base is the low address of the allocated stack area
@@ -999,7 +1002,7 @@ uint32_t _CPU_ISR_Get_level( void );
* @param[in] entry_point is the task's entry point
* @param[in] is_fp is set to TRUE if the task is a floating point task
*
- * @note Implemented as a subroutine for the SPARC port.
+ * NOTE: Implemented as a subroutine for the SPARC port.
*/
void _CPU_Context_Initialize(
Context_Control *the_context,
@@ -1011,17 +1014,17 @@ void _CPU_Context_Initialize(
);
/**
- * This macro is invoked from _Thread_Handler to do whatever CPU
- * specific magic is required that must be done in the context of
- * the thread when it starts.
+ * This macro is invoked from _Thread_Handler to do whatever CPU
+ * specific magic is required that must be done in the context of
+ * the thread when it starts.
*
- * On the SPARC, this is setting the frame pointer so GDB is happy.
- * Make GDB stop unwinding at _Thread_Handler, previous register window
- * Frame pointer is 0 and calling address must be a function with starting
- * with a SAVE instruction. If return address is leaf-function (no SAVE)
- * GDB will not look at prev reg window fp.
+ * On the SPARC, this is setting the frame pointer so GDB is happy.
+ * Make GDB stop unwinding at _Thread_Handler, previous register window
+ * Frame pointer is 0 and calling address must be a function with starting
+ * with a SAVE instruction. If return address is leaf-function (no SAVE)
+ * GDB will not look at prev reg window fp.
*
- * _Thread_Handler is known to start with SAVE.
+ * _Thread_Handler is known to start with SAVE.
*/
#define _CPU_Context_Initialization_at_thread_begin() \
do { \
@@ -1029,30 +1032,30 @@ void _CPU_Context_Initialize(
} while (0)
/**
- * This routine is responsible for somehow restarting the currently
- * executing task.
+ * This routine is responsible for somehow restarting the currently
+ * executing task.
*
- * On the SPARC, this is is relatively painless but requires a small
- * amount of wrapper code before using the regular restore code in
- * of the context switch.
+ * On the SPARC, this is is relatively painless but requires a small
+ * amount of wrapper code before using the regular restore code in
+ * of the context switch.
*/
#define _CPU_Context_Restart_self( _the_context ) \
_CPU_Context_restore( (_the_context) );
/**
- * The FP context area for the SPARC is a simple structure and nothing
- * special is required to find the "starting load point"
+ * The FP context area for the SPARC is a simple structure and nothing
+ * special is required to find the "starting load point"
*/
#define _CPU_Context_Fp_start( _base, _offset ) \
( (void *) _Addresses_Add_offset( (_base), (_offset) ) )
/**
- * This routine initializes the FP context area passed to it to.
+ * This routine initializes the FP context area passed to it to.
*
- * The SPARC allows us to use the simple initialization model
- * in which an "initial" FP context was saved into _CPU_Null_fp_context
- * at CPU initialization and it is simply copied into the destination
- * context.
+ * The SPARC allows us to use the simple initialization model
+ * in which an "initial" FP context was saved into _CPU_Null_fp_context
+ * at CPU initialization and it is simply copied into the destination
+ * context.
*/
#define _CPU_Context_Initialize_fp( _destination ) \
do { \
@@ -1064,9 +1067,9 @@ void _CPU_Context_Initialize(
/* Fatal Error manager macros */
/**
- * This routine copies _error into a known place -- typically a stack
- * location or a register, optionally disables interrupts, and
- * halts/stops the CPU.
+ * This routine copies _error into a known place -- typically a stack
+ * location or a register, optionally disables interrupts, and
+ * halts/stops the CPU.
*/
#define _CPU_Fatal_halt( _error ) \
do { \
@@ -1083,14 +1086,14 @@ void _CPU_Context_Initialize(
#if ( SPARC_HAS_BITSCAN == 0 )
/**
- * The SPARC port uses the generic C algorithm for bitfield scan if the
- * CPU model does not have a scan instruction.
+ * The SPARC port uses the generic C algorithm for bitfield scan if the
+ * CPU model does not have a scan instruction.
*/
#define CPU_USE_GENERIC_BITFIELD_CODE TRUE
/**
- * The SPARC port uses the generic C algorithm for bitfield scan if the
- * CPU model does not have a scan instruction. Thus is needs the generic
- * data table used by that algorithm.
+ * The SPARC port uses the generic C algorithm for bitfield scan if the
+ * CPU model does not have a scan instruction. Thus is needs the generic
+ * data table used by that algorithm.
*/
#define CPU_USE_GENERIC_BITFIELD_DATA TRUE
#else
@@ -1102,21 +1105,21 @@ void _CPU_Context_Initialize(
/* functions */
/**
- * @brief SPARC Specific Initialization
+ * @brief SPARC specific initialization.
*
- * This routine performs CPU dependent initialization.
+ * This routine performs CPU dependent initialization.
*/
void _CPU_Initialize(void);
/**
- * @brief SPARC Specific Raw ISR Installer
+ * @brief SPARC specific raw ISR installer.
*
- * This routine installs @a new_handler to be directly called from the trap
- * table.
+ * This routine installs @a new_handler to be directly called from the trap
+ * table.
*
- * @param[in] vector is the vector number
- * @param[in] new_handler is the new ISR handler
- * @param[in] old_handler will contain the old ISR handler
+ * @param[in] vector is the vector number
+ * @param[in] new_handler is the new ISR handler
+ * @param[in] old_handler will contain the old ISR handler
*/
void _CPU_ISR_install_raw_handler(
uint32_t vector,
@@ -1125,13 +1128,13 @@ void _CPU_ISR_install_raw_handler(
);
/**
- * @brief SPARC Specific RTEMS ISR Installer
+ * @brief SPARC specific RTEMS ISR installer.
*
- * This routine installs an interrupt vector.
+ * This routine installs an interrupt vector.
*
- * @param[in] vector is the vector number
- * @param[in] new_handler is the new ISR handler
- * @param[in] old_handler will contain the old ISR handler
+ * @param[in] vector is the vector number
+ * @param[in] new_handler is the new ISR handler
+ * @param[in] old_handler will contain the old ISR handler
*/
void _CPU_ISR_install_vector(
@@ -1141,12 +1144,12 @@ void _CPU_ISR_install_vector(
);
/**
- * @brief SPARC Specific Context Switch
+ * @brief SPARC specific context switch.
*
- * This routine switches from the run context to the heir context.
+ * This routine switches from the run context to the heir context.
*
- * @param[in] run is the currently executing thread
- * @param[in] heir will become the currently executing thread
+ * @param[in] run is the currently executing thread
+ * @param[in] heir will become the currently executing thread
*/
void _CPU_Context_switch(
Context_Control *run,
@@ -1154,12 +1157,12 @@ void _CPU_Context_switch(
);
/**
- * @brief SPARC Specific Context Restore
+ * @brief SPARC specific context restore.
*
- * This routine is generally used only to restart self in an
- * efficient manner.
+ * This routine is generally used only to restart self in an
+ * efficient manner.
*
- * @param[in] new_context is the context to restore
+ * @param[in] new_context is the context to restore
*/
void _CPU_Context_restore(
Context_Control *new_context
@@ -1167,14 +1170,14 @@ void _CPU_Context_restore(
#if defined(RTEMS_SMP)
/**
- * @brief SPARC Specific Method to Switch to First Task
+ * @brief SPARC specific method to switch to first task.
*
- * This routine is only used to switch to the first task on a
- * secondary core in an SMP configuration. We do not need to
- * flush all the windows and, in fact, this can be dangerous
- * as they may or may not be initialized properly.
+ * This routine is only used to switch to the first task on a
+ * secondary core in an SMP configuration. We do not need to
+ * flush all the windows and, in fact, this can be dangerous
+ * as they may or may not be initialized properly.
*
- * @param[in] new_context is the context to restore
+ * @param[in] new_context is the context to restore
*/
void _CPU_Context_switch_to_first_task_smp(
Context_Control *new_context
@@ -1183,7 +1186,7 @@ void _CPU_Context_restore(
/**
* Macro to access memory and bypass the cache.
*
- * @note address space 1 is uncacheable
+ * NOTE: address space 1 is uncacheable
*/
#define SMP_CPU_SWAP( _address, _value, _previous ) \
do { \
@@ -1200,22 +1203,22 @@ void _CPU_Context_restore(
#endif
/**
- * @brief SPARC Specific Save FPU Method
+ * @brief SPARC specific save FPU method.
*
- * This routine saves the floating point context passed to it.
+ * This routine saves the floating point context passed to it.
*
- * @param[in] fp_context_ptr is the area to save into
+ * @param[in] fp_context_ptr is the area to save into
*/
void _CPU_Context_save_fp(
Context_Control_fp **fp_context_ptr
);
/**
- * @brief SPARC Specific Rstore FPU Method
+ * @brief SPARC specific restore FPU method.
*
- * This routine restores the floating point context passed to it.
+ * This routine restores the floating point context passed to it.
*
- * @param[in] fp_context_ptr is the area to restore from
+ * @param[in] fp_context_ptr is the area to restore from
*/
void _CPU_Context_restore_fp(
Context_Control_fp **fp_context_ptr
@@ -1236,24 +1239,24 @@ static inline void _CPU_Exception_frame_print(
}
/**
- * @brief SPARC Specific Method to Endian Swap an uint32_t
+ * @brief SPARC specific method to endian swap an uint32_t.
*
- * The following routine swaps the endian format of an unsigned int.
- * It must be static because it is referenced indirectly.
+ * The following routine swaps the endian format of an unsigned int.
+ * It must be static because it is referenced indirectly.
*
- * @param[in] value is the value to endian swap
+ * @param[in] value is the value to endian swap
*
- * This version will work on any processor, but if you come across a better
- * way for the SPARC PLEASE use it. The most common way to swap a 32-bit
- * entity as shown below is not any more efficient on the SPARC.
+ * This version will work on any processor, but if you come across a better
+ * way for the SPARC PLEASE use it. The most common way to swap a 32-bit
+ * entity as shown below is not any more efficient on the SPARC.
*
- * - swap least significant two bytes with 16-bit rotate
- * - swap upper and lower 16-bits
- * - swap most significant two bytes with 16-bit rotate
+ * - swap least significant two bytes with 16-bit rotate
+ * - swap upper and lower 16-bits
+ * - swap most significant two bytes with 16-bit rotate
*
- * It is not obvious how the SPARC can do significantly better than the
- * generic code. gcc 2.7.0 only generates about 12 instructions for the
- * following code at optimization level four (i.e. -O4).
+ * It is not obvious how the SPARC can do significantly better than the
+ * generic code. gcc 2.7.0 only generates about 12 instructions for the
+ * following code at optimization level four (i.e. -O4).
*/
static inline uint32_t CPU_swap_u32(
uint32_t value
@@ -1271,11 +1274,11 @@ static inline uint32_t CPU_swap_u32(
}
/**
- * @brief SPARC Specific Method to Endian Swap an uint16_t
+ * @brief SPARC specific method to endian swap an uint16_t.
*
- * The following routine swaps the endian format of a uint16_t.
+ * The following routine swaps the endian format of a uint16_t.
*
- * @param[in] value is the value to endian swap
+ * @param[in] value is the value to endian swap
*/
#define CPU_swap_u16( value ) \
(((value&0xff) << 8) | ((value >> 8)&0xff))
diff --git a/cpukit/score/cpu/sparc/rtems/score/sparc.h b/cpukit/score/cpu/sparc/rtems/score/sparc.h
index 6b7936f2e5..7436cb8d2d 100644
--- a/cpukit/score/cpu/sparc/rtems/score/sparc.h
+++ b/cpukit/score/cpu/sparc/rtems/score/sparc.h
@@ -1,5 +1,8 @@
/**
- * @file rtems/score/sparc.h
+ * @file
+ *
+ * @brief Information Required to Build RTEMS for a Particular Member
+ * of the SPARC Family
*
* This file contains the information required to build
* RTEMS for a particular member of the SPARC family. It does
@@ -42,25 +45,25 @@ extern "C" {
*/
/**
- * Some higher end SPARCs have a bitscan instructions. It would
- * be nice to take advantage of them. Right now, there is no
- * port to a CPU model with this feature and no (untested) code
- * that is based on this feature flag.
+ * Some higher end SPARCs have a bitscan instructions. It would
+ * be nice to take advantage of them. Right now, there is no
+ * port to a CPU model with this feature and no (untested) code
+ * that is based on this feature flag.
*/
#define SPARC_HAS_BITSCAN 0
/**
- * This should be OK until a port to a higher end SPARC processor
- * is made that has more than 8 register windows. If this cannot
- * be determined based on multilib settings (v7/v8/v9), then the
- * cpu_asm.S code that depends on this will have to move to libcpu.
+ * This should be OK until a port to a higher end SPARC processor
+ * is made that has more than 8 register windows. If this cannot
+ * be determined based on multilib settings (v7/v8/v9), then the
+ * cpu_asm.S code that depends on this will have to move to libcpu.
*/
#define SPARC_NUMBER_OF_REGISTER_WINDOWS 8
/**
- * This macro indicates whether this multilib variation has hardware
- * floating point or not. We use the gcc cpp predefine _SOFT_FLOAT
- * to determine that.
+ * This macro indicates whether this multilib variation has hardware
+ * floating point or not. We use the gcc cpp predefine _SOFT_FLOAT
+ * to determine that.
*/
#if defined(_SOFT_FLOAT)
#define SPARC_HAS_FPU 0
@@ -69,8 +72,8 @@ extern "C" {
#endif
/**
- * This macro contains a string describing the multilib variant being
- * build.
+ * This macro contains a string describing the multilib variant being
+ * build.
*/
#if SPARC_HAS_FPU
#define CPU_MODEL_NAME "w/FPU"
@@ -79,7 +82,7 @@ extern "C" {
#endif
/**
- * Define the name of the CPU family.
+ * Define the name of the CPU family.
*/
#define CPU_NAME "SPARC"
@@ -88,9 +91,9 @@ extern "C" {
*/
/**
- * PSR masks and starting bit positions
+ * PSR masks and starting bit positions
*
- * @note Reserved bits are ignored.
+ * NOTE: Reserved bits are ignored.
*/
#if (SPARC_NUMBER_OF_REGISTER_WINDOWS == 8)
#define SPARC_PSR_CWP_MASK 0x07 /* bits 0 - 4 */
@@ -145,7 +148,7 @@ extern "C" {
#ifndef ASM
/**
- * This macro is a standard nop instruction.
+ * This macro is a standard nop instruction.
*/
#define nop() \
do { \
@@ -153,9 +156,9 @@ extern "C" {
} while ( 0 )
/**
- * @brief Macro to Obtain the PSR
+ * @brief Macro to obtain the PSR.
*
- * This macro returns the current contents of the PSR register in @a _psr.
+ * This macro returns the current contents of the PSR register in @a _psr.
*/
#define sparc_get_psr( _psr ) \
do { \
@@ -164,9 +167,9 @@ extern "C" {
} while ( 0 )
/**
- * @brief Macro to Set the PSR
+ * @brief Macro to set the PSR.
*
- * This macro sets the PSR register to the value in @a _psr.
+ * This macro sets the PSR register to the value in @a _psr.
*/
#define sparc_set_psr( _psr ) \
do { \
@@ -177,9 +180,9 @@ extern "C" {
} while ( 0 )
/**
- * @brief Macro to Obtain the TBR
+ * @brief Macro to obtain the TBR.
*
- * This macro returns the current contents of the TBR register in @a _tbr.
+ * This macro returns the current contents of the TBR register in @a _tbr.
*/
#define sparc_get_tbr( _tbr ) \
do { \
@@ -188,9 +191,9 @@ extern "C" {
} while ( 0 )
/**
- * @brief Macro to Set the TBR
+ * @brief Macro to set the TBR.
*
- * This macro sets the TBR register to the value in @a _tbr.
+ * This macro sets the TBR register to the value in @a _tbr.
*/
#define sparc_set_tbr( _tbr ) \
do { \
@@ -198,9 +201,9 @@ extern "C" {
} while ( 0 )
/**
- * @brief Macro to Obtain the WIM
+ * @brief Macro to obtain the WIM.
*
- * This macro returns the current contents of the WIM field in @a _wim.
+ * This macro returns the current contents of the WIM field in @a _wim.
*/
#define sparc_get_wim( _wim ) \
do { \
@@ -208,9 +211,9 @@ extern "C" {
} while ( 0 )
/**
- * @brief Macro to Set the WIM
+ * @brief Macro to set the WIM.
*
- * This macro sets the WIM field to the value in @a _wim.
+ * This macro sets the WIM field to the value in @a _wim.
*/
#define sparc_set_wim( _wim ) \
do { \
@@ -221,9 +224,9 @@ extern "C" {
} while ( 0 )
/**
- * @brief Macro to Obtain the Y Register
+ * @brief Macro to obtain the Y register.
*
- * This macro returns the current contents of the Y register in @a _y.
+ * This macro returns the current contents of the Y register in @a _y.
*/
#define sparc_get_y( _y ) \
do { \
@@ -231,9 +234,9 @@ extern "C" {
} while ( 0 )
/**
- * @brief Macro to Set the Y Register
+ * @brief Macro to set the Y register.
*
- * This macro sets the Y register to the value in @a _y.
+ * This macro sets the Y register to the value in @a _y.
*/
#define sparc_set_y( _y ) \
do { \
@@ -241,29 +244,29 @@ extern "C" {
} while ( 0 )
/**
- * @brief SPARC Disable Processor Interrupts
+ * @brief SPARC disable processor interrupts.
*
- * This method is invoked to disable all maskable interrupts.
+ * This method is invoked to disable all maskable interrupts.
*
- * @return This method returns the entire PSR contents.
+ * @return This method returns the entire PSR contents.
*/
uint32_t sparc_disable_interrupts(void);
/**
- * @brief SPARC Enable Processor Interrupts
+ * @brief SPARC enable processor interrupts.
*
- * This method is invoked to enable all maskable interrupts.
+ * This method is invoked to enable all maskable interrupts.
*
- * @param[in] psr is the PSR returned by @ref sparc_disable_interrupts.
+ * @param[in] psr is the PSR returned by @ref sparc_disable_interrupts.
*/
void sparc_enable_interrupts(uint32_t psr);
/**
- * @brief SPARC Flash Processor Interrupts
+ * @brief SPARC flash processor interrupts.
*
- * This method is invoked to temporarily enable all maskable interrupts.
+ * This method is invoked to temporarily enable all maskable interrupts.
*
- * @param[in] _psr is the PSR returned by @ref sparc_disable_interrupts.
+ * @param[in] _psr is the PSR returned by @ref sparc_disable_interrupts.
*/
#define sparc_flash_interrupts( _psr ) \
do { \
@@ -272,11 +275,11 @@ void sparc_enable_interrupts(uint32_t psr);
} while ( 0 )
/**
- * @brief SPARC Obtain Interrupt Level
+ * @brief SPARC obtain interrupt level.
*
- * This method is invoked to obtain the current interrupt disable level.
+ * This method is invoked to obtain the current interrupt disable level.
*
- * @param[in] _level is the PSR returned by @ref sparc_disable_interrupts.
+ * @param[in] _level is the PSR returned by @ref sparc_disable_interrupts.
*/
#define sparc_get_interrupt_level( _level ) \
do { \
diff --git a/cpukit/score/cpu/sparc/rtems/score/types.h b/cpukit/score/cpu/sparc/rtems/score/types.h
index a8e56b73b2..c684763d1a 100644
--- a/cpukit/score/cpu/sparc/rtems/score/types.h
+++ b/cpukit/score/cpu/sparc/rtems/score/types.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/score/types.h
+ * @file
+ *
+ * @brief SPARC CPU Type Definitions
*
* This include file contains type definitions pertaining to the
* SPARC processor family.
@@ -26,7 +28,7 @@ extern "C" {
#endif
/**
- * @brief Priority Bit Map Type
+ * @brief Priority bit map type.
*
* On the SPARC, there is no bitscan instruction and no penalty associated
* for using 16-bit variables. With no overriding architectural factors,
@@ -35,16 +37,16 @@ extern "C" {
typedef uint16_t Priority_bit_map_Control;
/**
- * @brief SPARC ISR Handler Return Type
+ * @brief SPARC ISR handler return type.
*
- * This is the type which SPARC ISR Handlers return.
+ * This is the type which SPARC ISR Handlers return.
*/
typedef void sparc_isr;
/**
- * @brief SPARC ISR Handler Prototype
+ * @brief SPARC ISR handler prototype.
*
- * This is the prototype for SPARC ISR Handlers.
+ * This is the prototype for SPARC ISR Handlers.
*/
typedef void ( *sparc_isr_entry )( void );
diff --git a/cpukit/score/cpu/sparc64/rtems/asm.h b/cpukit/score/cpu/sparc64/rtems/asm.h
index d670fc6149..f4448b03a5 100644
--- a/cpukit/score/cpu/sparc64/rtems/asm.h
+++ b/cpukit/score/cpu/sparc64/rtems/asm.h
@@ -1,17 +1,20 @@
/**
- * @file rtems/asm.h
+ * @file
*
- * This include file attempts to address the problems
- * caused by incompatible flavors of assemblers and
- * toolsets. It primarily addresses variations in the
- * use of leading underscores on symbols and the requirement
- * that register names be preceded by a %.
+ * @brief Address the Problems Caused by Incompatible Flavor of
+ * Assemblers and Toolsets
+ *
+ * This include file attempts to address the problems
+ * caused by incompatible flavors of assemblers and
+ * toolsets. It primarily addresses variations in the
+ * use of leading underscores on symbols and the requirement
+ * that register names be preceded by a %.
+ *
+ * NOTE: The spacing in the use of these macros
+ * is critical to them working as advertised.
*/
/*
- * NOTE: The spacing in the use of these macros
- * is critical to them working as advertised.
- *
* COPYRIGHT:
*
* This file is based on similar code found in newlib available
diff --git a/cpukit/score/cpu/sparc64/rtems/score/cpu.h b/cpukit/score/cpu/sparc64/rtems/score/cpu.h
index f78400f564..36c7144a19 100644
--- a/cpukit/score/cpu/sparc64/rtems/score/cpu.h
+++ b/cpukit/score/cpu/sparc64/rtems/score/cpu.h
@@ -1,15 +1,19 @@
/**
- * @file rtems/score/cpu.h
+ * @file
+ *
+ * @brief SPARC64 CPU Department Source
+ *
+ * This include file contains information pertaining to the port of
+ * the executive to the SPARC64 processor.
*/
/*
- * This include file contains information pertaining to the port of
- * the executive to the SPARC64 processor.
+ *
*
* COPYRIGHT (c) 1989-2006.
* On-Line Applications Research Corporation (OAR).
*
- * This file is based on the SPARC cpu.h file. Modifications are made
+ * This file is based on the SPARC cpu.h file. Modifications are made
* to support the SPARC64 processor.
* COPYRIGHT (c) 2010. Gedare Bloom.
*
@@ -103,7 +107,7 @@ extern "C" {
/*
* Does the RTEMS invoke the user's ISR with the vector number and
- * a pointer to the saved interrupt frame (1) or just the vector
+ * a pointer to the saved interrupt frame (1) or just the vector
* number (0)?
*/
@@ -191,10 +195,10 @@ extern "C" {
* the minimum requirements of the compiler in order to have as
* much of the critical data area as possible in a cache line.
*
- * The SPARC does not appear to have particularly strict alignment
+ * The SPARC does not appear to have particularly strict alignment
* requirements. This value (16) was chosen to take advantages of caches.
*
- * SPARC 64 requirements on floating point alignment is at least 8,
+ * SPARC 64 requirements on floating point alignment is at least 8,
* and is 16 if quad-word fp instructions are available (e.g. LDQF).
*/
@@ -221,7 +225,7 @@ extern "C" {
#define CPU_MODES_INTERRUPT_MASK 0x0000000F
/*
- * This structure represents the organization of the minimum stack frame
+ * This structure represents the organization of the minimum stack frame
* for the SPARC. More framing information is required in certain situaions
* such as when there are a large number of out parameters or when the callee
* must save floating point registers.
@@ -490,7 +494,7 @@ typedef struct {
* NOTE: The tstate, tpc, and tnpc are saved in this structure
* to allow resetting the TL while still being able to return
* from a trap later. The PIL is saved because
- * if this is an external interrupt, we will mask lower
+ * if this is an external interrupt, we will mask lower
* priority interrupts until finishing. Even though the y register
* is deprecated, gcc still uses it.
*/
@@ -549,11 +553,11 @@ typedef struct {
#define ISF_O7_OFFSET CPU_MINIMUM_STACK_FRAME_SIZE + 0x98
#define ISF_TVEC_OFFSET CPU_MINIMUM_STACK_FRAME_SIZE + 0xA0
-#define CONTEXT_CONTROL_INTERRUPT_FRAME_SIZE CPU_MINIMUM_STACK_FRAME_SIZE + 0xA8
+#define CONTEXT_CONTROL_INTERRUPT_FRAME_SIZE CPU_MINIMUM_STACK_FRAME_SIZE + 0xA8
#ifndef ASM
/*
* This variable is contains the initialize context for the FP unit.
- * It is filled in by _CPU_Initialize and copied into the task's FP
+ * It is filled in by _CPU_Initialize and copied into the task's FP
* context area during _CPU_Context_Initialize.
*/
@@ -592,9 +596,9 @@ SCORE_EXTERN volatile uint32_t _CPU_ISR_Dispatch_disable;
* long jump. The other instructions load one register with the
* trap type (a.k.a. vector) and another with the psr.
*/
-/* For SPARC V9, we must use 6 of these instructions to perform a long
- * jump, because the _handler value is now 64-bits. We also need to store
- * temporary values in the global register set at this trap level. Because
+/* For SPARC V9, we must use 6 of these instructions to perform a long
+ * jump, because the _handler value is now 64-bits. We also need to store
+ * temporary values in the global register set at this trap level. Because
* the handler runs at TL > 0 with GL > 0, it should be OK to use g2 and g3
* to pass parameters to ISR_Handler.
*
@@ -614,7 +618,7 @@ typedef struct {
uint32_t jmp_to_low_of_handler_plus_g3; /* jmp %g3 + %lo(_handler) */
uint32_t mov_vector_g2; /* mov _vector, %g2 */
} CPU_Trap_table_entry;
-
+
/*
* This is the set of opcodes for the instructions loaded into a trap
* table entry. The routine which installs a handler is responsible
@@ -624,11 +628,11 @@ typedef struct {
* The constants following this structure are masks for the fields which
* must be filled in when the handler is installed.
*/
-
+
extern const CPU_Trap_table_entry _CPU_Trap_slot_template;
/*
- * The size of the floating point context area.
+ * The size of the floating point context area.
*/
#define CPU_CONTEXT_FP_SIZE sizeof( Context_Control_fp )
@@ -666,7 +670,7 @@ extern const CPU_Trap_table_entry _CPU_Trap_slot_template;
* an asynchronous trap. This will avoid the executive changing the return
* address.
*/
-/* On SPARC v9, there are 512 vectors. The same philosophy applies to
+/* On SPARC v9, there are 512 vectors. The same philosophy applies to
* vector installation and use, we just provide a larger table.
*/
#define CPU_INTERRUPT_NUMBER_OF_VECTORS 512
@@ -796,14 +800,14 @@ extern const CPU_Trap_table_entry _CPU_Trap_slot_template;
/*
* Map interrupt level in task mode onto the hardware that the CPU
* actually provides. Currently, interrupt levels which do not
- * map onto the CPU in a straight fashion are undefined.
+ * map onto the CPU in a straight fashion are undefined.
*/
#define _CPU_ISR_Set_level( _newlevel ) \
sparc_enable_interrupts( _newlevel)
uint32_t _CPU_ISR_Get_level( void );
-
+
/* end of ISR handler macros */
/* Context handler macros */
@@ -839,7 +843,7 @@ void _CPU_Context_Initialize(
* On the SPARC, this is setting the frame pointer so GDB is happy.
* Make GDB stop unwinding at _Thread_Handler, previous register window
* Frame pointer is 0 and calling address must be a function with starting
- * with a SAVE instruction. If return address is leaf-function (no SAVE)
+ * with a SAVE instruction. If return address is leaf-function (no SAVE)
* GDB will not look at prev reg window fp.
*
* _Thread_Handler is known to start with SAVE.
@@ -852,7 +856,7 @@ void _CPU_Context_Initialize(
/*
* This routine is responsible for somehow restarting the currently
- * executing task.
+ * executing task.
*
* On the SPARC, this is is relatively painless but requires a small
* amount of wrapper code before using the regular restore code in
@@ -874,7 +878,7 @@ void _CPU_Context_Initialize(
* This routine initializes the FP context area passed to it to.
*
* The SPARC allows us to use the simple initialization model
- * in which an "initial" FP context was saved into _CPU_Null_fp_context
+ * in which an "initial" FP context was saved into _CPU_Null_fp_context
* at CPU initialization and it is simply copied into the destination
* context.
*/
@@ -950,7 +954,7 @@ void _CPU_Initialize(void);
* This routine installs new_handler to be directly called from the trap
* table.
*/
-
+
void _CPU_ISR_install_raw_handler(
uint32_t vector,
proc_ptr new_handler,
@@ -970,14 +974,14 @@ void _CPU_ISR_install_vector(
);
#if (CPU_PROVIDES_IDLE_THREAD_BODY == TRUE)
-
+
/*
* _CPU_Thread_Idle_body
*
* Some SPARC implementations have low power, sleep, or idle modes. This
* tries to take advantage of those models.
*/
-
+
void *_CPU_Thread_Idle_body( uintptr_t ignored );
#endif /* CPU_PROVIDES_IDLE_THREAD_BODY */
@@ -1036,7 +1040,7 @@ void _CPU_Exception_frame_print( const CPU_Exception_frame *frame );
* It must be static because it is referenced indirectly.
*
* This version will work on any processor, but if you come across a better
- * way for the SPARC PLEASE use it. The most common way to swap a 32-bit
+ * way for the SPARC PLEASE use it. The most common way to swap a 32-bit
* entity as shown below is not any more efficient on the SPARC.
*
* swap least significant two bytes with 16-bit rotate
@@ -1047,18 +1051,18 @@ void _CPU_Exception_frame_print( const CPU_Exception_frame *frame );
* generic code. gcc 2.7.0 only generates about 12 instructions for the
* following code at optimization level four (i.e. -O4).
*/
-
+
static inline uint32_t CPU_swap_u32(
uint32_t value
)
{
uint32_t byte1, byte2, byte3, byte4, swapped;
-
+
byte4 = (value >> 24) & 0xff;
byte3 = (value >> 16) & 0xff;
byte2 = (value >> 8) & 0xff;
byte1 = value & 0xff;
-
+
swapped = (byte1 << 24) | (byte2 << 16) | (byte3 << 8) | byte4;
return( swapped );
}
diff --git a/cpukit/score/cpu/sparc64/rtems/score/sparc64.h b/cpukit/score/cpu/sparc64/rtems/score/sparc64.h
index b7ac2c5137..b2df9c17a5 100644
--- a/cpukit/score/cpu/sparc64/rtems/score/sparc64.h
+++ b/cpukit/score/cpu/sparc64/rtems/score/sparc64.h
@@ -1,15 +1,18 @@
/**
- * @file rtems/score/sparc64.h
+ * @file
+ *
+ * @brief Information Required to Build RTEMS for a Particular Member
+ * of the SPARC Family
+ *
+ * This include file contains information pertaining to the SPARC
+ * processor family.
*/
/*
- * This include file contains information pertaining to the SPARC
- * processor family.
- *
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
- * This file is based on the SPARC sparc.h file. Modifications are made
+ * This file is based on the SPARC sparc.h file. Modifications are made
* to support the SPARC64 processor.
* COPYRIGHT (c) 2010. Gedare Bloom.
*
@@ -34,19 +37,19 @@ extern "C" {
*
* Currently recognized feature flags:
*
- * + SPARC_HAS_FPU
+ * + SPARC_HAS_FPU
* 0 - no HW FPU
* 1 - has HW FPU (assumed to be compatible w/90C602)
*
- * + SPARC_HAS_BITSCAN
+ * + SPARC_HAS_BITSCAN
* 0 - does not have scan instructions
* 1 - has scan instruction (not currently implemented)
- *
+ *
* + SPARC_NUMBER_OF_REGISTER_WINDOWS
* 8 is the most common number supported by SPARC implementations.
* SPARC_PSR_CWP_MASK is derived from this value.
*/
-
+
/*
* Some higher end SPARCs have a bitscan instructions. It would
* be nice to take advantage of them. Right now, there is no
@@ -67,9 +70,9 @@ extern "C" {
*/
#define SPARC_NUMBER_OF_REGISTER_WINDOWS 8
-
+
/*
- * This should be determined based on some soft float derived
+ * This should be determined based on some soft float derived
* cpp predefine but gcc does not currently give us that information.
*/
@@ -96,7 +99,7 @@ extern "C" {
* Miscellaneous constants
*/
-/*
+/*
* The PSR is deprecated and deleted.
*
* The following registers represent fields of the PSR:
@@ -145,7 +148,7 @@ extern "C" {
#ifdef ASM
-/*
+/*
* To enable the FPU we need to set both PSTATE.pef and FPRS.fef
*/
@@ -237,9 +240,9 @@ extern "C" {
/*
* read the stick register
*
- * Note:
+ * Note:
* stick asr=24, mnemonic=stick
- * Note: stick does not appear to be a valid ASR for US3, although it is
+ * Note: stick does not appear to be a valid ASR for US3, although it is
* implemented in US3i.
*/
#define sparc64_read_stick( _stick ) \
@@ -249,11 +252,11 @@ extern "C" {
} while ( 0 )
/*
- * write the stick_cmpr register
+ * write the stick_cmpr register
*
- * Note:
+ * Note:
* stick_cmpr asr=25, mnemonic=stick_cmpr
- * Note: stick_cmpr does not appear to be a valid ASR for US3, although it is
+ * Note: stick_cmpr does not appear to be a valid ASR for US3, although it is
* implemented in US3i.
*/
#define sparc64_write_stick_cmpr( _stick_cmpr ) \
@@ -280,7 +283,7 @@ extern "C" {
: "0" (_tick_cmpr) ); \
} while ( 0 )
-/*
+/*
* Clear the softint register.
*
* sun4u and sun4v: softint_clr asr = 21, with mnemonic clear_softint
@@ -296,12 +299,12 @@ extern "C" {
/*
* Get and set the Y
*/
-
+
#define sparc_get_y( _y ) \
do { \
__asm__ volatile( "rd %%y, %0" : "=r" (_y) : "0" (_y) ); \
} while ( 0 )
-
+
#define sparc_set_y( _y ) \
do { \
__asm__ volatile( "wr %0, %%y" : "=r" (_y) : "0" (_y) ); \
@@ -310,12 +313,12 @@ extern "C" {
/************* /DEPRECATED ****************/
/*
- * Manipulate the interrupt level in the pstate
+ * Manipulate the interrupt level in the pstate
*/
uint32_t sparc_disable_interrupts(void);
void sparc_enable_interrupts(uint32_t);
-
+
#define sparc_flash_interrupts( _level ) \
do { \
register uint32_t _ignored = 0; \
diff --git a/cpukit/score/cpu/sparc64/rtems/score/types.h b/cpukit/score/cpu/sparc64/rtems/score/types.h
index 3d289a586a..06b7844042 100644
--- a/cpukit/score/cpu/sparc64/rtems/score/types.h
+++ b/cpukit/score/cpu/sparc64/rtems/score/types.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/types.h
+ * @file
+ *
+ * @brief SPARC64 CPU Type Definitions
+ *
+ * This include file contains type definitions pertaining to the
+ * SPARC-v9 processor family.
*/
/*
- * This include file contains type definitions pertaining to the
- * SPARC-v9 processor family.
- *
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/v850/rtems/asm.h b/cpukit/score/cpu/v850/rtems/asm.h
index 09e64da442..265e4967ae 100644
--- a/cpukit/score/cpu/v850/rtems/asm.h
+++ b/cpukit/score/cpu/v850/rtems/asm.h
@@ -1,26 +1,27 @@
/**
- * @file rtems/asm.h
+ * @file
*
- * This include file attempts to address the problems
- * caused by incompatible flavors of assemblers and
- * toolsets. It primarily addresses variations in the
- * use of leading underscores on symbols and the requirement
- * that register names be preceded by a %.
+ * @brief Address the Problems Caused by Incompatible Flavor of
+ * Assemblers and Toolsets
+ *
+ * This include file attempts to address the problems
+ * caused by incompatible flavors of assemblers and
+ * toolsets. It primarily addresses variations in the
+ * use of leading underscores on symbols and the requirement
+ * that register names be preceded by a %.
+ *
+ * @note The spacing in the use of these macros
+ * is critical to them working as advertised.
*/
/*
- * NOTE: The spacing in the use of these macros
- * is critical to them working as advertised.
- *
* COPYRIGHT:
*
* This file is based on similar code found in newlib available
* from ftp.cygnus.com. The file which was used had no copyright
* notice. This file is freely distributable as long as the source
* of the file is noted. This file is:
- */
-
-/*
+ *
* COPYRIGHT (c) 1994-2012.
* On-Line Applications Research Corporation (OAR).
*/
@@ -40,24 +41,24 @@
#ifndef __USER_LABEL_PREFIX__
/**
- * Recent versions of GNU cpp define variables which indicate the
- * need for underscores and percents. If not using GNU cpp or
- * the version does not support this, then you will obviously
- * have to define these as appropriate.
+ * Recent versions of GNU cpp define variables which indicate the
+ * need for underscores and percents. If not using GNU cpp or
+ * the version does not support this, then you will obviously
+ * have to define these as appropriate.
*
- * This symbol is prefixed to all C program symbols.
+ * This symbol is prefixed to all C program symbols.
*/
#define __USER_LABEL_PREFIX__ _
#endif
#ifndef __REGISTER_PREFIX__
/**
- * Recent versions of GNU cpp define variables which indicate the
- * need for underscores and percents. If not using GNU cpp or
- * the version does not support this, then you will obviously
- * have to define these as appropriate.
+ * Recent versions of GNU cpp define variables which indicate the
+ * need for underscores and percents. If not using GNU cpp or
+ * the version does not support this, then you will obviously
+ * have to define these as appropriate.
*
- * This symbol is prefixed to all register names.
+ * This symbol is prefixed to all register names.
*/
#define __REGISTER_PREFIX__
#endif
@@ -97,8 +98,9 @@
#define BEGIN_DATA
/** This macro is used to denote the end of a data section. */
#define END_DATA
-/** This macro is used to denote the beginning of the
- * unitialized data section.
+/**
+ * This macro is used to denote the beginning of the
+ * unitialized data section.
*/
#define BEGIN_BSS
/** This macro is used to denote the end of the unitialized data section. */
@@ -107,18 +109,18 @@
#define END
/**
- * This macro is used to declare a public global symbol.
+ * This macro is used to declare a public global symbol.
*
- * @note This must be tailored for a particular flavor of the C compiler.
- * They may need to put underscores in front of the symbols.
+ * @note This must be tailored for a particular flavor of the C compiler.
+ * They may need to put underscores in front of the symbols.
*/
#define PUBLIC(sym) .globl SYM (sym)
/**
- * This macro is used to prototype a public global symbol.
+ * This macro is used to prototype a public global symbol.
*
- * @note This must be tailored for a particular flavor of the C compiler.
- * They may need to put underscores in front of the symbols.
+ * @note This must be tailored for a particular flavor of the C compiler.
+ * They may need to put underscores in front of the symbols.
*/
#define EXTERN(sym) .globl SYM (sym)
diff --git a/cpukit/score/cpu/v850/rtems/score/cpu.h b/cpukit/score/cpu/v850/rtems/score/cpu.h
index b6fb59d7b6..c0b6f9e2ca 100644
--- a/cpukit/score/cpu/v850/rtems/score/cpu.h
+++ b/cpukit/score/cpu/v850/rtems/score/cpu.h
@@ -1,10 +1,10 @@
/**
- * @file rtems/score/cpu.h
- */
-
-/*
- * This include file contains information pertaining to the v850
- * processor.
+ * @file
+ *
+ * @brief V850 CPU Department Source
+ *
+ * This include file contains information pertaining to the v850
+ * processor.
*/
/*
@@ -29,418 +29,420 @@ extern "C" {
/* conditional compilation parameters */
/**
- * Should the calls to @ref _Thread_Enable_dispatch be inlined?
+ * Should the calls to @ref _Thread_Enable_dispatch be inlined?
*
- * If TRUE, then they are inlined.
- * If FALSE, then a subroutine call is made.
+ * If TRUE, then they are inlined.
+ * If FALSE, then a subroutine call is made.
*
- * This conditional is an example of the classic trade-off of size
- * versus speed. Inlining the call (TRUE) typically increases the
- * size of RTEMS while speeding up the enabling of dispatching.
+ * This conditional is an example of the classic trade-off of size
+ * versus speed. Inlining the call (TRUE) typically increases the
+ * size of RTEMS while speeding up the enabling of dispatching.
*
- * @note In general, the @ref _Thread_Dispatch_disable_level will
- * only be 0 or 1 unless you are in an interrupt handler and that
- * interrupt handler invokes the executive.] When not inlined
- * something calls @ref _Thread_Enable_dispatch which in turns calls
- * @ref _Thread_Dispatch. If the enable dispatch is inlined, then
- * one subroutine call is avoided entirely.
+ * @note In general, the @ref _Thread_Dispatch_disable_level will
+ * only be 0 or 1 unless you are in an interrupt handler and that
+ * interrupt handler invokes the executive.] When not inlined
+ * something calls @ref _Thread_Enable_dispatch which in turns calls
+ * @ref _Thread_Dispatch. If the enable dispatch is inlined, then
+ * one subroutine call is avoided entirely.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * The v850 is a RISC CPU which typically has enough memory to justify
- * the inlining of this method.
+ * The v850 is a RISC CPU which typically has enough memory to justify
+ * the inlining of this method.
*/
#define CPU_INLINE_ENABLE_DISPATCH TRUE
/**
- * Should the body of the search loops in _Thread_queue_Enqueue_priority
- * be unrolled one time? In unrolled each iteration of the loop examines
- * two "nodes" on the chain being searched. Otherwise, only one node
- * is examined per iteration.
- *
- * If TRUE, then the loops are unrolled.
- * If FALSE, then the loops are not unrolled.
- *
- * The primary factor in making this decision is the cost of disabling
- * and enabling interrupts (_ISR_Flash) versus the cost of rest of the
- * body of the loop. On some CPUs, the flash is more expensive than
- * one iteration of the loop body. In this case, it might be desirable
- * to unroll the loop. It is important to note that on some CPUs, this
- * code is the longest interrupt disable period in RTEMS. So it is
- * necessary to strike a balance when setting this parameter.
- *
- * Port Specific Information:
- *
- * The v850 is a RISC CPU which typically has enough memory to justify
- * the unrolling of this method.
+ * Should the body of the search loops in _Thread_queue_Enqueue_priority
+ * be unrolled one time? In unrolled each iteration of the loop examines
+ * two "nodes" on the chain being searched. Otherwise, only one node
+ * is examined per iteration.
+ *
+ * If TRUE, then the loops are unrolled.
+ * If FALSE, then the loops are not unrolled.
+ *
+ * The primary factor in making this decision is the cost of disabling
+ * and enabling interrupts (_ISR_Flash) versus the cost of rest of the
+ * body of the loop. On some CPUs, the flash is more expensive than
+ * one iteration of the loop body. In this case, it might be desirable
+ * to unroll the loop. It is important to note that on some CPUs, this
+ * code is the longest interrupt disable period in RTEMS. So it is
+ * necessary to strike a balance when setting this parameter.
+ *
+ * Port Specific Information:
+ *
+ * The v850 is a RISC CPU which typically has enough memory to justify
+ * the unrolling of this method.
*/
#define CPU_UNROLL_ENQUEUE_PRIORITY TRUE
/**
- * Does RTEMS manage a dedicated interrupt stack in software?
+ * Does RTEMS manage a dedicated interrupt stack in software?
*
- * If TRUE, then a stack is allocated in @ref _ISR_Handler_initialization.
- * If FALSE, nothing is done.
+ * If TRUE, then a stack is allocated in @ref _ISR_Handler_initialization.
+ * If FALSE, nothing is done.
*
- * If the CPU supports a dedicated interrupt stack in hardware,
- * then it is generally the responsibility of the BSP to allocate it
- * and set it up.
+ * If the CPU supports a dedicated interrupt stack in hardware,
+ * then it is generally the responsibility of the BSP to allocate it
+ * and set it up.
*
- * If the CPU does not support a dedicated interrupt stack, then
- * the porter has two options: (1) execute interrupts on the
- * stack of the interrupted task, and (2) have RTEMS manage a dedicated
- * interrupt stack.
+ * If the CPU does not support a dedicated interrupt stack, then
+ * the porter has two options: (1) execute interrupts on the
+ * stack of the interrupted task, and (2) have RTEMS manage a dedicated
+ * interrupt stack.
*
- * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
+ * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
*
- * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
- * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
- * possible that both are FALSE for a particular CPU. Although it
- * is unclear what that would imply about the interrupt processing
- * procedure on that CPU.
+ * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
+ * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
+ * possible that both are FALSE for a particular CPU. Although it
+ * is unclear what that would imply about the interrupt processing
+ * procedure on that CPU.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * The v850 does not have support for a hardware interrupt stack.
+ * The v850 does not have support for a hardware interrupt stack.
*/
#define CPU_HAS_SOFTWARE_INTERRUPT_STACK TRUE
/**
- * Does the CPU follow the simple vectored interrupt model?
+ * Does the CPU follow the simple vectored interrupt model?
*
- * If TRUE, then RTEMS allocates the vector table it internally manages.
- * If FALSE, then the BSP is assumed to allocate and manage the vector
- * table
+ * If TRUE, then RTEMS allocates the vector table it internally manages.
+ * If FALSE, then the BSP is assumed to allocate and manage the vector
+ * table
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * This port uses the Progammable Interrupt Controller interrupt model.
+ * This port uses the Progammable Interrupt Controller interrupt model.
*/
#define CPU_SIMPLE_VECTORED_INTERRUPTS FALSE
/**
- * Does this CPU have hardware support for a dedicated interrupt stack?
+ * Does this CPU have hardware support for a dedicated interrupt stack?
*
- * If TRUE, then it must be installed during initialization.
- * If FALSE, then no installation is performed.
+ * If TRUE, then it must be installed during initialization.
+ * If FALSE, then no installation is performed.
*
- * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
+ * If this is TRUE, @ref CPU_ALLOCATE_INTERRUPT_STACK should also be TRUE.
*
- * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
- * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
- * possible that both are FALSE for a particular CPU. Although it
- * is unclear what that would imply about the interrupt processing
- * procedure on that CPU.
+ * Only one of @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK and
+ * @ref CPU_HAS_HARDWARE_INTERRUPT_STACK should be set to TRUE. It is
+ * possible that both are FALSE for a particular CPU. Although it
+ * is unclear what that would imply about the interrupt processing
+ * procedure on that CPU.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * The v850 does not have support for a hardware interrupt stack.
+ * The v850 does not have support for a hardware interrupt stack.
*/
#define CPU_HAS_HARDWARE_INTERRUPT_STACK FALSE
/**
- * Does RTEMS allocate a dedicated interrupt stack in the Interrupt Manager?
+ * Does RTEMS allocate a dedicated interrupt stack in the Interrupt Manager?
*
- * If TRUE, then the memory is allocated during initialization.
- * If FALSE, then the memory is allocated during initialization.
+ * If TRUE, then the memory is allocated during initialization.
+ * If FALSE, then the memory is allocated during initialization.
*
- * This should be TRUE is CPU_HAS_SOFTWARE_INTERRUPT_STACK is TRUE.
+ * This should be TRUE is CPU_HAS_SOFTWARE_INTERRUPT_STACK is TRUE.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_ALLOCATE_INTERRUPT_STACK TRUE
/**
- * @def CPU_HARDWARE_FP
+ * @def CPU_HARDWARE_FP
*
- * Does the CPU have hardware floating point?
+ * Does the CPU have hardware floating point?
*
- * If TRUE, then the RTEMS_FLOATING_POINT task attribute is supported.
- * If FALSE, then the RTEMS_FLOATING_POINT task attribute is ignored.
+ * If TRUE, then the RTEMS_FLOATING_POINT task attribute is supported.
+ * If FALSE, then the RTEMS_FLOATING_POINT task attribute is ignored.
*
- * If there is a FP coprocessor such as the i387 or mc68881, then
- * the answer is TRUE.
+ * If there is a FP coprocessor such as the i387 or mc68881, then
+ * the answer is TRUE.
*
- * The macro name "V850_HAS_FPU" should be made CPU specific.
- * It indicates whether or not this CPU model has FP support. For
- * example, it would be possible to have an i386_nofp CPU model
- * which set this to false to indicate that you have an i386 without
- * an i387 and wish to leave floating point support out of RTEMS.
+ * The macro name "V850_HAS_FPU" should be made CPU specific.
+ * It indicates whether or not this CPU model has FP support. For
+ * example, it would be possible to have an i386_nofp CPU model
+ * which set this to false to indicate that you have an i386 without
+ * an i387 and wish to leave floating point support out of RTEMS.
*/
/**
- * @def CPU_SOFTWARE_FP
- *
- * Does the CPU have no hardware floating point and GCC provides a
- * software floating point implementation which must be context
- * switched?
- *
- * This feature conditional is used to indicate whether or not there
- * is software implemented floating point that must be context
- * switched. The determination of whether or not this applies
- * is very tool specific and the state saved/restored is also
- * compiler specific.
- *
- * Port Specific Information:
- *
- * Some v850 models do have IEEE hardware floating point support but
- * they do not have any special registers to save or bit(s) which
- * determine if the FPU is enabled. In short, there appears to be nothing
- * related to the floating point operations which impact the RTEMS
- * thread context switch. Thus from an RTEMS perspective, there is really
- * no FPU to manage.
+ * @def CPU_SOFTWARE_FP
+ *
+ * Does the CPU have no hardware floating point and GCC provides a
+ * software floating point implementation which must be context
+ * switched?
+ *
+ * This feature conditional is used to indicate whether or not there
+ * is software implemented floating point that must be context
+ * switched. The determination of whether or not this applies
+ * is very tool specific and the state saved/restored is also
+ * compiler specific.
+ *
+ * Port Specific Information:
+ *
+ * Some v850 models do have IEEE hardware floating point support but
+ * they do not have any special registers to save or bit(s) which
+ * determine if the FPU is enabled. In short, there appears to be nothing
+ * related to the floating point operations which impact the RTEMS
+ * thread context switch. Thus from an RTEMS perspective, there is really
+ * no FPU to manage.
*/
#define CPU_HARDWARE_FP FALSE
#define CPU_SOFTWARE_FP FALSE
/**
- * Are all tasks RTEMS_FLOATING_POINT tasks implicitly?
+ * Are all tasks RTEMS_FLOATING_POINT tasks implicitly?
*
- * If TRUE, then the RTEMS_FLOATING_POINT task attribute is assumed.
- * If FALSE, then the RTEMS_FLOATING_POINT task attribute is followed.
+ * If TRUE, then the RTEMS_FLOATING_POINT task attribute is assumed.
+ * If FALSE, then the RTEMS_FLOATING_POINT task attribute is followed.
*
- * So far, the only CPUs in which this option has been used are the
- * HP PA-RISC and PowerPC. On the PA-RISC, The HP C compiler and
- * gcc both implicitly used the floating point registers to perform
- * integer multiplies. Similarly, the PowerPC port of gcc has been
- * seen to allocate floating point local variables and touch the FPU
- * even when the flow through a subroutine (like vfprintf()) might
- * not use floating point formats.
+ * So far, the only CPUs in which this option has been used are the
+ * HP PA-RISC and PowerPC. On the PA-RISC, The HP C compiler and
+ * gcc both implicitly used the floating point registers to perform
+ * integer multiplies. Similarly, the PowerPC port of gcc has been
+ * seen to allocate floating point local variables and touch the FPU
+ * even when the flow through a subroutine (like vfprintf()) might
+ * not use floating point formats.
*
- * If a function which you would not think utilize the FP unit DOES,
- * then one can not easily predict which tasks will use the FP hardware.
- * In this case, this option should be TRUE.
+ * If a function which you would not think utilize the FP unit DOES,
+ * then one can not easily predict which tasks will use the FP hardware.
+ * In this case, this option should be TRUE.
*
- * If @ref CPU_HARDWARE_FP is FALSE, then this should be FALSE as well.
+ * If @ref CPU_HARDWARE_FP is FALSE, then this should be FALSE as well.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * This should be false until it has been demonstrated that gcc for the
- * v850 generates FPU code when it is unexpected. But even this would
- * not matter since there are no FP specific registers or bits which
- * would be corrupted if an FP operation occurred in an integer only
- * thread.
+ * This should be false until it has been demonstrated that gcc for the
+ * v850 generates FPU code when it is unexpected. But even this would
+ * not matter since there are no FP specific registers or bits which
+ * would be corrupted if an FP operation occurred in an integer only
+ * thread.
*/
#define CPU_ALL_TASKS_ARE_FP FALSE
/**
- * Should the IDLE task have a floating point context?
+ * Should the IDLE task have a floating point context?
*
- * If TRUE, then the IDLE task is created as a RTEMS_FLOATING_POINT task
- * and it has a floating point context which is switched in and out.
- * If FALSE, then the IDLE task does not have a floating point context.
+ * If TRUE, then the IDLE task is created as a RTEMS_FLOATING_POINT task
+ * and it has a floating point context which is switched in and out.
+ * If FALSE, then the IDLE task does not have a floating point context.
*
- * Setting this to TRUE negatively impacts the time required to preempt
- * the IDLE task from an interrupt because the floating point context
- * must be saved as part of the preemption.
+ * Setting this to TRUE negatively impacts the time required to preempt
+ * the IDLE task from an interrupt because the floating point context
+ * must be saved as part of the preemption.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * The IDLE thread should not be using the FPU. Leave this off.
+ * The IDLE thread should not be using the FPU. Leave this off.
*/
#define CPU_IDLE_TASK_IS_FP FALSE
/**
- * Should the saving of the floating point registers be deferred
- * until a context switch is made to another different floating point
- * task?
+ * Should the saving of the floating point registers be deferred
+ * until a context switch is made to another different floating point
+ * task?
*
- * If TRUE, then the floating point context will not be stored until
- * necessary. It will remain in the floating point registers and not
- * disturned until another floating point task is switched to.
+ * If TRUE, then the floating point context will not be stored until
+ * necessary. It will remain in the floating point registers and not
+ * disturned until another floating point task is switched to.
*
- * If FALSE, then the floating point context is saved when a floating
- * point task is switched out and restored when the next floating point
- * task is restored. The state of the floating point registers between
- * those two operations is not specified.
+ * If FALSE, then the floating point context is saved when a floating
+ * point task is switched out and restored when the next floating point
+ * task is restored. The state of the floating point registers between
+ * those two operations is not specified.
*
- * If the floating point context does NOT have to be saved as part of
- * interrupt dispatching, then it should be safe to set this to TRUE.
+ * If the floating point context does NOT have to be saved as part of
+ * interrupt dispatching, then it should be safe to set this to TRUE.
*
- * Setting this flag to TRUE results in using a different algorithm
- * for deciding when to save and restore the floating point context.
- * The deferred FP switch algorithm minimizes the number of times
- * the FP context is saved and restored. The FP context is not saved
- * until a context switch is made to another, different FP task.
- * Thus in a system with only one FP task, the FP context will never
- * be saved or restored.
+ * Setting this flag to TRUE results in using a different algorithm
+ * for deciding when to save and restore the floating point context.
+ * The deferred FP switch algorithm minimizes the number of times
+ * the FP context is saved and restored. The FP context is not saved
+ * until a context switch is made to another, different FP task.
+ * Thus in a system with only one FP task, the FP context will never
+ * be saved or restored.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * See earlier comments. There is no FPU state to manage.
+ * See earlier comments. There is no FPU state to manage.
*/
#define CPU_USE_DEFERRED_FP_SWITCH TRUE
/**
- * Does this port provide a CPU dependent IDLE task implementation?
+ * Does this port provide a CPU dependent IDLE task implementation?
*
- * If TRUE, then the routine @ref _CPU_Thread_Idle_body
- * must be provided and is the default IDLE thread body instead of
- * @ref _CPU_Thread_Idle_body.
+ * If TRUE, then the routine @ref _CPU_Thread_Idle_body
+ * must be provided and is the default IDLE thread body instead of
+ * @ref _CPU_Thread_Idle_body.
*
- * If FALSE, then use the generic IDLE thread body if the BSP does
- * not provide one.
+ * If FALSE, then use the generic IDLE thread body if the BSP does
+ * not provide one.
*
- * This is intended to allow for supporting processors which have
- * a low power or idle mode. When the IDLE thread is executed, then
- * the CPU can be powered down.
+ * This is intended to allow for supporting processors which have
+ * a low power or idle mode. When the IDLE thread is executed, then
+ * the CPU can be powered down.
*
- * The order of precedence for selecting the IDLE thread body is:
+ * The order of precedence for selecting the IDLE thread body is:
*
- * -# BSP provided
- * -# CPU dependent (if provided)
- * -# generic (if no BSP and no CPU dependent)
+ * -# BSP provided
+ * -# CPU dependent (if provided)
+ * -# generic (if no BSP and no CPU dependent)
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * There does not appear to be a reason for the v850 port itself to provide
- * a special idle task.
+ * There does not appear to be a reason for the v850 port itself to provide
+ * a special idle task.
*/
#define CPU_PROVIDES_IDLE_THREAD_BODY FALSE
/**
- * Does the stack grow up (toward higher addresses) or down
- * (toward lower addresses)?
+ * Does the stack grow up (toward higher addresses) or down
+ * (toward lower addresses)?
*
- * If TRUE, then the grows upward.
- * If FALSE, then the grows toward smaller addresses.
+ * If TRUE, then the grows upward.
+ * If FALSE, then the grows toward smaller addresses.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * The v850 stack grows from high addresses to low addresses.
+ * The v850 stack grows from high addresses to low addresses.
*/
#define CPU_STACK_GROWS_UP FALSE
/**
- * The following is the variable attribute used to force alignment
- * of critical RTEMS structures. On some processors it may make
- * sense to have these aligned on tighter boundaries than
- * the minimum requirements of the compiler in order to have as
- * much of the critical data area as possible in a cache line.
+ * The following is the variable attribute used to force alignment
+ * of critical RTEMS structures. On some processors it may make
+ * sense to have these aligned on tighter boundaries than
+ * the minimum requirements of the compiler in order to have as
+ * much of the critical data area as possible in a cache line.
*
- * The placement of this macro in the declaration of the variables
- * is based on the syntactically requirements of the GNU C
- * "__attribute__" extension. For example with GNU C, use
- * the following to force a structures to a 32 byte boundary.
+ * The placement of this macro in the declaration of the variables
+ * is based on the syntactically requirements of the GNU C
+ * "__attribute__" extension. For example with GNU C, use
+ * the following to force a structures to a 32 byte boundary.
*
- * __attribute__ ((aligned (32)))
+ * __attribute__ ((aligned (32)))
*
- * @note Currently only the Priority Bit Map table uses this feature.
- * To benefit from using this, the data must be heavily
- * used so it will stay in the cache and used frequently enough
- * in the executive to justify turning this on.
+ * @note Currently only the Priority Bit Map table uses this feature.
+ * To benefit from using this, the data must be heavily
+ * used so it will stay in the cache and used frequently enough
+ * in the executive to justify turning this on.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * Until proven otherwise, use the compiler default.
+ * Until proven otherwise, use the compiler default.
*/
#define CPU_STRUCTURE_ALIGNMENT
/**
- * The v850 should use 64-bit timestamps and inline them.
+ * The v850 should use 64-bit timestamps and inline them.
*/
#define CPU_TIMESTAMP_USE_INT64_INLINE TRUE
/**
- * @defgroup CPUEndian Processor Dependent Endianness Support
+ * @defgroup CPUEndian Processor Dependent Endianness Support
+ *
+ * This group assists in issues related to processor endianness.
*
- * This group assists in issues related to processor endianness.
*/
+/**@{**/
/**
- * @ingroup CPUEndian
- * Define what is required to specify how the network to host conversion
- * routines are handled.
+ * Define what is required to specify how the network to host conversion
+ * routines are handled.
*
- * @note @a CPU_BIG_ENDIAN and @a CPU_LITTLE_ENDIAN should NOT have the
- * same values.
+ * @note @a CPU_BIG_ENDIAN and @a CPU_LITTLE_ENDIAN should NOT have the
+ * same values.
*
- * @see CPU_LITTLE_ENDIAN
+ * @see CPU_LITTLE_ENDIAN
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * The v850 is little endian.
+ * The v850 is little endian.
*/
#define CPU_BIG_ENDIAN FALSE
/**
- * @ingroup CPUEndian
- * Define what is required to specify how the network to host conversion
- * routines are handled.
+ * Define what is required to specify how the network to host conversion
+ * routines are handled.
*
- * @note @ref CPU_BIG_ENDIAN and @ref CPU_LITTLE_ENDIAN should NOT have the
- * same values.
+ * @note @ref CPU_BIG_ENDIAN and @ref CPU_LITTLE_ENDIAN should NOT have the
+ * same values.
*
- * @see CPU_BIG_ENDIAN
+ * @see CPU_BIG_ENDIAN
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * The v850 is little endian.
+ * The v850 is little endian.
*/
#define CPU_LITTLE_ENDIAN TRUE
+/** @} */
+
/**
- * @ingroup CPUInterrupt
- * The following defines the number of bits actually used in the
- * interrupt field of the task mode. How those bits map to the
- * CPU interrupt levels is defined by the routine @ref _CPU_ISR_Set_level.
+ * @ingroup CPUInterrupt
+ * The following defines the number of bits actually used in the
+ * interrupt field of the task mode. How those bits map to the
+ * CPU interrupt levels is defined by the routine @ref _CPU_ISR_Set_level.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * The v850 only has a single bit in the CPU for interrupt disable/enable.
+ * The v850 only has a single bit in the CPU for interrupt disable/enable.
*/
#define CPU_MODES_INTERRUPT_MASK 0x00000001
/**
* @defgroup CPUContext Processor Dependent Context Management
*
- * From the highest level viewpoint, there are 2 types of context to save.
+ * From the highest level viewpoint, there are 2 types of context to save.
*
- * -# Interrupt registers to save
- * -# Task level registers to save
+ * -# Interrupt registers to save
+ * -# Task level registers to save
*
- * Since RTEMS handles integer and floating point contexts separately, this
- * means we have the following 3 context items:
+ * Since RTEMS handles integer and floating point contexts separately, this
+ * means we have the following 3 context items:
*
- * -# task level context stuff:: Context_Control
- * -# floating point task stuff:: Context_Control_fp
- * -# special interrupt level context :: CPU_Interrupt_frame
+ * -# task level context stuff:: Context_Control
+ * -# floating point task stuff:: Context_Control_fp
+ * -# special interrupt level context :: CPU_Interrupt_frame
*
- * On some processors, it is cost-effective to save only the callee
- * preserved registers during a task context switch. This means
- * that the ISR code needs to save those registers which do not
- * persist across function calls. It is not mandatory to make this
- * distinctions between the caller/callee saves registers for the
- * purpose of minimizing context saved during task switch and on interrupts.
- * If the cost of saving extra registers is minimal, simplicity is the
- * choice. Save the same context on interrupt entry as for tasks in
- * this case.
+ * On some processors, it is cost-effective to save only the callee
+ * preserved registers during a task context switch. This means
+ * that the ISR code needs to save those registers which do not
+ * persist across function calls. It is not mandatory to make this
+ * distinctions between the caller/callee saves registers for the
+ * purpose of minimizing context saved during task switch and on interrupts.
+ * If the cost of saving extra registers is minimal, simplicity is the
+ * choice. Save the same context on interrupt entry as for tasks in
+ * this case.
*
- * Additionally, if gdb is to be made aware of RTEMS tasks for this CPU, then
- * care should be used in designing the context area.
+ * Additionally, if gdb is to be made aware of RTEMS tasks for this CPU, then
+ * care should be used in designing the context area.
*
- * On some CPUs with hardware floating point support, the Context_Control_fp
- * structure will not be used or it simply consist of an array of a
- * fixed number of bytes. This is done when the floating point context
- * is dumped by a "FP save context" type instruction and the format
- * is not really defined by the CPU. In this case, there is no need
- * to figure out the exact format -- only the size. Of course, although
- * this is enough information for RTEMS, it is probably not enough for
- * a debugger such as gdb. But that is another problem.
+ * On some CPUs with hardware floating point support, the Context_Control_fp
+ * structure will not be used or it simply consist of an array of a
+ * fixed number of bytes. This is done when the floating point context
+ * is dumped by a "FP save context" type instruction and the format
+ * is not really defined by the CPU. In this case, there is no need
+ * to figure out the exact format -- only the size. Of course, although
+ * this is enough information for RTEMS, it is probably not enough for
+ * a debugger such as gdb. But that is another problem.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * On the v850, this port saves special registers and those that are
- * callee saved.
+ * On the v850, this port saves special registers and those that are
+ * callee saved.
*/
+/**@{**/
/**
- * @ingroup CPUContext Management
- * This defines the minimal set of integer and processor state registers
- * that must be saved during a voluntary context switch from one thread
- * to another.
+ * This defines the minimal set of integer and processor state registers
+ * that must be saved during a voluntary context switch from one thread
+ * to another.
*/
typedef struct {
uint32_t r1;
@@ -461,21 +463,18 @@ typedef struct {
} Context_Control;
/**
- * @ingroup CPUContext Management
- *
- * This macro returns the stack pointer associated with @a _context.
+ * This macro returns the stack pointer associated with @a _context.
*
- * @param[in] _context is the thread context area to access
+ * @param[in] _context is the thread context area to access
*
- * @return This method returns the stack pointer.
+ * @return This method returns the stack pointer.
*/
#define _CPU_Context_Get_SP( _context ) \
(_context)->r3_stack_pointer
/**
- * @ingroup CPUContext Management
- * This defines the complete set of floating point registers that must
- * be saved during any context switch from one thread to another.
+ * This defines the complete set of floating point registers that must
+ * be saved during any context switch from one thread to another.
*/
typedef struct {
/** FPU registers are listed here */
@@ -483,62 +482,64 @@ typedef struct {
} Context_Control_fp;
/**
- * @ingroup CPUContext Management
- * This defines the set of integer and processor state registers that must
- * be saved during an interrupt. This set does not include any which are
- * in @ref Context_Control.
+ * This defines the set of integer and processor state registers that must
+ * be saved during an interrupt. This set does not include any which are
+ * in @ref Context_Control.
*/
typedef struct {
/** This field is a hint that a port will have a number of integer
- * registers that need to be saved when an interrupt occurs or
- * when a context switch occurs at the end of an ISR.
+ * registers that need to be saved when an interrupt occurs or
+ * when a context switch occurs at the end of an ISR.
*/
uint32_t special_interrupt_register;
} CPU_Interrupt_frame;
+/** @} */
+
/**
- * @defgroup CPUInterrupt Processor Dependent Interrupt Management
+ * @defgroup CPUInterrupt Processor Dependent Interrupt Management
*
- * On some CPUs, RTEMS supports a software managed interrupt stack.
- * This stack is allocated by the Interrupt Manager and the switch
- * is performed in @ref _ISR_Handler. These variables contain pointers
- * to the lowest and highest addresses in the chunk of memory allocated
- * for the interrupt stack. Since it is unknown whether the stack
- * grows up or down (in general), this give the CPU dependent
- * code the option of picking the version it wants to use.
+ * On some CPUs, RTEMS supports a software managed interrupt stack.
+ * This stack is allocated by the Interrupt Manager and the switch
+ * is performed in @ref _ISR_Handler. These variables contain pointers
+ * to the lowest and highest addresses in the chunk of memory allocated
+ * for the interrupt stack. Since it is unknown whether the stack
+ * grows up or down (in general), this give the CPU dependent
+ * code the option of picking the version it wants to use.
*
- * @note These two variables are required if the macro
- * @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK is defined as TRUE.
+ * @note These two variables are required if the macro
+ * @ref CPU_HAS_SOFTWARE_INTERRUPT_STACK is defined as TRUE.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
+/**@{**/
/**
- * @ingroup CPUContext
- * The size of the floating point context area. On some CPUs this
- * will not be a "sizeof" because the format of the floating point
- * area is not defined -- only the size is. This is usually on
- * CPUs with a "floating point save context" instruction.
+ * @ingroup CPUContext
+ * The size of the floating point context area. On some CPUs this
+ * will not be a "sizeof" because the format of the floating point
+ * area is not defined -- only the size is. This is usually on
+ * CPUs with a "floating point save context" instruction.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * The v850 does not need a floating point context but this needs to be
- * defined so confdefs.h.
+ * The v850 does not need a floating point context but this needs to be
+ * defined so confdefs.h.
*/
/* #define CPU_CONTEXT_FP_SIZE sizeof( Context_Control_fp ) */
#define CPU_CONTEXT_FP_SIZE 0
/**
- * Amount of extra stack (above minimum stack size) required by
- * MPCI receive server thread. Remember that in a multiprocessor
- * system this thread must exist and be able to process all directives.
+ * Amount of extra stack (above minimum stack size) required by
+ * MPCI receive server thread. Remember that in a multiprocessor
+ * system this thread must exist and be able to process all directives.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * There is no reason to think the v850 needs extra MPCI receive
- * server stack.
+ * There is no reason to think the v850 needs extra MPCI receive
+ * server stack.
*/
#define CPU_MPCI_RECEIVE_SERVER_EXTRA_STACK 0
@@ -546,109 +547,108 @@ typedef struct {
/* XXX evaluate removing it */
#if 0
/**
- * @ingroup CPUInterrupt
- * This defines the number of entries in the @ref _ISR_Vector_table managed
- * by RTEMS.
+ * This defines the number of entries in the @ref _ISR_Vector_table managed
+ * by RTEMS.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define CPU_INTERRUPT_NUMBER_OF_VECTORS 32
#endif
/**
- * @ingroup CPUInterrupt
- * This defines the highest interrupt vector number for this port.
+ * This defines the highest interrupt vector number for this port.
*/
#define CPU_INTERRUPT_MAXIMUM_VECTOR_NUMBER (CPU_INTERRUPT_NUMBER_OF_VECTORS - 1)
/**
- * @ingroup CPUInterrupt
- * This is defined if the port has a special way to report the ISR nesting
- * level. Most ports maintain the variable @a _ISR_Nest_level.
+ * This is defined if the port has a special way to report the ISR nesting
+ * level. Most ports maintain the variable @a _ISR_Nest_level.
*/
#define CPU_PROVIDES_ISR_IS_IN_PROGRESS FALSE
+/** @} */
+
/**
- * @ingroup CPUContext
- * Should be large enough to run all RTEMS tests. This ensures
- * that a "reasonable" small application should not have any problems.
+ * @ingroup CPUContext
+ * Should be large enough to run all RTEMS tests. This ensures
+ * that a "reasonable" small application should not have any problems.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * This should be very conservative on the v850.
+ * This should be very conservative on the v850.
*/
#define CPU_STACK_MINIMUM_SIZE (1024*4)
#define CPU_SIZEOF_POINTER 4
/**
- * CPU's worst alignment requirement for data types on a byte boundary. This
- * alignment does not take into account the requirements for the stack.
+ * CPU's worst alignment requirement for data types on a byte boundary. This
+ * alignment does not take into account the requirements for the stack.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * There is no apparent reason why this should be larger than 8.
+ * There is no apparent reason why this should be larger than 8.
*/
#define CPU_ALIGNMENT 8
/**
- * This number corresponds to the byte alignment requirement for the
- * heap handler. This alignment requirement may be stricter than that
- * for the data types alignment specified by @ref CPU_ALIGNMENT. It is
- * common for the heap to follow the same alignment requirement as
- * @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is strict enough for
- * the heap, then this should be set to @ref CPU_ALIGNMENT.
- *
- * @note This does not have to be a power of 2 although it should be
- * a multiple of 2 greater than or equal to 2. The requirement
- * to be a multiple of 2 is because the heap uses the least
- * significant field of the front and back flags to indicate
- * that a block is in use or free. So you do not want any odd
- * length blocks really putting length data in that bit.
- *
- * On byte oriented architectures, @ref CPU_HEAP_ALIGNMENT normally will
- * have to be greater or equal to than @ref CPU_ALIGNMENT to ensure that
- * elements allocated from the heap meet all restrictions.
- *
- * Port Specific Information:
- *
- * There is no apparent reason why this should be larger than CPU_ALIGNMENT.
+ * This number corresponds to the byte alignment requirement for the
+ * heap handler. This alignment requirement may be stricter than that
+ * for the data types alignment specified by @ref CPU_ALIGNMENT. It is
+ * common for the heap to follow the same alignment requirement as
+ * @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is strict enough for
+ * the heap, then this should be set to @ref CPU_ALIGNMENT.
+ *
+ * @note This does not have to be a power of 2 although it should be
+ * a multiple of 2 greater than or equal to 2. The requirement
+ * to be a multiple of 2 is because the heap uses the least
+ * significant field of the front and back flags to indicate
+ * that a block is in use or free. So you do not want any odd
+ * length blocks really putting length data in that bit.
+ *
+ * On byte oriented architectures, @ref CPU_HEAP_ALIGNMENT normally will
+ * have to be greater or equal to than @ref CPU_ALIGNMENT to ensure that
+ * elements allocated from the heap meet all restrictions.
+ *
+ * Port Specific Information:
+ *
+ * There is no apparent reason why this should be larger than CPU_ALIGNMENT.
*/
#define CPU_HEAP_ALIGNMENT CPU_ALIGNMENT
/**
- * This number corresponds to the byte alignment requirement for memory
- * buffers allocated by the partition manager. This alignment requirement
- * may be stricter than that for the data types alignment specified by
- * @ref CPU_ALIGNMENT. It is common for the partition to follow the same
- * alignment requirement as @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is
- * strict enough for the partition, then this should be set to
- * @ref CPU_ALIGNMENT.
+ * This number corresponds to the byte alignment requirement for memory
+ * buffers allocated by the partition manager. This alignment requirement
+ * may be stricter than that for the data types alignment specified by
+ * @ref CPU_ALIGNMENT. It is common for the partition to follow the same
+ * alignment requirement as @ref CPU_ALIGNMENT. If the @ref CPU_ALIGNMENT is
+ * strict enough for the partition, then this should be set to
+ * @ref CPU_ALIGNMENT.
*
- * @note This does not have to be a power of 2. It does have to
- * be greater or equal to than @ref CPU_ALIGNMENT.
+ * @note This does not have to be a power of 2. It does have to
+ * be greater or equal to than @ref CPU_ALIGNMENT.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * There is no apparent reason why this should be larger than CPU_ALIGNMENT.
+ * There is no apparent reason why this should be larger than CPU_ALIGNMENT.
*/
#define CPU_PARTITION_ALIGNMENT CPU_ALIGNMENT
/**
- * This number corresponds to the byte alignment requirement for the
- * stack. This alignment requirement may be stricter than that for the
- * data types alignment specified by @ref CPU_ALIGNMENT. If the
- * @ref CPU_ALIGNMENT is strict enough for the stack, then this should be
- * set to 0.
+ * This number corresponds to the byte alignment requirement for the
+ * stack. This alignment requirement may be stricter than that for the
+ * data types alignment specified by @ref CPU_ALIGNMENT. If the
+ * @ref CPU_ALIGNMENT is strict enough for the stack, then this should be
+ * set to 0.
*
- * @note This must be a power of 2 either 0 or greater than @ref CPU_ALIGNMENT.
+ * @note This must be a power of 2 either 0 or greater than @ref CPU_ALIGNMENT.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * The v850 has enough RAM where alignment to 16 may be desirable depending
- * on the cache properties. But this remains to be demonstrated.
+ * The v850 has enough RAM where alignment to 16 may be desirable depending
+ * on the cache properties. But this remains to be demonstrated.
*/
#define CPU_STACK_ALIGNMENT 4
@@ -657,15 +657,19 @@ typedef struct {
*/
/**
- * @ingroup CPUInterrupt
- * Disable all interrupts for an RTEMS critical section. The previous
- * level is returned in @a _isr_cookie.
+ * @addtogroup CPUInterrupt
+ */
+/**@{**/
+
+/**
+ * Disable all interrupts for an RTEMS critical section. The previous
+ * level is returned in @a _isr_cookie.
*
- * @param[out] _isr_cookie will contain the previous level cookie
+ * @param[out] _isr_cookie will contain the previous level cookie
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * On the v850, we need to save the PSW and use "di" to disable interrupts.
+ * On the v850, we need to save the PSW and use "di" to disable interrupts.
*/
#define _CPU_ISR_Disable( _isr_cookie ) \
do { \
@@ -677,16 +681,15 @@ typedef struct {
} while (0)
/**
- * @ingroup CPUInterrupt
- * Enable interrupts to the previous level (returned by _CPU_ISR_Disable).
- * This indicates the end of an RTEMS critical section. The parameter
- * @a _isr_cookie is not modified.
+ * Enable interrupts to the previous level (returned by _CPU_ISR_Disable).
+ * This indicates the end of an RTEMS critical section. The parameter
+ * @a _isr_cookie is not modified.
*
- * @param[in] _isr_cookie contain the previous level cookie
+ * @param[in] _isr_cookie contain the previous level cookie
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * On the v850, we simply need to restore the PSW.
+ * On the v850, we simply need to restore the PSW.
*/
#define _CPU_ISR_Enable( _isr_cookie ) \
do { \
@@ -696,17 +699,16 @@ typedef struct {
} while (0)
/**
- * @ingroup CPUInterrupt
- * This temporarily restores the interrupt to @a _isr_cookie before immediately
- * disabling them again. This is used to divide long RTEMS critical
- * sections into two or more parts. The parameter @a _isr_cookie is not
- * modified.
+ * This temporarily restores the interrupt to @a _isr_cookie before immediately
+ * disabling them again. This is used to divide long RTEMS critical
+ * sections into two or more parts. The parameter @a _isr_cookie is not
+ * modified.
*
- * @param[in] _isr_cookie contain the previous level cookie
+ * @param[in] _isr_cookie contain the previous level cookie
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * This saves at least one instruction over using enable/disable back to back.
+ * This saves at least one instruction over using enable/disable back to back.
*/
#define _CPU_ISR_Flash( _isr_cookie ) \
do { \
@@ -716,21 +718,19 @@ typedef struct {
} while (0)
/**
- * @ingroup CPUInterrupt
- *
- * This routine and @ref _CPU_ISR_Get_level
- * Map the interrupt level in task mode onto the hardware that the CPU
- * actually provides. Currently, interrupt levels which do not
- * map onto the CPU in a generic fashion are undefined. Someday,
- * it would be nice if these were "mapped" by the application
- * via a callout. For example, m68k has 8 levels 0 - 7, levels
- * 8 - 255 would be available for bsp/application specific meaning.
- * This could be used to manage a programmable interrupt controller
- * via the rtems_task_mode directive.
- *
- * Port Specific Information:
- *
- * On the v850, level 0 is enabled. Non-zero is disabled.
+ * This routine and @ref _CPU_ISR_Get_level
+ * Map the interrupt level in task mode onto the hardware that the CPU
+ * actually provides. Currently, interrupt levels which do not
+ * map onto the CPU in a generic fashion are undefined. Someday,
+ * it would be nice if these were "mapped" by the application
+ * via a callout. For example, m68k has 8 levels 0 - 7, levels
+ * 8 - 255 would be available for bsp/application specific meaning.
+ * This could be used to manage a programmable interrupt controller
+ * via the rtems_task_mode directive.
+ *
+ * Port Specific Information:
+ *
+ * On the v850, level 0 is enabled. Non-zero is disabled.
*/
#define _CPU_ISR_Set_level( new_level ) \
do { \
@@ -741,52 +741,53 @@ typedef struct {
} while (0)
/**
- * @ingroup CPUInterrupt
- * Return the current interrupt disable level for this task in
- * the format used by the interrupt level portion of the task mode.
+ * Return the current interrupt disable level for this task in
+ * the format used by the interrupt level portion of the task mode.
*
- * @note This routine usually must be implemented as a subroutine.
+ * @note This routine usually must be implemented as a subroutine.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * This method is implemented in C on the v850.
+ * This method is implemented in C on the v850.
*/
uint32_t _CPU_ISR_Get_level( void );
/* end of ISR handler macros */
+/** @} */
+
/* Context handler macros */
/**
- * @ingroup CPUContext
- * Initialize the context to a state suitable for starting a
- * task after a context restore operation. Generally, this
- * involves:
- *
- * - setting a starting address
- * - preparing the stack
- * - preparing the stack and frame pointers
- * - setting the proper interrupt level in the context
- * - initializing the floating point context
- *
- * This routine generally does not set any unnecessary register
- * in the context. The state of the "general data" registers is
- * undefined at task start time.
- *
- * @param[in] _the_context is the context structure to be initialized
- * @param[in] _stack_base is the lowest physical address of this task's stack
- * @param[in] _size is the size of this task's stack
- * @param[in] _isr is the interrupt disable level
- * @param[in] _entry_point is the thread's entry point. This is
- * always @a _Thread_Handler
- * @param[in] _is_fp is TRUE if the thread is to be a floating
- * point thread. This is typically only used on CPUs where the
- * FPU may be easily disabled by software such as on the SPARC
- * where the PSR contains an enable FPU bit.
- *
- * Port Specific Information:
- *
- * This method is implemented in C on the v850.
+ * @ingroup CPUContext
+ * Initialize the context to a state suitable for starting a
+ * task after a context restore operation. Generally, this
+ * involves:
+ *
+ * - setting a starting address
+ * - preparing the stack
+ * - preparing the stack and frame pointers
+ * - setting the proper interrupt level in the context
+ * - initializing the floating point context
+ *
+ * This routine generally does not set any unnecessary register
+ * in the context. The state of the "general data" registers is
+ * undefined at task start time.
+ *
+ * @param[in] _the_context is the context structure to be initialized
+ * @param[in] _stack_base is the lowest physical address of this task's stack
+ * @param[in] _size is the size of this task's stack
+ * @param[in] _isr is the interrupt disable level
+ * @param[in] _entry_point is the thread's entry point. This is
+ * always @a _Thread_Handler
+ * @param[in] _is_fp is TRUE if the thread is to be a floating
+ * point thread. This is typically only used on CPUs where the
+ * FPU may be easily disabled by software such as on the SPARC
+ * where the PSR contains an enable FPU bit.
+ *
+ * Port Specific Information:
+ *
+ * This method is implemented in C on the v850.
*/
void _CPU_Context_Initialize(
Context_Control *the_context,
@@ -798,19 +799,19 @@ void _CPU_Context_Initialize(
);
/**
- * This routine is responsible for somehow restarting the currently
- * executing task. If you are lucky, then all that is necessary
- * is restoring the context. Otherwise, there will need to be
- * a special assembly routine which does something special in this
- * case. For many ports, simply adding a label to the restore path
- * of @ref _CPU_Context_switch will work. On other ports, it may be
- * possibly to load a few arguments and jump to the restore path. It will
- * not work if restarting self conflicts with the stack frame
- * assumptions of restoring a context.
- *
- * Port Specific Information:
- *
- * On the v850, we require a special entry point to restart a task.
+ * This routine is responsible for somehow restarting the currently
+ * executing task. If you are lucky, then all that is necessary
+ * is restoring the context. Otherwise, there will need to be
+ * a special assembly routine which does something special in this
+ * case. For many ports, simply adding a label to the restore path
+ * of @ref _CPU_Context_switch will work. On other ports, it may be
+ * possibly to load a few arguments and jump to the restore path. It will
+ * not work if restarting self conflicts with the stack frame
+ * assumptions of restoring a context.
+ *
+ * Port Specific Information:
+ *
+ * On the v850, we require a special entry point to restart a task.
*/
#define _CPU_Context_Restart_self( _the_context ) \
_CPU_Context_restore( (_the_context) );
@@ -818,26 +819,26 @@ void _CPU_Context_Initialize(
/* XXX this should be possible to remove */
#if 0
/**
- * @ingroup CPUContext
- * The purpose of this macro is to allow the initial pointer into
- * a floating point context area (used to save the floating point
- * context) to be at an arbitrary place in the floating point
- * context area.
- *
- * This is necessary because some FP units are designed to have
- * their context saved as a stack which grows into lower addresses.
- * Other FP units can be saved by simply moving registers into offsets
- * from the base of the context area. Finally some FP units provide
- * a "dump context" instruction which could fill in from high to low
- * or low to high based on the whim of the CPU designers.
- *
- * @param[in] _base is the lowest physical address of the floating point
- * context area
- * @param[in] _offset is the offset into the floating point area
- *
- * Port Specific Information:
- *
- * XXX document implementation including references if appropriate
+ * @ingroup CPUContext
+ * The purpose of this macro is to allow the initial pointer into
+ * a floating point context area (used to save the floating point
+ * context) to be at an arbitrary place in the floating point
+ * context area.
+ *
+ * This is necessary because some FP units are designed to have
+ * their context saved as a stack which grows into lower addresses.
+ * Other FP units can be saved by simply moving registers into offsets
+ * from the base of the context area. Finally some FP units provide
+ * a "dump context" instruction which could fill in from high to low
+ * or low to high based on the whim of the CPU designers.
+ *
+ * @param[in] _base is the lowest physical address of the floating point
+ * context area
+ * @param[in] _offset is the offset into the floating point area
+ *
+ * Port Specific Information:
+ *
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Context_Fp_start( _base, _offset ) \
( (void *) _Addresses_Add_offset( (_base), (_offset) ) )
@@ -846,22 +847,22 @@ void _CPU_Context_Initialize(
/* XXX this should be possible to remove */
#if 0
/**
- * This routine initializes the FP context area passed to it to.
- * There are a few standard ways in which to initialize the
- * floating point context. The code included for this macro assumes
- * that this is a CPU in which a "initial" FP context was saved into
- * @a _CPU_Null_fp_context and it simply copies it to the destination
- * context passed to it.
+ * This routine initializes the FP context area passed to it to.
+ * There are a few standard ways in which to initialize the
+ * floating point context. The code included for this macro assumes
+ * that this is a CPU in which a "initial" FP context was saved into
+ * @a _CPU_Null_fp_context and it simply copies it to the destination
+ * context passed to it.
*
- * Other floating point context save/restore models include:
- * -# not doing anything, and
- * -# putting a "null FP status word" in the correct place in the FP context.
+ * Other floating point context save/restore models include:
+ * -# not doing anything, and
+ * -# putting a "null FP status word" in the correct place in the FP context.
*
- * @param[in] _destination is the floating point context area
+ * @param[in] _destination is the floating point context area
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
#define _CPU_Context_Initialize_fp( _destination ) \
{ \
@@ -873,13 +874,13 @@ void _CPU_Context_Initialize(
/* Fatal Error manager macros */
/**
- * This routine copies _error into a known place -- typically a stack
- * location or a register, optionally disables interrupts, and
- * halts/stops the CPU.
+ * This routine copies _error into a known place -- typically a stack
+ * location or a register, optionally disables interrupts, and
+ * halts/stops the CPU.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * Move the error code into r10, disable interrupts and halt.
+ * Move the error code into r10, disable interrupts and halt.
*/
#define _CPU_Fatal_halt( _error ) \
do { \
@@ -893,75 +894,73 @@ void _CPU_Context_Initialize(
/* Bitfield handler macros */
/**
- * @defgroup CPUBitfield Processor Dependent Bitfield Manipulation
+ * @defgroup CPUBitfield Processor Dependent Bitfield Manipulation
*
- * This set of routines are used to implement fast searches for
- * the most important ready task.
+ * This set of routines are used to implement fast searches for
+ * the most important ready task.
*/
+/**@{**/
/**
- * @ingroup CPUBitfield
- * This definition is set to TRUE if the port uses the generic bitfield
- * manipulation implementation.
+ * This definition is set to TRUE if the port uses the generic bitfield
+ * manipulation implementation.
*/
#define CPU_USE_GENERIC_BITFIELD_CODE TRUE
/**
- * @ingroup CPUBitfield
- * This definition is set to TRUE if the port uses the data tables provided
- * by the generic bitfield manipulation implementation.
- * This can occur when actually using the generic bitfield manipulation
- * implementation or when implementing the same algorithm in assembly
- * language for improved performance. It is unlikely that a port will use
- * the data if it has a bitfield scan instruction.
- *
- * Port Specific Information:
- *
- * There is no single v850 instruction to do a bit scan so there is
- * no CPU specific implementation of bit field scanning. The empty
- * stub routines are left as a place holder in case someone figures
- * out how to do a v850 implementation better than the generic algorithm.
+ * This definition is set to TRUE if the port uses the data tables provided
+ * by the generic bitfield manipulation implementation.
+ * This can occur when actually using the generic bitfield manipulation
+ * implementation or when implementing the same algorithm in assembly
+ * language for improved performance. It is unlikely that a port will use
+ * the data if it has a bitfield scan instruction.
+ *
+ * Port Specific Information:
+ *
+ * There is no single v850 instruction to do a bit scan so there is
+ * no CPU specific implementation of bit field scanning. The empty
+ * stub routines are left as a place holder in case someone figures
+ * out how to do a v850 implementation better than the generic algorithm.
*/
#define CPU_USE_GENERIC_BITFIELD_DATA TRUE
/**
- * @ingroup CPUBitfield
- * This routine sets @a _output to the bit number of the first bit
- * set in @a _value. @a _value is of CPU dependent type
- * @a Priority_bit_map_Control. This type may be either 16 or 32 bits
- * wide although only the 16 least significant bits will be used.
- *
- * There are a number of variables in using a "find first bit" type
- * instruction.
- *
- * -# What happens when run on a value of zero?
- * -# Bits may be numbered from MSB to LSB or vice-versa.
- * -# The numbering may be zero or one based.
- * -# The "find first bit" instruction may search from MSB or LSB.
- *
- * RTEMS guarantees that (1) will never happen so it is not a concern.
- * (2),(3), (4) are handled by the macros @ref _CPU_Priority_Mask and
- * @ref _CPU_Priority_bits_index. These three form a set of routines
- * which must logically operate together. Bits in the _value are
- * set and cleared based on masks built by @ref _CPU_Priority_Mask.
- * The basic major and minor values calculated by @ref _Priority_Major
- * and @ref _Priority_Minor are "massaged" by @ref _CPU_Priority_bits_index
- * to properly range between the values returned by the "find first bit"
- * instruction. This makes it possible for @ref _Priority_Get_highest to
- * calculate the major and directly index into the minor table.
- * This mapping is necessary to ensure that 0 (a high priority major/minor)
- * is the first bit found.
- *
- * This entire "find first bit" and mapping process depends heavily
- * on the manner in which a priority is broken into a major and minor
- * components with the major being the 4 MSB of a priority and minor
- * the 4 LSB. Thus (0 << 4) + 0 corresponds to priority 0 -- the highest
- * priority. And (15 << 4) + 14 corresponds to priority 254 -- the next
- * to the lowest priority.
- *
- * If your CPU does not have a "find first bit" instruction, then
- * there are ways to make do without it. Here are a handful of ways
- * to implement this in software:
+ * This routine sets @a _output to the bit number of the first bit
+ * set in @a _value. @a _value is of CPU dependent type
+ * @a Priority_bit_map_Control. This type may be either 16 or 32 bits
+ * wide although only the 16 least significant bits will be used.
+ *
+ * There are a number of variables in using a "find first bit" type
+ * instruction.
+ *
+ * -# What happens when run on a value of zero?
+ * -# Bits may be numbered from MSB to LSB or vice-versa.
+ * -# The numbering may be zero or one based.
+ * -# The "find first bit" instruction may search from MSB or LSB.
+ *
+ * RTEMS guarantees that (1) will never happen so it is not a concern.
+ * (2),(3), (4) are handled by the macros @ref _CPU_Priority_Mask and
+ * @ref _CPU_Priority_bits_index. These three form a set of routines
+ * which must logically operate together. Bits in the _value are
+ * set and cleared based on masks built by @ref _CPU_Priority_Mask.
+ * The basic major and minor values calculated by @ref _Priority_Major
+ * and @ref _Priority_Minor are "massaged" by @ref _CPU_Priority_bits_index
+ * to properly range between the values returned by the "find first bit"
+ * instruction. This makes it possible for @ref _Priority_Get_highest to
+ * calculate the major and directly index into the minor table.
+ * This mapping is necessary to ensure that 0 (a high priority major/minor)
+ * is the first bit found.
+ *
+ * This entire "find first bit" and mapping process depends heavily
+ * on the manner in which a priority is broken into a major and minor
+ * components with the major being the 4 MSB of a priority and minor
+ * the 4 LSB. Thus (0 << 4) + 0 corresponds to priority 0 -- the highest
+ * priority. And (15 << 4) + 14 corresponds to priority 254 -- the next
+ * to the lowest priority.
+ *
+ * If your CPU does not have a "find first bit" instruction, then
+ * there are ways to make do without it. Here are a handful of ways
+ * to implement this in software:
*
@verbatim
- a series of 16 bit test instructions
@@ -978,16 +977,16 @@ void _CPU_Context_Initialize(
_number += bit_set_table[ _value ]
@endverbatim
- * where bit_set_table[ 16 ] has values which indicate the first
- * bit set
+ * where bit_set_table[ 16 ] has values which indicate the first
+ * bit set
*
- * @param[in] _value is the value to be scanned
- * @param[in] _output is the first bit set
+ * @param[in] _value is the value to be scanned
+ * @param[in] _output is the first bit set
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * There is no single v850 instruction to do a bit scan so there is
- * no CPU specific implementation of bit field scanning.
+ * There is no single v850 instruction to do a bit scan so there is
+ * no CPU specific implementation of bit field scanning.
*/
#if (CPU_USE_GENERIC_BITFIELD_CODE == FALSE)
#define _CPU_Bitfield_Find_first_bit( _value, _output ) \
@@ -999,14 +998,14 @@ void _CPU_Context_Initialize(
/* end of Bitfield handler macros */
/**
- * This routine builds the mask which corresponds to the bit fields
- * as searched by @ref _CPU_Bitfield_Find_first_bit. See the discussion
- * for that routine.
+ * This routine builds the mask which corresponds to the bit fields
+ * as searched by @ref _CPU_Bitfield_Find_first_bit. See the discussion
+ * for that routine.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * There is no single v850 instruction to do a bit scan so there is
- * no CPU specific implementation of bit field scanning.
+ * There is no single v850 instruction to do a bit scan so there is
+ * no CPU specific implementation of bit field scanning.
*/
#if (CPU_USE_GENERIC_BITFIELD_CODE == FALSE)
@@ -1016,18 +1015,17 @@ void _CPU_Context_Initialize(
#endif
/**
- * @ingroup CPUBitfield
- * This routine translates the bit numbers returned by
- * @ref _CPU_Bitfield_Find_first_bit into something suitable for use as
- * a major or minor component of a priority. See the discussion
- * for that routine.
+ * This routine translates the bit numbers returned by
+ * @ref _CPU_Bitfield_Find_first_bit into something suitable for use as
+ * a major or minor component of a priority. See the discussion
+ * for that routine.
*
- * @param[in] _priority is the major or minor number to translate
+ * @param[in] _priority is the major or minor number to translate
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * There is no single v850 instruction to do a bit scan so there is
- * no CPU specific implementation of bit field scanning.
+ * There is no single v850 instruction to do a bit scan so there is
+ * no CPU specific implementation of bit field scanning.
*/
#if (CPU_USE_GENERIC_BITFIELD_CODE == FALSE)
@@ -1038,30 +1036,36 @@ void _CPU_Context_Initialize(
/* end of Priority handler macros */
+/** @} */
+
/* functions */
/**
- * @brief CPU Initialize
- * This routine performs CPU dependent initialization.
+ * @brief CPU initialize.
+ * This routine performs CPU dependent initialization.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * This is implemented in C.
+ * This is implemented in C.
*
- * v850 CPU Dependent Source
+ * v850 CPU Dependent Source
*/
void _CPU_Initialize(void);
/**
- * @ingroup CPUContext
- * This routine switches from the run context to the heir context.
+ * @addtogroup CPUContext
+ */
+/**@{**/
+
+/**
+ * This routine switches from the run context to the heir context.
*
- * @param[in] run points to the context of the currently executing task
- * @param[in] heir points to the context of the heir task
+ * @param[in] run points to the context of the currently executing task
+ * @param[in] heir points to the context of the heir task
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * This is implemented in assembly on the v850.
+ * This is implemented in assembly on the v850.
*/
void _CPU_Context_switch(
Context_Control *run,
@@ -1069,17 +1073,16 @@ void _CPU_Context_switch(
);
/**
- * @ingroup CPUContext
- * This routine is generally used only to restart self in an
- * efficient manner. It may simply be a label in @ref _CPU_Context_switch.
+ * This routine is generally used only to restart self in an
+ * efficient manner. It may simply be a label in @ref _CPU_Context_switch.
*
- * @param[in] new_context points to the context to be restored.
+ * @param[in] new_context points to the context to be restored.
*
- * @note May be unnecessary to reload some registers.
+ * @note May be unnecessary to reload some registers.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * This is implemented in assembly on the v850.
+ * This is implemented in assembly on the v850.
*/
void _CPU_Context_restore(
Context_Control *new_context
@@ -1088,18 +1091,17 @@ void _CPU_Context_restore(
/* XXX this should be possible to remove */
#if 0
/**
- * @ingroup CPUContext
- * This routine saves the floating point context passed to it.
+ * This routine saves the floating point context passed to it.
*
- * @param[in] fp_context_ptr is a pointer to a pointer to a floating
- * point context area
+ * @param[in] fp_context_ptr is a pointer to a pointer to a floating
+ * point context area
*
- * @return on output @a *fp_context_ptr will contain the address that
- * should be used with @ref _CPU_Context_restore_fp to restore this context.
+ * @return on output @a *fp_context_ptr will contain the address that
+ * should be used with @ref _CPU_Context_restore_fp to restore this context.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_save_fp(
Context_Control_fp **fp_context_ptr
@@ -1109,56 +1111,57 @@ void _CPU_Context_save_fp(
/* XXX this should be possible to remove */
#if 0
/**
- * @ingroup CPUContext
- * This routine restores the floating point context passed to it.
+ * This routine restores the floating point context passed to it.
*
- * @param[in] fp_context_ptr is a pointer to a pointer to a floating
- * point context area to restore
+ * @param[in] fp_context_ptr is a pointer to a pointer to a floating
+ * point context area to restore
*
- * @return on output @a *fp_context_ptr will contain the address that
- * should be used with @ref _CPU_Context_save_fp to save this context.
+ * @return on output @a *fp_context_ptr will contain the address that
+ * should be used with @ref _CPU_Context_save_fp to save this context.
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * XXX document implementation including references if appropriate
+ * XXX document implementation including references if appropriate
*/
void _CPU_Context_restore_fp(
Context_Control_fp **fp_context_ptr
);
#endif
+/** @} */
+
/* FIXME */
typedef CPU_Interrupt_frame CPU_Exception_frame;
void _CPU_Exception_frame_print( const CPU_Exception_frame *frame );
/**
- * @ingroup CPUEndian
- * The following routine swaps the endian format of an unsigned int.
- * It must be static because it is referenced indirectly.
+ * @ingroup CPUEndian
+ * The following routine swaps the endian format of an unsigned int.
+ * It must be static because it is referenced indirectly.
*
- * This version will work on any processor, but if there is a better
- * way for your CPU PLEASE use it. The most common way to do this is to:
+ * This version will work on any processor, but if there is a better
+ * way for your CPU PLEASE use it. The most common way to do this is to:
*
- * swap least significant two bytes with 16-bit rotate
- * swap upper and lower 16-bits
- * swap most significant two bytes with 16-bit rotate
+ * swap least significant two bytes with 16-bit rotate
+ * swap upper and lower 16-bits
+ * swap most significant two bytes with 16-bit rotate
*
- * Some CPUs have special instructions which swap a 32-bit quantity in
- * a single instruction (e.g. i486). It is probably best to avoid
- * an "endian swapping control bit" in the CPU. One good reason is
- * that interrupts would probably have to be disabled to ensure that
- * an interrupt does not try to access the same "chunk" with the wrong
- * endian. Another good reason is that on some CPUs, the endian bit
- * endianness for ALL fetches -- both code and data -- so the code
- * will be fetched incorrectly.
+ * Some CPUs have special instructions which swap a 32-bit quantity in
+ * a single instruction (e.g. i486). It is probably best to avoid
+ * an "endian swapping control bit" in the CPU. One good reason is
+ * that interrupts would probably have to be disabled to ensure that
+ * an interrupt does not try to access the same "chunk" with the wrong
+ * endian. Another good reason is that on some CPUs, the endian bit
+ * endianness for ALL fetches -- both code and data -- so the code
+ * will be fetched incorrectly.
*
- * @param[in] value is the value to be swapped
- * @return the value after being endian swapped
+ * @param[in] value is the value to be swapped
+ * @return the value after being endian swapped
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * The v850 has a single instruction to swap endianness on a 32 bit quantity.
+ * The v850 has a single instruction to swap endianness on a 32 bit quantity.
*/
static inline uint32_t CPU_swap_u32(
uint32_t value
@@ -1185,15 +1188,15 @@ static inline uint32_t CPU_swap_u32(
}
/**
- * @ingroup CPUEndian
- * This routine swaps a 16 bir quantity.
+ * @ingroup CPUEndian
+ * This routine swaps a 16 bir quantity.
*
- * @param[in] value is the value to be swapped
- * @return the value after being endian swapped
+ * @param[in] value is the value to be swapped
+ * @return the value after being endian swapped
*
- * Port Specific Information:
+ * Port Specific Information:
*
- * The v850 has a single instruction to swap endianness on a 16 bit quantity.
+ * The v850 has a single instruction to swap endianness on a 16 bit quantity.
*/
static inline uint16_t CPU_swap_u16( uint16_t value )
{
diff --git a/cpukit/score/cpu/v850/rtems/score/cpu_asm.h b/cpukit/score/cpu/v850/rtems/score/cpu_asm.h
index 49a44a93a1..bc22bc199b 100644
--- a/cpukit/score/cpu/v850/rtems/score/cpu_asm.h
+++ b/cpukit/score/cpu/v850/rtems/score/cpu_asm.h
@@ -1,11 +1,10 @@
/**
- * @file rtems/score/cpu_asm.h
- */
-
-/*
- * Very loose template for an include file for the cpu_asm.? file
- * if it is implemented as a ".S" file (preprocessed by cpp) instead
- * of a ".s" file (preprocessed by gm4 or gasp).
+ * @file
+ *
+ * @brief V850 Assembly File
+ * Very loose template for an include file for the cpu_asm.? file
+ * if it is implemented as a ".S" file (preprocessed by cpp) instead
+ * of a ".s" file (preprocessed by gm4 or gasp).
*/
/*
diff --git a/cpukit/score/cpu/v850/rtems/score/types.h b/cpukit/score/cpu/v850/rtems/score/types.h
index 32ff881898..e831b2dc13 100644
--- a/cpukit/score/cpu/v850/rtems/score/types.h
+++ b/cpukit/score/cpu/v850/rtems/score/types.h
@@ -1,11 +1,13 @@
/**
- * @file rtems/score/types.h
+ * @file
+ *
+ * @brief V850 CPU Type Definitions
+ *
+ * This include file contains type definitions pertaining to the
+ * v850 processor family.
*/
/*
- * This include file contains type definitions pertaining to the
- * v850 processor family.
- *
* COPYRIGHT (c) 1989-2011.
* On-Line Applications Research Corporation (OAR).
*
diff --git a/cpukit/score/cpu/v850/rtems/score/v850.h b/cpukit/score/cpu/v850/rtems/score/v850.h
index 3e9bec56f3..df35925c7b 100644
--- a/cpukit/score/cpu/v850/rtems/score/v850.h
+++ b/cpukit/score/cpu/v850/rtems/score/v850.h
@@ -1,8 +1,12 @@
-/*
- * This file sets up basic CPU dependency settings based on
- * compiler settings. For example, it can determine if
- * floating point is available. This particular implementation
- * is specified to the Renesas v850 port.
+/**
+ * @file
+ *
+ * @brief V850 Set up Basic CPU Dependency Settings Based on Compiler Settings
+ *
+ * This file sets up basic CPU dependency settings based on
+ * compiler settings. For example, it can determine if
+ * floating point is available. This particular implementation
+ * is specified to the Renesas v850 port.
*/
/*
diff --git a/cpukit/score/include/rtems/bspsmp.h b/cpukit/score/include/rtems/bspsmp.h
index 9c040efeda..d0681ca8f2 100644
--- a/cpukit/score/include/rtems/bspsmp.h
+++ b/cpukit/score/include/rtems/bspsmp.h
@@ -1,9 +1,11 @@
/**
* @file rtems/bspsmp.h
*
+ * @brief Interface Between RTEMS and an SMP Aware BSP
+ *
* This include file defines the interface between RTEMS and an
* SMP aware BSP. These methods will only be used when RTEMS
- * is configured with SMP support enabled.
+ * is configured with SMP support enabled.
*/
/*
@@ -24,8 +26,10 @@
/**
* @defgroup RTEMS BSP SMP Interface
*
+ * @ingroup Score
+ *
* This defines the interface between RTEMS and the BSP for
- * SMP support. The interface uses the term primary
+ * SMP support. The interface uses the term primary
* to refer to the "boot" processor and secondary to refer
* to the "application" processors. Different architectures
* use different terminology.
@@ -45,15 +49,15 @@ extern "C" {
#ifndef ASM
/**
- * @brief Maximum Number of CPUs in SMP System
+ * @brief Maximum number of CPUs in SMP system.
*
* This variable is set during the SMP initialization sequence to
* indicate the Maximum number of CPUs in this system.
*/
extern uint32_t rtems_configuration_smp_maximum_processors;
-
+
/**
- * @brief Initialize Secondary CPUs
+ * @brief Initialize secondary CPUs.
*
* This method is invoked by RTEMS during initialization to bring the
* secondary CPUs out of reset.
@@ -61,7 +65,7 @@ extern uint32_t rtems_configuration_smp_maximum_processors;
* @param [in] maximum is the maximum number of CPU cores that RTEMS
* can handle
*
- * @return This method returns the number of cores available in the
+ * @retval This method returns the number of cores available in the
* system.
*/
int bsp_smp_initialize(
@@ -69,17 +73,17 @@ int bsp_smp_initialize(
);
/**
- * @brief Obtain Current CPU Index
+ * @brief Obtain current CPU index.
*
* This method is invoked by RTEMS when it needs to know the index
* of the CPU it is executing on.
*
- * @return This method returns the current CPU index.
+ * @retval This method returns the current CPU index.
*/
int bsp_smp_processor_id(void) RTEMS_COMPILER_PURE_ATTRIBUTE;
/**
- * @brief Make Request of Another CPU
+ * @brief Make request of another CPU.
*
* This method is invoked by RTEMS when it needs to make a request
* of another CPU. It should be implemented using some type of
@@ -94,21 +98,21 @@ void rtems_smp_send_message(
);
/**
- * @brief Generate a Interprocessor Broadcast Interrupt
+ * @brief Generate an interprocessor broadcast interrupt.
*
* This method is invoked when RTEMS wants to let all of the other
- * CPUs know that it has sent them message. CPUs not including
+ * CPUs know that it has sent them message. CPUs not including
* the originating CPU should receive the interrupt.
*
- * @note On CPUs without the capability to generate a broadcast
+ * @note On CPUs without the capability to generate a broadcast
* to all other CPUs interrupt, this can be implemented by
* a loop of sending interrupts to specific CPUs.
*/
void bsp_smp_broadcast_interrupt(void);
/**
- * @brief Generate a Interprocessor Interrupt
+ * @brief Generate a interprocessor interrupt.
*
* This method is invoked by RTEMS to let @a cpu know that it
* has sent it a message.
@@ -120,7 +124,7 @@ void bsp_smp_interrupt_cpu(
);
/**
- * @brief Obtain CPU Core Number
+ * @brief Obtain CPU core number.
*
* This method is invoked by RTEMS when it needs to know which core
* number it is executing on. This is used when it needs to perform
@@ -128,7 +132,7 @@ void bsp_smp_interrupt_cpu(
* the other cores. For example, it may need to realize it needs to
* preempt a thread on another node.
*
- * @return This method returns the Id of the current CPU core.
+ * @retval This method returns the Id of the current CPU core.
*/
int bsp_smp_processor_id( void );
@@ -143,7 +147,7 @@ int bsp_smp_processor_id( void );
void bsp_smp_secondary_cpu_initialize(int cpu);
/**
- * @brief RTEMS SMP Secondary CPU Initialize
+ * @brief Initialize secondary CPU and coordinates.
*
* This method is the C entry point which secondary CPUs should
* arrange to call. It performs OS initialization for the secondary
@@ -152,7 +156,7 @@ void bsp_smp_secondary_cpu_initialize(int cpu);
* @note This is provided by RTEMS.
*/
void rtems_smp_secondary_cpu_initialize(void);
-
+
/**
* This method is invoked by the BSP to initialize the per CPU structure
* for the specified @a cpu while it is bringing the secondary CPUs
@@ -164,10 +168,10 @@ void rtems_smp_secondary_cpu_initialize(void);
void rtems_smp_initialize_per_cpu(int cpu);
/**
- * @brief RTEMS SMP Proccess Interrupt
+ * @brief Process the incoming interprocessor request.
*
* This is the method called by the BSP's interrupt handler
- * to process the incoming interprocessor request.
+ * to process the incoming interprocessor request.
*/
void rtems_smp_process_interrupt(void);
@@ -184,9 +188,10 @@ void bsp_smp_wait_for(
#endif
#else
- #define bsp_smp_processor_id() 0
+ #define bsp_smp_processor_id() 0
#endif
+/**@}*/
#endif
/* end of include file */
diff --git a/cpukit/score/include/rtems/debug.h b/cpukit/score/include/rtems/debug.h
index 101aea1478..3abec5f22a 100644
--- a/cpukit/score/include/rtems/debug.h
+++ b/cpukit/score/include/rtems/debug.h
@@ -22,6 +22,13 @@
#include <rtems/score/basedefs.h>
+/**
+ * @defgroup ScoreDebug Debug Information
+ *
+ * @ingroup Score
+ */
+/**@{*/
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -47,26 +54,26 @@ typedef uint32_t rtems_debug_control;
SCORE_EXTERN rtems_debug_control _Debug_Level;
/**
- * @brief Initialize Debug Manager
+ * @brief Initialize debug manager.
*/
void _Debug_Manager_initialization( void );
/**
- * @brief Enable Debugging
+ * @brief Enable debugging.
*/
void rtems_debug_enable(
rtems_debug_control to_be_enabled
);
/**
- * @brief Disable Debugging
+ * @brief Disable debugging.
*/
void rtems_debug_disable(
rtems_debug_control to_be_disabled
);
/**
- * @brief Check if Debug is Enabled
+ * @brief Check if debug is enabled.
*
* This routine returns TRUE if the requested debug level is
* enabled, and FALSE otherwise.
@@ -79,5 +86,6 @@ bool rtems_debug_is_enabled(
}
#endif
+/**@}*/
#endif
/* end of include file */
diff --git a/cpukit/score/include/rtems/score/address.h b/cpukit/score/include/rtems/score/address.h
index a09d63821c..85658b55b0 100644
--- a/cpukit/score/include/rtems/score/address.h
+++ b/cpukit/score/include/rtems/score/address.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/address.h
*
+ * @brief Information Required to Manipulate Physical Addresses
+ *
* This include file contains the information required to manipulate
* physical addresses.
*/
diff --git a/cpukit/score/include/rtems/score/apiext.h b/cpukit/score/include/rtems/score/apiext.h
index db77a8b9c8..54b8049241 100644
--- a/cpukit/score/include/rtems/score/apiext.h
+++ b/cpukit/score/include/rtems/score/apiext.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/apiext.h
*
+ * @brief API Extensions Handler
+ *
* This is the API Extensions Handler.
*/
@@ -106,14 +108,14 @@ SCORE_EXTERN Chain_Control _API_extensions_List;
SCORE_EXTERN Chain_Control _API_extensions_Post_switch_list;
/**
- * @brief Initialize the API Extensions Handler
+ * @brief Initialize the API extensions handler.
*
* This routine initializes the API extension handler.
*/
void _API_extensions_Initialization( void );
/**
- * @brief Add Extension Set to the Active Set
+ * @brief Add extension set to the active set.
*
* This routine adds @a the_extension to the active set of API extensions.
*
@@ -142,7 +144,7 @@ void _API_extensions_Add_post_switch(
#if defined(FUNCTIONALITY_NOT_CURRENTLY_USED_BY_ANY_API)
/**
- * @brief Execute all Pre-Driver Extensions
+ * @brief Execute all pre-driver extensions.
*
* This routine executes all of the predriver callouts.
*/
@@ -150,7 +152,7 @@ void _API_extensions_Add_post_switch(
#endif
/**
- * @brief Execute all Post-Driver Extensions
+ * @brief Execute all post-driver extensions.
*
* This routine executes all of the postdriver callouts.
*/
diff --git a/cpukit/score/include/rtems/score/apimutex.h b/cpukit/score/include/rtems/score/apimutex.h
index 13b0dddd65..60c21ad29c 100644
--- a/cpukit/score/include/rtems/score/apimutex.h
+++ b/cpukit/score/include/rtems/score/apimutex.h
@@ -3,7 +3,7 @@
*
* @ingroup ScoreAPIMutex
*
- * @brief API Mutex Handler API.
+ * @brief API Mutex Handler API
*/
/*
@@ -28,9 +28,8 @@ extern "C" {
* @ingroup Score
*
* @brief Provides routines to ensure mutual exclusion on API level.
- *
- * @{
*/
+/**@{**/
#include <rtems/score/coremutex.h>
#include <rtems/score/isr.h>
@@ -62,7 +61,7 @@ SCORE_EXTERN Objects_Information _API_Mutex_Information;
* The value @a maximum_mutexes is the maximum number of API mutexes that may
* exist at any time.
*
- * @param[in] Maximum_mutexex is the maximum number of API mutexes.
+ * @param[in] maximum_mutexes is the maximum number of API mutexes.
*/
void _API_Mutex_Initialization( uint32_t maximum_mutexes );
@@ -76,11 +75,11 @@ void _API_Mutex_Allocate( API_Mutex_Control **mutex );
* @brief Acquires the specified API mutex.
*/
void _API_Mutex_Lock(
- API_Mutex_Control *mutex
+ API_Mutex_Control *mutex
);
/**
- * @brief Releases the Specified API Mutex
+ * @brief Releases the specified API mutex.
*
* Releases the specified @a mutex.
*
@@ -100,12 +99,11 @@ void _API_Mutex_Unlock( API_Mutex_Control *mutex );
* When the APIs all use this for allocation and deallocation protection, then
* this possibly should be renamed and moved to a higher level in the
* hierarchy.
- *
- * @{
*/
+/**@{**/
/**
- * @brief Memory Allocation Mutex
+ * @brief Memory allocation mutex.
*
* This points to the API Mutex instance used to ensure that only
* one thread at a time is allocating or freeing memory.
@@ -113,7 +111,7 @@ void _API_Mutex_Unlock( API_Mutex_Control *mutex );
SCORE_EXTERN API_Mutex_Control *_RTEMS_Allocator_Mutex;
/**
- * @brief Macro to Ease Locking the Allocator Mutex
+ * @brief Macro to ease locking the allocator mutex.
*
* This macro makes it explicit that one is locking the allocator mutex.
*/
@@ -121,7 +119,7 @@ SCORE_EXTERN API_Mutex_Control *_RTEMS_Allocator_Mutex;
_API_Mutex_Lock( _RTEMS_Allocator_Mutex )
/**
- * @brief Macro to Ease Unlocking the Allocator Mutex
+ * @brief Macro to ease unlocking the allocator mutex.
*
* This macro makes it explicit that one is unlocking the allocator mutex.
*/
diff --git a/cpukit/score/include/rtems/score/basedefs.h b/cpukit/score/include/rtems/score/basedefs.h
index e91467d84d..d6b5e24e64 100644
--- a/cpukit/score/include/rtems/score/basedefs.h
+++ b/cpukit/score/include/rtems/score/basedefs.h
@@ -3,7 +3,7 @@
*
* @ingroup Score
*
- * @brief Basic definitions.
+ * @brief Basic Definitions
*/
/*
@@ -20,6 +20,13 @@
#ifndef _RTEMS_BASEDEFS_H
#define _RTEMS_BASEDEFS_H
+/**
+ * @defgroup ScoreBaseDefs Basic Definitions
+ *
+ * @ingroup Score
+ */
+/**@{*/
+
#include <rtems/score/cpuopts.h>
#ifndef ASM
@@ -189,4 +196,6 @@
typedef void * proc_ptr;
#endif
+/**@}*/
+
#endif /* _RTEMS_BASEDEFS_H */
diff --git a/cpukit/score/include/rtems/score/bitfield.h b/cpukit/score/include/rtems/score/bitfield.h
index cfb9bf8753..caa289adf0 100644
--- a/cpukit/score/include/rtems/score/bitfield.h
+++ b/cpukit/score/include/rtems/score/bitfield.h
@@ -1,7 +1,9 @@
/**
- * @file rtems/score/bitfield.h
+ * @file rtems/score/bitfield.h
*
- * This include file contains all bit field manipulation routines.
+ * @brief Bit Field Manipulation Routines
+ *
+ * This include file contains all bit field manipulation routines.
*/
/*
@@ -64,6 +66,8 @@ const unsigned char __log2table[256] = {
#endif
/**
+ * @brief Gets the @a _bit_number of the first bit set in the specified value.
+ *
* This routine returns the @a _bit_number of the first bit set
* in the specified value. The correspondence between @a _bit_number
* and actual bit position is processor dependent. The search for
diff --git a/cpukit/score/include/rtems/score/chain.h b/cpukit/score/include/rtems/score/chain.h
index f0a837f379..4b2a449823 100644
--- a/cpukit/score/include/rtems/score/chain.h
+++ b/cpukit/score/include/rtems/score/chain.h
@@ -3,7 +3,7 @@
*
* @ingroup ScoreChain
*
- * @brief Chain Handler API.
+ * @brief Chain Handler API
*/
/*
@@ -107,7 +107,7 @@ typedef union {
Chain_Control name = CHAIN_INITIALIZER_EMPTY(name)
/**
- * @brief Initialize a Chain Header
+ * @brief Initialize a chain header.
*
* This routine initializes @a the_chain structure to manage the
* contiguous array of @a number_nodes nodes which starts at
@@ -127,7 +127,7 @@ void _Chain_Initialize(
);
/**
- * @brief Extract the specified node from a chain
+ * @brief Extract the specified node from a chain.
*
* This routine extracts @a the_node from the chain on which it resides.
* It disables interrupts to ensure the atomicity of the extract operation.
@@ -142,12 +142,12 @@ void _Chain_Extract(
);
/**
- * @brief Obtain the first node on a chain
+ * @brief Obtain the first node on a chain.
*
* This function removes the first node from @a the_chain and returns
* a pointer to that node. If @a the_chain is empty, then NULL is returned.
*
- * @return This method returns a pointer a node. If a node was removed,
+ * @retval This method returns a pointer a node. If a node was removed,
* then a pointer to that node is returned. If @a the_chain was
* empty, then NULL is returned.
*
@@ -158,14 +158,14 @@ Chain_Node *_Chain_Get(
);
/**
- * @brief Insert a node on a chain
+ * @brief Insert a node on a chain.
*
* This routine inserts @a the_node on a chain immediately following
* @a after_node.
*
* @param[in] after_node is the pointer to the node in chain to be
* inserted after
- * @param[in] node is the pointer to the node to be inserted
+ * @param[in] the_node is the pointer to the node to be inserted
*
* @note It disables interrupts to ensure the atomicity
* of the insert operation.
@@ -179,7 +179,7 @@ void _Chain_Insert(
);
/**
- * @brief Append a node on the end of a chain
+ * @brief Append a node on the end of a chain.
*
* This routine appends @a the_node onto the end of @a the_chain.
*
@@ -262,7 +262,7 @@ bool _Chain_Get_with_empty_check(
* @note It does NOT disable interrupts to ensure the atomicity of the
* operation.
*
- * @return The node count of the chain.
+ * @retval The node count of the chain.
*/
size_t _Chain_Node_count_unprotected( const Chain_Control *chain );
diff --git a/cpukit/score/include/rtems/score/context.h b/cpukit/score/include/rtems/score/context.h
index 96e3f15191..02bcf156dd 100644
--- a/cpukit/score/include/rtems/score/context.h
+++ b/cpukit/score/include/rtems/score/context.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/context.h
*
+ * @brief Information About Each Thread's Context
+ *
* This include file contains all information about each thread's context.
*/
@@ -36,7 +38,7 @@ extern "C" {
#include <rtems/score/cpu.h>
/**
- * @brief Size of Floating Point Context Area
+ * @brief Size of floating point context area.
*
* This constant defines the number of bytes required
* to store a full floating point context.
@@ -44,7 +46,7 @@ extern "C" {
#define CONTEXT_FP_SIZE CPU_CONTEXT_FP_SIZE
/**
- * @brief Initialize Context Area
+ * @brief Initialize context area.
*
* This routine initializes @a _the_context such that the stack
* pointer, interrupt level, and entry point are correct for the
@@ -79,7 +81,7 @@ extern "C" {
#endif
/**
- * @brief Perform Context Switch
+ * @brief Perform context switch.
*
* This routine saves the current context into the @a _executing
* context record and restores the context specified by @a _heir.
@@ -91,7 +93,7 @@ extern "C" {
_CPU_Context_switch( _executing, _heir )
/**
- * @brief Restart Currently Executing Thread
+ * @brief Restart currently executing thread.
*
* This routine restarts the calling thread by restoring its initial
* stack pointer and returning to the thread's entry point.
@@ -103,7 +105,7 @@ extern "C" {
#if defined(RTEMS_SMP)
/*
- * @brief Switch to First Task on Secondary Core
+ * @brief Switch to first task on secondary core.
*
* This routine is only used to switch to the first task on a
* secondary core in an SMP configuration. Since the switch
@@ -119,7 +121,7 @@ extern "C" {
#endif
/**
- * @brief Return Starting Address of Floating Point Context
+ * @brief Return starting address of floating point context.
*
* This function returns the starting address of the floating
* point context save area. It is assumed that the are reserved
@@ -129,13 +131,13 @@ extern "C" {
* context save area.
* @param[in] _offset is the offset into the floating point area
*
- * @return the initial FP context pointer
+ * @retval the initial FP context pointer
*/
#define _Context_Fp_start( _base, _offset ) \
_CPU_Context_Fp_start( (_base), (_offset) )
/**
- * @brief Initialize Floating Point Context Area
+ * @brief Initialize floating point context area.
*
* This routine initializes the floating point context save
* area to contain an initial known state.
@@ -147,7 +149,7 @@ extern "C" {
_CPU_Context_Initialize_fp( _fp_area )
/**
- * @brief Restore Floating Point Context Area
+ * @brief Restore floating point context area.
*
* This routine restores the floating point context contained
* in the @a _fp area. It is assumed that the current
@@ -160,7 +162,7 @@ extern "C" {
_CPU_Context_restore_fp( _fp )
/**
- * @brief Save Floating Point Context Area
+ * @brief Save floating point context area.
*
* This routine saves the current floating point context
* in the @a _fp area.
diff --git a/cpukit/score/include/rtems/score/copyrt.h b/cpukit/score/include/rtems/score/copyrt.h
index 87e652026b..cc66f5cf52 100644
--- a/cpukit/score/include/rtems/score/copyrt.h
+++ b/cpukit/score/include/rtems/score/copyrt.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/copyrt.h
*
+ * @brief Copyright Notice for RTEMS
+ *
* This include file contains the copyright notice for RTEMS
* which is included in every binary copy of the executive.
*/
@@ -17,6 +19,13 @@
#ifndef _RTEMS_SCORE_COPYRT_H
#define _RTEMS_SCORE_COPYRT_H
+/**
+ * @defgroup SuperCoreCopyright RTEMS Copyright Notice
+ *
+ * @ingroup Score
+ */
+/**@{*/
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -36,5 +45,6 @@ extern const char _Copyright_Notice[];
}
#endif
+/**@}*/
#endif
/* end of include file */
diff --git a/cpukit/score/include/rtems/score/corebarrier.h b/cpukit/score/include/rtems/score/corebarrier.h
index 8072ec1e39..1f7c826b79 100644
--- a/cpukit/score/include/rtems/score/corebarrier.h
+++ b/cpukit/score/include/rtems/score/corebarrier.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/score/corebarrier.h
+ * @file rtems/score/corebarrier.h
+ *
+ * @brief Constants and Structures Associated with the Barrier Handler
*
* This include file contains all the constants and structures associated
* with the Barrier Handler.
@@ -82,7 +84,7 @@ typedef enum {
} CORE_barrier_Status;
/**
- * @brief Core Barrier Last Status
+ * @brief Core barrier last status value.
*
* This is the last status value.
*/
@@ -121,7 +123,7 @@ typedef struct {
} CORE_barrier_Control;
/**
- * @brief Initialize CORE Barrier
+ * @brief Initialize core barrier.
*
* This routine initializes the barrier based on the parameters passed.
*
@@ -134,7 +136,8 @@ void _CORE_barrier_Initialize(
);
/**
- * @brief Wait For The Barrier
+ * @brief Wait for the barrier.
+ *
* This routine wait for the barrier to be released. If the barrier
* is set to automatic and this is the appropriate thread, then it returns
* immediately. Otherwise, the calling thread is blocked until the barrier
@@ -159,7 +162,7 @@ void _CORE_barrier_Wait(
);
/**
- * @brief Manually releases the barrier
+ * @brief Manually release the barrier.
*
* This routine manually releases the barrier. All of the threads waiting
* for the barrier will be readied.
@@ -169,7 +172,7 @@ void _CORE_barrier_Wait(
* @param[in] api_barrier_mp_support is the routine to invoke if the
* thread unblocked is remote
*
- * @return the number of unblocked threads
+ * @retval the number of unblocked threads
*/
uint32_t _CORE_barrier_Release(
CORE_barrier_Control *the_barrier,
diff --git a/cpukit/score/include/rtems/score/coremsg.h b/cpukit/score/include/rtems/score/coremsg.h
index 0f468c83bf..d022391182 100644
--- a/cpukit/score/include/rtems/score/coremsg.h
+++ b/cpukit/score/include/rtems/score/coremsg.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/coremsg.h
*
+ * @brief Constants and Structures Associated with the Message Queue Handler.
+ *
* This include file contains all the constants and structures associated
* with the Message queue Handler.
*/
@@ -64,7 +66,7 @@ extern "C" {
#endif
/**
- * @brief Message Queue MP Callback Prototype
+ * @brief Callout provides to support global/multiprocessor operations.
*
* The following type defines the callout which the API provides
* to support global/multiprocessor operations on message_queues.
@@ -75,7 +77,7 @@ typedef void ( *CORE_message_queue_API_mp_support_callout )(
);
/**
- * @brief Message Buffer Contents Management Structure
+ * @brief Data types needed to manipulate the contents of message buffers.
*
* The following defines the data types needed to manipulate
* the contents of message buffers.
@@ -91,7 +93,7 @@ typedef struct {
} CORE_message_queue_Buffer;
/**
- * @brief Message Structure
+ * @brief The organization of a message buffer.
*
* The following records define the organization of a message
* buffer.
@@ -108,7 +110,7 @@ typedef struct {
} CORE_message_queue_Buffer_control;
/**
- * @brief Message Queue Blocking Disciplines
+ * @brief The possible blocking disciplines for a message queue.
*
* This enumerated types defines the possible blocking disciplines
* for a message queue.
@@ -121,7 +123,7 @@ typedef enum {
} CORE_message_queue_Disciplines;
/**
- * @brief Message Priority for Appending
+ * @brief Used when appending messages onto a message queue.
*
* This is the priority constant used when appending messages onto
* a message queue.
@@ -129,7 +131,7 @@ typedef enum {
#define CORE_MESSAGE_QUEUE_SEND_REQUEST INT_MAX
/**
- * @brief Message Priority for Prepending
+ * @brief Used when prepending messages onto a message queue.
*
* This is the priority constant used when prepending messages onto
* a message queue.
@@ -137,7 +139,7 @@ typedef enum {
#define CORE_MESSAGE_QUEUE_URGENT_REQUEST INT_MIN
/**
- * @brief Message Insertion Operation Types
+ * @brief The modes in which a message may be submitted to a message queue.
*
* The following type details the modes in which a message
* may be submitted to a message queue. The message may be posted
@@ -149,7 +151,7 @@ typedef enum {
typedef int CORE_message_queue_Submit_types;
/**
- * @brief Core Message Queue Return Statuses
+ * @brief The possible set of Core Message Queue handler return statuses.
*
* This enumerated type defines the possible set of Core Message
* Queue handler return statuses.
@@ -178,14 +180,14 @@ typedef enum {
} CORE_message_queue_Status;
/**
- * @brief Core Message Queue Last Status
+ * @brief Core message queue last status value.
*
* This is the last status value.
*/
#define CORE_MESSAGE_QUEUE_STATUS_LAST CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT
/**
- * @brief Message Queue Attributes Type
+ * @brief Control block used to manage the attributes of each message queue.
*
* The following defines the control block used to manage the
* attributes of each message queue.
@@ -197,7 +199,7 @@ typedef struct {
#if defined(RTEMS_SCORE_COREMSG_ENABLE_NOTIFICATION)
/**
- * @brief Message Queue Notification Callback Prototype
+ * @brief Type for a notification handler.
*
* The following defines the type for a Notification handler. A
* notification handler is invoked when the message queue makes a
@@ -207,10 +209,10 @@ typedef struct {
#endif
/**
- * @brief Core Message Queue Control Structure
+ * @brief Control block used to manage each message queue.
*
* The following defines the control block used to manage each
- * Message Queue
+ * Message Queue.
*/
typedef struct {
/** This field is the Waiting Queue used to manage the set of tasks
@@ -256,15 +258,15 @@ typedef struct {
} CORE_message_queue_Control;
/**
- * @brief Initialize a Message Queue
- *
+ * @brief Initialize a message queue.
+ *
* DESCRIPTION:
*
* This package is the implementation of the CORE Message Queue Handler.
* This core object provides task synchronization and communication functions
* via messages passed to queue objects.
*
- * This routine initializes @a the_message_queue
+ * This routine initializes @a the_message_queue
* based on the parameters passed.
*
* @param[in] the_message_queue points to the message queue to initialize
@@ -275,7 +277,7 @@ typedef struct {
* @param[in] maximum_message_size is the size of largest message that
* may be sent to this message queue instance
*
- * @return true if the message queue can be initialized. In general,
+ * @retval true if the message queue can be initialized. In general,
* false will only be returned if memory for the pending
* messages cannot be allocated.
*/
@@ -287,8 +289,8 @@ bool _CORE_message_queue_Initialize(
);
/**
- * @brief Close a Message Queue
- *
+ * @brief Close a message queue.
+ *
* DESCRIPTION:
* This package is the implementation of the CORE Message Queue Handler.
* This core object provides task synchronization and communication functions
@@ -310,8 +312,8 @@ void _CORE_message_queue_Close(
);
/**
- * @brief Flush Pending Messages
- *
+ * @brief Flush pending messages.
+ *
* DESCRIPTION:
* This package is the implementation of the CORE Message Queue Handler.
* This core object provides task synchronization and communication functions
@@ -322,21 +324,21 @@ void _CORE_message_queue_Close(
*
* @param[in] the_message_queue points to the message queue to flush
*
- * @return This method returns the number of message pending messages flushed.
+ * @retval This method returns the number of message pending messages flushed.
*/
uint32_t _CORE_message_queue_Flush(
CORE_message_queue_Control *the_message_queue
);
/**
- * @brief Flush Messages Support Routine
+ * @brief Flush all outstanding messages.
*
* This routine flushes all outstanding messages and returns
* them to the inactive message chain.
*
* @param[in] the_message_queue points to the message queue to flush
*
- * @return This method returns the number of pending messages flushed.
+ * @retval This method returns the number of pending messages flushed.
*
* - INTERRUPT LATENCY:
* + single case
@@ -347,15 +349,15 @@ uint32_t _CORE_message_queue_Flush_support(
#if defined(FUNCTIONALITY_NOT_CURRENTLY_USED_BY_ANY_API)
/**
- * @brief Flush Waiting Threads.
+ * @brief Flush waiting threads.
*
* This function flushes the threads which are blocked on
* @a the_message_queue's pending message queue. They are
- * unblocked whether blocked sending or receiving. It returns
+ * unblocked whether blocked sending or receiving. It returns
* the number of messages flushed from the queue.
*
* @param[in] the_message_queue points to the message queue to flush
- * @return number of messages flushed from the queue
+ * @retval number of messages flushed from the queue
*/
void _CORE_message_queue_Flush_waiting_threads(
CORE_message_queue_Control *the_message_queue
@@ -363,8 +365,8 @@ uint32_t _CORE_message_queue_Flush_support(
#endif
/**
- * @brief Broadcast a Message to the Message Queue
- *
+ * @brief Broadcast a message to the message queue.
+ *
* DESCRIPTION:
* This package is the implementation of the CORE Message Queue Handler.
* This core object provides task synchronization and communication functions
@@ -382,8 +384,8 @@ uint32_t _CORE_message_queue_Flush_support(
* a thread that is unblocked is actually a remote thread.
* @param[out] count points to the variable that will contain the
* number of tasks that are sent this message
- * @return @a *count will contain the number of messages sent
- * @return indication of the successful completion or reason for failure
+ * @retval @a *count will contain the number of messages sent
+ * @retval indication of the successful completion or reason for failure
*/
CORE_message_queue_Status _CORE_message_queue_Broadcast(
CORE_message_queue_Control *the_message_queue,
@@ -395,7 +397,7 @@ CORE_message_queue_Status _CORE_message_queue_Broadcast(
);
/**
- * @brief Submit a Message to the Message Queue
+ * @brief Submit a message to the message queue.
*
* This routine implements the send and urgent message functions. It
* processes a message that is to be submitted to the designated
@@ -417,7 +419,7 @@ CORE_message_queue_Status _CORE_message_queue_Broadcast(
* if the message queue is full.
* @param[in] timeout is the maximum number of clock ticks that the calling
* thread is willing to block if the message queue is full.
- * @return indication of the successful completion or reason for failure
+ * @retval indication of the successful completion or reason for failure
*/
CORE_message_queue_Status _CORE_message_queue_Submit(
CORE_message_queue_Control *the_message_queue,
@@ -431,8 +433,8 @@ CORE_message_queue_Status _CORE_message_queue_Submit(
);
/**
- * @brief Size a Message from the Message Queue
- *
+ * @brief Size a message from the message queue.
+ *
* DESCRIPTION:
* This package is the implementation of the CORE Message Queue Handler.
* This core object provides task synchronization and communication functions
@@ -448,16 +450,19 @@ CORE_message_queue_Status _CORE_message_queue_Submit(
* It is used when unblocking a remote thread.
* @param[in] buffer is the starting address of the message buffer to
* to be filled in with a message
- * @param[in] size is the size of the @a buffer and indicates the maximum
- * size message that the caller can receive.
+ * @param[in] size_p is a pointer to the size of the @a buffer and
+ * indicates the maximum size message that the caller can receive.
* @param[in] wait indicates whether the calling thread is willing to block
* if the message queue is empty.
* @param[in] timeout is the maximum number of clock ticks that the calling
* thread is willing to block if the message queue is empty.
*
- * @return indication of the successful completion or reason for failure
- * @note Returns message priority via return are in TCB.
- *
+ * @retval indication of the successful completion or reason for failure.
+ * On success, the location pointed to @a size_p will contain the
+ * size of the received message.
+ *
+ * @note Returns message priority via return area in TCB.
+ *
* - INTERRUPT LATENCY:
* + available
* + wait
@@ -472,8 +477,8 @@ void _CORE_message_queue_Seize(
);
/**
- * @brief Insert a Message into the Message Queue
- *
+ * @brief Insert a message into the message queue.
+ *
* This kernel routine inserts the specified message into the
* message queue. It is assumed that the message has been filled
* in before this routine is called.
@@ -482,7 +487,7 @@ void _CORE_message_queue_Seize(
* @param[in] the_message is the message to enqueue
* @param[in] submit_type determines whether the message is prepended,
* appended, or enqueued in priority order.
- *
+ *
* - INTERRUPT LATENCY:
* + insert
*/
diff --git a/cpukit/score/include/rtems/score/coremutex.h b/cpukit/score/include/rtems/score/coremutex.h
index 9c0fce34cc..69babb9b09 100644
--- a/cpukit/score/include/rtems/score/coremutex.h
+++ b/cpukit/score/include/rtems/score/coremutex.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/coremutex.h
*
+ * @brief Constants and Structures Associated with the Mutex Handler
+ *
* This include file contains all the constants and structures associated
* with the Mutex Handler. A mutex is an enhanced version of the standard
* Dijkstra binary semaphore used to provide synchronization and mutual
@@ -40,7 +42,7 @@ extern "C" {
#include <rtems/score/sysstate.h>
/**
- * @brief MP Support Callback Prototype
+ * @brief Callout which provides to support global/multiprocessor operations.
*
* The following type defines the callout which the API provides
* to support global/multiprocessor operations on mutexes.
@@ -51,7 +53,7 @@ typedef void ( *CORE_mutex_API_mp_support_callout )(
);
/**
- * @brief Blocking Disciplines Enumerated Type
+ * @brief The blocking disciplines for a mutex.
*
* This enumerated type defines the blocking disciplines for a mutex.
*/
@@ -71,7 +73,7 @@ typedef enum {
} CORE_mutex_Disciplines;
/**
- * @brief Mutex method return statuses
+ * @brief The possible Mutex handler return statuses.
*
* This enumerated type defines the possible Mutex handler return statuses.
*/
@@ -118,14 +120,14 @@ typedef enum {
} CORE_mutex_Status;
/**
- * @brief Core Mutex Last Status
+ * @brief The last status value.
*
* This is the last status value.
*/
#define CORE_MUTEX_STATUS_LAST CORE_MUTEX_STATUS_CEILING_VIOLATED
/**
- * @brief Mutex Lock Nesting Behavior Enumeration
+ * @brief The possible behaviors for lock nesting.
*
* This enumerated type defines the possible behaviors for
* lock nesting.
@@ -170,7 +172,7 @@ typedef enum {
#define CORE_MUTEX_LOCKED 0
/**
- * @brief Core Mutex Attributes
+ * @brief The control block used to manage attributes of each mutex.
*
* The following defines the control block used to manage the
* attributes of each mutex.
@@ -195,7 +197,8 @@ typedef struct {
} CORE_mutex_Attributes;
#ifdef __RTEMS_STRICT_ORDER_MUTEX__
-/*@brief Core Mutex Lock_Chain Struct
+/**
+ * @brief The control block to manage lock chain of priority inheritance mutex.
*
* The following defines the control block used to manage lock chain of
* priority inheritance mutex.
@@ -214,7 +217,7 @@ typedef struct {
#endif
/**
- * @brief Core Mutex Control Structure
+ * @brief Control block used to manage each mutex.
*
* The following defines the control block used to manage each mutex.
*/
@@ -251,7 +254,7 @@ typedef struct {
} CORE_mutex_Control;
/**
- * @brief Initialize a Core Mutex
+ * @brief Initializes the mutex based on the parameters passed.
*
* This routine initializes the mutex based on the parameters passed.
*
@@ -260,7 +263,7 @@ typedef struct {
* mutex instance
* @param[in] initial_lock is the initial value of the mutex
*
- * @return This method returns CORE_MUTEX_STATUS_SUCCESSFUL if successful.
+ * @retval This method returns CORE_MUTEX_STATUS_SUCCESSFUL if successful.
*/
CORE_mutex_Status _CORE_mutex_Initialize(
CORE_mutex_Control *the_mutex,
@@ -270,7 +273,7 @@ CORE_mutex_Status _CORE_mutex_Initialize(
#ifndef __RTEMS_APPLICATION__
/**
- * @brief Seize Mutex with Quick Success Path
+ * @brief Attempt to receive a unit from the_mutex.
*
* This routine attempts to receive a unit from the_mutex.
* If a unit is available or if the wait flag is false, then the routine
@@ -280,7 +283,7 @@ CORE_mutex_Status _CORE_mutex_Initialize(
* @param[in] the_mutex is the mutex to attempt to lock
* @param[in] level_p is the interrupt level holder
*
- * @return This routine returns 0 if "trylock" can resolve whether or not
+ * @retval This routine returns 0 if "trylock" can resolve whether or not
* the mutex is immediately obtained or there was an error attempting to
* get it. It returns 1 to indicate that the caller cannot obtain
* the mutex and will have to block to do so.
@@ -296,7 +299,8 @@ RTEMS_INLINE_ROUTINE int _CORE_mutex_Seize_interrupt_trylock_body(
#if defined(__RTEMS_DO_NOT_INLINE_CORE_MUTEX_SEIZE__)
/**
- * @brief Trylock CORE Mutex Seize Interrupt
+ * @brief Interrupt trylock CORE mutex seize.
+ *
* When doing test coverage analysis or trying to minimize the code
* space for RTEMS, it is often helpful to not inline this method
* multiple times. It is fairly large and has a high branch complexity
@@ -322,7 +326,7 @@ RTEMS_INLINE_ROUTINE int _CORE_mutex_Seize_interrupt_trylock_body(
#endif
/**
- * @brief Seize Mutex with Blocking
+ * @brief Performs the blocking portion of a mutex obtain.
*
* This routine performs the blocking portion of a mutex obtain.
* It is an actual subroutine and is not implemented as something
@@ -336,13 +340,13 @@ void _CORE_mutex_Seize_interrupt_blocking(
Watchdog_Interval timeout
);
/**
- * @brief Sieze Interrupt Wrapper
+ * @brief Verifies that a mutex blocking seize is performed safely.
*
* This macro is to verify that a mutex blocking seize is
* performed from a safe system state. For example, one
* cannot block inside an isr.
*
- * @return this method returns true if dispatch is in an unsafe state.
+ * @retval this method returns true if dispatch is in an unsafe state.
*/
#ifdef RTEMS_SMP
#define _CORE_mutex_Check_dispatch_for_seize(_wait) 0
@@ -354,7 +358,7 @@ void _CORE_mutex_Seize_interrupt_blocking(
#endif
/**
- * @brief Sieze Interrupt Wrapper
+ * @brief Attempt to obtain the mutex.
*
* This routine attempts to obtain the mutex. If the mutex is available,
* then it will return immediately. Otherwise, it will invoke the
@@ -430,7 +434,7 @@ void _CORE_mutex_Seize_interrupt_blocking(
#endif
/**
- * @brief Surrender the Mutex
+ * @brief Frees a unit to the mutex.
*
* This routine frees a unit to the mutex. If a task was blocked waiting for
* a unit from this mutex, then that task will be readied and the unit
@@ -441,7 +445,7 @@ void _CORE_mutex_Seize_interrupt_blocking(
* @param[in] api_mutex_mp_support is the routine that will be called when
* unblocking a remote mutex
*
- * @return an indication of whether the routine succeeded or failed
+ * @retval an indication of whether the routine succeeded or failed
*/
CORE_mutex_Status _CORE_mutex_Surrender(
CORE_mutex_Control *the_mutex,
@@ -450,7 +454,7 @@ CORE_mutex_Status _CORE_mutex_Surrender(
);
/**
- * @brief Flush all waiting threads
+ * @brief Flush all waiting threads.
*
* This routine assists in the deletion of a mutex by flushing the associated
* wait queue.
diff --git a/cpukit/score/include/rtems/score/corerwlock.h b/cpukit/score/include/rtems/score/corerwlock.h
index 3b70d80701..8281abb9eb 100644
--- a/cpukit/score/include/rtems/score/corerwlock.h
+++ b/cpukit/score/include/rtems/score/corerwlock.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/corerwlock.h
*
+ * @brief Constants and Structures Associated with the RWLock Handler
+ *
* This include file contains all the constants and structures associated
* with the RWLock Handler.
*/
@@ -125,7 +127,7 @@ typedef struct {
} CORE_RWLock_Control;
/**
- * @brief Initialize a RWlock
+ * @brief Initialize a RWlock.
*
* This routine initializes the RWLock based on the parameters passed.
*
@@ -138,7 +140,8 @@ void _CORE_RWLock_Initialize(
);
/**
- * @brief Obtain RWLock for reading
+ * @brief Obtain RWLock for reading.
+ *
* This routine attempts to obtain the RWLock for read access.
*
* @param[in] the_rwlock is the RWLock to wait for
@@ -161,8 +164,8 @@ void _CORE_RWLock_Obtain_for_reading(
);
/**
- * @brief RWLock Obtain for Writing
- *
+ * @brief Obtain RWLock for writing.
+ *
* This routine attempts to obtain the RWLock for write exclusive access.
*
* @param[in] the_rwlock is the RWLock to wait for
@@ -184,14 +187,14 @@ void _CORE_RWLock_Obtain_for_writing(
);
/**
- * @brief Releases the RWLock
+ * @brief Release the RWLock.
*
* This routine manually releases @a the_rwlock. All of the threads waiting
* for the RWLock will be readied.
*
* @param[in] the_rwlock is the RWLock to surrender
*
- * @return Status is returned to indicate successful or failure.
+ * @retval Status is returned to indicate successful or failure.
*/
CORE_RWLock_Status _CORE_RWLock_Release(
CORE_RWLock_Control *the_rwlock
@@ -214,7 +217,7 @@ CORE_RWLock_Status _CORE_RWLock_Release(
)
/**
- * @brief RWLock Specific Thread Queue Timeout
+ * @brief RWLock specific thread queue timeout.
*
* This routine processes a thread which timeouts while waiting on
* an RWLock's thread queue. It is called by the watchdog handler.
diff --git a/cpukit/score/include/rtems/score/coresem.h b/cpukit/score/include/rtems/score/coresem.h
index d7a8494c55..3bb8773430 100644
--- a/cpukit/score/include/rtems/score/coresem.h
+++ b/cpukit/score/include/rtems/score/coresem.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/coresem.h
*
+ * @brief Data Associated with the Counting Semaphore Handler
+ *
* This include file contains all the constants and structures associated
* with the Counting Semaphore Handler. A counting semaphore is the
* standard Dijkstra binary semaphore used to provide synchronization
@@ -90,7 +92,7 @@ typedef enum {
} CORE_semaphore_Status;
/**
- * @brief Core Semaphore Last Status
+ * @brief Core semaphore last status value.
*
* This is the last status value.
*/
@@ -127,14 +129,14 @@ typedef struct {
} CORE_semaphore_Control;
/**
- * @brief Core Semaphore Initialize
- *
+ * @brief Initialize the semaphore based on the parameters passed.
+ *
* DESCRIPTION:
*
* This package is the implementation of the CORE Semaphore Handler.
* This core object utilizes standard Dijkstra counting semaphores to provide
* synchronization and mutual exclusion capabilities.
- *
+ *
* This routine initializes the semaphore based on the parameters passed.
*
* @param[in] the_semaphore is the semaphore to initialize
@@ -170,7 +172,7 @@ void _CORE_semaphore_Initialize(
#endif
/**
- * @brief Surrenders a Unit to a Semaphore
+ * @brief Surrender a unit to a semaphore.
*
* This routine frees a unit to the semaphore. If a task was blocked waiting
* for a unit from this semaphore, then that task will be readied and the unit
@@ -182,7 +184,7 @@ void _CORE_semaphore_Initialize(
* @param[in] api_semaphore_mp_support is the routine to invoke if the
* thread unblocked is remote
*
- * @return an indication of whether the routine succeeded or failed
+ * @retval an indication of whether the routine succeeded or failed
*/
CORE_semaphore_Status _CORE_semaphore_Surrender(
CORE_semaphore_Control *the_semaphore,
@@ -191,8 +193,8 @@ CORE_semaphore_Status _CORE_semaphore_Surrender(
);
/**
- * @brief Core Semaphore Flush
- *
+ * @brief Core semaphore flush.
+ *
* DESCRIPTION:
* This package is the implementation of the CORE Semaphore Handler.
* This core object utilizes standard Dijkstra counting semaphores to provide
diff --git a/cpukit/score/include/rtems/score/corespinlock.h b/cpukit/score/include/rtems/score/corespinlock.h
index dfa62ccb8f..5a5b68168a 100644
--- a/cpukit/score/include/rtems/score/corespinlock.h
+++ b/cpukit/score/include/rtems/score/corespinlock.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/corespinlock.h
*
+ * @brief Constants and Structures Associated with the Spinlock Handler
+ *
* This include file contains all the constants and structures associated
* with the Spinlock Handler.
*/
@@ -110,7 +112,7 @@ typedef struct {
} CORE_spinlock_Control;
/**
- * @brief Initialized a spinlock
+ * @brief Initialize the spinlock.
*
* This routine initializes the spinlock based on the parameters passed.
*
@@ -123,7 +125,8 @@ void _CORE_spinlock_Initialize(
);
/**
- * @brief Wait for Spinlock
+ * @brief Wait for spinlock.
+ *
* This routine wait for the spinlock to be released. If the spinlock
* is set to automatic and this is the appropriate thread, then it returns
* immediately. Otherwise, the calling thread is blocked until the spinlock
@@ -133,7 +136,7 @@ void _CORE_spinlock_Initialize(
* @param[in] wait is true if willing to wait
* @param[in] timeout is the maximum number of ticks to spin (0 is forever)
*
- * @return A status is returned which indicates the success or failure of
+ * @retval A status is returned which indicates the success or failure of
* this operation.
*/
CORE_spinlock_Status _CORE_spinlock_Wait(
@@ -143,8 +146,8 @@ CORE_spinlock_Status _CORE_spinlock_Wait(
);
/**
- * @brief Manually release Spinlock
- *
+ * @brief Manually release the spinlock.
+ *
* This routine manually releases the spinlock. All of the threads waiting
* for the spinlock will be readied.
*
diff --git a/cpukit/score/include/rtems/score/heap.h b/cpukit/score/include/rtems/score/heap.h
index f3d259d6cf..80b3fd2404 100644
--- a/cpukit/score/include/rtems/score/heap.h
+++ b/cpukit/score/include/rtems/score/heap.h
@@ -3,7 +3,7 @@
*
* @ingroup ScoreHeap
*
- * @brief Heap Handler API.
+ * @brief Heap Handler API
*/
/*
@@ -126,9 +126,8 @@ extern "C" {
* block indicates that the previous block is used, this ensures that the
* last block appears as used for the _Heap_Is_used() and _Heap_Is_free()
* functions.
- *
- * @{
*/
+/**@{**/
typedef struct Heap_Control Heap_Control;
diff --git a/cpukit/score/include/rtems/score/interr.h b/cpukit/score/include/rtems/score/interr.h
index 522e1576e2..2580c72253 100644
--- a/cpukit/score/include/rtems/score/interr.h
+++ b/cpukit/score/include/rtems/score/interr.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/interr.h
*
+ * @brief Constants and Prototypes Related to the Internal Error Handler
+ *
* This include file contains constants and prototypes related
* to the Internal Error Handler.
*/
diff --git a/cpukit/score/include/rtems/score/isr.h b/cpukit/score/include/rtems/score/isr.h
index 0d93d29de9..58d4fbc952 100644
--- a/cpukit/score/include/rtems/score/isr.h
+++ b/cpukit/score/include/rtems/score/isr.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/isr.h
*
+ * @brief Data Related to the Management of Processor Interrupt Levels
+ *
* This include file contains all the constants and structures associated
* with the management of processor interrupt levels. This handler
* supports interrupt critical sections, vectoring of user interrupt
@@ -87,19 +89,19 @@ SCORE_EXTERN ISR_Handler_entry *_ISR_Vector_table;
#endif
/**
- * @brief Initialize the ISR Handler
+ * @brief Initialize the ISR handler.
*
* This routine performs the initialization necessary for the ISR handler.
*/
void _ISR_Handler_initialization ( void );
/**
- * @brief Disable Interrupts on This Core
+ * @brief Disable interrupts on this core.
*
* This routine disables all interrupts so that a critical section
* of code can be executing without being interrupted.
*
- * @return The argument @a _level will contain the previous interrupt
+ * @retval The argument @a _level will contain the previous interrupt
* mask level.
*/
#define _ISR_Disable_on_this_core( _level ) \
@@ -109,13 +111,13 @@ void _ISR_Handler_initialization ( void );
} while (0)
/**
- * @brief Enable Interrupts on This Core
+ * @brief Enable interrupts on this core.
*
* This routine enables interrupts to the previous interrupt mask
* LEVEL. It is used at the end of a critical section of code to
* enable interrupts so they can be processed again.
*
- * @param[in] level contains the interrupt level mask level
+ * @param[in] _level contains the interrupt level mask level
* previously returned by @ref _ISR_Disable_on_this_core.
*/
#define _ISR_Enable_on_this_core( _level ) \
@@ -125,7 +127,7 @@ void _ISR_Handler_initialization ( void );
} while (0)
/**
- * @brief Temporarily Enable Interrupts on This Core
+ * @brief Temporarily enable interrupts on this core.
*
* This routine temporarily enables interrupts to the previous
* interrupt mask level and then disables all interrupts so that
@@ -140,7 +142,7 @@ void _ISR_Handler_initialization ( void );
* must be selected with care to ensure that the critical section
* properly protects itself.
*
- * @param[in] level contains the interrupt level mask level
+ * @param[in] _level contains the interrupt level mask level
* previously returned by @ref _ISR_Disable_on_this_core.
*/
#define _ISR_Flash_on_this_core( _level ) \
@@ -153,7 +155,7 @@ void _ISR_Handler_initialization ( void );
#if defined(RTEMS_SMP)
/**
- * @brief Initialize SMP Interrupt Critical Section Support
+ * @brief Initialize SMP interrupt critical section support.
*
* This method initializes the variables required by the SMP implementation
* of interrupt critical section management.
@@ -161,17 +163,17 @@ void _ISR_Handler_initialization ( void );
void _ISR_SMP_Initialize(void);
/**
- * @brief Enter Interrupt Critical Section on SMP System
+ * @brief Enter interrupt critical section on SMP system.
*
* This method is used to enter an interrupt critical section that
* is honored across all cores in an SMP system.
*
- * @return This method returns the previous interrupt mask level.
+ * @retval This method returns the previous interrupt mask level.
*/
ISR_Level _ISR_SMP_Disable(void);
/**
- * @brief Exit Interrupt Critical Section on SMP System
+ * @brief Exit interrupt critical section on SMP system.
*
* This method is used to exit an interrupt critical section that
* is honored across all cores in an SMP system.
@@ -182,7 +184,7 @@ ISR_Level _ISR_SMP_Disable(void);
void _ISR_SMP_Enable(ISR_Level level);
/**
- * @brief Temporarily Exit Interrupt Critical Section on SMP System
+ * @brief Temporarily exit interrupt critical section on SMP system.
*
* This method is used to temporarily exit an interrupt critical section
* that is honored across all cores in an SMP system.
@@ -193,20 +195,20 @@ void _ISR_SMP_Enable(ISR_Level level);
void _ISR_SMP_Flash(ISR_Level level);
/**
- * @brief Enter SMP interrupt code
+ * @brief Enter SMP interrupt code.
*
* This method is used to enter the SMP interrupt section.
*
- * @return This method returns the isr level.
+ * @retval This method returns the isr level.
*/
int _ISR_SMP_Enter(void);
/**
- * @brief Exit SMP interrupt code
+ * @brief Exit SMP interrupt code.
*
* This method is used to exit the SMP interrupt.
*
- * @return This method returns 0 on a simple return and returns 1 on a
+ * @retval This method returns 0 on a simple return and returns 1 on a
* dispatching return.
*/
int _ISR_SMP_Exit(void);
@@ -214,7 +216,7 @@ int _ISR_SMP_Exit(void);
#endif
/**
- * @brief Enter Interrupt Disable Critical Section
+ * @brief Enter interrupt disable critical section.
*
* This routine enters an interrupt disable critical section. When
* in an SMP configuration, this involves obtaining a spinlock to ensure
@@ -222,7 +224,7 @@ int _ISR_SMP_Exit(void);
* When on a single core system, this only involves disabling local
* CPU interrupts.
*
- * @return The argument @a _level will contain the previous interrupt
+ * @retval The argument @a _level will contain the previous interrupt
* mask level.
*/
#if defined(RTEMS_SMP)
@@ -234,14 +236,14 @@ int _ISR_SMP_Exit(void);
#endif
/**
- * @brief Exits Interrupt Disable Critical Section
+ * @brief Exits interrupt disable critical section.
*
* This routine exits an interrupt disable critical section. When
* in an SMP configuration, this involves releasing a spinlock.
* When on a single core system, this only involves disabling local
* CPU interrupts.
*
- * @return The argument @a _level will contain the previous interrupt
+ * @retval The argument @a _level will contain the previous interrupt
* mask level.
*/
#if defined(RTEMS_SMP)
@@ -253,7 +255,7 @@ int _ISR_SMP_Exit(void);
#endif
/**
- * @brief Temporarily Exit Interrupt Disable Critical Section
+ * @brief Temporarily exit interrupt disable critical section.
*
* This routine is used to temporarily enable interrupts
* during a long critical section. It is used in long sections of
@@ -263,7 +265,7 @@ int _ISR_SMP_Exit(void);
* must be selected with care to ensure that the critical section
* properly protects itself.
*
- * @return The argument @a _level will contain the previous interrupt
+ * @retval The argument @a _level will contain the previous interrupt
* mask level.
*/
#if defined(RTEMS_SMP)
@@ -275,7 +277,7 @@ int _ISR_SMP_Exit(void);
#endif
/**
- * @brief Install Interrupt Handler Vector
+ * @brief Install interrupt handler vector.
*
* This routine installs new_handler as the interrupt service routine
* for the specified vector. The previous interrupt service routine is
@@ -289,26 +291,26 @@ int _ISR_SMP_Exit(void);
* @param[in] _old_handler is a pointer to a variable which will be set
* to the old handler
*
- * @return *_old_handler will be set to the old ISR handler
+ * @retval *_old_handler will be set to the old ISR handler
*/
#define _ISR_Install_vector( _vector, _new_handler, _old_handler ) \
_CPU_ISR_install_vector( _vector, _new_handler, _old_handler )
/**
- * @brief Return Current Interrupt Level
+ * @brief Return current interrupt level.
*
* This routine returns the current interrupt level.
*
* LM32 Specific Information:
* XXX document implementation including references if appropriate
*
- * @return This method returns the current level.
+ * @retval This method returns the current level.
*/
#define _ISR_Get_level() \
_CPU_ISR_Get_level()
/**
- * @brief Set Current Interrupt Level
+ * @brief Set current interrupt level.
*
* This routine sets the current interrupt level to that specified
* by @a _new_level. The new interrupt level is effective when the
@@ -324,7 +326,7 @@ int _ISR_SMP_Exit(void);
} while (0)
/**
- * @brief ISR Handler or Dispatcher
+ * @brief ISR interrupt dispatcher.
*
* This routine is the interrupt dispatcher. ALL interrupts
* are vectored to this routine so that minimal context can be saved
@@ -340,7 +342,7 @@ int _ISR_SMP_Exit(void);
void _ISR_Handler( void );
/**
- * @brief ISR Wrapper for Thread Dispatcher
+ * @brief ISR wrapper for thread dispatcher.
*
* This routine provides a wrapper so that the routine
* @ref _Thread_Dispatch can be invoked when a reschedule is necessary
@@ -355,13 +357,13 @@ void _ISR_Handler( void );
void _ISR_Dispatch( void );
/**
- * @brief Is an ISR in Progress
+ * @brief Checks if an ISR in progress.
*
* This function returns true if the processor is currently servicing
* and interrupt and false otherwise. A return value of true indicates
* that the caller is an interrupt service routine, NOT a thread.
*
- * @return This methods returns true when called from an ISR.
+ * @retval This methods returns true when called from an ISR.
*/
#if (CPU_PROVIDES_ISR_IS_IN_PROGRESS == TRUE)
bool _ISR_Is_in_progress( void );
diff --git a/cpukit/score/include/rtems/score/isrlevel.h b/cpukit/score/include/rtems/score/isrlevel.h
index 13f1c53c3f..e3146e4ef3 100644
--- a/cpukit/score/include/rtems/score/isrlevel.h
+++ b/cpukit/score/include/rtems/score/isrlevel.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/isrlevel.h
*
+ * @brief ISR Level Type
+ *
* This include file defines the ISR Level type. It exists to
* simplify include dependencies. It is part of the ISR Handler.
*/
@@ -22,6 +24,10 @@ extern "C" {
#endif
/**
+ * @defgroup ScoreISR ISR Handler
+ *
+ * @ingroup Score
+ *
* @addtogroup ScoreISR ISR Handler
*/
/**@{*/
@@ -38,4 +44,3 @@ typedef uint32_t ISR_Level;
}
#endif
#endif
-
diff --git a/cpukit/score/include/rtems/score/mpci.h b/cpukit/score/include/rtems/score/mpci.h
index 5fce6a274f..16f6d36b20 100644
--- a/cpukit/score/include/rtems/score/mpci.h
+++ b/cpukit/score/include/rtems/score/mpci.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/mpci.h
*
+ * @brief Constants and Structures Associated with the MPCI Layer
+ *
* This include file contains all the constants and structures associated
* with the MPCI layer. It provides mechanisms to utilize packets.
*/
@@ -180,7 +182,7 @@ SCORE_EXTERN Thread_queue_Control _MPCI_Remote_blocked_threads;
SCORE_EXTERN MPCI_Control *_MPCI_table;
/**
- * @brief Pointer to MP Thread Control Block
+ * @brief Pointer to MP thread control block.
*
* The following is used to determine when the multiprocessing receive
* thread is executing so that a proxy can be allocated instead of
@@ -196,7 +198,7 @@ SCORE_EXTERN MPCI_Packet_processor
_MPCI_Packet_processors[MP_PACKET_CLASSES_LAST+1];
/**
- * @brief Initialization of the MPCI Handler
+ * @brief Initialize the MPCI handler.
*
* This routine performs the initialization necessary for this handler.
*
@@ -208,14 +210,14 @@ void _MPCI_Handler_initialization(
);
/**
- * @brief Create the MPCI Server Thread
- *
+ * @brief Create the MPCI server thread.
+ *
* This routine creates the packet receive server used in MP systems.
*/
void _MPCI_Create_server( void );
/**
- * @brief Initialize the MPCI driver
+ * @brief Initialize the MPCI driver.
*
* This routine initializes the MPCI driver by
* invoking the user provided MPCI initialization callout.
@@ -241,14 +243,14 @@ void _MPCI_Register_packet_processor(
* This function obtains a packet by invoking the user provided
* MPCI get packet callout.
*
- * @return This method returns a pointer to a MPCI packet which can be
+ * @retval This method returns a pointer to a MPCI packet which can be
* filled in by the caller and used to perform a subsequent
* remote operation.
*/
MP_packet_Prefix *_MPCI_Get_packet ( void );
/**
- * @brief Deallocate a packet
+ * @brief Deallocate a packet.
*
* This routine deallocates a packet by invoking the user provided
* MPCI return packet callout.
@@ -260,7 +262,7 @@ void _MPCI_Return_packet (
);
/**
- * @brief Send a process packet
+ * @brief Send a process packet.
*
* This routine sends a process packet by invoking the user provided
* MPCI send callout.
@@ -274,7 +276,7 @@ void _MPCI_Send_process_packet (
);
/**
- * @brief Send a request packet
+ * @brief Send a request packet.
*
* This routine sends a request packet by invoking the user provided
* MPCI send callout.
@@ -286,7 +288,7 @@ void _MPCI_Send_process_packet (
* may indicate the caller is blocking on a message queue
* operation.
*
- * @return This method returns the operation status from the remote node.
+ * @retval This method returns the operation status from the remote node.
*/
uint32_t _MPCI_Send_request_packet (
uint32_t destination,
@@ -295,7 +297,7 @@ uint32_t _MPCI_Send_request_packet (
);
/**
- * @brief Send a response packet
+ * @brief Send a response packet.
*
* This routine sends a response packet by invoking the user provided
* MPCI send callout.
@@ -309,17 +311,17 @@ void _MPCI_Send_response_packet (
);
/**
- * @brief Receive a packet
+ * @brief Receive a packet.
*
* This routine receives a packet by invoking the user provided
* MPCI receive callout.
*
- * @return This method returns the packet received.
+ * @retval This method returns the packet received.
*/
MP_packet_Prefix *_MPCI_Receive_packet ( void );
/**
- * @brief Pass a packet to the thread
+ * @brief Pass a packet to the thread.
*
* This routine is responsible for passing @a the_packet to the thread
* waiting on the remote operation to complete. The unblocked thread is
@@ -327,7 +329,7 @@ MP_packet_Prefix *_MPCI_Receive_packet ( void );
*
* @param[in] the_packet is the response packet to be processed.
*
- * @return This method returns a pointer to the thread which was if unblocked
+ * @retval This method returns a pointer to the thread which was if unblocked
* or NULL if the waiting thread no longer exists.
*/
Thread_Control *_MPCI_Process_response (
@@ -335,7 +337,7 @@ Thread_Control *_MPCI_Process_response (
);
/**
- * @brief Receive and process all packets
+ * @brief Receive and process all packets.
*
* This is the server thread which receives and processes all MCPI packets.
*
@@ -346,14 +348,14 @@ Thread _MPCI_Receive_server(
);
/**
- * @brief Announce the availability of a packet
+ * @brief Announce the availability of a packet.
*
* This routine informs RTEMS of the availability of an MPCI packet.
*/
void _MPCI_Announce ( void );
/**
- * @brief Perform a process on another node
+ * @brief Perform a process on another node.
*
* This routine performs a remote procedure call so that a
* process operation can be performed on another node.
@@ -385,7 +387,7 @@ void _MPCI_Internal_packets_Send_process_packet (
*/
/**
- * @brief Perform requested action from another node
+ * @brief Perform requested action from another node.
*
* This routine performs the actions specific to this package for
* the request from another node.
@@ -417,7 +419,7 @@ void _MPCI_Internal_packets_Process_packet (
*/
/**
- * @brief Obtain an internal thread
+ * @brief Obtain an internal thread.
*
* This routine is used to obtain an internal threads MP packet.
*/
diff --git a/cpukit/score/include/rtems/score/mppkt.h b/cpukit/score/include/rtems/score/mppkt.h
index 85d80b85b3..7dca30612d 100644
--- a/cpukit/score/include/rtems/score/mppkt.h
+++ b/cpukit/score/include/rtems/score/mppkt.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/mppkt.h
*
+ * @brief Specification for the Packet Handler
+ *
* This package is the specification for the Packet Handler.
* This handler defines the basic packet and provides
* mechanisms to utilize packets based on this prefix.
diff --git a/cpukit/score/include/rtems/score/object.h b/cpukit/score/include/rtems/score/object.h
index 91173c335a..d6b8f48d35 100644
--- a/cpukit/score/include/rtems/score/object.h
+++ b/cpukit/score/include/rtems/score/object.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/object.h
*
+ * @brief Constants and Structures Associated with the Object Handler
+ *
* This include file contains all the constants and structures associated
* with the Object Handler. This Handler provides mechanisms which
* can be used to initialize and manipulate all objects which have ids.
@@ -40,6 +42,7 @@ extern "C" {
*
* @brief Provides services for all APIs.
*/
+/**@{*/
/**
* @defgroup ScoreCPU CPU Architecture Support
@@ -48,12 +51,14 @@ extern "C" {
*
* @brief Provides CPU architecture dependent services.
*/
+/**@{*/
/**
* @defgroup ScoreObject Object Handler
*
* @ingroup Score
*/
+/**@{*/
/**
* The following type defines the control block used to manage
@@ -502,20 +507,18 @@ void _Objects_Initialize_information (
*
* @param[in] api is the API of interest
*
- * @return A positive integer on success and 0 otherwise.
+ * @retval A positive integer on success and 0 otherwise.
*/
unsigned int _Objects_API_maximum_class(
uint32_t api
);
/**
- * @brief Allocate Object
+ * @brief Allocate an object.
*
- * This function allocates a object control block from
+ * This function allocates an object control block from
* the inactive chain of free object control blocks.
*
- * @brief Allocate Object
- *
* @param[in] information points to an object class information block.
*/
Objects_Control *_Objects_Allocate(
@@ -523,9 +526,9 @@ Objects_Control *_Objects_Allocate(
);
/**
- * @brief Free Object
+ * @brief Free an object.
*
- * This function frees a object control block to the
+ * This function frees an object control block to the
* inactive chain of free object control blocks.
*
* @param[in] information points to an object class information block.
@@ -583,7 +586,8 @@ typedef enum {
#define OBJECTS_NAME_ERRORS_LAST OBJECTS_INVALID_NODE
/**
- * @brief Object Name To Id
+ * @brief Converts an object name to an Id.
+ *
* This method converts an object name to an Id. It performs a look up
* using the object information block for this object class.
*
@@ -592,7 +596,7 @@ typedef enum {
* @param[in] node is the set of nodes to search.
* @param[in] id will contain the Id if the search is successful.
*
- * @return This method returns one of the values from the
+ * @retval This method returns one of the values from the
* @ref Objects_Name_or_id_lookup_errors enumeration to indicate
* successful or failure. On success @a id will contain the Id of
* the requested object.
@@ -606,7 +610,7 @@ Objects_Name_or_id_lookup_errors _Objects_Name_to_id_u32(
#if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)
/**
- * @brief Object ID to Name
+ * @brief Converts an object name to an Id.
*
* This method converts an object name to an Id. It performs a look up
* using the object information block for this object class.
@@ -615,7 +619,7 @@ Objects_Name_or_id_lookup_errors _Objects_Name_to_id_u32(
* @param[in] name is the name of the object to find.
* @param[in] id will contain the Id if the search is successful.
*
- * @return This method returns one of the values from the
+ * @retval This method returns one of the values from the
* @ref Objects_Name_or_id_lookup_errors enumeration to indicate
* successful or failure. On success @a id will contain the Id of
* the requested object.
@@ -628,7 +632,8 @@ Objects_Name_or_id_lookup_errors _Objects_Name_to_id_string(
#endif
/**
- * @brief Object Id To Name
+ * @brief Implements the common portion of the object Id to name directives.
+ *
* This function implements the common portion of the object Id
* to name directives. This function returns the name
* associated with object id.
@@ -636,7 +641,7 @@ Objects_Name_or_id_lookup_errors _Objects_Name_to_id_string(
* @param[in] id is the Id of the object whose name we are locating.
* @param[in] name will contain the name of the object, if found.
*
- * @return This method returns one of the values from the
+ * @retval This method returns one of the values from the
* @ref Objects_Name_or_id_lookup_errors enumeration to indicate
* successful or failure. On success @a name will contain the name of
* the requested object.
@@ -649,7 +654,8 @@ Objects_Name_or_id_lookup_errors _Objects_Id_to_name (
);
/**
- * @brief Get Object
+ * @brief Maps object ids to object control blocks.
+ *
* This function maps object ids to object control blocks.
* If id corresponds to a local object, then it returns
* the_object control pointer which maps to id and location
@@ -663,7 +669,7 @@ Objects_Name_or_id_lookup_errors _Objects_Id_to_name (
* @param[in] id is the Id of the object whose name we are locating.
* @param[in] location will contain an indication of success or failure.
*
- * @return This method returns one of the values from the
+ * @retval This method returns one of the values from the
* @ref Objects_Name_or_id_lookup_errors enumeration to indicate
* successful or failure. On success @a id will contain the Id of
* the requested object.
@@ -680,7 +686,7 @@ Objects_Control *_Objects_Get (
);
/**
- * @brief Object Get Isr Disable
+ * @brief Maps object ids to object control blocks.
*
* This function maps object ids to object control blocks.
* If id corresponds to a local object, then it returns
@@ -696,7 +702,7 @@ Objects_Control *_Objects_Get (
* @param[in] location will contain an indication of success or failure.
* @param[in] level is the interrupt level being turned.
*
- * @return This method returns one of the values from the
+ * @retval This method returns one of the values from the
* @ref Objects_Name_or_id_lookup_errors enumeration to indicate
* successful or failure. On success @a name will contain the name of
* the requested object.
@@ -714,7 +720,7 @@ Objects_Control *_Objects_Get_isr_disable(
);
/**
- * @brief Get No protection Object
+ * @brief Maps object ids to object control blocks.
*
* This function maps object ids to object control blocks.
* If id corresponds to a local object, then it returns
@@ -729,7 +735,7 @@ Objects_Control *_Objects_Get_isr_disable(
* @param[in] id is the Id of the object whose name we are locating.
* @param[in] location will contain an indication of success or failure.
*
- * @return This method returns one of the values from the
+ * @retval This method returns one of the values from the
* @ref Objects_Name_or_id_lookup_errors enumeration to indicate
* successful or failure. On success @a id will contain the Id of
* the requested object.
@@ -753,7 +759,7 @@ Objects_Control *_Objects_Get_no_protection(
* @param[in] location_p will contain an indication of success or failure.
* @param[in] next_id_p is the Id of the next object we will look at.
*
- * @return This method returns the pointer to the object located or
+ * @retval This method returns the pointer to the object located or
* NULL on error.
*/
Objects_Control *_Objects_Get_next(
@@ -764,7 +770,7 @@ Objects_Control *_Objects_Get_next(
);
/**
- * @brief Get Object Information
+ * @brief Get object information.
*
* This function return the information structure given
* an the API and Class. This can be done independent of
@@ -773,7 +779,7 @@ Objects_Control *_Objects_Get_next(
* @param[in] the_api indicates the API for the information we want
* @param[in] the_class indicates the Class for the information we want
*
- * @return This method returns a pointer to the Object Information Table
+ * @retval This method returns a pointer to the Object Information Table
* for the class of objects which corresponds to this object ID.
*/
Objects_Information *_Objects_Get_information(
@@ -782,14 +788,14 @@ Objects_Information *_Objects_Get_information(
);
/**
- * @brief Get Information of an Object from an ID
+ * @brief Get information of an object from an ID.
*
* This function return the information structure given
* an @a id of an object.
*
* @param[in] id is the object ID to get the information from
*
- * @return This method returns a pointer to the Object Information Table
+ * @retval This method returns a pointer to the Object Information Table
* for the class of objects which corresponds to this object ID.
*/
Objects_Information *_Objects_Get_information_id(
@@ -797,7 +803,7 @@ Objects_Information *_Objects_Get_information_id(
);
/**
- * @brief _Objects_Get_name_as_string
+ * @brief Gets object name in the form of a C string.
*
* This method objects the name of an object and returns its name
* in the form of a C string. It attempts to be careful about
@@ -807,7 +813,7 @@ Objects_Information *_Objects_Get_information_id(
* @param[in] length indicates the length of the caller's buffer
* @param[in] name points a string which will be filled in.
*
- * @return This method returns @a name or NULL on error. @a *name will
+ * @retval This method returns @a name or NULL on error. @a *name will
* contain the name if successful.
*/
char *_Objects_Get_name_as_string(
@@ -817,7 +823,7 @@ char *_Objects_Get_name_as_string(
);
/**
- * @brief Set Objects Name
+ * @brief Set objects name.
*
* This method sets the object name to either a copy of a string
* or up to the first four characters of the string based upon
@@ -827,7 +833,7 @@ char *_Objects_Get_name_as_string(
* @param[in] the_object is the object to operate upon
* @param[in] name is a pointer to the name to use
*
- * @return If successful, true is returned. Otherwise false is returned.
+ * @retval If successful, true is returned. Otherwise false is returned.
*/
bool _Objects_Set_name(
Objects_Information *information,
@@ -836,7 +842,7 @@ bool _Objects_Set_name(
);
/**
- * @brief Removes Object from Namespace
+ * @brief Removes object from namespace.
*
* This function removes @a the_object from the namespace.
*
@@ -849,7 +855,7 @@ void _Objects_Namespace_remove(
);
/**
- * @brief Close Object
+ * @brief Close object.
*
* This function removes the_object control pointer and object name
* in the Local Pointer and Local Name Tables.
@@ -867,7 +873,7 @@ void _Objects_Close(
*
* @param[in] information The object information table.
*
- * @return The count of active objects.
+ * @retval The count of active objects.
*/
Objects_Maximum _Objects_Active_count(
const Objects_Information *information
@@ -886,5 +892,8 @@ Objects_Maximum _Objects_Active_count(
}
#endif
+/**@}*/
+/**@}*/
+/**@}*/
#endif
/* end of include file */
diff --git a/cpukit/score/include/rtems/score/objectmp.h b/cpukit/score/include/rtems/score/objectmp.h
index 4748c61e2b..1ef15b3c72 100644
--- a/cpukit/score/include/rtems/score/objectmp.h
+++ b/cpukit/score/include/rtems/score/objectmp.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/objectmp.h
*
+ * @brief Data Associated with the Manipulation of Global RTEMS Objects
+ *
* This include file contains all the constants and structures associated
* with the manipulation of Global RTEMS Objects.
*/
@@ -47,7 +49,8 @@ typedef struct {
} Objects_MP_Control;
/**
- * @brief Objects MP Handler initialization
+ * @brief Intializes the inactive global object chain
+ * based on the maximum number of global objects configured.
*
* This routine intializes the inactive global object chain
* based on the maximum number of global objects configured.
@@ -55,7 +58,8 @@ typedef struct {
void _Objects_MP_Handler_initialization(void);
/**
- * @brief Objects MP Handler Early Initialization
+ * @brief Intializes the global object node number
+ * used in the ID field of all objects.
*
* This routine intializes the global object node number
* used in the ID field of all objects.
@@ -63,7 +67,8 @@ void _Objects_MP_Handler_initialization(void);
void _Objects_MP_Handler_early_initialization(void);
/**
- * @brief Objects MP Open
+ * @brief Place the specified global object in the
+ * specified information table.
*
* This routine place the specified global object in the
* specified information table.
@@ -85,7 +90,8 @@ void _Objects_MP_Open (
);
/**
- * @brief Objects MP Allocate and open
+ * @brief Allocates a global object control block
+ * and places it in the specified information table.
*
* This routine allocates a global object control block
* and places it in the specified information table. If the
@@ -110,7 +116,7 @@ bool _Objects_MP_Allocate_and_open (
);
/**
- * @brief Objects MP Close
+ * @brief Removes a global object from the specified information table.
*
* This routine removes a global object from the specified
* information table and deallocates the global object control block.
@@ -121,7 +127,8 @@ void _Objects_MP_Close (
);
/**
- * @brief Objects MP Global name search
+ * @brief Look for the object with the_name in the global
+ * object tables indicated by information.
*
* This routine looks for the object with the_name in the global
* object tables indicated by information. It returns the ID of the
@@ -133,7 +140,7 @@ void _Objects_MP_Close (
* @param[in] nodes_to_search indicates the set of nodes to search.
* @param[in] the_id will contain the Id of the object if found.
*
- * @return This method returns one of the
+ * @retval This method returns one of the
* @ref Objects_Name_or_id_lookup_errors. If successful, @a the_id
* will contain the Id of the object.
*/
@@ -145,7 +152,8 @@ Objects_Name_or_id_lookup_errors _Objects_MP_Global_name_search (
);
/**
- * @brief Objects MP Is remote
+ * @brief Searches the Global Object Table managed
+ * by information for the object indicated by ID.
*
* This function searches the Global Object Table managed
* by information for the object indicated by ID. If the object
@@ -159,7 +167,7 @@ Objects_Name_or_id_lookup_errors _Objects_MP_Global_name_search (
* @param[in] location will contain the location of the object.
* @param[in] the_object will contain a pointer to the object.
*
- * @return This method fills in @a location to indicate successful location
+ * @retval This method fills in @a location to indicate successful location
* of the object or error. On success, @a the_object will be
* filled in.
*/
diff --git a/cpukit/score/include/rtems/score/priority.h b/cpukit/score/include/rtems/score/priority.h
index 3c6f7771f6..091351720c 100644
--- a/cpukit/score/include/rtems/score/priority.h
+++ b/cpukit/score/include/rtems/score/priority.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/priority.h
*
+ * @brief Thread Priority Manipulation Routines
+ *
* This include file contains all thread priority manipulation routines.
* This Handler provides mechanisms which can be used to
* initialize and manipulate thread priorities.
diff --git a/cpukit/score/include/rtems/score/prioritybitmap.h b/cpukit/score/include/rtems/score/prioritybitmap.h
index 4a9966cef7..8e8f21ce34 100644
--- a/cpukit/score/include/rtems/score/prioritybitmap.h
+++ b/cpukit/score/include/rtems/score/prioritybitmap.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/prioritybitmap.h
*
+ * @brief Manipulation Routines for the Bitmap Priority Queue Implementation
+ *
* This include file contains all thread priority manipulation routines for
* the bit map priority queue implementation.
*/
@@ -18,8 +20,9 @@
#define _RTEMS_SCORE_PRIORITYBITMAP_H
/**
- * @addtogroup ScorePriority
+ * @defgroup ScorePriorityBitmap Bitmap Priority Thread Routines
*
+ * @ingroup Score
*/
/**@{*/
@@ -86,7 +89,7 @@ typedef struct {
*
* @param[in] _bit_number is the bit number for which we need a mask
*
- * @return the priority bit mask
+ * @retval the priority bit mask
*
* @note This may simply be a pass through to a CPU dependent implementation.
*/
@@ -100,7 +103,7 @@ typedef struct {
*
* @param[in] _priority is the priority for which we need the index.
*
- * @return This method returns the array index into the priority bit map.
+ * @retval This method returns the array index into the priority bit map.
*
* @note This may simply be a pass through to a CPU dependent implementation.
*/
diff --git a/cpukit/score/include/rtems/score/protectedheap.h b/cpukit/score/include/rtems/score/protectedheap.h
index 8c2f2cd66c..29ee62dbfb 100644
--- a/cpukit/score/include/rtems/score/protectedheap.h
+++ b/cpukit/score/include/rtems/score/protectedheap.h
@@ -3,7 +3,7 @@
*
* @ingroup ScoreProtHeap
*
- * @brief Protected Heap Handler API.
+ * @brief Protected Heap Handler API
*/
/*
@@ -34,8 +34,8 @@ extern "C" {
*
* The @ref ScoreAllocatorMutex is used to protect the heap accesses.
*
- * @{
*/
+/**@{**/
/**
* @brief See _Heap_Initialize().
diff --git a/cpukit/score/include/rtems/score/rbtree.h b/cpukit/score/include/rtems/score/rbtree.h
index 5a03d7ca8d..55b5c55720 100644
--- a/cpukit/score/include/rtems/score/rbtree.h
+++ b/cpukit/score/include/rtems/score/rbtree.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/rbtree.h
*
+ * @brief Constants and Structures Associated with the Red-Black Tree Handler
+ *
* This include file contains all the constants and structures associated
* with the Red-Black Tree Handler.
*/
@@ -80,7 +82,7 @@ struct RBTree_Node_struct {
};
/**
- * @brief macro to return the structure containing the @a node.
+ * @brief Macro to return the structure containing the @a node.
*
* This macro returns a pointer of type @a container_type that points
* to the structure containing @a node, where @a node_field_name is the
@@ -184,12 +186,12 @@ RBTree_Control name = RBTREE_INITIALIZER_EMPTY(name)
RBTree_Node name = RBTREE_NODE_INITIALIZER_EMPTY(name)
/**
- * @brief Initialize a RBTree Header
+ * @brief Initialize a RBTree Header.
*
* This routine initializes @a the_rbtree structure to manage the
* contiguous array of @a number_nodes nodes which starts at
* @a starting_address. Each node is of @a node_size bytes.
- *
+ *
* @param[in] the_rbtree is the pointer to rbtree header
* @param[in] starting_address is the starting address of first node
* @param[in] number_nodes is the number of nodes in rbtree
@@ -205,13 +207,13 @@ void _RBTree_Initialize(
);
/**
- * @brief Obtain the min or max node of a rbtree
+ * @brief Obtain the min or max node of a rbtree.
*
* This function removes the min or max node from @a the_rbtree and returns
* a pointer to that node. If @a the_rbtree is empty, then NULL is returned.
* @a dir specifies whether to return the min (0) or max (1).
*
- * @return This method returns a pointer to a node. If a node was removed,
+ * @retval This method returns a pointer to a node. If a node was removed,
* then a pointer to that node is returned. If @a the_rbtree was
* empty, then NULL is returned.
*
@@ -222,37 +224,50 @@ RBTree_Node *_RBTree_Get(
RBTree_Direction dir
);
+/** @brief Find the node with given key in the tree
+ *
+ * This function returns a pointer to the node in @a the_rbtree
+ * having key equal to key of @a the_node if it exists,
+ * and NULL if not. @a the_node has to be made up before a search.
+ *
+ * @note If the tree is not unique and contains duplicate keys, the set
+ * of duplicate keys acts as FIFO.
+ */
+RBTree_Node *_RBTree_Find_unprotected(
+ const RBTree_Control *the_rbtree,
+ const RBTree_Node *the_node
+);
+
/**
- * @brief Find the node with given key in the tree
+ * @brief Find the node with given key in the tree.
*
* This function returns a pointer to the node with key equal to a key
* of @a the_node if it exists in the Red-Black Tree @a the_rbtree,
* and NULL if not.
- *
+ *
* @param[in] the_rbtree pointer to rbtree control
* @param[in] the_node node with the key to search for
- * @return This method returns pointer to control header of rbtree. *
+ * @retval This method returns pointer to control header of rbtree. *
* If there is no control header available (the node is not part
* of a tree), then NULL is returned. *
*
* - INTERRUPT LATENCY:
- * + single case
+ * + single case
*/
RBTree_Node *_RBTree_Find(
- RBTree_Control *the_rbtree,
- RBTree_Node *the_node
+ const RBTree_Control *the_rbtree,
+ const RBTree_Node *the_node
);
/**
- * @brief Find the control structure of the tree containing the given node
+ * @brief Find the control structure of the tree containing the given node.
*
- * This function returns a pointer called @a return_header to the control structure of the tree
- * containing @a the_node, if it exists, and @a NULL if not.
+ * This function returns a pointer called @a return_header to the
+ * control structure of the tree containing @a the_node, if it exists,
+ * and @a NULL if not.
*
* @param[in] the_node is the pointer to the rbtree node.
- * @param[out] return_header is the pointer to control header of rbtree.
- * @param[out] NULL is returned if there is no control header available.
- *
+ *
* -INTERRUPT LATENCY:
* + single case
*/
@@ -261,7 +276,7 @@ RBTree_Control *_RBTree_Find_header(
);
/**
- * @brief Insert a Node (unprotected)
+ * @brief Insert @a the_node on the Red-Black Tree @a the_rbtree (unprotected).
*
* This routine inserts @a the_node on the Red-Black Tree @a the_rbtree.
*
@@ -279,7 +294,7 @@ RBTree_Node *_RBTree_Insert_unprotected(
);
/**
- * @brief Insert a node on a rbtree
+ * @brief Insert a node on a rbtree.
*
* This routine inserts @a the_node on the tree @a the_rbtree.
*
@@ -298,7 +313,7 @@ RBTree_Node *_RBTree_Insert(
/**
- * @brief Extract a Node (unprotected)
+ * @brief Extracts (removes) @a the_node from @a the_rbtree (unprotected).
*
* This routine extracts (removes) @a the_node from @a the_rbtree.
*
@@ -311,7 +326,7 @@ void _RBTree_Extract_unprotected(
);
/**
- * @brief Delete a node from the rbtree
+ * @brief Delete a node from the rbtree.
*
* This routine deletes @a the_node from @a the_rbtree.
*
diff --git a/cpukit/score/include/rtems/score/scheduler.h b/cpukit/score/include/rtems/score/scheduler.h
index 117f86a37a..5c35a36de1 100644
--- a/cpukit/score/include/rtems/score/scheduler.h
+++ b/cpukit/score/include/rtems/score/scheduler.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/scheduler.h
*
+ * @brief Constants and Structures Associated with the Scheduler
+ *
* This include file contains all the constants and structures associated
* with the scheduler.
*/
@@ -129,7 +131,7 @@ extern Scheduler_Control _Scheduler;
(_Scheduler_Priority_compare(_p1,_p2) > 0)
/**
- * @brief Scheduler is priority higher than
+ * @brief Initializes the scheduler to the policy chosen by the user.
*
* This routine initializes the scheduler to the policy chosen by the user
* through confdefs, or to the priority scheduler with ready chains by
diff --git a/cpukit/score/include/rtems/score/schedulercbs.h b/cpukit/score/include/rtems/score/schedulercbs.h
index d0bc5ee109..53452e044a 100644
--- a/cpukit/score/include/rtems/score/schedulercbs.h
+++ b/cpukit/score/include/rtems/score/schedulercbs.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/schedulercbs.h
*
+ * @brief Thread manipulation for the CBS scheduler
+ *
* This include file contains all the constants and structures associated
* with the manipulation of threads for the CBS scheduler.
*/
@@ -31,8 +33,9 @@ extern "C" {
#endif
/**
- * @addtogroup ScoreScheduler
+ * @defgroup ScoreSchedulerCBS CBS Scheduler
*
+ * @ingroup ScoreScheduler
*/
/**@{*/
@@ -131,12 +134,12 @@ typedef struct {
extern Scheduler_CBS_Server **_Scheduler_CBS_Server_list;
/**
- * @brief Unblocks a Thread from the Queue
+ * @brief Unblocks a thread from the queue.
*
* This routine adds @a the_thread to the scheduling decision, that is,
* adds it to the ready queue and updates any appropriate scheduling
- * variables, for example the heir thread. It is checked whether the
- * remaining budget is sufficient. If not, the thread continues as a
+ * variables, for example the heir thread. It is checked whether the
+ * remaining budget is sufficient. If not, the thread continues as a
* new job in order to protect concurrent threads.
*
* @param[in] the_thread will be unblocked.
@@ -148,7 +151,7 @@ void _Scheduler_CBS_Unblock(
);
/**
- * @brief Scheduler CBS Release job
+ * @brief Called when a new job of task is released.
*
* This routine is called when a new job of task is released.
* It is called only from Rate Monotonic manager in the beginning
@@ -169,16 +172,16 @@ void _Scheduler_CBS_Release_job (
*
* Initializes the CBS library.
*
- * @return status code.
+ * @retval status code.
*/
int _Scheduler_CBS_Initialize(void);
/**
- * @brief Attach Scheduler CBS Thread
+ * @brief Attach a task to an already existing server.
*
* Attach a task to an already existing server.
*
- * @return status code.
+ * @retval status code.
*/
int _Scheduler_CBS_Attach_thread (
Scheduler_CBS_Server_id server_id,
@@ -186,11 +189,11 @@ int _Scheduler_CBS_Attach_thread (
);
/**
- * @brief _Scheduler_CBS_Detach_thread
+ * @brief Detach from the CBS Server.
*
* Detach from the CBS Server.
*
- * @return status code.
+ * @retval status code.
*/
int _Scheduler_CBS_Detach_thread (
Scheduler_CBS_Server_id server_id,
@@ -198,20 +201,20 @@ int _Scheduler_CBS_Detach_thread (
);
/**
- * @brief _Scheduler_CBS_Cleanup
+ * @brief Cleanup resources associated to the CBS Library.
*
* Cleanup resources associated to the CBS Library.
*
- * @return status code.
+ * @retval status code.
*/
int _Scheduler_CBS_Cleanup (void);
/**
- * @brief _Scheduler_CBS_Create_server
+ * @brief Create a new server with specified parameters.
*
* Create a new server with specified parameters.
*
- * @return status code.
+ * @retval status code.
*/
int _Scheduler_CBS_Create_server (
Scheduler_CBS_Parameters *params,
@@ -220,25 +223,25 @@ int _Scheduler_CBS_Create_server (
);
/**
- * @brief _Scheduler_CBS_Destroy_server
+ * @brief Detach all tasks from a server and destroy it.
*
* Detach all tasks from a server and destroy it.
*
* @param[in] server_id is the ID of the server
*
- * @return status code.
+ * @retval status code.
*/
int _Scheduler_CBS_Destroy_server (
Scheduler_CBS_Server_id server_id
);
/**
- * @brief _Scheduler_CBS_Get_approved_budget
+ * @brief Retrieve the approved budget.
*
* Retrieve the budget that has been approved for the subsequent
* server instances.
*
- * @return status code.
+ * @retval status code.
*/
int _Scheduler_CBS_Get_approved_budget (
Scheduler_CBS_Server_id server_id,
@@ -246,11 +249,11 @@ int _Scheduler_CBS_Get_approved_budget (
);
/**
- * @brief _Scheduler_CBS_Get_remaining_budget
+ * @brief Retrieve remaining budget for the current server instance.
*
* Retrieve remaining budget for the current server instance.
*
- * @return status code.
+ * @retval status code.
*/
int _Scheduler_CBS_Get_remaining_budget (
Scheduler_CBS_Server_id server_id,
@@ -258,15 +261,15 @@ int _Scheduler_CBS_Get_remaining_budget (
);
/**
- * @brief Get relative time info
+ * @brief Get relative time info.
*
* Retrieve time info relative to @a server_id. The server status code is returned.
*
* @param[in] server_id is the server to get the status code from.
* @param[in] exec_time is the execution time.
- * @param[in] abs_time is not apparently used.
+ * @param[in] abs_time is not apparently used.
*
- * @return status code.
+ * @retval status code.
*/
int _Scheduler_CBS_Get_execution_time (
Scheduler_CBS_Server_id server_id,
@@ -275,11 +278,11 @@ int _Scheduler_CBS_Get_execution_time (
);
/**
- * @brief _Scheduler_CBS_Get_parameters
+ * @brief Retrieve CBS scheduling parameters.
*
* Retrieve CBS scheduling parameters.
*
- * @return status code.
+ * @retval status code.
*/
int _Scheduler_CBS_Get_parameters (
Scheduler_CBS_Server_id server_id,
@@ -287,12 +290,12 @@ int _Scheduler_CBS_Get_parameters (
);
/**
- * @brief Scheduler CBS Get Server id
+ * @brief Get a thread server id.
*
* Get a thread server id, or SCHEDULER_CBS_ERROR_NOT_FOUND if it is not
* attached to any server.
*
- * @return status code.
+ * @retval status code.
*/
int _Scheduler_CBS_Get_server_id (
rtems_id task_id,
@@ -300,14 +303,14 @@ int _Scheduler_CBS_Get_server_id (
);
/**
- * @brief Set Parameters for CBS Scheduling
+ * @brief Set parameters for CBS scheduling.
*
* Change CBS scheduling parameters.
*
* @param[in] server_id is the ID of the server.
* @param[in] parameters are the parameters to set.
*
- * @return status code.
+ * @retval status code.
*/
int _Scheduler_CBS_Set_parameters (
Scheduler_CBS_Server_id server_id,
@@ -315,7 +318,7 @@ int _Scheduler_CBS_Set_parameters (
);
/**
- * @brief Scheduler CBS Budget overrun
+ * @brief Invoked when a limited time quantum is exceeded.
*
* This routine is invoked when a limited time quantum is exceeded.
*/
@@ -324,7 +327,7 @@ void _Scheduler_CBS_Budget_callout(
);
/**
- * @brief Scheduler CBS Allocate
+ * @brief Allocates CBS specific information of @a the_thread.
*
* This routine allocates CBS specific information of @a the_thread.
*
diff --git a/cpukit/score/include/rtems/score/scheduleredf.h b/cpukit/score/include/rtems/score/scheduleredf.h
index 8381184858..24f9a1ac32 100644
--- a/cpukit/score/include/rtems/score/scheduleredf.h
+++ b/cpukit/score/include/rtems/score/scheduleredf.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/scheduleredf.h
*
+ * @brief Data Related to the Manipulation of Threads for the EDF Scheduler
+ *
* This include file contains all the constants and structures associated
* with the manipulation of threads for the EDF scheduler.
*/
@@ -27,8 +29,9 @@ extern "C" {
#endif
/**
- * @addtogroup ScoreScheduler
+ * @defgroup ScoreSchedulerEDF EDF Scheduler
*
+ * @ingroup ScoreScheduler
*/
/**@{*/
@@ -98,14 +101,14 @@ typedef struct {
extern RBTree_Control _Scheduler_EDF_Ready_queue;
/**
- * @brief Scheduler EDF Initialize
+ * @brief Initialize EDF scheduler.
*
* This routine initializes the EDF scheduler.
*/
void _Scheduler_EDF_Initialize( void );
/**
- * @brief Removes Thread from Ready Queue
+ * @brief Removes thread from ready queue.
*
* This routine removes @a the_thread from the scheduling decision,
* that is, removes it from the ready queue. It performs
@@ -119,7 +122,8 @@ void _Scheduler_EDF_Block(
);
/**
- * @brief Scheduler EDF Schedule
+ * @brief Sets the heir thread to be the next ready thread
+ * in the rbtree ready queue.
*
* This kernel routine sets the heir thread to be the next ready thread
* in the rbtree ready queue.
@@ -127,7 +131,7 @@ void _Scheduler_EDF_Block(
void _Scheduler_EDF_Schedule( void );
/**
- * @brief Scheduler EDF Allocate
+ * @brief Allocates EDF specific information of @a the_thread.
*
* This routine allocates EDF specific information of @a the_thread.
*
@@ -139,7 +143,7 @@ void *_Scheduler_EDF_Allocate(
);
/**
- * @brief Frees EDF information of a thread
+ * @brief Frees EDF information of a thread.
*
* This routine frees the EDF specific information of @a the_thread.
*
@@ -151,7 +155,7 @@ void _Scheduler_EDF_Free(
);
/**
- * @brief Scheduler EDF Update
+ * @brief Updates position in the ready queue of @a the_thread.
*
* This routine updates position in the ready queue of @a the_thread.
*
@@ -163,7 +167,7 @@ void _Scheduler_EDF_Update(
);
/**
- * @brief Scheduler EDF Unblock
+ * @brief Adds @a the_thread to the scheduling decision.
*
* This routine adds @a the_thread to the scheduling decision, that is,
* adds it to the ready queue and updates any appropriate scheduling
@@ -176,7 +180,9 @@ void _Scheduler_EDF_Unblock(
);
/**
- * @brief Scheduler EDF Yield
+ * @brief invoked when a thread wishes to voluntarily
+ * transfer control of the processor to another thread
+ * with equal deadline.
*
* This routine is invoked when a thread wishes to voluntarily
* transfer control of the processor to another thread in the queue with
@@ -189,7 +195,7 @@ void _Scheduler_EDF_Unblock(
void _Scheduler_EDF_Yield( void );
/**
- * @brief Scheduler EDF Enqueue
+ * @brief Put @a the_thread to the rbtree ready queue.
*
* This routine puts @a the_thread to the rbtree ready queue.
*
@@ -200,7 +206,7 @@ void _Scheduler_EDF_Enqueue(
);
/**
- * @brief Enqueues a thread to the ready queue
+ * @brief Enqueue a thread to the ready queue.
*
* This routine puts @a the_thread to the rbtree ready queue.
* For the EDF scheduler this is the same as @a _Scheduler_EDF_Enqueue.
@@ -212,7 +218,8 @@ void _Scheduler_EDF_Enqueue_first(
);
/**
- * @brief Scheduler EDF Extract
+ * @brief Remove a specific thread from the scheduler's set
+ * of ready threads.
*
* This routine removes a specific thread from the scheduler's set
* of ready threads.
@@ -224,12 +231,12 @@ void _Scheduler_EDF_Extract(
);
/**
- * @brief Scheduler EDF Priority compare
+ * @brief Explicitly compare absolute dedlines (priorities) of threads.
*
* This routine explicitly compares absolute dedlines (priorities) of threads.
* In case of EDF scheduling time overflow is taken into account.
*
- * @return >0 for p1 > p2; 0 for p1 == p2; <0 for p1 < p2.
+ * @retval >0 for p1 > p2; 0 for p1 == p2; <0 for p1 < p2.
*/
int _Scheduler_EDF_Priority_compare (
Priority_Control p1,
@@ -237,7 +244,7 @@ int _Scheduler_EDF_Priority_compare (
);
/**
- * @brief Scheduler EDF Release job
+ * @brief Called when a new job of task is released.
*
* This routine is called when a new job of task is released.
* It is called only from Rate Monotonic manager in the beginning
diff --git a/cpukit/score/include/rtems/score/schedulerpriority.h b/cpukit/score/include/rtems/score/schedulerpriority.h
index 3432937062..f97bb7f075 100644
--- a/cpukit/score/include/rtems/score/schedulerpriority.h
+++ b/cpukit/score/include/rtems/score/schedulerpriority.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/schedulerpriority.h
*
+ * @brief Thread Manipulation with the Priority-Based Scheduler
+ *
* This include file contains all the constants and structures associated
* with the manipulation of threads for the priority-based scheduler.
*/
@@ -26,8 +28,9 @@ extern "C" {
#endif
/**
- * @addtogroup ScoreScheduler
+ * @defgroup ScoreSchedulerDPS Deterministic Priority-based Scheduler
*
+ * @ingroup ScoreScheduler
*/
/**@{*/
@@ -64,13 +67,13 @@ typedef struct {
} Scheduler_priority_Per_thread;
/**
- * @brief Initialize Scheduler Priority
+ * @brief Initializes the priority scheduler.
* This routine initializes the priority scheduler.
*/
void _Scheduler_priority_Initialize(void);
/**
- * @brief Scheduler priority Block
+ * @brief Removes @a the_thread from the scheduling decision.
*
* This routine removes @a the_thread from the scheduling decision,
* that is, removes it from the ready queue. It performs
@@ -84,7 +87,7 @@ void _Scheduler_priority_Block(
);
/**
- * @brief schedule entry point
+ * @brief Sets the heir thread to be the next ready thread.
*
* This kernel routine sets the heir thread to be the next ready thread
* by invoking the_scheduler->ready_queue->operations->first().
@@ -92,7 +95,7 @@ void _Scheduler_priority_Block(
void _Scheduler_priority_Schedule(void);
/**
- * @brief Allocate Scheduler Priority
+ * @brief Allocates @a the_thread->scheduler.
*
* This routine allocates @a the_thread->scheduler.
*
@@ -104,7 +107,7 @@ void * _Scheduler_priority_Allocate(
);
/**
- * @brief Free Scheduler Priority
+ * @brief Frees @a the_thread->scheduler.
*
* This routine frees @a the_thread->scheduler.
*
@@ -116,7 +119,7 @@ void _Scheduler_priority_Free(
);
/**
- * @brief Update Scheduler priority
+ * @brief Update the scheduler priority.
* This routine updates @a the_thread->scheduler based on @a the_scheduler
* structures and thread state.
*
@@ -128,7 +131,7 @@ void _Scheduler_priority_Update(
);
/**
- * @brief Scheduler Priority Unblock
+ * @brief Add @a the_thread to the scheduling decision.
*
* This routine adds @a the_thread to the scheduling decision,
* that is, adds it to the ready queue and
@@ -141,7 +144,7 @@ void _Scheduler_priority_Unblock(
);
/**
- * @brief Scheduler Priority Yield
+ * @brief Remove the running THREAD to the rear of this chain.
*
* This routine is invoked when a thread wishes to voluntarily
* transfer control of the processor to another thread in the queue.
@@ -160,7 +163,7 @@ void _Scheduler_priority_Unblock(
void _Scheduler_priority_Yield( void );
/**
- * @brief Scheduler Priority Enqueue
+ * @brief Puts @a the_thread on to the priority-based ready queue.
*
* This routine puts @a the_thread on to the priority-based ready queue.
*
@@ -171,7 +174,7 @@ void _Scheduler_priority_Enqueue(
);
/**
- * @brief Scheduler Priority Enqueue First
+ * @brief Puts @a the_thread to the head of the ready queue.
*
* This routine puts @a the_thread to the head of the ready queue.
* For priority-based ready queues, the thread will be the first thread
@@ -184,7 +187,7 @@ void _Scheduler_priority_Enqueue_first(
);
/**
- * @brief Removes a specific thread from scheduler
+ * @brief Remove a specific thread from scheduler.
*
* This routine removes a specific thread from the scheduler's set
* of ready threads.
@@ -196,7 +199,7 @@ void _Scheduler_priority_Extract(
);
/**
- * @brief Scheduler priority Priority compare
+ * @brief Compare two priorities.
*
* This routine compares two priorities.
*/
@@ -206,7 +209,7 @@ int _Scheduler_priority_Priority_compare(
);
/**
- * @brief Scheduler priority Release job
+ * @brief Called when a new job of task is released.
*
* This routine is called when a new job of task is released.
*
@@ -220,7 +223,7 @@ void _Scheduler_priority_Release_job (
);
/**
- * @brief Deterministic Priority Scheduler Tick Method
+ * @brief Determines if the current thread allows timeslicing.
*
* This routine is invoked as part of processing each clock tick.
* It is responsible for determining if the current thread allows
diff --git a/cpukit/score/include/rtems/score/schedulersimple.h b/cpukit/score/include/rtems/score/schedulersimple.h
index 66b4018b50..df52a586be 100644
--- a/cpukit/score/include/rtems/score/schedulersimple.h
+++ b/cpukit/score/include/rtems/score/schedulersimple.h
@@ -1,10 +1,13 @@
/**
* @file rtems/score/schedulersimple.h
*
+ * @brief Manipulation of Threads Simple-Priority-Based Ready Queue
+ *
* This include file contains all the constants and structures associated
* with the manipulation of threads on a simple-priority-based ready queue.
- *
- *
+ */
+
+/*
* Copyright (C) 2011 On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -16,8 +19,9 @@
#define _RTEMS_SCORE_SCHEDULERSIMPLE_H
/**
- * @addtogroup ScoreScheduler
+ * @defgroup ScoreSchedulerSimple Simple Priority Scheduler
*
+ * @ingroup ScoreScheduler
*/
/**@{*/
@@ -50,7 +54,7 @@ extern "C" {
}
/**
- * @brief Initializes simple scheduler
+ * @brief Initialize simple scheduler.
*
* This routine initializes the simple scheduler.
*/
@@ -64,7 +68,8 @@ void _Scheduler_simple_Initialize( void );
void _Scheduler_simple_Schedule( void );
/**
- * @brief Simple Schedule
+ * @brief Invoked when a thread wishes to voluntarily
+ * transfer control of the processor to another thread in the queue.
*
* This routine is invoked when a thread wishes to voluntarily
* transfer control of the processor to another thread in the queue.
@@ -79,7 +84,7 @@ void _Scheduler_simple_Schedule( void );
void _Scheduler_simple_Yield( void );
/**
- * @brief Removes a thread from the queue
+ * @brief Remove a simple-priority-based thread from the queue.
*
* This routine removes @a the_thread from the scheduling decision,
* that is, removes it from the ready queue. It performs
@@ -93,7 +98,8 @@ void _Scheduler_simple_Block(
);
/**
- * @brief Scheduler Simple Handler / Unblock
+ * @brief Unblock a simple-priority-based thread.
+ *
* This routine adds @a the_thread to the scheduling decision,
* that is, adds it to the ready queue and
* updates any appropriate scheduling variables, for example the heir thread.
@@ -105,7 +111,7 @@ void _Scheduler_simple_Unblock(
);
/**
- * @brief Removes a thread from a simple queue
+ * @brief Removes a simple-priority-based thread from a simple queue.
*
* This routine removes a specific thread from the specified
* simple-based ready queue.
@@ -117,7 +123,7 @@ void _Scheduler_simple_Extract(
);
/**
- * @brief Puts thread onto the ready queue
+ * @brief Puts simple-priority-based thread onto the ready queue.
*
* This routine puts @a the_thread on to the ready queue.
*
@@ -128,7 +134,8 @@ void _Scheduler_simple_Enqueue(
);
/**
- * @brief Scheduler simple Enqueue first
+ * @brief Put simple-priority-based @a the_thread to
+ * the head of the ready queue.
*
* This routine puts @a the_thread to the head of the ready queue.
* The thread will be the first thread at its priority level.
@@ -140,7 +147,7 @@ void _Scheduler_simple_Enqueue_first(
);
/**
- * @brief Returns empty placeholder for scheduler
+ * @brief Return empty placeholder for the simple scheduler.
*
* This routine is a place holder for any memeory allocation needed
* by the scheduler. For the simple scheduler the routine is an empty
@@ -149,7 +156,7 @@ void _Scheduler_simple_Enqueue_first(
* @param[in] the_thread is the thread the scheduler is allocating
* management memory for
*
- * @return this routine returns -1 since this is just an empty placeholder
+ * @retval this routine returns -1 since this is just an empty placeholder
* and the return value may be defined differently by each scheduler.
*/
void *_Scheduler_simple_Allocate(
@@ -157,7 +164,7 @@ void *_Scheduler_simple_Allocate(
);
/**
- * @breif Stub for schedule update
+ * @brief Stub for simple schedule update.
*
* This routine does nothing, and is used as a stub for Schedule update
* The overhead of a function call will still be imposed.
@@ -169,7 +176,7 @@ void _Scheduler_simple_Update(
);
/**
- * @brief Stub for schedule free
+ * @brief Stub for simple schedule free.
*
* This routine does nothing, and is used as a stub for Schedule free
* The overhead of a function call will still be imposed.
@@ -193,7 +200,8 @@ void _Scheduler_simple_Ready_queue_enqueue(
);
/**
- * @brief Scheduler Simple Ready Queue Enqueue First
+ * @brief Puts simple-priority-based @a the_thread on to the ready queue
+ * at the beginning of its priority group.
*
* This routine puts @a the_thread on to the ready queue
* at the beginning of its priority group.
diff --git a/cpukit/score/include/rtems/score/schedulersimplesmp.h b/cpukit/score/include/rtems/score/schedulersimplesmp.h
index e915993a52..63213c6b2a 100644
--- a/cpukit/score/include/rtems/score/schedulersimplesmp.h
+++ b/cpukit/score/include/rtems/score/schedulersimplesmp.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/schedulersimplesmp.h
*
+ * @brief Manipulation of Threads on a Simple-Priority-Based Ready Queue
+ *
* This include file contains all the constants and structures associated
* with the manipulation of threads on a simple-priority-based ready queue.
* This implementation is SMP-aware and schedules across multiple cores.
@@ -21,7 +23,9 @@
#define _RTEMS_SCORE_SCHEDULERSIMPLE_SMP_H
/**
- * @addtogroup ScoreScheduler
+ * @defgroup ScoreSchedulerSMP Simple SMP Scheduler
+ *
+ * @ingroup ScoreScheduler
*
* The Simple SMP Scheduler attempts to faithfully implement the
* behaviour of the Deterministic Priority Scheduler while spreading
@@ -62,7 +66,7 @@ extern "C" {
}
/**
- * @brief Scheduler Simple SMP Schedule Method
+ * @brief Allocates ready SMP threads to individual cores in an SMP system.
*
* This routine allocates ready threads to individual cores in an SMP
* system. If the allocation results in a new heir which requires
@@ -71,7 +75,7 @@ extern "C" {
void _Scheduler_simple_smp_Schedule( void );
/**
- * @brief Scheduler Simple SMP Block Method
+ * @brief Remove SMP @a the_thread from the ready queue.
*
* This routine removes @a the_thread from the scheduling decision,
* that is, removes it from the ready queue. It performs
@@ -85,7 +89,8 @@ void _Scheduler_simple_smp_Block(
);
/**
- * @brief Scheduler Simple SMP Unblock Method
+ * @brief Adds SMP @a the_thread to the ready queue and updates any
+ * appropriate scheduling variables, for example the heir thread.
*
* This routine adds @a the_thread to the scheduling decision,
* that is, adds it to the ready queue and updates any appropriate
@@ -98,7 +103,7 @@ void _Scheduler_simple_smp_Unblock(
);
/**
- * @brief Scheduler Simple SMP Tick Method
+ * @brief Invoked as part of processing each SMP clock tick.
*
* This routine is invoked as part of processing each clock tick.
* It is responsible for determining if the current thread allows
diff --git a/cpukit/score/include/rtems/score/smp.h b/cpukit/score/include/rtems/score/smp.h
index 38ac681bcd..f4bf72edd9 100644
--- a/cpukit/score/include/rtems/score/smp.h
+++ b/cpukit/score/include/rtems/score/smp.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/smp.h
*
+ * @brief Interface to the SuperCore SMP Support used Internally to RTEMS
+ *
* This include file defines the interface to the SuperCore
* SMP support that is used internally to RTEMS.
*/
@@ -21,7 +23,7 @@
#include <rtems/score/percpu.h>
/**
- * @defgroup SuperCore SMP Support
+ * @defgroup SuperCoreSMP SMP Support
*
* @ingroup Score
*
@@ -65,7 +67,7 @@ extern "C" {
#ifndef ASM
/**
- * @brief Number of CPUs in SMP System
+ * @brief Number of CPUs in a SMP system.
*
* This variable is set during the SMP initialization sequence to
* indicate the number of CPUs in this system.
@@ -73,7 +75,7 @@ extern "C" {
SCORE_EXTERN uint32_t _SMP_Processor_count;
/**
- * @brief Make Request of Others CPUs
+ * @brief Request of others CPUs.
*
* This method is invoked by RTEMS when it needs to make a request
* of the other CPUs. It should be implemented using some type of
@@ -87,7 +89,7 @@ void _SMP_Broadcast_message(
);
/**
- * @brief Request Other Cores to Perform First Context Switch
+ * @brief Request other cores to perform first context switch.
*
* Send message to other cores requesting them to perform
* their first context switch operation.
@@ -95,7 +97,7 @@ void _SMP_Broadcast_message(
void _SMP_Request_other_cores_to_perform_first_context_switch(void);
/**
- * @brief Request Dispatch on Other Cores
+ * @brief Request dispatch on other cores.
*
* Send message to other cores requesting them to perform
* a thread dispatch operation.
@@ -103,7 +105,7 @@ void _SMP_Request_other_cores_to_perform_first_context_switch(void);
void _SMP_Request_other_cores_to_dispatch(void);
/**
- * @Brief Request Other Cores to Shutdown
+ * @brief Request other cores to shutdown.
*
* Send message to other cores requesting them to shutdown.
*/
@@ -116,5 +118,7 @@ void _SMP_Request_other_cores_to_shutdown(void);
#endif
#endif
+
+/**@}*/
#endif
/* end of include file */
diff --git a/cpukit/score/include/rtems/score/smplock.h b/cpukit/score/include/rtems/score/smplock.h
index 611b49811f..6db8a43418 100644
--- a/cpukit/score/include/rtems/score/smplock.h
+++ b/cpukit/score/include/rtems/score/smplock.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/smplock.h
*
+ * @brief Interface for Atomic Locks
+ *
* This include file defines the interface for atomic locks
* which can be used in multiprocessor configurations.
*/
@@ -54,7 +56,7 @@ typedef struct {
} SMP_lock_spinlock_nested_Control;
/**
- * @brief Initialize a Lock
+ * @brief Initialize a lock.
*
* This method is used to initialize the lock at @a lock.
*
@@ -65,13 +67,13 @@ void _SMP_lock_spinlock_simple_Initialize(
);
/**
- * @brief Obtain a Lock
+ * @brief Obtain a lock.
*
* This method is used to obtain the lock at @a lock.
*
* @param [in] lock is the address of the lock to obtain.
*
- * @return This method returns with processor interrupts disabled.
+ * @retval This method returns with processor interrupts disabled.
* The previous level is returned.
*/
ISR_Level _SMP_lock_spinlock_simple_Obtain(
@@ -79,7 +81,7 @@ ISR_Level _SMP_lock_spinlock_simple_Obtain(
);
/**
- * @brief Release a Lock
+ * @brief Release a lock.
*
* This method is used to release the lock at @a lock.
*
@@ -91,7 +93,7 @@ void _SMP_lock_spinlock_simple_Release(
);
/**
- * @brief Initialize a Lock
+ * @brief Initialize a lock.
*
* This method is used to initialize the lock at @a lock.
*
@@ -102,7 +104,7 @@ void _SMP_lock_spinlock_nested_Initialize(
);
/**
- * @brief Obtain a Lock
+ * @brief Obtain a lock.
*
* This method is used to obtain the lock at @a lock. ISR's are
* disabled when this routine returns and it is the callers responsibility
@@ -115,7 +117,7 @@ void _SMP_lock_spinlock_nested_Initialize(
*
* @param [in] lock is the address of the lock to obtain.
*
- * @return This method returns with processor interrupts disabled.
+ * @retval This method returns with processor interrupts disabled.
* The previous level is returned.
*/
ISR_Level _SMP_lock_spinlock_nested_Obtain(
@@ -123,9 +125,9 @@ ISR_Level _SMP_lock_spinlock_nested_Obtain(
);
/**
- * @brief Release a Lock
+ * @brief Release a lock.
*
- * This method is used to release the lock at @a lock.
+ * This method is used to release the lock at @a lock.
*
* @note ISR's are reenabled by this method and are expected to be
* disabled upon entry to the method.
diff --git a/cpukit/score/include/rtems/score/stack.h b/cpukit/score/include/rtems/score/stack.h
index 1e06e366c9..9aa90425c4 100644
--- a/cpukit/score/include/rtems/score/stack.h
+++ b/cpukit/score/include/rtems/score/stack.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/stack.h
*
+ * @brief Information About the Thread Stack Handler
+ *
* This include file contains all information about the thread
* Stack Handler. This Handler provides mechanisms which can be used to
* initialize and utilize stacks.
diff --git a/cpukit/score/include/rtems/score/states.h b/cpukit/score/include/rtems/score/states.h
index f71bf9399e..9fab5d4748 100644
--- a/cpukit/score/include/rtems/score/states.h
+++ b/cpukit/score/include/rtems/score/states.h
@@ -1,7 +1,9 @@
/**
* @file rtems/score/states.h
*
- * This include file contains thread execution state information.
+ * @brief Thread Execution State Information
+ *
+ * This include file defines thread execution state information.
*/
/*
@@ -17,7 +19,7 @@
#define _RTEMS_SCORE_STATES_H
/**
- * @defgroup ScoreStates Thread States Handler
+ * @defgroup ScoreStates SuperCore Thread States
*
* @ingroup Score
*
diff --git a/cpukit/score/include/rtems/score/sysstate.h b/cpukit/score/include/rtems/score/sysstate.h
index b847dc842f..7d3d6aed59 100644
--- a/cpukit/score/include/rtems/score/sysstate.h
+++ b/cpukit/score/include/rtems/score/sysstate.h
@@ -3,7 +3,7 @@
*
* @ingroup ScoreSysState
*
- * @brief System State Handler API.
+ * @brief System State Handler API
*/
/*
@@ -30,9 +30,8 @@ extern "C" {
* @ingroup Score
*
* @brief Management of the internal system state of RTEMS.
- *
- * @{
*/
+/**@{**/
/**
* @brief System states.
diff --git a/cpukit/score/include/rtems/score/thread.h b/cpukit/score/include/rtems/score/thread.h
index 623b56251f..248be62c95 100644
--- a/cpukit/score/include/rtems/score/thread.h
+++ b/cpukit/score/include/rtems/score/thread.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/thread.h
*
+ * @brief Constants and Structures Related with the Thread Control Block
+ *
* This include file contains all constants and structures associated
* with the thread control block.
*/
@@ -185,14 +187,14 @@ typedef enum {
typedef void (*Thread_CPU_budget_algorithm_callout )( Thread_Control * );
/**
- * @brief Per Task Variable Manager Structure Forward Reference
+ * @brief Forward reference to the per task variable structure..
*
* Forward reference to the per task variable structure.
*/
struct rtems_task_variable_tt;
/**
- * @brief Per Task Variable Manager Structure
+ * @brief Internal structure used to manager per task variables.
*
* This is the internal structure used to manager per Task Variables.
*/
@@ -275,7 +277,7 @@ typedef union {
} Thread_Wait_information_Object_argument_type;
/**
- * @brief Thread Blocking Management Information
+ * @brief Information required to manage a thread while it is blocked.
*
* This contains the information required to manage a thread while it is
* blocked and to return information to it.
@@ -503,14 +505,14 @@ SCORE_EXTERN Thread_Control *_Thread_Allocated_fp;
*/
SCORE_EXTERN struct _reent **_Thread_libc_reent;
/**
- * @brief Initialize Thread Handler
+ * @brief Initialize thread handler.
*
* This routine performs the initialization necessary for this handler.
*/
void _Thread_Handler_initialization(void);
/**
- * @brief Create Idle Thread
+ * @brief Create idle thread.
*
* This routine creates the idle thread.
*
@@ -519,7 +521,7 @@ void _Thread_Handler_initialization(void);
void _Thread_Create_idle(void);
/**
- * @brief Start Thread Multitasking
+ * @brief Start thread multitasking.
*
* This routine initiates multitasking. It is invoked only as
* part of initialization and its invocation is the last act of
@@ -533,7 +535,7 @@ void _Thread_Create_idle(void);
void _Thread_Start_multitasking( void );
/**
- * @brief Dispatch Thread
+ * @brief Dispatch thread.
*
* This routine is responsible for transferring control of the
* processor from the executing thread to the heir thread. Once the
@@ -553,7 +555,7 @@ void _Thread_Start_multitasking( void );
void _Thread_Dispatch( void );
/**
- * @brief Stack Allocate Helper
+ * @brief Allocate the requested stack space for the thread.
*
* Allocate the requested stack space for the thread.
* Set the Start.stack field to the address of the stack.
@@ -569,7 +571,7 @@ size_t _Thread_Stack_Allocate(
);
/**
- * @brief Deallocate Thread Stack
+ * @brief Deallocate thread stack.
*
* Deallocate the Thread's stack.
*/
@@ -578,7 +580,8 @@ void _Thread_Stack_Free(
);
/**
- * @brief Initialize Thread
+ * @brief Initialize thread.
+ *
* This routine initializes the specified the thread. It allocates
* all memory associated with this thread. It completes by adding
* the thread to the local object table so operations on this
@@ -604,14 +607,14 @@ bool _Thread_Initialize(
);
/**
- * @brief Initializes Thread and Executes it
+ * @brief Initializes thread and executes it.
*
* This routine initializes the executable information for a thread
* and makes it ready to execute. After this routine executes, the
* thread competes with all other threads for CPU time.
*
* @param the_thread is the thread to be initialized
- * @param the_prototype
+ * @param the_prototype
* @param entry_point
* @param pointer_argument
* @param numeric_argument
@@ -625,7 +628,8 @@ bool _Thread_Start(
);
/**
- * @brief Restart Thread
+ * @brief Restarts the specified thread.
+ *
* This support routine restarts the specified task in a way that the
* next time this thread executes, it will begin execution at its
* original starting point.
@@ -639,7 +643,7 @@ bool _Thread_Restart(
);
/**
- * @brief Resets a thread to its initial state
+ * @brief Resets a thread to its initial state.
*
* This routine resets a thread to its initial state but does
* not restart it. Some APIs do this in separate
@@ -656,7 +660,7 @@ void _Thread_Reset(
);
/**
- * @brief Thread Close
+ * @brief Frees all memory associated with the specified thread.
*
* This routine frees all memory associated with the specified
* thread and removes it from the local object table so no further
@@ -668,7 +672,7 @@ void _Thread_Close(
);
/**
- * @brief Thread Ready
+ * @brief Removes any set states for @a the_thread.
*
* This routine removes any set states for @a the_thread. It performs
* any necessary scheduling operations including the selection of
@@ -683,7 +687,7 @@ void _Thread_Ready(
);
/**
- * @brief Clear Thread state
+ * @brief Clears the indicated STATES for @a the_thread.
*
* This routine clears the indicated STATES for @a the_thread. It performs
* any necessary scheduling operations including the selection of
@@ -699,13 +703,13 @@ void _Thread_Clear_state(
);
/**
- * @brief Sets States for a Thread
+ * @brief Sets the indicated @a state for @a the_thread.
*
* This routine sets the indicated @a state for @a the_thread. It performs
* any necessary scheduling operations including the selection of
* a new heir thread.
*
- * @param[in] the_thread is the thread to set the state for.
+ * @param[in] the_thread is the thread to set the state for.
* @param[in] state is the state to set the_thread to.
*
* - INTERRUPT LATENCY:
@@ -718,7 +722,7 @@ void _Thread_Set_state(
);
/**
- * @brief Sets the Transient state for a Thread
+ * @brief Sets the transient state for a thread.
*
* This routine sets the Transient state for @a the_thread. It performs
* any necessary scheduling operations including the selection of
@@ -734,11 +738,11 @@ void _Thread_Set_transient(
);
/**
- * @brief Initializes Enviroment for A Thread
+ * @brief Initializes enviroment for a thread.
*
* This routine initializes the context of @a the_thread to its
* appropriate starting state.
- *
+ *
* @param[in] the_thread is the pointer to the thread control block.
*/
void _Thread_Load_environment(
@@ -746,29 +750,24 @@ void _Thread_Load_environment(
);
/**
- * @brief Thread Handler
+ * @brief Wrapper function for all threads.
+ *
* This routine is the wrapper function for all threads. It is
* the starting point for all threads. The user provided thread
* entry point is invoked by this routine. Operations
* which must be performed immediately before and after the user's
* thread executes are found here.
*
- * NOTE:
- *
- * On entry, it is assumed all interrupts are blocked and that this
+ * @note On entry, it is assumed all interrupts are blocked and that this
* routine needs to set the initial isr level. This may or may not
* actually be needed by the context switch routine and as a result
* interrupts may already be at there proper level. Either way,
* setting the initial isr level properly here is safe.
- *
- * Input parameters: NONE
- *
- * Output parameters: NONE
*/
void _Thread_Handler( void );
/**
- * @brief Ended the delay of a Thread
+ * @brief Ended the delay of a thread.
*
* This routine is invoked when a thread must be unblocked at the
* end of a time based delay (i.e. wake after or wake when).
@@ -782,7 +781,7 @@ void _Thread_Delay_ended(
);
/**
- * @brief Changes the priority of a thread
+ * @brief Change the priority of a thread.
*
* This routine changes the current priority of @a the_thread to
* @a new_priority. It performs any necessary scheduling operations
@@ -799,7 +798,7 @@ void _Thread_Change_priority (
);
/**
- * @brief Set Thread Priority
+ * @brief Set thread priority.
*
* This routine updates the priority related fields in the_thread
* control block to indicate the current priority is now new_priority.
@@ -840,7 +839,7 @@ void *_Thread_Idle_body(
typedef void (*rtems_per_thread_routine)( Thread_Control * );
/**
- * @brief Iterates Over All Threads
+ * @brief Iterates over all threads.
* This routine iterates over all threads regardless of API and
* invokes the specified routine.
*/
@@ -849,7 +848,7 @@ void rtems_iterate_over_all_threads(
);
/**
- * @brief Maps THread Id to a TCB Pointer
+ * @brief Maps thread Id to a TCB pointer.
*
* This function maps thread IDs to thread control
* blocks. If ID corresponds to a local thread, then it
@@ -875,7 +874,7 @@ Thread_Control *_Thread_Get (
);
/**
- * @brief Cancel a blocking operation due to ISR
+ * @brief Cancel a blocking operation due to ISR.
*
* This method is used to cancel a blocking operation that was
* satisfied from an ISR while the thread executing was in the
@@ -900,14 +899,14 @@ void _Thread_blocking_operation_Cancel(
#if defined(RTEMS_SMP)
/**
- * @brief _Thread_Dispatch_initialization
+ * @brief Initializes the thread dispatching subsystem.
*
* This routine initializes the thread dispatching subsystem.
*/
void _Thread_Dispatch_initialization(void);
/**
- * @brief _Thread_Dispatch_in_critical_section
+ * @brief Checks if thread dispatch says that we are in a critical section.
*
* This routine returns true if thread dispatch indicates
* that we are in a critical section.
@@ -915,14 +914,14 @@ void _Thread_blocking_operation_Cancel(
bool _Thread_Dispatch_in_critical_section(void);
/**
- * @brief _Thread_Dispatch_get_disable_level
+ * @brief Returns value of the the thread dispatch level.
*
* This routine returns value of the the thread dispatch level.
*/
uint32_t _Thread_Dispatch_get_disable_level(void);
/**
- * @brief _Thread_Dispatch_set_disable_level
+ * @brief Sets thread dispatch level to the value passed in.
*
* This routine sets thread dispatch level to the
* value passed in.
@@ -930,14 +929,14 @@ void _Thread_blocking_operation_Cancel(
uint32_t _Thread_Dispatch_set_disable_level(uint32_t value);
/**
- * @brief _Thread_Dispatch_increment_disable_level
+ * @brief Increments the thread dispatch level.
*
* This rountine increments the thread dispatch level
*/
uint32_t _Thread_Dispatch_increment_disable_level(void);
/**
- * @brief _Thread_Dispatch_decrement_disable_level
+ * @brief Decrements the thread dispatch level.
*
* This routine decrements the thread dispatch level.
*/
diff --git a/cpukit/score/include/rtems/score/threadmp.h b/cpukit/score/include/rtems/score/threadmp.h
index eba713ca57..6c9788fe28 100644
--- a/cpukit/score/include/rtems/score/threadmp.h
+++ b/cpukit/score/include/rtems/score/threadmp.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/threadmp.h
*
+ * @brief Multiprocessing Portion of the Thread Package
+ *
* This include file contains the specification for all routines
* and data specific to the multiprocessing portion of the thread package.
*/
@@ -20,6 +22,8 @@
/**
* @defgroup ScoreThreadMP Thread Handler Multiprocessing Support
*
+ * @ingroup Score
+ *
* This handler encapsulates functionality which is related to managing
* threads in a multiprocessor system configuration. This handler must
* manage proxies which represent remote threads blocking on local
@@ -32,7 +36,7 @@ extern "C" {
#endif
/**
- * @brief MP Thread Handler Initialization
+ * @brief Initialize MP thread handler.
*
* This routine initializes the multiprocessing portion of the Thread Handler.
*/
@@ -41,7 +45,8 @@ void _Thread_MP_Handler_initialization (
);
/**
- * @brief MP Thread Proxy Allocate
+ * @brief Allocate a MP proxy control block from
+ * the inactive chain of free proxy control blocks.
*
* This allocates a proxy control block from
* the inactive chain of free proxy control blocks.
@@ -54,7 +59,8 @@ Thread_Control *_Thread_MP_Allocate_proxy (
);
/**
- * @brief MP Thread Proxy Find
+ * @brief Removes the MP proxy control block for the specified
+ * id from the active chain of proxy control blocks.
*
* This function removes the proxy control block for the specified
* id from the active chain of proxy control blocks.
@@ -64,14 +70,14 @@ Thread_Control *_Thread_MP_Find_proxy (
);
/**
- * @brief Active Proxy Set
+ * @brief Manage the active set MP proxies.
*
* The following chain is used to manage the active set proxies.
*/
SCORE_EXTERN Chain_Control _Thread_MP_Active_proxies;
/**
- * @brief Inactive Proxy Set
+ * @brief Manage the inactive set of MP proxies.
*
* The following chain is used to manage the inactive set of proxies.
*/
diff --git a/cpukit/score/include/rtems/score/threadq.h b/cpukit/score/include/rtems/score/threadq.h
index a2653b3a02..1be336993c 100644
--- a/cpukit/score/include/rtems/score/threadq.h
+++ b/cpukit/score/include/rtems/score/threadq.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/threadq.h
*
+ * Constants and Structures Associated with the Manipulation of Objects
+ *
* This include file contains all the constants and structures associated
* with the manipulation of objects.
*/
@@ -60,7 +62,7 @@ typedef void ( *Thread_queue_Timeout_callout )(
);
/**
- * @brief Thread Queue Dequeue
+ * @brief Gets a pointer to a thread waiting on the_thread_queue.
*
* This function returns a pointer to a thread waiting on
* the_thread_queue. The selection of this thread is based on
@@ -72,7 +74,7 @@ Thread_Control *_Thread_queue_Dequeue(
);
/**
- * @brief Thread Queue Enqueue Wrapper
+ * @brief Enqueues the currently executing thread on the_thread_queue.
*
* This routine enqueues the currently executing thread on
* the_thread_queue with an optional timeout.
@@ -84,7 +86,7 @@ Thread_Control *_Thread_queue_Dequeue(
_Thread_queue_Timeout )
/**
- * @brief Thread Queue Enqueue
+ * @brief Blocks a thread and places it on a thread.
*
* This routine blocks a thread, places it on a thread, and optionally
* starts a timeout timer.
@@ -102,7 +104,7 @@ void _Thread_queue_Enqueue_with_handler(
);
/**
- * @brief Thread Queue Requeue
+ * @brief Invoked when a thread changes priority and is blocked.
*
* This routine is invoked when a thread changes priority and is
* blocked on a thread queue. If the queue is priority ordered,
@@ -119,7 +121,7 @@ void _Thread_queue_Requeue(
);
/**
- * @brief Extracts Thread from Thread Queue
+ * @brief Extracts thread from thread queue.
*
* This routine removes @a the_thread from @a the_thread_queue
* and cancels any timeouts associated with this blocking.
@@ -133,7 +135,7 @@ void _Thread_queue_Extract(
);
/**
- * @brief Thread Queue Extract with proxy
+ * @brief Extracts the_thread from the_thread_queue.
*
* This routine extracts the_thread from the_thread_queue
* and ensures that if there is a proxy for this task on
@@ -144,7 +146,7 @@ bool _Thread_queue_Extract_with_proxy(
);
/**
- * @brief Thread Queue First
+ * @brief Gets a pointer to the "first" thread on the_thread_queue.
*
* This function returns a pointer to the "first" thread
* on the_thread_queue. The "first" thread is selected
@@ -152,17 +154,23 @@ bool _Thread_queue_Extract_with_proxy(
*
* @param[in] the_thread_queue pointer to thread queue
*
- * @return first thread or NULL
+ * @retval first thread or NULL
*/
Thread_Control *_Thread_queue_First(
Thread_queue_Control *the_thread_queue
);
/**
- * @brief Thread Queue Flush
+ * @brief Unblocks all threads blocked on the_thread_queue.
*
* This routine unblocks all threads blocked on the_thread_queue
* and cancels any associated timeouts.
+ *
+ * @param[in] the_thread_queue is the pointer to a threadq header
+ * @param[in] remote_extract_callout points to a method to invoke to
+ * invoke when a remote thread is unblocked
+ * @param[in] status is the status which will be returned to
+ * all unblocked threads
*/
void _Thread_queue_Flush(
Thread_queue_Control *the_thread_queue,
@@ -171,14 +179,14 @@ void _Thread_queue_Flush(
);
/**
- * @brief Thread Queue Initialize
+ * @brief Initialize the_thread_queue.
*
* This routine initializes the_thread_queue based on the
* discipline indicated in attribute_set. The state set on
* threads which block on the_thread_queue is state.
*
* @param[in] the_thread_queue is the pointer to a threadq header
- * @param[in] discipline is the queueing discipline
+ * @param[in] the_discipline is the queueing discipline
* @param[in] state is the state of waiting threads
* @param[in] timeout_status is the return on a timeout
*/
@@ -190,7 +198,8 @@ void _Thread_queue_Initialize(
);
/**
- * @brief Thread Queue Dequeue priority
+ * @brief Removes a thread from the specified PRIORITY based
+ * threadq, unblocks it, and cancels its timeout timer.
*
* This routine removes a thread from the specified PRIORITY based
* threadq, unblocks it, and cancels its timeout timer.
@@ -208,14 +217,18 @@ Thread_Control *_Thread_queue_Dequeue_priority(
);
/**
- * @brief Thread Queue Enqueue Priority
+ * @brief Enqueues the currently executing thread on the_thread_queue.
*
* This routine enqueues the currently executing thread on
* the_thread_queue with an optional timeout using the
* priority discipline.
*
* @param[in] the_thread_queue is the pointer to threadq
- * @param[in] thread is the thread to insert
+ * @param[in] the_thread is the thread to insert
+ * @param[in] level_p is a pointer to an interrupt level to be returned
+ *
+ * @retval This methods returns an indication of the blocking state as
+ * well as filling in *@ level_p with the previous interrupt level.
*
* - INTERRUPT LATENCY:
* + forward less than
@@ -228,7 +241,7 @@ Thread_blocking_operation_States _Thread_queue_Enqueue_priority (
);
/**
- * @brief Thread Queue Extract priority Helper
+ * @brief Removes the_thread and cancels related timeouts.
*
* This routine removes the_thread from the_thread_queue
* and cancels any timeouts associated with this blocking.
@@ -246,7 +259,7 @@ void _Thread_queue_Extract_priority_helper(
);
/**
- * @brief Thread Queue Extract priority
+ * @brief Wraps the underlying call and hides the requeuing argument.
*
* This macro wraps the underlying call and hides the requeuing argument.
*/
@@ -254,21 +267,21 @@ void _Thread_queue_Extract_priority_helper(
#define _Thread_queue_Extract_priority( _the_thread_queue, _the_thread ) \
_Thread_queue_Extract_priority_helper( _the_thread_queue, _the_thread, false )
/**
- * @brief Returns highest priority thread on the_thread_queue
+ * @brief Get highest priority thread on the_thread_queue.
*
* This function returns a pointer to the "first" thread
* on @a the_thread_queue. The "first" thread is the highest
* priority thread waiting on @a the_thread_queue.
*
* @param[in] the_thread_queue is the pointer to the thread queue
- * @return first thread or NULL
+ * @retval first thread or NULL
*/
Thread_Control *_Thread_queue_First_priority(
Thread_queue_Control *the_thread_queue
);
/**
- * @brief Thread Queue Dequeue FIFO
+ * @brief Gets a pointer to the thread which has been waiting the longest.
*
* This function returns a pointer to the thread which has
* been waiting the longest on the_thread_queue. If no
@@ -276,7 +289,7 @@ Thread_Control *_Thread_queue_First_priority(
*
* @param[in] the_thread_queue is the pointer to threadq
*
- * @return thread dequeued or NULL
+ * @retval thread dequeued or NULL
*
* - INTERRUPT LATENCY:
* + check sync
@@ -287,7 +300,7 @@ Thread_Control *_Thread_queue_Dequeue_fifo(
);
/**
- * @brief Thread Queue Enqueue FIFO
+ * @brief Enqueues the currently executing thread on the_thread_queue.
*
* This routine enqueues the currently executing thread on
* the_thread_queue with an optional timeout using the
@@ -307,7 +320,7 @@ Thread_blocking_operation_States _Thread_queue_Enqueue_fifo (
);
/**
- * @brief Thread Queue Extract FIFO
+ * @brief Removes the_thread from the_thread_queue and cancels any timeouts.
*
* This routine removes the_thread from the_thread_queue
* and cancels any timeouts associated with this blocking.
@@ -318,7 +331,7 @@ void _Thread_queue_Extract_fifo(
);
/**
- * @brief Thread Queue First FIFO
+ * @brief Gets a pointer to the "first" thread on the_thread_queue.
*
* This function returns a pointer to the "first" thread
* on the_thread_queue. The first thread is the thread
@@ -326,14 +339,14 @@ void _Thread_queue_Extract_fifo(
*
* @param[in] the_thread_queue is the pointer to threadq
*
- * @return first thread or NULL
+ * @retval first thread or NULL
*/
Thread_Control *_Thread_queue_First_fifo(
Thread_queue_Control *the_thread_queue
);
/**
- * @brief Thread Queue Timeout
+ * @brief Thread queue timeout.
*
* This routine is invoked when a task's request has not
* been satisfied after the timeout interval specified to
@@ -349,7 +362,7 @@ void _Thread_queue_Timeout (
);
/**
- * @brief Process Thread Queue Timeout
+ * @brief Process thread queue timeout.
*
* This is a shared helper routine which makes it easier to have multiple
* object class specific timeout routines.
diff --git a/cpukit/score/include/rtems/score/threadsync.h b/cpukit/score/include/rtems/score/threadsync.h
index df8ce5f800..a740302f7e 100644
--- a/cpukit/score/include/rtems/score/threadsync.h
+++ b/cpukit/score/include/rtems/score/threadsync.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/score/threadsync.h
+ * @file rtems/score/threadsync.h
+ *
+ * @brief Synchronize Thread Blocking Operations with Actions in an ISR
*
* This include file contains all constants and structures associated
* with synchronizing a thread blocking operation with potential
diff --git a/cpukit/score/include/rtems/score/timespec.h b/cpukit/score/include/rtems/score/timespec.h
index 41bb8bb3ef..e72ccb2b72 100644
--- a/cpukit/score/include/rtems/score/timespec.h
+++ b/cpukit/score/include/rtems/score/timespec.h
@@ -35,7 +35,7 @@ extern "C" {
#endif
/**
- * @brief Set Timespec to Seconds Nanosecond
+ * @brief Set timespec to seconds nanosecond.
*
* This method sets the timespec to the specified seconds and nanoseconds
* value.
@@ -51,7 +51,7 @@ extern "C" {
} while (0)
/**
- * @brief Zero Timespec
+ * @brief Sets the Timespec to Zero
*
* This method sets the timespec to zero.
* value.
@@ -65,37 +65,37 @@ extern "C" {
} while (0)
/**
- * @brief Get Seconds Portion of Timespec
+ * @brief Get seconds portion of timespec.
*
* This method returns the seconds portion of the specified timespec
*
* @param[in] _time points to the timespec
*
- * @return The seconds portion of @a _time.
+ * @retval The seconds portion of @a _time.
*/
#define _Timespec_Get_seconds( _time ) \
((_time)->tv_sec)
/**
- * @brief Get Nanoseconds Portion of Timespec
+ * @brief Get nanoseconds portion of timespec.
*
* This method returns the nanoseconds portion of the specified timespec
*
* @param[in] _time points to the timespec
*
- * @return The nanoseconds portion of @a _time.
+ * @retval The nanoseconds portion of @a _time.
*/
#define _Timespec_Get_nanoseconds( _time ) \
((_time)->tv_nsec)
/**
- * @brief Is Timespec Valid
+ * @brief Check if timespec is valid.
*
* This method determines the validity of a timespec.
*
* @param[in] time is the timespec instance to validate.
*
- * @return This method returns true if @a time is valid and
+ * @retval This method returns true if @a time is valid and
* false otherwise.
*/
bool _Timespec_Is_valid(
@@ -103,14 +103,14 @@ bool _Timespec_Is_valid(
);
/**
- * @brief Timespec Less Than Operator
+ * @brief The Timespec "less than" operator.
*
* This method is the less than operator for timespecs.
*
* @param[in] lhs is the left hand side timespec
* @param[in] rhs is the right hand side timespec
*
- * @return This method returns true if @a lhs is less than the @a rhs and
+ * @retval This method returns true if @a lhs is less than the @a rhs and
* false otherwise.
*/
bool _Timespec_Less_than(
@@ -119,28 +119,28 @@ bool _Timespec_Less_than(
);
/**
- * @brief Timespec Greater Than Operator
+ * @brief The Timespec "greater than" operator.
*
* This method is the greater than operator for timespecs.
*
- * @param[in] lhs is the left hand side timespec
- * @param[in] rhs is the right hand side timespec
+ * @param[in] _lhs is the left hand side timespec
+ * @param[in] _rhs is the right hand side timespec
*
- * @return This method returns true if @a lhs is greater than the @a rhs and
+ * @retval This method returns true if @a lhs is greater than the @a rhs and
* false otherwise.
*/
#define _Timespec_Greater_than( _lhs, _rhs ) \
_Timespec_Less_than( _rhs, _lhs )
/**
- * @brief Timespec equal to Operator
+ * @brief The Timespec "equal to" operator.
*
* This method is the is equal to than operator for timespecs.
*
* @param[in] lhs is the left hand side timespec
* @param[in] rhs is the right hand side timespec
*
- * @return This method returns true if @a lhs is equal to @a rhs and
+ * @retval This method returns true if @a lhs is equal to @a rhs and
* false otherwise.
*/
#define _Timespec_Equal_to( lhs, rhs ) \
@@ -149,7 +149,7 @@ bool _Timespec_Less_than(
)
/**
- * @brief Add to a Timespec
+ * @brief Add two timespecs.
*
* This routine adds two timespecs. The second argument is added
* to the first.
@@ -157,7 +157,7 @@ bool _Timespec_Less_than(
* @param[in] time is the base time to be added to
* @param[in] add is the timespec to add to the first argument
*
- * @return This method returns the number of seconds @a time increased by.
+ * @retval This method returns the number of seconds @a time increased by.
*/
uint32_t _Timespec_Add_to(
struct timespec *time,
@@ -165,21 +165,21 @@ uint32_t _Timespec_Add_to(
);
/**
- * @brief Convert Timespec to Number of Ticks
+ * @brief Convert timespec to number of ticks.
*
* This routine convert the @a time timespec to the corresponding number
* of clock ticks.
*
* @param[in] time is the time to be converted
*
- * @return This method returns the number of ticks computed.
+ * @retval This method returns the number of ticks computed.
*/
uint32_t _Timespec_To_ticks(
const struct timespec *time
);
/**
- * @brief Convert Ticks to Timespec
+ * @brief Convert ticks to timespec.
*
* This routine converts the @a ticks value to the corresponding
* timespec format @a time.
@@ -193,7 +193,7 @@ void _Timespec_From_ticks(
);
/**
- * @brief Subtract Two Timespec
+ * @brief Subtract two timespec.
*
* This routine subtracts two timespecs. @a result is set to
* @a end - @a start.
@@ -202,7 +202,7 @@ void _Timespec_From_ticks(
* @param[in] end is the ending time
* @param[in] result is the difference between starting and ending time.
*
- * @return This method fills in @a result.
+ * @retval This method fills in @a result.
*/
void _Timespec_Subtract(
const struct timespec *start,
@@ -211,7 +211,7 @@ void _Timespec_Subtract(
);
/**
- * @brief Divide Timespec By Integer
+ * @brief Divide timespec by an integer.
*
* This routine divides a timespec by an integer value. The expected
* use is to assist in benchmark calculations where you typically
@@ -221,7 +221,7 @@ void _Timespec_Subtract(
* @param[in] iterations is the number of iterations
* @param[in] result is the average time.
*
- * @return This method fills in @a result.
+ * @retval This method fills in @a result.
*/
void _Timespec_Divide_by_integer(
const struct timespec *time,
@@ -230,7 +230,7 @@ void _Timespec_Divide_by_integer(
);
/**
- * @brief Divide Timespec
+ * @brief Divide a timespec by anonther timespec.
*
* This routine divides a timespec by another timespec. The
* intended use is for calculating percentages to three decimal points.
@@ -240,7 +240,7 @@ void _Timespec_Divide_by_integer(
* @param[in] ival_percentage is the integer portion of the average
* @param[in] fval_percentage is the thousandths of percentage
*
- * @return This method fills in @a result.
+ * @retval This method fills in @a result.
*/
void _Timespec_Divide(
const struct timespec *lhs,
diff --git a/cpukit/score/include/rtems/score/timestamp.h b/cpukit/score/include/rtems/score/timestamp.h
index 951c37413d..638ae7bf52 100644
--- a/cpukit/score/include/rtems/score/timestamp.h
+++ b/cpukit/score/include/rtems/score/timestamp.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/timestamp.h
*
+ * @brief Helpers for Manipulating Timestamps
+ *
* This include file contains helpers for manipulating timestamps.
*/
@@ -17,7 +19,7 @@
#define _RTEMS_SCORE_TIMESTAMP_H
/**
- * @defgroup SuperCore Timestamp
+ * @defgroup SuperCoreTimeStamp Score Timestamp
*
* @ingroup Score
*
@@ -73,7 +75,7 @@ extern "C" {
#endif
/**
- * @brief Set Timestamp to Specified Seconds and Nanoseconds
+ * @brief Set timestamp to specified seconds and nanoseconds.
*
* This method sets the timestamp to the specified @a _seconds and @a _nanoseconds
* value.
@@ -91,7 +93,7 @@ extern "C" {
#endif
/**
- * @brief Zero Timestamp
+ * @brief Sets the timestamp to zero.
*
* This method sets the timestamp to zero.
* value.
@@ -107,13 +109,13 @@ extern "C" {
#endif
/**
- * @brief Is Timestamp Valid
+ * @brief Determines the validity of a timestamp.
*
* This method determines the validity of a timestamp.
*
* @param[in] _time points to the timestamp instance to validate.
*
- * @return This method returns true if @a time is valid and
+ * @retval This method returns true if @a time is valid and
* false otherwise.
*/
#if CPU_TIMESTAMP_USE_STRUCT_TIMESPEC == TRUE
@@ -125,14 +127,14 @@ extern "C" {
#endif
/**
- * @brief Timestamp Less Than Operator
+ * @brief Less than operator for timestamps.
*
* This method is the less than operator for timestamps.
*
* @param[in] _lhs points to the left hand side timestamp
* @param[in] _rhs points to the right hand side timestamp
*
- * @return This method returns true if @a _lhs is less than the @a _rhs and
+ * @retval This method returns true if @a _lhs is less than the @a _rhs and
* false otherwise.
*/
#if CPU_TIMESTAMP_USE_STRUCT_TIMESPEC == TRUE
@@ -144,28 +146,28 @@ extern "C" {
#endif
/**
- * @brief Timestamp Greater Than Operator
+ * @brief Greater than operator for timestamps.
*
* This method is the greater than operator for timestamps.
*
* @param[in] _lhs points to the left hand side timestamp
* @param[in] _rhs points to the right hand side timestamp
*
- * @return This method returns true if @a _lhs is greater than the @a _rhs and
+ * @retval This method returns true if @a _lhs is greater than the @a _rhs and
* false otherwise.
*/
#define _Timestamp_Greater_than( _lhs, _rhs ) \
_Timestamp_Less_than( _rhs, _lhs )
/**
- * @brief Timestamp equal to Operator
+ * @brief Equal to than operator for timestamps.
*
* This method is the is equal to than operator for timestamps.
*
* @param[in] _lhs points to the left hand side timestamp
* @param[in] _rhs points to the right hand side timestamp
*
- * @return This method returns true if @a _lhs is equal to @a _rhs and
+ * @retval This method returns true if @a _lhs is equal to @a _rhs and
* false otherwise.
*/
#if CPU_TIMESTAMP_USE_STRUCT_TIMESPEC == TRUE
@@ -177,7 +179,7 @@ extern "C" {
#endif
/**
- * @brief Add to a Timestamp
+ * @brief Adds two timestamps.
*
* This routine adds two timestamps. The second argument is added
* to the first.
@@ -185,7 +187,7 @@ extern "C" {
* @param[in] _time points to the base time to be added to
* @param[in] _add points to the timestamp to add to the first argument
*
- * @return This method returns the number of seconds @a time increased by.
+ * @retval This method returns the number of seconds @a time increased by.
*/
#if CPU_TIMESTAMP_USE_STRUCT_TIMESPEC == TRUE
#define _Timestamp_Add_to( _time, _add ) \
@@ -196,14 +198,14 @@ extern "C" {
#endif
/**
- * @brief Convert Timestamp to Number of Ticks
+ * @brief Convert timestamp to number of clock ticks.
*
* This routine convert the @a time timestamp to the corresponding number
* of clock ticks.
*
* @param[in] _time points to the time to be converted
*
- * @return This method returns the number of ticks computed.
+ * @retval This method returns the number of ticks computed.
*/
#if CPU_TIMESTAMP_USE_STRUCT_TIMESPEC == TRUE
#define _Timestamp_To_ticks( _time ) \
@@ -214,7 +216,7 @@ extern "C" {
#endif
/**
- * @brief Convert Ticks to Timestamp
+ * @brief Converts the @a _ticks value to timestamp format.
*
* This routine converts the @a _ticks value to the corresponding
* timestamp format @a _time.
@@ -231,7 +233,7 @@ extern "C" {
#endif
/**
- * @brief Subtract Two Timestamp
+ * @brief Subtracts two timestamps.
*
* This routine subtracts two timestamps. @a result is set to
* @a end - @a start.
@@ -241,7 +243,7 @@ extern "C" {
* @param[in] _result points to the difference between
* starting and ending time.
*
- * @return This method fills in @a _result.
+ * @retval This method fills in @a _result.
*/
#if CPU_TIMESTAMP_USE_STRUCT_TIMESPEC == TRUE
#define _Timestamp_Subtract( _start, _end, _result ) \
@@ -252,7 +254,7 @@ extern "C" {
#endif
/**
- * @brief Divide Timestamp By Integer
+ * @brief Divides a timestamp by an integer value.
*
* This routine divides a timestamp by an integer value. The expected
* use is to assist in benchmark calculations where you typically
@@ -262,7 +264,7 @@ extern "C" {
* @param[in] _iterations is the number of iterations
* @param[in] _result points to the average time.
*
- * @return This method fills in @a result.
+ * @retval This method fills in @a result.
*/
#if CPU_TIMESTAMP_USE_STRUCT_TIMESPEC == TRUE
#define _Timestamp_Divide_by_integer( _time, _iterations, _result ) \
@@ -273,7 +275,7 @@ extern "C" {
#endif
/**
- * @brief Divide Timestamp
+ * @brief Divides a timestamp by another timestamp.
*
* This routine divides a timestamp by another timestamp. The
* intended use is for calculating percentages to three decimal points.
@@ -283,7 +285,7 @@ extern "C" {
* @param[in] _ival_percentage points to the integer portion of the average
* @param[in] _fval_percentage points to the thousandths of percentage
*
- * @return This method fills in @a result.
+ * @retval This method fills in @a result.
*/
#if CPU_TIMESTAMP_USE_STRUCT_TIMESPEC == TRUE
#define _Timestamp_Divide( _lhs, _rhs, _ival_percentage, _fval_percentage ) \
@@ -294,13 +296,13 @@ extern "C" {
#endif
/**
- * @brief Get Seconds Portion of Timestamp
+ * @brief Get seconds portion of timestamp.
*
* This method returns the seconds portion of the specified timestamp
*
* @param[in] _time points to the timestamp
*
- * @return The seconds portion of @a _time.
+ * @retval The seconds portion of @a _time.
*/
#if CPU_TIMESTAMP_USE_STRUCT_TIMESPEC == TRUE
#define _Timestamp_Get_seconds( _time ) \
@@ -311,13 +313,13 @@ extern "C" {
#endif
/**
- * @brief Get Nanoseconds Portion of Timestamp
+ * @brief Get nanoseconds portion of timestamp.
*
* This method returns the nanoseconds portion of the specified timestamp
*
* @param[in] _time points to the timestamp
*
- * @return The nanoseconds portion of @a _time.
+ * @retval The nanoseconds portion of @a _time.
*/
#if CPU_TIMESTAMP_USE_STRUCT_TIMESPEC == TRUE
#define _Timestamp_Get_nanoseconds( _time ) \
@@ -328,7 +330,7 @@ extern "C" {
#endif
/**
- * @brief Convert Timestamp to Struct Timespec
+ * @brief Convert timestamp to struct timespec.
*
* This method returns the seconds portion of the specified @a _timestamp.
*
@@ -345,7 +347,7 @@ extern "C" {
#endif
/**
- * @brief Convert Timestamp to struct timeval
+ * @brief Convert timestamp to struct timeval.
*
* @param[in] _timestamp points to the timestamp
* @param[in] _timeval points to the timeval
diff --git a/cpukit/score/include/rtems/score/timestamp64.h b/cpukit/score/include/rtems/score/timestamp64.h
index 41735fa144..306ee35fee 100644
--- a/cpukit/score/include/rtems/score/timestamp64.h
+++ b/cpukit/score/include/rtems/score/timestamp64.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/timestamp64.h
*
+ * @brief Helpers for Manipulating 64-bit Integer Timestamps
+ *
* This include file contains helpers for manipulating
* 64-bit integer timestamps.
*/
@@ -18,7 +20,7 @@
#define _RTEMS_SCORE_TIMESTAMP64_H
/**
- * @defgroup SuperCore Timestamp64
+ * @defgroup SuperCoreTimestamp64 SuperCore Sixty-Four Bit Timestamps
*
* @ingroup Score
*
@@ -61,7 +63,7 @@ static inline void _Timestamp64_implementation_Set(
}
/**
- * @brief Set Timestamp to Seconds Nanosecond
+ * @brief Set 64-bit timestamp to seconds nanosecond.
*
* This method sets the timestamp to the specified seconds and nanoseconds
* value.
@@ -89,10 +91,9 @@ static inline void _Timestamp64_implementation_Set_to_zero(
}
/**
- * @brief Zero Timestamp
+ * @brief Sets the 64-bit timestamp to zero.
*
- * This method sets the timestamp to zero.
- * value.
+ * This method sets the timestamp to zero value.
*
* @param[in] _time points to the timestamp instance to zero.
*/
@@ -106,13 +107,13 @@ static inline void _Timestamp64_implementation_Set_to_zero(
#endif
/**
- * @brief Is Timestamp Valid
+ * @brief Determines the validity of a 64-bit timestamp.
*
* This method determines the validity of a timestamp.
*
* @param[in] _time points to the timestamp instance to validate.
*
- * @return This method returns true if @a time is valid and
+ * @retval This method returns true if @a time is valid and
* false otherwise.
*/
#define _Timestamp64_Is_valid( _time ) \
@@ -127,14 +128,14 @@ static inline bool _Timestamp64_implementation_Less_than(
}
/**
- * @brief Timestamp Less Than Operator
+ * @brief The "less than" operator for 64-bit timestamps.
*
* This method is the less than operator for timestamps.
*
* @param[in] _lhs points to the left hand side timestamp
* @param[in] _rhs points to the right hand side timestamp
*
- * @return This method returns true if @a _lhs is less than the @a _rhs and
+ * @retval This method returns true if @a _lhs is less than the @a _rhs and
* false otherwise.
*/
#if CPU_TIMESTAMP_USE_INT64_INLINE == TRUE
@@ -159,14 +160,14 @@ static inline bool _Timestamp64_implementation_Equal_to(
_Timestamp64_Less_than( _rhs, _lhs )
/**
- * @brief Timestamp equal to Operator
+ * @brief The "equal to" operator for 64-bit timestamps.
*
* This method is the is equal to than operator for timestamps.
*
* @param[in] _lhs points to the left hand side timestamp
* @param[in] _rhs points to the right hand side timestamp
*
- * @return This method returns true if @a _lhs is equal to @a _rhs and
+ * @retval This method returns true if @a _lhs is equal to @a _rhs and
* false otherwise.
*/
#if CPU_TIMESTAMP_USE_INT64_INLINE == TRUE
@@ -188,7 +189,7 @@ static inline void _Timestamp64_implementation_Add_to(
}
/**
- * @brief Add to a Timestamp
+ * @brief Add two 64-bit timestamps.
*
* This routine adds two timestamps. The second argument is added
* to the first.
@@ -196,7 +197,7 @@ static inline void _Timestamp64_implementation_Add_to(
* @param[in] _time points to the base time to be added to
* @param[in] _add points to the timestamp to add to the first argument
*
- * @return This method returns the number of seconds @a time increased by.
+ * @retval This method returns the number of seconds @a time increased by.
*/
#if CPU_TIMESTAMP_USE_INT64_INLINE == TRUE
#define _Timestamp64_Add_to( _time, _add ) \
@@ -209,21 +210,21 @@ static inline void _Timestamp64_implementation_Add_to(
#endif
/**
- * @brief Convert Timestamp to Number of Ticks
+ * @brief Convert 64-bit timestamp to number of ticks.
*
* This routine convert the @a time timestamp to the corresponding number
* of clock ticks.
*
* @param[in] _time points to the time to be converted
*
- * @return This method returns the number of ticks computed.
+ * @retval This method returns the number of ticks computed.
*/
uint32_t _Timestamp64_To_ticks(
const Timestamp64_Control *_time
);
/**
- * @brief Convert Ticks to Timestamp
+ * @brief Convert ticks to 64-bit timestamp.
*
* This routine converts the @a _ticks value to the corresponding
* timestamp format @a _time.
@@ -246,7 +247,7 @@ static inline void _Timestamp64_implementation_Subtract(
}
/**
- * @brief Subtract Two Timestamp
+ * @brief Subtract two 64-bit timestamps.
*
* This routine subtracts two timestamps. @a result is set to
* @a end - @a start.
@@ -277,7 +278,7 @@ static inline void _Timestamp64_implementation_Divide_by_integer(
}
/**
- * @brief Divide Timestamp By Integer
+ * @brief Divide 64-bit timestamp by an integer.
*
* This routine divides a timestamp by an integer value. The expected
* use is to assist in benchmark calculations where you typically
@@ -299,7 +300,7 @@ static inline void _Timestamp64_implementation_Divide_by_integer(
#endif
/**
- * @brief Divide Timestamp
+ * @brief Divide 64-bit timestamp by another 64-bit timestamp.
*
* This routine divides a timestamp by another timestamp. The
* intended use is for calculating percentages to three decimal points.
@@ -324,13 +325,13 @@ static inline uint32_t _Timestamp64_implementation_Get_seconds(
}
/**
- * @brief Get Seconds Portion of Timestamp
+ * @brief Get seconds portion of a 64-bit timestamp.
*
* This method returns the seconds portion of the specified timestamp
*
* @param[in] _time points to the timestamp
*
- * @return The seconds portion of @a _time.
+ * @retval The seconds portion of @a _time.
*/
#if CPU_TIMESTAMP_USE_INT64_INLINE == TRUE
#define _Timestamp64_Get_seconds( _time ) \
@@ -349,13 +350,13 @@ static inline uint32_t _Timestamp64_implementation_Get_nanoseconds(
}
/**
- * @brief Get Nanoseconds Portion of Timestamp
+ * @brief Get nanoseconds portion of a 64-bit timestamp.
*
* This method returns the nanoseconds portion of the specified timestamp
*
* @param[in] _time points to the timestamp
*
- * @return The nanoseconds portion of @a _time.
+ * @retval The nanoseconds portion of @a _time.
*/
#if CPU_TIMESTAMP_USE_INT64_INLINE == TRUE
#define _Timestamp64_Get_nanoseconds( _time ) \
@@ -376,7 +377,7 @@ static inline void _Timestamp64_implementation_To_timespec(
}
/**
- * @brief Convert Timestamp to struct timespec
+ * @brief Convert 64-bit timestamp to struct timespec.
*
* This method returns the seconds portion of the specified timestamp
*
@@ -403,7 +404,7 @@ static inline void _Timestamp64_implementation_To_timeval(
}
/**
- * @brief Convert Timestamp to struct timeval
+ * @brief Convert 64-bit timestamp to struct timeval.
*
* This method returns the seconds portion of the specified timestamp
*
diff --git a/cpukit/score/include/rtems/score/tod.h b/cpukit/score/include/rtems/score/tod.h
index eb743b737a..df73f95970 100644
--- a/cpukit/score/include/rtems/score/tod.h
+++ b/cpukit/score/include/rtems/score/tod.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/tod.h
*
+ * @brief Constants and Structures Associated with the Time of Day Handler.
+ *
* This include file contains all the constants and structures associated
* with the Time of Day Handler.
*/
@@ -105,7 +107,7 @@ extern "C" {
(4 * TOD_SECONDS_PER_DAY))
/**
- * @brief RTEMS Epoch Year
+ * @brief Earliest year to which an time of day can be initialized.
*
* The following constant define the earliest year to which an
* time of day can be initialized. This is considered the
@@ -157,7 +159,7 @@ typedef struct {
SCORE_EXTERN TOD_Control _TOD;
/**
- * @brief Seconds Since RTEMS Epoch
+ * @brief Number of seconds Since RTEMS epoch.
*
* The following contains the number of seconds from 00:00:00
* January 1, TOD_BASE_YEAR until the current time of day.
@@ -166,14 +168,14 @@ SCORE_EXTERN TOD_Control _TOD;
_Timestamp_Get_seconds(&_TOD.now)
/**
- * @brief Initializes the Time of Day Handler
+ * @brief Initializes the time of day handler.
*
* Performs the initialization necessary for the Time Of Day handler.
*/
void _TOD_Handler_initialization(void);
/**
- * @brief Sets the time of day from timestamp
+ * @brief Sets the time of day from timestamp.
*
* The @a tod_as_timestamp timestamp represents the time since UNIX epoch.
* The watchdog seconds chain will be adjusted.
@@ -203,10 +205,11 @@ static inline void _TOD_Set(
*
* This function invokes the nanoseconds extension.
*
- * @param[out] snapshot The snapshot.
- * @param[in] source The clock.
+ * @param[out] snapshot points to an area that will contain the current
+ * TOD plus the BSP nanoseconds since last tick adjustment
+ * @param[in] clock contains the current TOD
*
- * @return The snapshot.
+ * @retval @a snapshot
*/
Timestamp_Control *_TOD_Get_with_nanoseconds(
Timestamp_Control *snapshot,
@@ -226,7 +229,7 @@ static inline void _TOD_Get(
}
/**
- * @brief _TOD_Get_uptime
+ * @brief Gets the system uptime with potential accuracy to the nanosecond.
*
* This routine returns the system uptime with potential accuracy
* to the nanosecond.
@@ -241,7 +244,7 @@ static inline void _TOD_Get_uptime(
}
/**
- * @brief _TOD_Get_uptime_as_timespec
+ * @brief Gets the system uptime with potential accuracy to the nanosecond.
*
* This routine returns the system uptime with potential accuracy
* to the nanosecond.
@@ -253,7 +256,7 @@ void _TOD_Get_uptime_as_timespec(
);
/**
- * @brief Increments time of day at each clock tick
+ * @brief Increments time of day at each clock tick.
*
* This routine increments the ticks field of the current time of
* day at each clock tick.
@@ -261,7 +264,7 @@ void _TOD_Get_uptime_as_timespec(
void _TOD_Tickle_ticks( void );
/**
- * @brief TOD_MILLISECONDS_TO_MICROSECONDS
+ * @brief Converts an interval expressed in milliseconds to microseconds.
*
* This routine converts an interval expressed in milliseconds to microseconds.
*
@@ -270,7 +273,7 @@ void _TOD_Tickle_ticks( void );
#define TOD_MILLISECONDS_TO_MICROSECONDS(_ms) ((uint32_t)(_ms) * 1000L)
/**
- * @brief Converts microseconds to ticks
+ * @brief Converts an interval expressed in microseconds to ticks.
*
* This routine converts an interval expressed in microseconds to ticks.
*
@@ -281,7 +284,7 @@ uint32_t TOD_MICROSECONDS_TO_TICKS(
);
/**
- * @brief TOD_MILLISECONDS_TO_TICKS
+ * @brief Converts an interval expressed in milliseconds to ticks.
*
* This routine converts an interval expressed in milliseconds to ticks.
*
@@ -292,7 +295,7 @@ uint32_t TOD_MILLISECONDS_TO_TICKS(
);
/**
- * @brief How many ticks in a second?
+ * @brief Gets number of ticks in a second.
*
* This method returns the number of ticks in a second.
*
@@ -302,7 +305,7 @@ uint32_t TOD_MILLISECONDS_TO_TICKS(
uint32_t TOD_TICKS_PER_SECOND_method(void);
/**
- * @brief Method to return number of ticks in a second
+ * @brief Gets number of ticks in a second.
*
* This method exists to hide the fact that TOD_TICKS_PER_SECOND can not
* be implemented as a macro in a .h file due to visibility issues.
diff --git a/cpukit/score/include/rtems/score/tqdata.h b/cpukit/score/include/rtems/score/tqdata.h
index 1c2e1326f5..c556d3ffe8 100644
--- a/cpukit/score/include/rtems/score/tqdata.h
+++ b/cpukit/score/include/rtems/score/tqdata.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/tqdata.h
*
+ * @brief Constants and Structures Needed to Declare a Thread Queue
+ *
* This include file contains all the constants and structures
* needed to declare a thread queue.
*/
diff --git a/cpukit/score/include/rtems/score/userext.h b/cpukit/score/include/rtems/score/userext.h
index 6071d7ab3b..bf76c35e39 100644
--- a/cpukit/score/include/rtems/score/userext.h
+++ b/cpukit/score/include/rtems/score/userext.h
@@ -3,7 +3,7 @@
*
* @ingroup ScoreUserExt
*
- * @brief User Extension Handler API.
+ * @brief User Extension Handler API
*/
/*
@@ -36,9 +36,8 @@ typedef void User_extensions_routine RTEMS_COMPILER_DEPRECATED_ATTRIBUTE;
* @brief The User Extension Handler provides invocation of application
* dependent routines at critical points in the life of each thread and the
* system as a whole.
- *
- * @{
*/
+/**@{**/
/**
* @brief Task create extension.
diff --git a/cpukit/score/include/rtems/score/userextimpl.h b/cpukit/score/include/rtems/score/userextimpl.h
index 7a89d9af0c..6ecdcc579a 100644
--- a/cpukit/score/include/rtems/score/userextimpl.h
+++ b/cpukit/score/include/rtems/score/userextimpl.h
@@ -3,7 +3,7 @@
*
* @ingroup ScoreUserExt
*
- * @brief User Extension Handler API.
+ * @brief User Extension Handler API
*/
/*
@@ -25,10 +25,13 @@ extern "C" {
#endif
/**
- * @addtogroup ScoreUserExt
+ * @defgroup ScoreUserExt User Extension Handler
+ *
+ * @ingroup Score
*
- * @{
+ * @addtogroup ScoreUserExt
*/
+/**@{**/
/**
* @brief List of active extensions.
@@ -42,9 +45,8 @@ extern Chain_Control _User_extensions_Switches_list;
/**
* @name Extension Maintainance
- *
- * @{
*/
+/**@{**/
void _User_extensions_Handler_initialization( void );
@@ -154,9 +156,8 @@ void _User_extensions_Iterate(
/**
* @name Extension Callout Dispatcher
- *
- * @{
*/
+/**@{**/
static inline bool _User_extensions_Thread_create( Thread_Control *created )
{
diff --git a/cpukit/score/include/rtems/score/watchdog.h b/cpukit/score/include/rtems/score/watchdog.h
index 1471f84b28..6dd0b5d0ce 100644
--- a/cpukit/score/include/rtems/score/watchdog.h
+++ b/cpukit/score/include/rtems/score/watchdog.h
@@ -1,6 +1,8 @@
/**
* @file rtems/score/watchdog.h
*
+ * @brief Constants and Structures Associated with Watchdog Timers
+ *
* This include file contains all the constants and structures associated
* with watchdog timers. This Handler provides mechanisms which can be
* used to initialize and manipulate watchdog timers.
@@ -38,7 +40,7 @@ extern "C" {
#endif
/**
- * @brief Maximum Interval Length
+ * @brief Control block used to manage intervals.
*
* The following type defines the control block used to manage
* intervals.
@@ -46,14 +48,15 @@ extern "C" {
#define WATCHDOG_MAXIMUM_INTERVAL ((Watchdog_Interval) 0xffffffff)
/**
- * @brief Watchdog Interval Type
+ * @brief Type is used to specify the length of intervals.
*
* This type is used to specify the length of intervals.
*/
typedef uint32_t Watchdog_Interval;
/**
- * @brief Watchdog Nanoseconds Since Last Tick Extension
+ * @brief Pointer to the BSP plugin to obtain the number
+ * of nanoseconds since the last clock tick.
*
* This type defines a pointer to the BSP plugin to obtain the number
* of nanoseconds since the last clock tick.
@@ -61,14 +64,14 @@ typedef uint32_t Watchdog_Interval;
typedef uint32_t (*Watchdog_Nanoseconds_since_last_tick_routine)(void);
/**
- * @brief Watchdog Service Routine Return Type
+ * @brief Return type from a Watchdog Service Routine.
*
* This type defines the return type from a Watchdog Service Routine.
*/
typedef void Watchdog_Service_routine;
/**
- * @brief Watchdog Service Routine Pointer Type
+ * @brief Pointer to a watchdog service routine.
*
* This type define a pointer to a watchdog service routine.
*/
@@ -78,7 +81,7 @@ typedef Watchdog_Service_routine ( *Watchdog_Service_routine_entry )(
);
/**
- * @brief No timeout constant
+ * @brief The constant for indefinite wait.
*
* This is the constant for indefinite wait. It is actually an
* illegal interval.
@@ -86,7 +89,7 @@ typedef Watchdog_Service_routine ( *Watchdog_Service_routine_entry )(
#define WATCHDOG_NO_TIMEOUT 0
/**
- * @brief Watchdog States Type
+ * @brief Set of the states which a watchdog timer may be at any given time.
*
* This enumerated type is the set of the states in which a
* watchdog timer may be at any given time.
@@ -108,7 +111,8 @@ typedef enum {
} Watchdog_States;
/**
- * @brief Watchdog Adjustment Directions Type
+ * @brief the manner in which a watchdog chain may
+ * be adjusted by the @ref _Watchdog_Adjust routine.
*
* The following enumerated type details the manner in which
* a watchdog chain may be adjusted by the @ref _Watchdog_Adjust
@@ -123,7 +127,7 @@ typedef enum {
} Watchdog_Adjust_directions;
/**
- * @brief Watchdog Control Structure
+ * @brief The control block used to manage each watchdog timer.
*
* The following record defines the control block used
* to manage each watchdog timer.
@@ -154,7 +158,7 @@ typedef struct {
} Watchdog_Control;
/**
- * @brief Watchdog Synchronization Level
+ * @brief Watchdog synchronization level.
*
* This used for synchronization purposes
* during an insert on a watchdog delta chain.
@@ -162,7 +166,7 @@ typedef struct {
SCORE_EXTERN volatile uint32_t _Watchdog_Sync_level;
/**
- * @brief Watchdog Synchronization Count
+ * @brief Watchdog synchronization count.
*
* This used for synchronization purposes
* during an insert on a watchdog delta chain.
@@ -170,7 +174,7 @@ SCORE_EXTERN volatile uint32_t _Watchdog_Sync_level;
SCORE_EXTERN volatile uint32_t _Watchdog_Sync_count;
/**
- * @brief Ticks Since System Boot
+ * @brief The number of ticks since the system was booted.
*
* This contains the number of ticks since the system was booted.
*/
@@ -178,7 +182,7 @@ SCORE_EXTERN volatile uint32_t _Watchdog_Sync_count;
SCORE_EXTERN volatile Watchdog_Interval _Watchdog_Ticks_since_boot;
/**
- * @brief Watchdog Nanoseconds Since Last Tick Handler
+ * @brief The number of nanoseconds since the last clock tick.
*
* This is a pointer to the optional BSP plugin to obtain the number
* of nanoseconds since the last clock tick.
@@ -187,21 +191,21 @@ extern Watchdog_Nanoseconds_since_last_tick_routine
_Watchdog_Nanoseconds_since_tick_handler;
/**
- * @brief Per Ticks Watchdog List
+ * @brief Watchdog chain which is managed at ticks.
*
* This is the watchdog chain which is managed at ticks.
*/
SCORE_EXTERN Chain_Control _Watchdog_Ticks_chain;
/**
- * @brief Per Seconds Watchdog List
+ * @brief Watchdog chain which is managed at second boundaries.
*
* This is the watchdog chain which is managed at second boundaries.
*/
SCORE_EXTERN Chain_Control _Watchdog_Seconds_chain;
/**
- * @brief Watchdog Handler Initialization
+ * @brief Initialize the watchdog handler.
*
* This routine initializes the watchdog handler. The watchdog
* synchronization flag is initialized and the watchdog chains are
@@ -210,20 +214,21 @@ SCORE_EXTERN Chain_Control _Watchdog_Seconds_chain;
void _Watchdog_Handler_initialization( void );
/**
- * @brief Remove Watchdog from List
+ * @brief Removes @a the_watchdog from the watchdog chain.
*
* This routine removes @a the_watchdog from the watchdog chain on which
* it resides and returns the state @a the_watchdog timer was in.
*
* @param[in] the_watchdog will be removed
- * @return the state in which @a the_watchdog was in when removed
+ * @retval the state in which @a the_watchdog was in when removed
*/
Watchdog_States _Watchdog_Remove (
Watchdog_Control *the_watchdog
);
/**
- * @brief Watchdog Adjust
+ * @brief Adjusts the @a header watchdog chain in the forward
+ * or backward @a direction for @a units ticks.
*
* This routine adjusts the @a header watchdog chain in the forward
* or backward @a direction for @a units ticks.
@@ -239,7 +244,8 @@ void _Watchdog_Adjust (
);
/**
- * @brief Watchdog Adjust to Chain
+ * @brief Adjusts the @a header watchdog chain in the forward
+ * @a direction for @a units_arg ticks.
*
* This routine adjusts the @a header watchdog chain in the forward
* @a direction for @a units_arg ticks.
@@ -259,7 +265,8 @@ void _Watchdog_Adjust_to_chain(
);
/**
- * @brief Watchdog Insert
+ * @brief Inserts @a the_watchdog into the @a header watchdog chain
+ * for a time of @a units.
*
* This routine inserts @a the_watchdog into the @a header watchdog chain
* for a time of @a units.
@@ -274,7 +281,8 @@ void _Watchdog_Insert (
);
/**
- * @brief Watchdog Tickle
+ * @brief This routine is invoked at appropriate intervals to update
+ * the @a header watchdog chain.
*
* This routine is invoked at appropriate intervals to update
* the @a header watchdog chain.
@@ -287,7 +295,7 @@ void _Watchdog_Tickle (
);
/**
- * @brief Report Information on a Single Watchdog Instance
+ * @brief Report information on a single watchdog instance.
*
* This method prints a one line report on the watchdog instance
* provided. The @a name may be used to identify the watchdog and
@@ -306,7 +314,7 @@ void _Watchdog_Report(
);
/**
- * @brief Report Information on a Watchdog Chain
+ * @brief Report information on a watchdog chain.
*
* This method prints report on the watchdog chain provided.
* The @a name may be used to identify the watchdog chain and
@@ -326,7 +334,7 @@ void _Watchdog_Report_chain(
);
/**
- * @brief Default Nanoseconds Since Last Tick Handler
+ * @brief Handler for default nanoseconds since last tick.
*
* @retval 0 Always.
*/
diff --git a/cpukit/score/include/rtems/score/wkspace.h b/cpukit/score/include/rtems/score/wkspace.h
index ffac4cbff0..91059f734f 100644
--- a/cpukit/score/include/rtems/score/wkspace.h
+++ b/cpukit/score/include/rtems/score/wkspace.h
@@ -1,5 +1,7 @@
/**
- * @file rtems/score/wkspace.h
+ * @file rtems/score/wkspace.h
+ *
+ * @brief Information Related to the RAM Workspace
*
* This include file contains information related to the
* RAM Workspace. This Handler provides mechanisms which can be used to
@@ -44,7 +46,7 @@ extern "C" {
SCORE_EXTERN Heap_Control _Workspace_Area;
/**
- * @brief Workspace Handler Initialization
+ * @brief Initilize workspace handler.
*
* This routine performs the initialization necessary for this handler.
*/
@@ -55,7 +57,7 @@ void _Workspace_Handler_initialization(
);
/**
- * @brief Allocate Memory from Workspace
+ * @brief Allocate memory from workspace.
*
* This routine returns the address of a block of memory of size
* bytes. If a block of the appropriate size cannot be allocated
@@ -63,14 +65,14 @@ void _Workspace_Handler_initialization(
*
* @param size is the requested size
*
- * @return a pointer to the requested memory or NULL.
+ * @retval a pointer to the requested memory or NULL.
*/
void *_Workspace_Allocate(
size_t size
);
/**
- * @brief Free Memory to the Workspace
+ * @brief Free memory to the workspace.
*
* This function frees the specified block of memory. If the block
* belongs to the Workspace and can be successfully freed, then
@@ -88,27 +90,27 @@ void _Workspace_Free(
);
/**
- * @brief Workspace Allocate or Fail with Fatal Error
+ * @brief Workspace allocate or fail with fatal error.
*
* This routine returns the address of a block of memory of @a size
* bytes. If a block of the appropriate size cannot be allocated
* from the workspace, then the internal error handler is invoked.
*
* @param[in] size is the desired number of bytes to allocate
- * @return If successful, the starting address of the allocated memory
+ * @retval If successful, the starting address of the allocated memory
*/
void *_Workspace_Allocate_or_fatal_error(
size_t size
);
/**
- * @brief Duplicates String with Memory from the Workspace
+ * @brief Duplicates string with memory from the workspace.
*
* @param[in] string is the pointer to a zero terminated string.
* @param[in] len is the length of the string (equal to strlen(string)).
*
- * @return NULL Not enough memory.
- * @return other Duplicated string.
+ * @retval NULL Not enough memory.
+ * @retval other Duplicated string.
*/
char *_Workspace_String_duplicate(
const char *string,
diff --git a/cpukit/score/include/rtems/seterr.h b/cpukit/score/include/rtems/seterr.h
index ddd5c1c685..f0e5b7ca6d 100644
--- a/cpukit/score/include/rtems/seterr.h
+++ b/cpukit/score/include/rtems/seterr.h
@@ -1,6 +1,8 @@
/**
* @file rtems/seterr.h
*
+ * @brief Data which Ease the Burden of Consistently Setting Errno
+ *
* This file contains macros and definitions which ease the burden
* of consistently setting errno and returning -1.
*/
@@ -17,6 +19,14 @@
#ifndef _RTEMS_SETERR_H
#define _RTEMS_SETERR_H
+/**
+ * @defgroup ScoreSetErr Set Errno
+ *
+ * @ingroup Score
+ *
+ */
+/**@{*/
+
#include <errno.h>
/**
@@ -41,5 +51,6 @@
#define rtems_set_errno_and_return_minus_one_cast( _error, _cast ) \
do { errno = (_error); return (_cast) -1; } while(0)
+/**@}*/
#endif
/* end of include file */
diff --git a/cpukit/score/include/rtems/system.h b/cpukit/score/include/rtems/system.h
index 46f080b46a..0100b72b84 100644
--- a/cpukit/score/include/rtems/system.h
+++ b/cpukit/score/include/rtems/system.h
@@ -1,9 +1,11 @@
/**
- * @file rtems/system.h
+ * @file
*
- * This include file contains information that is included in every
- * function in the executive. This must be the first include file
- * included in all internal RTEMS files.
+ * @brief Information Included in Every Function in the Executive
+ *
+ * This include file contains information that is included in every
+ * function in the executive. This must be the first include file
+ * included in all internal RTEMS files.
*/
/*
@@ -20,6 +22,13 @@
#include <rtems/score/percpu.h>
+/**
+ * @defgroup ScoreSystem System Information
+ *
+ * @ingroup Score
+ */
+/**@{*/
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -52,5 +61,6 @@ extern const char _Copyright_Notice[];
}
#endif
+/**@}*/
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/address.inl b/cpukit/score/inline/rtems/score/address.inl
index c1c4f30b02..17bcd0a016 100644
--- a/cpukit/score/inline/rtems/score/address.inl
+++ b/cpukit/score/inline/rtems/score/address.inl
@@ -1,8 +1,10 @@
-/**
- * @file rtems/score/address.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines Associated with Addresses
*
- * This include file contains the bodies of the routines
- * about addresses which are inlined.
+ * This include file contains the bodies of the routines
+ * about addresses which are inlined.
*/
/*
@@ -24,20 +26,21 @@
#include <rtems/score/basedefs.h>
/**
- * @addtogroup ScoreAddress
- * @{
+ * @addtogroup ScoreAddress
*/
+/**@{**/
-/** @brief Add Offset to Address
+/**
+ * @brief Add offset to an address.
*
- * This function is used to add an @a offset to a @a base address.
- * It returns the resulting address. This address is typically
- * converted to an access type before being used further.
+ * This function is used to add an @a offset to a @a base address.
+ * It returns the resulting address. This address is typically
+ * converted to an access type before being used further.
*
- * @param[in] base is the base address.
- * @param[in] offset is the offset to add to @a base.
+ * @param[in] base is the base address.
+ * @param[in] offset is the offset to add to @a base.
*
- * @return This method returns the resulting address.
+ * @return This method returns the resulting address.
*/
#include <rtems/bspIo.h>
RTEMS_INLINE_ROUTINE void *_Addresses_Add_offset (
@@ -48,16 +51,17 @@ RTEMS_INLINE_ROUTINE void *_Addresses_Add_offset (
return (void *)((uintptr_t)base + offset);
}
-/** @brief Subtract Offset from Offset
+/**
+ * @brief Subtract offset from offset.
*
- * This function is used to subtract an @a offset from a @a base
- * address. It returns the resulting address. This address is
- * typically converted to an access type before being used further.
+ * This function is used to subtract an @a offset from a @a base
+ * address. It returns the resulting address. This address is
+ * typically converted to an access type before being used further.
*
- * @param[in] base is the base address.
- * @param[in] offset is the offset to subtract to @a base.
+ * @param[in] base is the base address.
+ * @param[in] offset is the offset to subtract to @a base.
*
- * @return This method returns the resulting address.
+ * @return This method returns the resulting address.
*/
RTEMS_INLINE_ROUTINE void *_Addresses_Subtract_offset (
@@ -68,18 +72,19 @@ RTEMS_INLINE_ROUTINE void *_Addresses_Subtract_offset (
return (void *)((uintptr_t)base - offset);
}
-/** @brief Subtract Two Offsets
+/**
+ * @brief Subtract two offsets.
*
- * This function is used to subtract two addresses. It returns the
- * resulting offset.
+ * This function is used to subtract two addresses. It returns the
+ * resulting offset.
*
- * @param[in] left is the address on the left hand side of the subtraction.
- * @param[in] right is the address on the right hand side of the subtraction.
+ * @param[in] left is the address on the left hand side of the subtraction.
+ * @param[in] right is the address on the right hand side of the subtraction.
*
- * @return This method returns the resulting address.
+ * @return This method returns the resulting address.
*
- * @note The cast of an address to an uint32_t makes this code
- * dependent on an addresses being thirty two bits.
+ * @note The cast of an address to an uint32_t makes this code
+ * dependent on an addresses being thirty two bits.
*/
RTEMS_INLINE_ROUTINE int32_t _Addresses_Subtract (
const void *left,
@@ -89,16 +94,17 @@ RTEMS_INLINE_ROUTINE int32_t _Addresses_Subtract (
return (int32_t) ((const char *) left - (const char *) right);
}
-/** @brief Is Address Aligned
+/**
+ * @brief Is address aligned.
*
- * This function returns true if the given address is correctly
- * aligned for this processor and false otherwise. Proper alignment
- * is based on correctness and efficiency.
+ * This function returns true if the given address is correctly
+ * aligned for this processor and false otherwise. Proper alignment
+ * is based on correctness and efficiency.
*
- * @param[in] address is the address being checked for alignment.
+ * @param[in] address is the address being checked for alignment.
*
- * @return This method returns true if the address is aligned and
- * false otherwise.
+ * @retval true The @a address is aligned.
+ * @retval false The @a address is not aligned.
*/
RTEMS_INLINE_ROUTINE bool _Addresses_Is_aligned (
const void *address
@@ -111,20 +117,21 @@ RTEMS_INLINE_ROUTINE bool _Addresses_Is_aligned (
#endif
}
-/** @brief Is Address In Range
+/**
+ * @brief Is address in range.
*
- * This function returns true if the given address is within the
- * memory range specified and false otherwise. base is the address
- * of the first byte in the memory range and limit is the address
- * of the last byte in the memory range. The base address is
- * assumed to be lower than the limit address.
+ * This function returns true if the given address is within the
+ * memory range specified and false otherwise. base is the address
+ * of the first byte in the memory range and limit is the address
+ * of the last byte in the memory range. The base address is
+ * assumed to be lower than the limit address.
*
- * @param[in] address is the address to check.
- * @param[in] base is the lowest address of the range to check against.
- * @param[in] limit is the highest address of the range to check against.
+ * @param[in] address is the address to check.
+ * @param[in] base is the lowest address of the range to check against.
+ * @param[in] limit is the highest address of the range to check against.
*
- * @return This method returns true if the given @a address is within the
- * memory range specified and false otherwise.
+ * @retval true The @a address is within the memory range specified
+ * @retval false The @a address is not within the memory range specified.
*/
RTEMS_INLINE_ROUTINE bool _Addresses_Is_in_range (
const void *address,
@@ -135,7 +142,7 @@ RTEMS_INLINE_ROUTINE bool _Addresses_Is_in_range (
return (address >= base && address <= limit);
}
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/chain.inl b/cpukit/score/inline/rtems/score/chain.inl
index ebef69521b..7290d6ecac 100644
--- a/cpukit/score/inline/rtems/score/chain.inl
+++ b/cpukit/score/inline/rtems/score/chain.inl
@@ -1,9 +1,7 @@
/**
* @file
*
- * @ingroup ScoreChain
- *
- * @brief Chain Handler API.
+ * @brief Chain Handler API
*/
/*
@@ -25,16 +23,17 @@
#define _RTEMS_SCORE_CHAIN_INL
/**
- * @addtogroup ScoreChain
- * @{
+ * @addtogroup ScoreChain
*/
+/**@{**/
-/** @brief Set off chain
+/**
+ * @brief Set off chain.
*
- * This function sets the next and previous fields of the @a node to NULL
- * indicating the @a node is not part of a chain.
+ * This function sets the next and previous fields of the @a node to NULL
+ * indicating the @a node is not part of a chain.
*
- * @param[in] node the node set to off chain.
+ * @param[in] node the node set to off chain.
*/
RTEMS_INLINE_ROUTINE void _Chain_Set_off_chain(
Chain_Node *node
@@ -43,14 +42,16 @@ RTEMS_INLINE_ROUTINE void _Chain_Set_off_chain(
node->next = node->previous = NULL;
}
-/** @brief Is the Node off Chain
+/**
+ * @brief Is the node off chain.
*
- * This function returns true if the @a node is not on a chain. A @a node is
- * off chain if the next and previous fields are set to NULL.
+ * This function returns true if the @a node is not on a chain. A @a node is
+ * off chain if the next and previous fields are set to NULL.
*
- * @param[in] node is the node off chain.
+ * @param[in] node is the node off chain.
*
- * @return This function returns true if the @a node is off chain.
+ * @retval true The @a node is off chain.
+ * @retval false The @a node is not off chain.
*/
RTEMS_INLINE_ROUTINE bool _Chain_Is_node_off_chain(
const Chain_Node *node
@@ -59,16 +60,17 @@ RTEMS_INLINE_ROUTINE bool _Chain_Is_node_off_chain(
return (node->next == NULL) && (node->previous == NULL);
}
-/** @brief Are Two Nodes Equal
+/**
+ * @brief Are two nodes equal.
*
- * This function returns true if @a left and @a right are equal,
- * and false otherwise.
+ * This function returns true if @a left and @a right are equal,
+ * and false otherwise.
*
- * @param[in] left is the node on the left hand side of the comparison.
- * @param[in] right is the node on the left hand side of the comparison.
+ * @param[in] left is the node on the left hand side of the comparison.
+ * @param[in] right is the node on the left hand side of the comparison.
*
- * @return This function returns true if @a left and @a right are equal,
- * and false otherwise.
+ * @retval true @a left and @a right are equal.
+ * @retval false @a left and @a right are not equal.
*/
RTEMS_INLINE_ROUTINE bool _Chain_Are_nodes_equal(
const Chain_Node *left,
@@ -78,13 +80,15 @@ RTEMS_INLINE_ROUTINE bool _Chain_Are_nodes_equal(
return left == right;
}
-/** @brief Is this Chain Control Pointer Null
+/**
+ * @brief Is this chain control pointer NULL.
*
- * This function returns true if the_chain is NULL and false otherwise.
+ * This function returns true if the_chain is NULL and false otherwise.
*
- * @param[in] the_chain is the chain to be checked for empty status.
+ * @param[in] the_chain is the chain to be checked for empty status.
*
- * @return This method returns true if the_chain is NULL and false otherwise.
+ * @retval true @a the_chain is @c NULL.
+ * @retval false @a the_chain is not @c NULL.
*/
RTEMS_INLINE_ROUTINE bool _Chain_Is_null(
const Chain_Control *the_chain
@@ -93,13 +97,15 @@ RTEMS_INLINE_ROUTINE bool _Chain_Is_null(
return (the_chain == NULL);
}
-/** @brief Is the Chain Node Pointer NULL
+/**
+ * @brief Is the chain node pointer NULL.
*
- * This function returns true if the_node is NULL and false otherwise.
+ * This function returns true if the_node is NULL and false otherwise.
*
- * @param[in] the_node is the node pointer to check.
+ * @param[in] the_node is the node pointer to check.
*
- * @return This method returns true if the_node is NULL and false otherwise.
+ * @retval true @a the_node is @c NULL.
+ * @retval false @a the_node is not @c NULL.
*/
RTEMS_INLINE_ROUTINE bool _Chain_Is_null_node(
const Chain_Node *the_node
@@ -108,13 +114,14 @@ RTEMS_INLINE_ROUTINE bool _Chain_Is_null_node(
return (the_node == NULL);
}
-/** @brief Return pointer to Chain Head
+/**
+ * @brief Return pointer to chain head.
*
- * This function returns a pointer to the head node on the chain.
+ * This function returns a pointer to the head node on the chain.
*
- * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_chain is the chain to be operated upon.
*
- * @return This method returns the permanent head node of the chain.
+ * @return This method returns the permanent head node of the chain.
*/
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Head(
Chain_Control *the_chain
@@ -123,13 +130,14 @@ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Head(
return &the_chain->Head.Node;
}
-/** @brief Return pointer to immutable Chain Head
+/**
+ * @brief Return pointer to immutable chain head.
*
- * This function returns a pointer to the head node on the chain.
+ * This function returns a pointer to the head node on the chain.
*
- * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_chain is the chain to be operated upon.
*
- * @return This method returns the permanent head node of the chain.
+ * @return This method returns the permanent head node of the chain.
*/
RTEMS_INLINE_ROUTINE const Chain_Node *_Chain_Immutable_head(
const Chain_Control *the_chain
@@ -138,13 +146,14 @@ RTEMS_INLINE_ROUTINE const Chain_Node *_Chain_Immutable_head(
return &the_chain->Head.Node;
}
-/** @brief Return pointer to Chain Tail
+/**
+ * @brief Return pointer to chain tail.
*
- * This function returns a pointer to the tail node on the chain.
+ * This function returns a pointer to the tail node on the chain.
*
- * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_chain is the chain to be operated upon.
*
- * @return This method returns the permanent tail node of the chain.
+ * @return This method returns the permanent tail node of the chain.
*/
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail(
Chain_Control *the_chain
@@ -153,13 +162,14 @@ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail(
return &the_chain->Tail.Node;
}
-/** @brief Return pointer to immutable Chain Tail
+/**
+ * @brief Return pointer to immutable chain tail.
*
- * This function returns a pointer to the tail node on the chain.
+ * This function returns a pointer to the tail node on the chain.
*
- * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_chain is the chain to be operated upon.
*
- * @return This method returns the permanent tail node of the chain.
+ * @return This method returns the permanent tail node of the chain.
*/
RTEMS_INLINE_ROUTINE const Chain_Node *_Chain_Immutable_tail(
const Chain_Control *the_chain
@@ -168,14 +178,15 @@ RTEMS_INLINE_ROUTINE const Chain_Node *_Chain_Immutable_tail(
return &the_chain->Tail.Node;
}
-/** @brief Return pointer to Chain's First node
+/**
+ * @brief Return pointer to chain's first node.
*
- * This function returns a pointer to the first node on the chain after the
- * head.
+ * This function returns a pointer to the first node on the chain after the
+ * head.
*
- * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_chain is the chain to be operated upon.
*
- * @return This method returns the first node of the chain.
+ * @return This method returns the first node of the chain.
*/
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_First(
Chain_Control *the_chain
@@ -184,14 +195,15 @@ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_First(
return _Chain_Head( the_chain )->next;
}
-/** @brief Return pointer to immutable Chain's First node
+/**
+ * @brief Return pointer to immutable chain's first node.
*
- * This function returns a pointer to the first node on the chain after the
- * head.
+ * This function returns a pointer to the first node on the chain after the
+ * head.
*
- * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_chain is the chain to be operated upon.
*
- * @return This method returns the first node of the chain.
+ * @return This method returns the first node of the chain.
*/
RTEMS_INLINE_ROUTINE const Chain_Node *_Chain_Immutable_first(
const Chain_Control *the_chain
@@ -200,14 +212,15 @@ RTEMS_INLINE_ROUTINE const Chain_Node *_Chain_Immutable_first(
return _Chain_Immutable_head( the_chain )->next;
}
-/** @brief Return pointer to Chain's Last node
+/**
+ * @brief Return pointer to chain's last node.
*
- * This function returns a pointer to the last node on the chain just before
- * the tail.
+ * This function returns a pointer to the last node on the chain just before
+ * the tail.
*
- * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_chain is the chain to be operated upon.
*
- * @return This method returns the last node of the chain.
+ * @return This method returns the last node of the chain.
*/
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Last(
Chain_Control *the_chain
@@ -216,14 +229,15 @@ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Last(
return _Chain_Tail( the_chain )->previous;
}
-/** @brief Return pointer to immutable Chain's Last node
+/**
+ * @brief Return pointer to immutable chain's last node.
*
- * This function returns a pointer to the last node on the chain just before
- * the tail.
+ * This function returns a pointer to the last node on the chain just before
+ * the tail.
*
- * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_chain is the chain to be operated upon.
*
- * @return This method returns the last node of the chain.
+ * @return This method returns the last node of the chain.
*/
RTEMS_INLINE_ROUTINE const Chain_Node *_Chain_Immutable_last(
const Chain_Control *the_chain
@@ -232,13 +246,14 @@ RTEMS_INLINE_ROUTINE const Chain_Node *_Chain_Immutable_last(
return _Chain_Immutable_tail( the_chain )->previous;
}
-/** @brief Return pointer the next node from this node
+/**
+ * @brief Return pointer the next node from this node.
*
- * This function returns a pointer to the next node after this node.
+ * This function returns a pointer to the next node after this node.
*
- * @param[in] the_node is the node to be operated upon.
+ * @param[in] the_node is the node to be operated upon.
*
- * @return This method returns the next node on the chain.
+ * @return This method returns the next node on the chain.
*/
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Next(
Chain_Node *the_node
@@ -247,13 +262,14 @@ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Next(
return the_node->next;
}
-/** @brief Return pointer the immutable next node from this node
+/**
+ * @brief Return pointer the immutable next node from this node.
*
- * This function returns a pointer to the next node after this node.
+ * This function returns a pointer to the next node after this node.
*
- * @param[in] the_node is the node to be operated upon.
+ * @param[in] the_node is the node to be operated upon.
*
- * @return This method returns the next node on the chain.
+ * @return This method returns the next node on the chain.
*/
RTEMS_INLINE_ROUTINE const Chain_Node *_Chain_Immutable_next(
const Chain_Node *the_node
@@ -262,13 +278,14 @@ RTEMS_INLINE_ROUTINE const Chain_Node *_Chain_Immutable_next(
return the_node->next;
}
-/** @brief Return pointer the previous node from this node
+/**
+ * @brief Return pointer the previous node from this node.
*
- * This function returns a pointer to the previous node on this chain.
+ * This function returns a pointer to the previous node on this chain.
*
- * @param[in] the_node is the node to be operated upon.
+ * @param[in] the_node is the node to be operated upon.
*
- * @return This method returns the previous node on the chain.
+ * @return This method returns the previous node on the chain.
*/
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Previous(
Chain_Node *the_node
@@ -277,13 +294,14 @@ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Previous(
return the_node->previous;
}
-/** @brief Return pointer the immutable previous node from this node
+/**
+ * @brief Return pointer the immutable previous node from this node.
*
- * This function returns a pointer to the previous node on this chain.
+ * This function returns a pointer to the previous node on this chain.
*
- * @param[in] the_node is the node to be operated upon.
+ * @param[in] the_node is the node to be operated upon.
*
- * @return This method returns the previous node on the chain.
+ * @return This method returns the previous node on the chain.
*/
RTEMS_INLINE_ROUTINE const Chain_Node *_Chain_Immutable_previous(
const Chain_Node *the_node
@@ -292,15 +310,16 @@ RTEMS_INLINE_ROUTINE const Chain_Node *_Chain_Immutable_previous(
return the_node->previous;
}
-/** @brief Is the Chain Empty
+/**
+ * @brief Is the chain empty.
*
- * This function returns true if there a no nodes on @a the_chain and
- * false otherwise.
+ * This function returns true if there a no nodes on @a the_chain and
+ * false otherwise.
*
- * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_chain is the chain to be operated upon.
*
- * @return This function returns true if there a no nodes on @a the_chain and
- * false otherwise.
+ * @retval true There are no nodes on @a the_chain.
+ * @retval false There are nodes on @a the_chain.
*/
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(
const Chain_Control *the_chain
@@ -310,16 +329,17 @@ RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(
== _Chain_Immutable_tail( the_chain );
}
-/** @brief Is this the First Node on the Chain
+/**
+ * @brief Is this the first node on the chain.
*
- * This function returns true if the_node is the first node on a chain and
- * false otherwise.
+ * This function returns true if the_node is the first node on a chain and
+ * false otherwise.
*
- * @param[in] the_node is the node the caller wants to know if it is
- * the first node on a chain.
+ * @param[in] the_node is the node the caller wants to know if it is
+ * the first node on a chain.
*
- * @return This function returns true if @a the_node is the first node on
- * a chain and false otherwise.
+ * @retval true @a the_node is the first node on a chain.
+ * @retval false @a the_node is not the first node on a chain.
*/
RTEMS_INLINE_ROUTINE bool _Chain_Is_first(
const Chain_Node *the_node
@@ -328,15 +348,16 @@ RTEMS_INLINE_ROUTINE bool _Chain_Is_first(
return (the_node->previous->previous == NULL);
}
-/** @brief Is this the Last Node on the Chain
+/**
+ * @brief Is this the last node on the chain.
*
- * This function returns true if @a the_node is the last node on a chain and
- * false otherwise.
+ * This function returns true if @a the_node is the last node on a chain and
+ * false otherwise.
*
- * @param[in] the_node is the node to check as the last node.
+ * @param[in] the_node is the node to check as the last node.
*
- * @return This function returns true if @a the_node is the last node on
- * a chain and false otherwise.
+ * @retval true @a the_node is the last node on a chain.
+ * @retval false @a the_node is not the last node on a chain.
*/
RTEMS_INLINE_ROUTINE bool _Chain_Is_last(
const Chain_Node *the_node
@@ -345,15 +366,19 @@ RTEMS_INLINE_ROUTINE bool _Chain_Is_last(
return (the_node->next->next == NULL);
}
-/** @brief Does this Chain have only One Node
+/**
+ * @brief Does this chain have only one node.
+ *
+ * This function returns true if there is only one node on @a the_chain and
+ * false otherwise.
*
- * This function returns true if there is only one node on @a the_chain and
- * false otherwise.
+ * @param[in] the_chain is the chain to be operated upon.
*
- * @param[in] the_chain is the chain to be operated upon.
+ * @return This function returns true if there is only one node on
+ * @a the_chain and false otherwise.
*
- * @return This function returns true if there is only one node on
- * @a the_chain and false otherwise.
+ * @retval true There is only one node on @a the_chain.
+ * @retval false There is more than one node on @a the_chain.
*/
RTEMS_INLINE_ROUTINE bool _Chain_Has_only_one_node(
const Chain_Control *the_chain
@@ -363,16 +388,17 @@ RTEMS_INLINE_ROUTINE bool _Chain_Has_only_one_node(
== _Chain_Immutable_last( the_chain );
}
-/** @brief Is this Node the Chain Head
+/**
+ * @brief Is this node the chain head.
*
- * This function returns true if @a the_node is the head of the_chain and
- * false otherwise.
+ * This function returns true if @a the_node is the head of @a the_chain and
+ * false otherwise.
*
- * @param[in] the_chain is the chain to be operated upon.
- * @param[in] the_node is the node to check for being the Chain Head.
+ * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_node is the node to check for being the Chain Head.
*
- * @return This function returns true if @a the_node is the head of
- * @a the_chain and false otherwise.
+ * @retval true @a the_node is the head of @a the_chain.
+ * @retval false @a the_node is not the head of @a the_chain.
*/
RTEMS_INLINE_ROUTINE bool _Chain_Is_head(
const Chain_Control *the_chain,
@@ -382,13 +408,17 @@ RTEMS_INLINE_ROUTINE bool _Chain_Is_head(
return (the_node == _Chain_Immutable_head( the_chain ));
}
-/** @brief Is this Node the Chail Tail
+/**
+ * @brief Is this node the chail tail.
*
- * This function returns true if the_node is the tail of the_chain and
- * false otherwise.
+ * This function returns true if @a the_node is the tail of @a the_chain and
+ * false otherwise.
*
- * @param[in] the_chain is the chain to be operated upon.
- * @param[in] the_node is the node to check for being the Chain Tail.
+ * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_node is the node to check for being the Chain Tail.
+ *
+ * @retval true @a the_node is the tail of @a the_chain.
+ * @retval false @a the_node is not the tail of @a the_chain.
*/
RTEMS_INLINE_ROUTINE bool _Chain_Is_tail(
const Chain_Control *the_chain,
@@ -398,11 +428,12 @@ RTEMS_INLINE_ROUTINE bool _Chain_Is_tail(
return (the_node == _Chain_Immutable_tail( the_chain ));
}
-/** @brief Initialize this Chain as Empty
+/**
+ * @brief Initialize this chain as empty.
*
- * This routine initializes the specified chain to contain zero nodes.
+ * This routine initializes the specified chain to contain zero nodes.
*
- * @param[in] the_chain is the chain to be initialized.
+ * @param[in] the_chain is the chain to be initialized.
*/
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(
Chain_Control *the_chain
@@ -416,13 +447,14 @@ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(
tail->previous = head;
}
-/** @brief Extract this Node (unprotected)
+/**
+ * @brief Extract this node (unprotected).
*
- * This routine extracts the_node from the chain on which it resides.
- * It does NOT disable interrupts to ensure the atomicity of the
- * extract operation.
+ * This routine extracts the_node from the chain on which it resides.
+ * It does NOT disable interrupts to ensure the atomicity of the
+ * extract operation.
*
- * @param[in] the_node is the node to be extracted.
+ * @param[in] the_node is the node to be extracted.
*/
RTEMS_INLINE_ROUTINE void _Chain_Extract_unprotected(
Chain_Node *the_node
@@ -437,19 +469,20 @@ RTEMS_INLINE_ROUTINE void _Chain_Extract_unprotected(
previous->next = next;
}
-/** @brief Get the First Node (unprotected)
+/**
+ * @brief Get the first node (unprotected).
*
- * This function removes the first node from the_chain and returns
- * a pointer to that node. It does NOT disable interrupts to ensure
- * the atomicity of the get operation.
+ * This function removes the first node from the_chain and returns
+ * a pointer to that node. It does NOT disable interrupts to ensure
+ * the atomicity of the get operation.
*
- * @param[in] the_chain is the chain to attempt to get the first node from.
+ * @param[in] the_chain is the chain to attempt to get the first node from.
*
- * @return This method returns the first node on the chain even if it is
- * the Chain Tail.
+ * @return This method returns the first node on the chain even if it is
+ * the Chain Tail.
*
- * @note This routine assumes that there is at least one node on the chain
- * and always returns a node even if it is the Chain Tail.
+ * @note This routine assumes that there is at least one node on the chain
+ * and always returns a node even if it is the Chain Tail.
*/
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_first_unprotected(
Chain_Control *the_chain
@@ -465,18 +498,19 @@ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_first_unprotected(
return old_first;
}
-/** @brief Get the First Node (unprotected)
+/**
+ * @brief Get the first node (unprotected).
*
- * This function removes the first node from the_chain and returns
- * a pointer to that node. If the_chain is empty, then NULL is returned.
+ * This function removes the first node from the_chain and returns
+ * a pointer to that node. If the_chain is empty, then NULL is returned.
*
- * @param[in] the_chain is the chain to attempt to get the first node from.
+ * @param[in] the_chain is the chain to attempt to get the first node from.
*
- * @return This method returns the first node on the chain or NULL if the
- * chain is empty.
+ * @return This method returns the first node on the chain or NULL if the
+ * chain is empty.
*
- * @note It does NOT disable interrupts to ensure the atomicity of the
- * get operation.
+ * @note It does NOT disable interrupts to ensure the atomicity of the
+ * get operation.
*/
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected(
Chain_Control *the_chain
@@ -488,17 +522,18 @@ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected(
return NULL;
}
-/** @brief Insert a Node (unprotected)
+/**
+ * @brief Insert a node (unprotected).
*
- * This routine inserts the_node on a chain immediately following
- * after_node.
+ * This routine inserts the_node on a chain immediately following
+ * after_node.
*
- * @param[in] after_node is the node which will precede @a the_node on the
- * chain.
- * @param[in] the_node is the node to be inserted.
+ * @param[in] after_node is the node which will precede @a the_node on the
+ * chain.
+ * @param[in] the_node is the node to be inserted.
*
- * @note It does NOT disable interrupts to ensure the atomicity
- * of the extract operation.
+ * @note It does NOT disable interrupts to ensure the atomicity
+ * of the extract operation.
*/
RTEMS_INLINE_ROUTINE void _Chain_Insert_unprotected(
Chain_Node *after_node,
@@ -514,15 +549,16 @@ RTEMS_INLINE_ROUTINE void _Chain_Insert_unprotected(
before_node->previous = the_node;
}
-/** @brief Append a Node (unprotected)
+/**
+ * @brief Append a node (unprotected).
*
- * This routine appends the_node onto the end of the_chain.
+ * This routine appends the_node onto the end of the_chain.
*
- * @param[in] the_chain is the chain to be operated upon.
- * @param[in] the_node is the node to be appended.
+ * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_node is the node to be appended.
*
- * @note It does NOT disable interrupts to ensure the atomicity of the
- * append operation.
+ * @note It does NOT disable interrupts to ensure the atomicity of the
+ * append operation.
*/
RTEMS_INLINE_ROUTINE void _Chain_Append_unprotected(
Chain_Control *the_chain,
@@ -539,13 +575,13 @@ RTEMS_INLINE_ROUTINE void _Chain_Append_unprotected(
}
/**
- * @brief Append a node on the end of a chain if the node is in the off chain
- * state (unprotected).
+ * @brief Append a node on the end of a chain if the node is in the off chain
+ * state (unprotected).
*
- * @note It does NOT disable interrupts to ensure the atomicity of the
- * append operation.
+ * @note It does NOT disable interrupts to ensure the atomicity of the
+ * append operation.
*
- * @see _Chain_Append_unprotected() and _Chain_Is_node_off_chain().
+ * @see _Chain_Append_unprotected() and _Chain_Is_node_off_chain().
*/
RTEMS_INLINE_ROUTINE void _Chain_Append_if_is_off_chain_unprotected(
Chain_Control *the_chain,
@@ -557,15 +593,16 @@ RTEMS_INLINE_ROUTINE void _Chain_Append_if_is_off_chain_unprotected(
}
}
-/** @brief Prepend a Node (unprotected)
+/**
+ * @brief Prepend a node (unprotected).
*
- * This routine prepends the_node onto the front of the_chain.
+ * This routine prepends the_node onto the front of the_chain.
*
- * @param[in] the_chain is the chain to be operated upon.
- * @param[in] the_node is the node to be prepended.
+ * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_node is the node to be prepended.
*
- * @note It does NOT disable interrupts to ensure the atomicity of the
- * prepend operation.
+ * @note It does NOT disable interrupts to ensure the atomicity of the
+ * prepend operation.
*/
RTEMS_INLINE_ROUTINE void _Chain_Prepend_unprotected(
Chain_Control *the_chain,
@@ -575,15 +612,16 @@ RTEMS_INLINE_ROUTINE void _Chain_Prepend_unprotected(
_Chain_Insert_unprotected(_Chain_Head(the_chain), the_node);
}
-/** @brief Prepend a Node (protected)
+/**
+ * @brief Prepend a node (protected).
*
- * This routine prepends the_node onto the front of the_chain.
+ * This routine prepends the_node onto the front of the_chain.
*
- * @param[in] the_chain is the chain to be operated upon.
- * @param[in] the_node is the node to be prepended.
+ * @param[in] the_chain is the chain to be operated upon.
+ * @param[in] the_node is the node to be prepended.
*
- * @note It disables interrupts to ensure the atomicity of the
- * prepend operation.
+ * @note It disables interrupts to ensure the atomicity of the
+ * prepend operation.
*/
RTEMS_INLINE_ROUTINE void _Chain_Prepend(
Chain_Control *the_chain,
@@ -688,7 +726,7 @@ RTEMS_INLINE_ROUTINE bool _Chain_Get_with_empty_check_unprotected(
return is_empty_now;
}
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/corebarrier.inl b/cpukit/score/inline/rtems/score/corebarrier.inl
index 1af05151db..72ad670a70 100644
--- a/cpukit/score/inline/rtems/score/corebarrier.inl
+++ b/cpukit/score/inline/rtems/score/corebarrier.inl
@@ -1,8 +1,10 @@
-/**
- * @file rtems/score/corebarrier.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines Associated with the SuperCore Barrier
*
- * This include file contains all of the inlined routines associated
- * with the SuperCore barrier.
+ * This include file contains all of the inlined routines associated
+ * with the SuperCore barrier.
*/
/*
@@ -22,19 +24,20 @@
#define _RTEMS_SCORE_COREBARRIER_INL
/**
- * @addtogroup ScoreBarrier
- * @{
+ * @addtogroup ScoreBarrier
*/
+/**@{**/
#include <rtems/score/thread.h>
#include <rtems/score/threadq.h>
/**
- * This function returns true if the automatic release attribute is
- * enabled in the @a attribute_set and false otherwise.
+ * This function returns true if the automatic release attribute is
+ * enabled in the @a attribute_set and false otherwise.
+ *
+ * @param[in] the_attribute is the attribute set to test
*
- * @param[in] the_attribute is the attribute set to test
- * @return true if the priority attribute is enabled
+ * @return true if the priority attribute is enabled
*/
RTEMS_INLINE_ROUTINE bool _CORE_barrier_Is_automatic(
CORE_barrier_Attributes *the_attribute
@@ -45,11 +48,11 @@ RTEMS_INLINE_ROUTINE bool _CORE_barrier_Is_automatic(
}
/**
- * This routine returns the number of threads currently waiting at the barrier.
+ * This routine returns the number of threads currently waiting at the barrier.
*
- * @param[in] the_barrier is the barrier to obtain the number of blocked
- * threads for
- * @return the current count of this barrier
+ * @param[in] the_barrier is the barrier to obtain the number of blocked
+ * threads for
+ * @return the current count of this barrier
*/
RTEMS_INLINE_ROUTINE uint32_t _CORE_barrier_Get_number_of_waiting_threads(
CORE_barrier_Control *the_barrier
@@ -58,7 +61,7 @@ RTEMS_INLINE_ROUTINE uint32_t _CORE_barrier_Get_number_of_waiting_threads(
return the_barrier->number_of_waiting_threads;
}
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/coremsg.inl b/cpukit/score/inline/rtems/score/coremsg.inl
index 0191c3cd1e..986fc3f6a4 100644
--- a/cpukit/score/inline/rtems/score/coremsg.inl
+++ b/cpukit/score/inline/rtems/score/coremsg.inl
@@ -1,8 +1,10 @@
-/**
- * @file rtems/score/coremsg.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines in the Core Message Handler
*
- * This include file contains the static inline implementation of all
- * inlined routines in the Core Message Handler.
+ * This include file contains the static inline implementation of all
+ * inlined routines in the Core Message Handler.
*/
/*
@@ -22,14 +24,14 @@
#define _RTEMS_SCORE_COREMSG_INL
/**
- * @addtogroup ScoreMessageQueue
- * @{
+ * @addtogroup ScoreMessageQueue
*/
+/**@{**/
#include <string.h> /* needed for memcpy */
-
+
/**
- * This routine sends a message to the end of the specified message queue.
+ * This routine sends a message to the end of the specified message queue.
*/
RTEMS_INLINE_ROUTINE CORE_message_queue_Status _CORE_message_queue_Send(
CORE_message_queue_Control *the_message_queue,
@@ -52,9 +54,9 @@ RTEMS_INLINE_ROUTINE CORE_message_queue_Status _CORE_message_queue_Send(
timeout /* timeout interval */
);
}
-
+
/**
- * This routine sends a message to the front of the specified message queue.
+ * This routine sends a message to the front of the specified message queue.
*/
RTEMS_INLINE_ROUTINE CORE_message_queue_Status _CORE_message_queue_Urgent(
CORE_message_queue_Control *the_message_queue,
@@ -79,8 +81,8 @@ RTEMS_INLINE_ROUTINE CORE_message_queue_Status _CORE_message_queue_Urgent(
}
/**
- * This routine copies the contents of the source message buffer
- * to the destination message buffer.
+ * This routine copies the contents of the source message buffer
+ * to the destination message buffer.
*/
RTEMS_INLINE_ROUTINE void _CORE_message_queue_Copy_buffer (
const void *source,
@@ -92,8 +94,8 @@ RTEMS_INLINE_ROUTINE void _CORE_message_queue_Copy_buffer (
}
/**
- * This function allocates a message buffer from the inactive
- * message buffer chain.
+ * This function allocates a message buffer from the inactive
+ * message buffer chain.
*/
RTEMS_INLINE_ROUTINE CORE_message_queue_Buffer_control *
_CORE_message_queue_Allocate_message_buffer (
@@ -105,8 +107,8 @@ _CORE_message_queue_Allocate_message_buffer (
}
/**
- * This routine frees a message buffer to the inactive
- * message buffer chain.
+ * This routine frees a message buffer to the inactive
+ * message buffer chain.
*/
RTEMS_INLINE_ROUTINE void _CORE_message_queue_Free_message_buffer (
CORE_message_queue_Control *the_message_queue,
@@ -117,10 +119,10 @@ RTEMS_INLINE_ROUTINE void _CORE_message_queue_Free_message_buffer (
}
/**
- * This function returns the priority of @a the_message.
+ * This function returns the priority of @a the_message.
*
- * NOTE: It encapsulates the optional behavior that message priority is
- * disabled if no API requires it.
+ * @note It encapsulates the optional behavior that message priority is
+ * disabled if no API requires it.
*/
RTEMS_INLINE_ROUTINE int _CORE_message_queue_Get_message_priority (
CORE_message_queue_Buffer_control *the_message
@@ -134,14 +136,14 @@ RTEMS_INLINE_ROUTINE int _CORE_message_queue_Get_message_priority (
}
/**
- * This function sets the priority of @a the_message.
+ * This function sets the priority of @a the_message.
*
- * NOTE: It encapsulates the optional behavior that message priority is
- * disabled if no API requires it.
+ * @note It encapsulates the optional behavior that message priority is
+ * disabled if no API requires it.
*/
RTEMS_INLINE_ROUTINE void _CORE_message_queue_Set_message_priority (
CORE_message_queue_Buffer_control *the_message,
- int priority
+ int priority
)
{
#if defined(RTEMS_SCORE_COREMSG_ENABLE_MESSAGE_PRIORITY)
@@ -150,8 +152,8 @@ RTEMS_INLINE_ROUTINE void _CORE_message_queue_Set_message_priority (
}
/**
- * This function removes the first message from the_message_queue
- * and returns a pointer to it.
+ * This function removes the first message from the_message_queue
+ * and returns a pointer to it.
*/
RTEMS_INLINE_ROUTINE
CORE_message_queue_Buffer_control *_CORE_message_queue_Get_pending_message (
@@ -163,8 +165,8 @@ RTEMS_INLINE_ROUTINE
}
/**
- * This function returns true if the priority attribute is
- * enabled in the attribute_set and false otherwise.
+ * This function returns true if the priority attribute is
+ * enabled in the attribute_set and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool _CORE_message_queue_Is_priority(
CORE_message_queue_Attributes *the_attribute
@@ -175,8 +177,8 @@ RTEMS_INLINE_ROUTINE bool _CORE_message_queue_Is_priority(
}
/**
- * This routine places the_message at the rear of the outstanding
- * messages on the_message_queue.
+ * This routine places the_message at the rear of the outstanding
+ * messages on the_message_queue.
*/
RTEMS_INLINE_ROUTINE void _CORE_message_queue_Append_unprotected (
CORE_message_queue_Control *the_message_queue,
@@ -190,8 +192,8 @@ RTEMS_INLINE_ROUTINE void _CORE_message_queue_Append_unprotected (
}
/**
- * This routine places the_message at the front of the outstanding
- * messages on the_message_queue.
+ * This routine places the_message at the front of the outstanding
+ * messages on the_message_queue.
*/
RTEMS_INLINE_ROUTINE void _CORE_message_queue_Prepend_unprotected (
CORE_message_queue_Control *the_message_queue,
@@ -205,7 +207,7 @@ RTEMS_INLINE_ROUTINE void _CORE_message_queue_Prepend_unprotected (
}
/**
- * This function returns true if the_message_queue is true and false otherwise.
+ * This function returns true if the_message_queue is true and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool _CORE_message_queue_Is_null (
CORE_message_queue_Control *the_message_queue
@@ -216,8 +218,8 @@ RTEMS_INLINE_ROUTINE bool _CORE_message_queue_Is_null (
#if defined(RTEMS_SCORE_COREMSG_ENABLE_NOTIFICATION)
/**
- * This function returns true if notification is enabled on this message
- * queue and false otherwise.
+ * This function returns true if notification is enabled on this message
+ * queue and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool _CORE_message_queue_Is_notify_enabled (
CORE_message_queue_Control *the_message_queue
@@ -228,8 +230,8 @@ RTEMS_INLINE_ROUTINE bool _CORE_message_queue_Is_null (
#endif
/**
- * This routine initializes the notification information for
- * @a the_message_queue.
+ * This routine initializes the notification information for
+ * @a the_message_queue.
*/
#if defined(RTEMS_SCORE_COREMSG_ENABLE_NOTIFICATION)
RTEMS_INLINE_ROUTINE void _CORE_message_queue_Set_notify (
@@ -247,7 +249,7 @@ RTEMS_INLINE_ROUTINE bool _CORE_message_queue_Is_null (
the_message_queue, the_handler, the_argument )
#endif
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/coremutex.inl b/cpukit/score/inline/rtems/score/coremutex.inl
index 90b939345b..f41a4de0b8 100644
--- a/cpukit/score/inline/rtems/score/coremutex.inl
+++ b/cpukit/score/inline/rtems/score/coremutex.inl
@@ -1,8 +1,10 @@
-/**
- * @file rtems/score/coremutex.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines Associated with the CORE Mutexes
*
- * This include file contains all of the inlined routines associated
- * with the CORE mutexes.
+ * This include file contains all of the inlined routines associated
+ * with the CORE mutexes.
*/
/*
@@ -22,19 +24,20 @@
#define _RTEMS_SCORE_COREMUTEX_INL
/**
- * @addtogroup ScoreMutex
- * @{
+ * @addtogroup ScoreMutex
*/
+/**@{**/
/**
- * @brief Is Mutex Locked
+ * @brief Is mutex locked.
*
- * This routine returns true if the mutex specified is locked and false
- * otherwise.
+ * This routine returns true if the mutex specified is locked and false
+ * otherwise.
*
- * @param[in] the_mutex is the mutex to check
+ * @param[in] the_mutex is the mutex to check.
*
- * @return This method returns true if the mutex is locked.
+ * @retval true The mutex is locked.
+ * @retval false The mutex is not locked.
*/
RTEMS_INLINE_ROUTINE bool _CORE_mutex_Is_locked(
CORE_mutex_Control *the_mutex
@@ -42,16 +45,17 @@ RTEMS_INLINE_ROUTINE bool _CORE_mutex_Is_locked(
{
return the_mutex->lock == CORE_MUTEX_LOCKED;
}
-
+
/**
- * @brief Does Core Mutex Use FIFO Blocking
+ * @brief Does core mutex use FIFO blocking.
*
- * This routine returns true if the mutex's wait discipline is FIFO and false
- * otherwise.
+ * This routine returns true if the mutex's wait discipline is FIFO and false
+ * otherwise.
*
- * @param[in] the_attribute is the attribute set of the mutex
+ * @param[in] the_attribute is the attribute set of the mutex.
*
- * @return This method returns true if the mutex is using FIFO blocking order.
+ * @retval true The mutex is using FIFO blocking order.
+ * @retval false The mutex is not using FIFO blocking order.
*/
RTEMS_INLINE_ROUTINE bool _CORE_mutex_Is_fifo(
CORE_mutex_Attributes *the_attribute
@@ -59,17 +63,18 @@ RTEMS_INLINE_ROUTINE bool _CORE_mutex_Is_fifo(
{
return the_attribute->discipline == CORE_MUTEX_DISCIPLINES_FIFO;
}
-
+
/**
- * @brief Doex Core Mutex Use Priority Blocking
+ * @brief Doex core mutex use priority blocking.
+ *
+ * This routine returns true if the mutex's wait discipline is PRIORITY and
+ * false otherwise.
*
- * This routine returns true if the mutex's wait discipline is PRIORITY and
- * false otherwise.
+ * @param[in] the_attribute is the attribute set of the mutex.
*
- * @param[in] the_attribute is the attribute set of the mutex
+ * @retval true The mutex is using priority blocking order.
+ * @retval false The mutex is not using priority blocking order.
*
- * @return This method returns true if the mutex is using
- * priority blocking order.
*/
RTEMS_INLINE_ROUTINE bool _CORE_mutex_Is_priority(
CORE_mutex_Attributes *the_attribute
@@ -77,17 +82,17 @@ RTEMS_INLINE_ROUTINE bool _CORE_mutex_Is_priority(
{
return the_attribute->discipline == CORE_MUTEX_DISCIPLINES_PRIORITY;
}
-
+
/**
- * @brief Does Mutex Use Priority Inheritance
+ * @brief Does mutex use priority inheritance.
*
- * This routine returns true if the mutex's wait discipline is
- * INHERIT_PRIORITY and false otherwise.
+ * This routine returns true if the mutex's wait discipline is
+ * INHERIT_PRIORITY and false otherwise.
*
- * @param[in] the_attribute is the attribute set of the mutex
+ * @param[in] the_attribute is the attribute set of the mutex.
*
- * @return This method returns true if the mutex is using priority
- * inheritance.
+ * @retval true The mutex is using priority inheritance.
+ * @retval false The mutex is not using priority inheritance.
*/
RTEMS_INLINE_ROUTINE bool _CORE_mutex_Is_inherit_priority(
CORE_mutex_Attributes *the_attribute
@@ -95,16 +100,17 @@ RTEMS_INLINE_ROUTINE bool _CORE_mutex_Is_inherit_priority(
{
return the_attribute->discipline == CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT;
}
-
+
/**
- * @brief Does Mutex Use Priority Ceiling
+ * @brief Does mutex use priority ceiling.
*
- * This routine returns true if the mutex's wait discipline is
- * PRIORITY_CEILING and false otherwise.
+ * This routine returns true if the mutex's wait discipline is
+ * PRIORITY_CEILING and false otherwise.
*
- * @param[in] the_attribute is the attribute set of the mutex
- * @return This method returns true if the mutex is using priority
- * ceiling.
+ * @param[in] the_attribute is the attribute set of the mutex.
+ *
+ * @retval true The mutex is using priority ceiling.
+ * @retval false The mutex is not using priority ceiling.
*/
RTEMS_INLINE_ROUTINE bool _CORE_mutex_Is_priority_ceiling(
CORE_mutex_Attributes *the_attribute
@@ -112,7 +118,7 @@ RTEMS_INLINE_ROUTINE bool _CORE_mutex_Is_priority_ceiling(
{
return the_attribute->discipline == CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING;
}
-
+
/*
* Seize Mutex with Quick Success Path
*
@@ -221,7 +227,7 @@ RTEMS_INLINE_ROUTINE int _CORE_mutex_Seize_interrupt_trylock_body(
return 1;
}
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/corerwlock.inl b/cpukit/score/inline/rtems/score/corerwlock.inl
index 8736c0f331..d1be4b2589 100644
--- a/cpukit/score/inline/rtems/score/corerwlock.inl
+++ b/cpukit/score/inline/rtems/score/corerwlock.inl
@@ -1,8 +1,10 @@
-/**
- * @file rtems/score/corerwlock.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines Associated with the SuperCore RWLock
*
- * This include file contains all of the inlined routines associated
- * with the SuperCore RWLock.
+ * This include file contains all of the inlined routines associated
+ * with the SuperCore RWLock.
*/
/*
@@ -22,18 +24,17 @@
#define _RTEMS_SCORE_CORERWLOCK_INL
/**
- * @addtogroup ScoreRWLock
- * @{
+ * @addtogroup ScoreRWLock
*/
+/**@{**/
#include <rtems/score/thread.h>
#include <rtems/score/threadq.h>
/**
+ * This method is used to initialize core rwlock attributes.
*
- * This method is used to initialize core rwlock attributes.
- *
- * @param[in] the_attributes pointer to the attributes to initialize.
+ * @param[in] the_attributes pointer to the attributes to initialize.
*/
RTEMS_INLINE_ROUTINE void _CORE_RWLock_Initialize_attributes(
CORE_RWLock_Attributes *the_attributes
@@ -43,7 +44,7 @@ RTEMS_INLINE_ROUTINE void _CORE_RWLock_Initialize_attributes(
}
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/coresem.inl b/cpukit/score/inline/rtems/score/coresem.inl
index f504798f31..69a7b2627d 100644
--- a/cpukit/score/inline/rtems/score/coresem.inl
+++ b/cpukit/score/inline/rtems/score/coresem.inl
@@ -1,8 +1,10 @@
-/**
- * @file rtems/score/coresem.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines Associated with the SuperCore Semaphore
*
- * This include file contains all of the inlined routines associated
- * with the SuperCore semaphore.
+ * This include file contains all of the inlined routines associated
+ * with the SuperCore semaphore.
*/
/*
@@ -22,19 +24,20 @@
#define _RTEMS_SCORE_CORESEM_INL
/**
- * @addtogroup ScoreSemaphore
- * @{
+ * @addtogroup ScoreSemaphore
*/
+/**@{**/
#include <rtems/score/thread.h>
#include <rtems/score/threadq.h>
/**
- * This function returns true if the priority attribute is
- * enabled in the @a attribute_set and false otherwise.
+ * This function returns true if the priority attribute is
+ * enabled in the @a attribute_set and false otherwise.
*
- * @param[in] the_attribute is the attribute set to test
- * @return true if the priority attribute is enabled
+ * @param[in] the_attribute is the attribute set to test
+ *
+ * @return true if the priority attribute is enabled
*/
RTEMS_INLINE_ROUTINE bool _CORE_semaphore_Is_priority(
CORE_semaphore_Attributes *the_attribute
@@ -44,10 +47,11 @@ RTEMS_INLINE_ROUTINE bool _CORE_semaphore_Is_priority(
}
/**
- * This routine returns the current count associated with the semaphore.
+ * This routine returns the current count associated with the semaphore.
+ *
+ * @param[in] the_semaphore is the semaphore to obtain the count of
*
- * @param[in] the_semaphore is the semaphore to obtain the count of
- * @return the current count of this semaphore
+ * @return the current count of this semaphore
*/
RTEMS_INLINE_ROUTINE uint32_t _CORE_semaphore_Get_count(
CORE_semaphore_Control *the_semaphore
@@ -57,19 +61,19 @@ RTEMS_INLINE_ROUTINE uint32_t _CORE_semaphore_Get_count(
}
/**
- * This routine attempts to receive a unit from the_semaphore.
- * If a unit is available or if the wait flag is false, then the routine
- * returns. Otherwise, the calling task is blocked until a unit becomes
- * available.
+ * This routine attempts to receive a unit from the_semaphore.
+ * If a unit is available or if the wait flag is false, then the routine
+ * returns. Otherwise, the calling task is blocked until a unit becomes
+ * available.
*
- * @param[in] the_semaphore is the semaphore to obtain
- * @param[in] id is the Id of the owning API level Semaphore object
- * @param[in] wait is true if the thread is willing to wait
- * @param[in] timeout is the maximum number of ticks to block
- * @param[in] level_p is a temporary variable used to contain the ISR
- * disable level cookie
+ * @param[in] the_semaphore is the semaphore to obtain
+ * @param[in] id is the Id of the owning API level Semaphore object
+ * @param[in] wait is true if the thread is willing to wait
+ * @param[in] timeout is the maximum number of ticks to block
+ * @param[in] level_p is a temporary variable used to contain the ISR
+ * disable level cookie
*
- * @note There is currently no MACRO version of this routine.
+ * @note There is currently no MACRO version of this routine.
*/
RTEMS_INLINE_ROUTINE void _CORE_semaphore_Seize_isr_disable(
CORE_semaphore_Control *the_semaphore,
@@ -77,12 +81,12 @@ RTEMS_INLINE_ROUTINE void _CORE_semaphore_Seize_isr_disable(
bool wait,
Watchdog_Interval timeout,
ISR_Level *level_p
-)
-{
+)
+{
Thread_Control *executing;
/* disabled when you get here */
-
+
executing = _Thread_Executing;
executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL;
if ( the_semaphore->count != 0 ) {
@@ -107,7 +111,7 @@ RTEMS_INLINE_ROUTINE void _CORE_semaphore_Seize_isr_disable(
_Thread_Enable_dispatch();
}
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/corespinlock.inl b/cpukit/score/inline/rtems/score/corespinlock.inl
index f45f320d85..76f5c4446a 100644
--- a/cpukit/score/inline/rtems/score/corespinlock.inl
+++ b/cpukit/score/inline/rtems/score/corespinlock.inl
@@ -1,8 +1,10 @@
-/**
- * @file rtems/score/corespinlock.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines Associated with the SuperCore Spinlock
*
- * This include file contains all of the inlined routines associated
- * with the SuperCore spinlock.
+ * This include file contains all of the inlined routines associated
+ * with the SuperCore spinlock.
*/
/*
@@ -22,15 +24,14 @@
#define _RTEMS_SCORE_CORESPINLOCK_INL
/**
- * @addtogroup ScoreSpinlock
- * @{
+ * @addtogroup ScoreSpinlock
*/
+/**@{**/
/**
+ * This method is used to initialize core spinlock attributes.
*
- * This method is used to initialize core spinlock attributes.
- *
- * @param[in] the_attributes pointer to the attributes to initialize.
+ * @param[in] the_attributes pointer to the attributes to initialize.
*/
RTEMS_INLINE_ROUTINE void _CORE_spinlock_Initialize_attributes(
CORE_spinlock_Attributes *the_attributes
@@ -40,13 +41,12 @@ RTEMS_INLINE_ROUTINE void _CORE_spinlock_Initialize_attributes(
}
/**
+ * This method is used to determine if the spinlock is available or not.
*
- * This method is used to determine if the spinlock is available or not.
- *
- * @param[in] the_spinlock will be checked
+ * @param[in] the_spinlock will be checked
*
- * @return This method will return true if the spinlock is busy
- * and false otherwise.
+ * @return This method will return true if the spinlock is busy
+ * and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool _CORE_spinlock_Is_busy(
CORE_spinlock_Control *the_spinlock
@@ -55,7 +55,7 @@ RTEMS_INLINE_ROUTINE bool _CORE_spinlock_Is_busy(
return (the_spinlock->users != 0);
}
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/heap.inl b/cpukit/score/inline/rtems/score/heap.inl
index 59bdd7b142..4a346bdf21 100644
--- a/cpukit/score/inline/rtems/score/heap.inl
+++ b/cpukit/score/inline/rtems/score/heap.inl
@@ -1,9 +1,7 @@
/**
* @file
*
- * @ingroup ScoreHeap
- *
- * @brief Heap Handler API.
+ * @brief Heap Handler API
*/
/*
@@ -26,9 +24,8 @@
/**
* @addtogroup ScoreHeap
- *
- * @{
*/
+/**@{**/
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Free_list_head( Heap_Control *heap )
{
@@ -201,7 +198,8 @@ RTEMS_INLINE_ROUTINE bool _Heap_Is_block_in_heap(
*
* The next block of the last block will be the first block. Since the first
* block indicates that the previous block is used, this ensures that the last
- * block appears as used for the _Heap_Is_used() and _Heap_Is_free() functions.
+ * block appears as used for the _Heap_Is_used() and _Heap_Is_free()
+ * functions.
*
* This feature will be used to terminate the scattered heap area list. See
* also _Heap_Extend().
diff --git a/cpukit/score/inline/rtems/score/isr.inl b/cpukit/score/inline/rtems/score/isr.inl
index accc03c2c7..c46c585f55 100644
--- a/cpukit/score/inline/rtems/score/isr.inl
+++ b/cpukit/score/inline/rtems/score/isr.inl
@@ -1,8 +1,10 @@
-/**
- * @file rtems/score/isr.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines in the Interrupt Handler
*
- * This include file contains the static implementation of all
- * inlined routines in the Interrupt Handler.
+ * This include file contains the static implementation of all
+ * inlined routines in the Interrupt Handler.
*/
/*
@@ -22,14 +24,14 @@
#define _RTEMS_SCORE_ISR_INL
/**
- * @addtogroup ScoreISR
- * @{
+ * @addtogroup ScoreISR
*/
+/**@{**/
#if (CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE)
/**
- * This function returns true if the vector is a valid vector number
- * for this processor and false otherwise.
+ * This function returns true if the vector is a valid vector number
+ * for this processor and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool _ISR_Is_vector_number_valid (
@@ -40,8 +42,8 @@ RTEMS_INLINE_ROUTINE bool _ISR_Is_vector_number_valid (
}
/**
- * This function returns true if handler is the entry point of a valid
- * use interrupt service routine and false otherwise.
+ * This function returns true if handler is the entry point of a valid
+ * use interrupt service routine and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool _ISR_Is_valid_user_handler (
@@ -52,7 +54,7 @@ RTEMS_INLINE_ROUTINE bool _ISR_Is_valid_user_handler (
}
#endif
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/mppkt.inl b/cpukit/score/inline/rtems/score/mppkt.inl
index c83242464e..0f9c6b2fcd 100644
--- a/cpukit/score/inline/rtems/score/mppkt.inl
+++ b/cpukit/score/inline/rtems/score/mppkt.inl
@@ -1,8 +1,10 @@
-/**
- * @file rtems/score/mppkt.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines from the Packet Handler
*
- * This package is the implementation of the Packet Handler
- * routines which are inlined.
+ * This package is the implementation of the Packet Handler
+ * routines which are inlined.
*/
/*
@@ -22,16 +24,16 @@
#define _RTEMS_SCORE_MPPKT_INL
/**
- * @addtogroup ScoreMPPacket
- * @{
+ * @addtogroup ScoreMPPacket
*/
+/**@{**/
/**
- * This function returns true if the the_packet_class is valid,
- * and false otherwise.
+ * This function returns true if the the_packet_class is valid,
+ * and false otherwise.
*
- * @note Check for lower bounds (MP_PACKET_CLASSES_FIRST ) is unnecessary
- * because this enum starts at lower bound of zero.
+ * @note Check for lower bounds (MP_PACKET_CLASSES_FIRST ) is unnecessary
+ * because this enum starts at lower bound of zero.
*/
RTEMS_INLINE_ROUTINE bool _Mp_packet_Is_valid_packet_class (
@@ -42,8 +44,8 @@ RTEMS_INLINE_ROUTINE bool _Mp_packet_Is_valid_packet_class (
}
/**
- * This function returns true if the the_packet_class is null,
- * and false otherwise.
+ * This function returns true if the the_packet_class is null,
+ * and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool _Mp_packet_Is_null (
@@ -53,7 +55,7 @@ RTEMS_INLINE_ROUTINE bool _Mp_packet_Is_null (
return the_packet == NULL;
}
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/object.inl b/cpukit/score/inline/rtems/score/object.inl
index 1f3adcb274..726d676cd9 100644
--- a/cpukit/score/inline/rtems/score/object.inl
+++ b/cpukit/score/inline/rtems/score/object.inl
@@ -1,5 +1,7 @@
/**
- * @file rtems/score/object.inl
+ * @file
+ *
+ * @brief Inlined Routines in the Object Handler
*
* This include file contains the static inline implementation of all
* of the inlined routines in the Object Handler.
@@ -22,16 +24,16 @@
#define _RTEMS_SCORE_OBJECT_INL
/**
- * This function builds an object's id from the processor node and index
- * values specified.
+ * This function builds an object's id from the processor node and index
+ * values specified.
*
- * @param[in] the_api indicates the API associated with this Id.
- * @param[in] the_class indicates the class of object.
- * It is specific to @a the_api.
- * @param[in] node is the node where this object resides.
- * @param[in] index is the instance number of this object.
+ * @param[in] the_api indicates the API associated with this Id.
+ * @param[in] the_class indicates the class of object.
+ * It is specific to @a the_api.
+ * @param[in] node is the node where this object resides.
+ * @param[in] index is the instance number of this object.
*
- * @return This method returns an object Id constructed from the arguments.
+ * @return This method returns an object Id constructed from the arguments.
*/
RTEMS_INLINE_ROUTINE Objects_Id _Objects_Build_id(
Objects_APIs the_api,
@@ -49,11 +51,11 @@ RTEMS_INLINE_ROUTINE Objects_Id _Objects_Build_id(
}
/**
- * This function returns the API portion of the ID.
+ * This function returns the API portion of the ID.
*
- * @param[in] id is the object Id to be processed.
+ * @param[in] id is the object Id to be processed.
*
- * @return This method returns an object Id constructed from the arguments.
+ * @return This method returns an object Id constructed from the arguments.
*/
RTEMS_INLINE_ROUTINE Objects_APIs _Objects_Get_API(
Objects_Id id
@@ -63,24 +65,24 @@ RTEMS_INLINE_ROUTINE Objects_APIs _Objects_Get_API(
}
/**
- * This function returns the class portion of the ID.
+ * This function returns the class portion of the ID.
*
- * @param[in] id is the object Id to be processed
+ * @param[in] id is the object Id to be processed
*/
RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_class(
Objects_Id id
)
{
- return (uint32_t)
+ return (uint32_t)
((id >> OBJECTS_CLASS_START_BIT) & OBJECTS_CLASS_VALID_BITS);
}
-
+
/**
- * This function returns the node portion of the ID.
+ * This function returns the node portion of the ID.
*
- * @param[in] id is the object Id to be processed
+ * @param[in] id is the object Id to be processed
*
- * @return This method returns the node portion of an object ID.
+ * @return This method returns the node portion of an object ID.
*/
RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_node(
Objects_Id id
@@ -98,11 +100,11 @@ RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_node(
}
/**
- * This function returns the index portion of the ID.
+ * This function returns the index portion of the ID.
*
- * @param[in] id is the Id to be processed
+ * @param[in] id is the Id to be processed
*
- * @return This method returns the class portion of the specified object ID.
+ * @return This method returns the class portion of the specified object ID.
*/
RTEMS_INLINE_ROUTINE Objects_Maximum _Objects_Get_index(
Objects_Id id
@@ -114,12 +116,12 @@ RTEMS_INLINE_ROUTINE Objects_Maximum _Objects_Get_index(
}
/**
- * This function returns true if the api is valid.
+ * This function returns true if the api is valid.
*
- * @param[in] the_api is the api portion of an object ID.
+ * @param[in] the_api is the api portion of an object ID.
*
- * @return This method returns true if the specified api value is valid
- * and false otherwise.
+ * @return This method returns true if the specified api value is valid
+ * and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid(
uint32_t the_api
@@ -129,16 +131,16 @@ RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid(
return false;
return true;
}
-
+
/**
- * This function returns true if the node is of the local object, and
- * false otherwise.
+ * This function returns true if the node is of the local object, and
+ * false otherwise.
*
- * @param[in] node is the node number and corresponds to the node number
- * portion of an object ID.
+ * @param[in] node is the node number and corresponds to the node number
+ * portion of an object ID.
*
- * @return This method returns true if the specified node is the local node
- * and false otherwise.
+ * @return This method returns true if the specified node is the local node
+ * and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool _Objects_Is_local_node(
uint32_t node
@@ -148,15 +150,15 @@ RTEMS_INLINE_ROUTINE bool _Objects_Is_local_node(
}
/**
- * This function returns true if the id is of a local object, and
- * false otherwise.
+ * This function returns true if the id is of a local object, and
+ * false otherwise.
*
- * @param[in] id is an object ID
+ * @param[in] id is an object ID
*
- * @return This method returns true if the specified object Id is local
- * and false otherwise.
+ * @return This method returns true if the specified object Id is local
+ * and false otherwise.
*
- * @note On a single processor configuration, this always returns true.
+ * @note On a single processor configuration, this always returns true.
*/
RTEMS_INLINE_ROUTINE bool _Objects_Is_local_id(
#if defined(RTEMS_MULTIPROCESSING)
@@ -174,14 +176,14 @@ RTEMS_INLINE_ROUTINE bool _Objects_Is_local_id(
}
/**
- * This function returns true if left and right are equal,
- * and false otherwise.
+ * This function returns true if left and right are equal,
+ * and false otherwise.
*
- * @param[in] left is the Id on the left hand side of the comparison
- * @param[in] right is the Id on the right hand side of the comparison
+ * @param[in] left is the Id on the left hand side of the comparison
+ * @param[in] right is the Id on the right hand side of the comparison
*
- * @return This method returns true if the specified object IDs are equal
- * and false otherwise.
+ * @return This method returns true if the specified object IDs are equal
+ * and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool _Objects_Are_ids_equal(
Objects_Id left,
@@ -192,14 +194,14 @@ RTEMS_INLINE_ROUTINE bool _Objects_Are_ids_equal(
}
/**
- * This function returns a pointer to the local_table object
- * referenced by the index.
+ * This function returns a pointer to the local_table object
+ * referenced by the index.
*
- * @param[in] information points to an Object Information Table
- * @param[in] index is the index of the object the caller wants to access
+ * @param[in] information points to an Object Information Table
+ * @param[in] index is the index of the object the caller wants to access
*
- * @return This method returns a pointer to a local object or NULL if the
- * index is invalid and RTEMS_DEBUG is enabled.
+ * @return This method returns a pointer to a local object or NULL if the
+ * index is invalid and RTEMS_DEBUG is enabled.
*/
RTEMS_INLINE_ROUTINE Objects_Control *_Objects_Get_local_object(
Objects_Information *information,
@@ -207,10 +209,10 @@ RTEMS_INLINE_ROUTINE Objects_Control *_Objects_Get_local_object(
)
{
/*
- * This routine is ONLY to be called from places in the code
- * where the Id is known to be good. Therefore, this should NOT
- * occur in normal situations.
- */
+ * This routine is ONLY to be called from places in the code
+ * where the Id is known to be good. Therefore, this should NOT
+ * occur in normal situations.
+ */
#if defined(RTEMS_DEBUG)
if ( index > information->maximum )
return NULL;
@@ -219,17 +221,17 @@ RTEMS_INLINE_ROUTINE Objects_Control *_Objects_Get_local_object(
}
/**
- * This function sets the pointer to the local_table object
- * referenced by the index.
+ * This function sets the pointer to the local_table object
+ * referenced by the index.
*
- * @param[in] information points to an Object Information Table
- * @param[in] index is the index of the object the caller wants to access
- * @param[in] the_object is the local object pointer
+ * @param[in] information points to an Object Information Table
+ * @param[in] index is the index of the object the caller wants to access
+ * @param[in] the_object is the local object pointer
*
- * @note This routine is ONLY to be called in places where the
- * index portion of the Id is known to be good. This is
- * OK since it is normally called from object create/init
- * or delete/destroy operations.
+ * @note This routine is ONLY to be called in places where the
+ * index portion of the Id is known to be good. This is
+ * OK since it is normally called from object create/init
+ * or delete/destroy operations.
*/
RTEMS_INLINE_ROUTINE void _Objects_Set_local_object(
@@ -242,7 +244,7 @@ RTEMS_INLINE_ROUTINE void _Objects_Set_local_object(
* This routine is ONLY to be called from places in the code
* where the Id is known to be good. Therefore, this should NOT
* occur in normal situations.
- */
+ */
#if defined(RTEMS_DEBUG)
if ( index > information->maximum )
return;
@@ -252,17 +254,17 @@ RTEMS_INLINE_ROUTINE void _Objects_Set_local_object(
}
/**
- * This function sets the pointer to the local_table object
- * referenced by the index to a NULL so the object Id is invalid
- * after this call.
+ * This function sets the pointer to the local_table object
+ * referenced by the index to a NULL so the object Id is invalid
+ * after this call.
*
- * @param[in] information points to an Object Information Table
- * @param[in] the_object is the local object pointer
+ * @param[in] information points to an Object Information Table
+ * @param[in] the_object is the local object pointer
*
- * @note This routine is ONLY to be called in places where the
- * index portion of the Id is known to be good. This is
- * OK since it is normally called from object create/init
- * or delete/destroy operations.
+ * @note This routine is ONLY to be called in places where the
+ * index portion of the Id is known to be good. This is
+ * OK since it is normally called from object create/init
+ * or delete/destroy operations.
*/
RTEMS_INLINE_ROUTINE void _Objects_Invalidate_Id(
@@ -278,12 +280,12 @@ RTEMS_INLINE_ROUTINE void _Objects_Invalidate_Id(
}
/**
- * This function places the_object control pointer and object name
- * in the Local Pointer and Local Name Tables, respectively.
+ * This function places the_object control pointer and object name
+ * in the Local Pointer and Local Name Tables, respectively.
*
- * @param[in] information points to an Object Information Table
- * @param[in] the_object is a pointer to an object
- * @param[in] name is the name of the object to make accessible
+ * @param[in] information points to an Object Information Table
+ * @param[in] the_object is a pointer to an object
+ * @param[in] name is the name of the object to make accessible
*/
RTEMS_INLINE_ROUTINE void _Objects_Open(
Objects_Information *information,
@@ -301,12 +303,12 @@ RTEMS_INLINE_ROUTINE void _Objects_Open(
}
/**
- * This function places the_object control pointer and object name
- * in the Local Pointer and Local Name Tables, respectively.
+ * This function places the_object control pointer and object name
+ * in the Local Pointer and Local Name Tables, respectively.
*
- * @param[in] information points to an Object Information Table
- * @param[in] the_object is a pointer to an object
- * @param[in] name is the name of the object to make accessible
+ * @param[in] information points to an Object Information Table
+ * @param[in] the_object is a pointer to an object
+ * @param[in] name is the name of the object to make accessible
*/
RTEMS_INLINE_ROUTINE void _Objects_Open_u32(
Objects_Information *information,
@@ -320,17 +322,17 @@ RTEMS_INLINE_ROUTINE void _Objects_Open_u32(
the_object
);
- /* ASSERT: information->is_string == false */
+ /* ASSERT: information->is_string == false */
the_object->name.name_u32 = name;
}
/**
- * This function places the_object control pointer and object name
- * in the Local Pointer and Local Name Tables, respectively.
+ * This function places the_object control pointer and object name
+ * in the Local Pointer and Local Name Tables, respectively.
*
- * @param[in] information points to an Object Information Table
- * @param[in] the_object is a pointer to an object
- * @param[in] name is the name of the object to make accessible
+ * @param[in] information points to an Object Information Table
+ * @param[in] the_object is a pointer to an object
+ * @param[in] name is the name of the object to make accessible
*/
RTEMS_INLINE_ROUTINE void _Objects_Open_string(
Objects_Information *information,
@@ -345,18 +347,18 @@ RTEMS_INLINE_ROUTINE void _Objects_Open_string(
);
#if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)
- /* ASSERT: information->is_string */
+ /* ASSERT: information->is_string */
the_object->name.name_p = name;
#endif
}
/**
- * Returns if the object maximum specifies unlimited objects.
+ * Returns if the object maximum specifies unlimited objects.
*
- * @param[in] maximum The object maximum specification.
+ * @param[in] maximum The object maximum specification.
*
- * @retval true Unlimited objects are available.
- * @retval false The object count is fixed.
+ * @retval true Unlimited objects are available.
+ * @retval false The object count is fixed.
*/
RTEMS_INLINE_ROUTINE bool _Objects_Is_unlimited( uint32_t maximum )
{
diff --git a/cpukit/score/inline/rtems/score/objectmp.inl b/cpukit/score/inline/rtems/score/objectmp.inl
index 502c946014..e6734cf352 100644
--- a/cpukit/score/inline/rtems/score/objectmp.inl
+++ b/cpukit/score/inline/rtems/score/objectmp.inl
@@ -1,8 +1,10 @@
-/**
- * @file rtems/score/objectmp.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines Associated with Global Objects
*
- * This include file contains the bodies of all inlined routines
- * which deal with global objects.
+ * This include file contains the bodies of all inlined routines
+ * which deal with global objects.
*/
/*
@@ -22,12 +24,12 @@
#define _RTEMS_SCORE_OBJECTMP_INL
/**
- * @addtogroup ScoreObjectMP
- * @{
+ * @addtogroup ScoreObjectMP
*/
+/**@{**/
/**
- * This function allocates a Global Object control block.
+ * This function allocates a Global Object control block.
*/
RTEMS_INLINE_ROUTINE Objects_MP_Control *_Objects_MP_Allocate_global_object (
@@ -39,7 +41,7 @@ RTEMS_INLINE_ROUTINE Objects_MP_Control *_Objects_MP_Allocate_global_object (
}
/**
- * This routine deallocates a Global Object control block.
+ * This routine deallocates a Global Object control block.
*/
RTEMS_INLINE_ROUTINE void _Objects_MP_Free_global_object (
@@ -53,7 +55,7 @@ RTEMS_INLINE_ROUTINE void _Objects_MP_Free_global_object (
}
/**
- * This function returns whether the global object is NULL or not.
+ * This function returns whether the global object is NULL or not.
*/
RTEMS_INLINE_ROUTINE bool _Objects_MP_Is_null_global_object (
@@ -63,7 +65,7 @@ RTEMS_INLINE_ROUTINE bool _Objects_MP_Is_null_global_object (
return( the_object == NULL );
}
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/priority.inl b/cpukit/score/inline/rtems/score/priority.inl
index c0ac766a2f..5c7c6b3402 100644
--- a/cpukit/score/inline/rtems/score/priority.inl
+++ b/cpukit/score/inline/rtems/score/priority.inl
@@ -1,5 +1,7 @@
-/**
- * @file rtems/score/priority.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines in the Priority Handler
*
* This file contains the static inline implementation of all inlined
* routines in the Priority Handler.
@@ -22,20 +24,20 @@
#define _RTEMS_SCORE_PRIORITY_INL
/**
- * @addtogroup ScorePriority
- * @{
+ * @addtogroup ScorePriority
*/
+/**@{**/
/**
- * This function returns true if the_priority if valid for a
- * user task, and false otherwise.
+ * This function returns true if the_priority if valid for a
+ * user task, and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool _Priority_Is_valid (
Priority_Control the_priority
)
{
- /*
+ /*
* Since PRIORITY_MINIMUM is 0 and priorities are stored unsigned,
* then checking for less than 0 is unnecessary.
*/
@@ -45,7 +47,7 @@ RTEMS_INLINE_ROUTINE bool _Priority_Is_valid (
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/prioritybitmap.inl b/cpukit/score/inline/rtems/score/prioritybitmap.inl
index 76bb1a1c83..70844fa0e3 100644
--- a/cpukit/score/inline/rtems/score/prioritybitmap.inl
+++ b/cpukit/score/inline/rtems/score/prioritybitmap.inl
@@ -1,8 +1,10 @@
-/**
- * @file rtems/score/prioritybitmap.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines in the Priority Handler Bit Map Implementation
*
- * This file contains the static inline implementation of all inlined
- * routines in the Priority Handler bit map implementation
+ * This file contains the static inline implementation of all inlined
+ * routines in the Priority Handler bit map implementation
*/
/*
@@ -22,14 +24,14 @@
#define _RTEMS_SCORE_PRIORITYBITMAP_INL
/**
- * @addtogroup ScorePriority
- * @{
+ * @addtogroup ScorePriority
*/
+/**@{**/
#include <rtems/score/bitfield.h>
/**
- * This function returns the major portion of the_priority.
+ * This function returns the major portion of the_priority.
*/
RTEMS_INLINE_ROUTINE Priority_bit_map_Control _Priority_Major (
@@ -40,7 +42,7 @@ RTEMS_INLINE_ROUTINE Priority_bit_map_Control _Priority_Major (
}
/**
- * This function returns the minor portion of the_priority.
+ * This function returns the minor portion of the_priority.
*/
RTEMS_INLINE_ROUTINE Priority_bit_map_Control _Priority_Minor (
@@ -51,23 +53,23 @@ RTEMS_INLINE_ROUTINE Priority_bit_map_Control _Priority_Minor (
}
#if ( CPU_USE_GENERIC_BITFIELD_CODE == TRUE )
-
+
/**
- * This function returns the mask associated with the major or minor
- * number passed to it.
+ * This function returns the mask associated with the major or minor
+ * number passed to it.
*/
-
+
RTEMS_INLINE_ROUTINE Priority_bit_map_Control _Priority_Mask (
uint32_t bit_number
)
{
return (Priority_bit_map_Control)(0x8000u >> bit_number);
}
-
+
/**
- * This function returns the mask bit inverted.
+ * This function returns the mask bit inverted.
*/
-
+
RTEMS_INLINE_ROUTINE Priority_bit_map_Control _Priority_Mask_invert (
uint32_t mask
)
@@ -75,13 +77,13 @@ RTEMS_INLINE_ROUTINE Priority_bit_map_Control _Priority_Mask_invert (
return (Priority_bit_map_Control)(~mask);
}
-
+
/**
- * This function translates the bit numbers returned by the bit scan
- * of a priority bit field into something suitable for use as
- * a major or minor component of a priority.
+ * This function translates the bit numbers returned by the bit scan
+ * of a priority bit field into something suitable for use as
+ * a major or minor component of a priority.
*/
-
+
RTEMS_INLINE_ROUTINE uint32_t _Priority_Bits_index (
uint32_t bit_number
)
@@ -96,7 +98,7 @@ RTEMS_INLINE_ROUTINE uint32_t _Priority_Bits_index (
*/
/**
- * This routine performs the initialization necessary for this handler.
+ * This routine performs the initialization necessary for this handler.
*/
RTEMS_INLINE_ROUTINE void _Priority_bit_map_Handler_initialization( void )
@@ -109,8 +111,8 @@ RTEMS_INLINE_ROUTINE void _Priority_bit_map_Handler_initialization( void )
}
/**
- * This routine uses the_priority_map to update the priority
- * bit maps to indicate that a thread has been readied.
+ * This routine uses the_priority_map to update the priority
+ * bit maps to indicate that a thread has been readied.
*/
RTEMS_INLINE_ROUTINE void _Priority_bit_map_Add (
@@ -122,9 +124,9 @@ RTEMS_INLINE_ROUTINE void _Priority_bit_map_Add (
}
/**
- * This routine uses the_priority_map to update the priority
- * bit maps to indicate that a thread has been removed from the
- * ready state.
+ * This routine uses the_priority_map to update the priority
+ * bit maps to indicate that a thread has been removed from the
+ * ready state.
*/
RTEMS_INLINE_ROUTINE void _Priority_bit_map_Remove (
@@ -137,8 +139,8 @@ RTEMS_INLINE_ROUTINE void _Priority_bit_map_Remove (
}
/**
- * This function returns the priority of the highest priority
- * ready thread.
+ * This function returns the priority of the highest priority
+ * ready thread.
*/
RTEMS_INLINE_ROUTINE Priority_Control _Priority_bit_map_Get_highest( void )
@@ -154,9 +156,9 @@ RTEMS_INLINE_ROUTINE Priority_Control _Priority_bit_map_Get_highest( void )
}
/**
- * This routine initializes the_priority_map so that it
- * contains the information necessary to manage a thread
- * at new_priority.
+ * This routine initializes the_priority_map so that it
+ * contains the information necessary to manage a thread
+ * at new_priority.
*/
RTEMS_INLINE_ROUTINE void _Priority_bit_map_Initialize_information(
@@ -185,7 +187,7 @@ RTEMS_INLINE_ROUTINE void _Priority_bit_map_Initialize_information(
the_priority_map->block_minor = (Priority_bit_map_Control)(~((uint32_t)mask));
}
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/rbtree.inl b/cpukit/score/inline/rtems/score/rbtree.inl
index 439b40a0ba..8b4234de57 100644
--- a/cpukit/score/inline/rtems/score/rbtree.inl
+++ b/cpukit/score/inline/rtems/score/rbtree.inl
@@ -1,12 +1,14 @@
/**
- * @file rtems/score/rbtree.inl
+ * @file
*
- * This include file contains the bodies of the routines which are
- * associated with Red-Black Trees and inlined.
+ * @brief Inlined Routines Associated with Red-Black Trees
*
- * @note The routines in this file are ordered from simple
- * to complex. No other RBTree Handler routine is referenced
- * unless it has already been defined.
+ * This include file contains the bodies of the routines which are
+ * associated with Red-Black Trees and inlined.
+ *
+ * @note The routines in this file are ordered from simple
+ * to complex. No other RBTree Handler routine is referenced
+ * unless it has already been defined.
*/
/*
@@ -25,12 +27,12 @@
#define _RTEMS_SCORE_RBTREE_INL
/**
- * @addtogroup ScoreRBTree
- * @{
+ * @addtogroup ScoreRBTree
*/
+/**@{**/
/**
- * @brief Get the direction opposite to @a the_dir
+ * @brief Get the direction opposite to @a the_dir.
*/
RTEMS_INLINE_ROUTINE RBTree_Direction _RBTree_Opposite_direction(
RBTree_Direction the_dir
@@ -39,10 +41,11 @@ RTEMS_INLINE_ROUTINE RBTree_Direction _RBTree_Opposite_direction(
return (RBTree_Direction) !((int) the_dir);
}
-/** @brief Set off rbtree
+/**
+ * @brief Set off RBtree.
*
- * This function sets the parent and child fields of the @a node to NULL
- * indicating the @a node is not part of a rbtree.
+ * This function sets the parent and child fields of the @a node to NULL
+ * indicating the @a node is not part of a rbtree.
*
*/
RTEMS_INLINE_ROUTINE void _RBTree_Set_off_rbtree(
@@ -52,22 +55,29 @@ RTEMS_INLINE_ROUTINE void _RBTree_Set_off_rbtree(
node->parent = node->child[RBT_LEFT] = node->child[RBT_RIGHT] = NULL;
}
-/** @brief Is the Node off RBTree
+/**
+ * @brief Is the node off RBTree.
*
- * This function returns true if the @a node is not on a rbtree. A @a node is
- * off rbtree if the parent and child fields are set to NULL.
+ * This function returns true if the @a node is not on a rbtree. A @a node is
+ * off rbtree if the parent and child fields are set to NULL.
*/
RTEMS_INLINE_ROUTINE bool _RBTree_Is_node_off_rbtree(
const RBTree_Node *node
)
{
- return (node->parent == NULL) && (node->child[RBT_LEFT] == NULL) && (node->child[RBT_RIGHT] == NULL);
+ return (node->parent == NULL) &&
+ (node->child[RBT_LEFT] == NULL) &&
+ (node->child[RBT_RIGHT] == NULL);
}
-/** @brief Are Two Nodes Equal
+/**
+ * @brief Are two Nodes equal.
+ *
+ * This function returns true if @a left and @a right are equal,
+ * and false otherwise.
*
- * This function returns true if @a left and @a right are equal,
- * and false otherwise.
+ * @retval true @a left and @a right are equal.
+ * @retval false @a left and @a right are not equal.
*/
RTEMS_INLINE_ROUTINE bool _RBTree_Are_nodes_equal(
const RBTree_Node *left,
@@ -77,9 +87,13 @@ RTEMS_INLINE_ROUTINE bool _RBTree_Are_nodes_equal(
return left == right;
}
-/** @brief Is this RBTree Control Pointer Null
+/**
+ * @brief Is this RBTree control pointer NULL.
*
- * This function returns true if @a the_rbtree is NULL and false otherwise.
+ * This function returns true if @a the_rbtree is NULL and false otherwise.
+ *
+ * @retval true @a the_rbtree is @c NULL.
+ * @retval false @a the_rbtree is not @c NULL.
*/
RTEMS_INLINE_ROUTINE bool _RBTree_Is_null(
const RBTree_Control *the_rbtree
@@ -88,9 +102,13 @@ RTEMS_INLINE_ROUTINE bool _RBTree_Is_null(
return (the_rbtree == NULL);
}
-/** @brief Is the RBTree Node Pointer NULL
+/**
+ * @brief Is the RBTree node pointer NUL.
+ *
+ * This function returns true if @a the_node is NULL and false otherwise.
*
- * This function returns true if @a the_node is NULL and false otherwise.
+ * @retval true @a the_node is @c NULL.
+ * @retval false @a the_node is not @c NULL.
*/
RTEMS_INLINE_ROUTINE bool _RBTree_Is_null_node(
const RBTree_Node *the_node
@@ -100,9 +118,10 @@ RTEMS_INLINE_ROUTINE bool _RBTree_Is_null_node(
}
-/** @brief Return pointer to RBTree's root node
+/**
+ * @brief Return pointer to RBTree's root node.
*
- * This function returns a pointer to the root node of @a the_rbtree.
+ * This function returns a pointer to the root node of @a the_rbtree.
*/
RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Root(
const RBTree_Control *the_rbtree
@@ -111,10 +130,11 @@ RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Root(
return the_rbtree->root;
}
-/** @brief Return pointer to RBTree's First node
+/**
+ * @brief Return pointer to RBTree's first node.
*
- * This function returns a pointer to the first node on @a the_rbtree,
- * where @a dir specifies whether to return the minimum (0) or maximum (1).
+ * This function returns a pointer to the first node on @a the_rbtree,
+ * where @a dir specifies whether to return the minimum (0) or maximum (1).
*/
RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_First(
const RBTree_Control *the_rbtree,
@@ -124,9 +144,10 @@ RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_First(
return the_rbtree->first[dir];
}
-/** @brief Return pointer to the parent of this node
+/**
+ * @brief Return pointer to the parent of this node.
*
- * This function returns a pointer to the parent node of @a the_node.
+ * This function returns a pointer to the parent node of @a the_node.
*/
RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Parent(
const RBTree_Node *the_node
@@ -136,13 +157,14 @@ RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Parent(
return the_node->parent;
}
-/** @brief Return pointer to the left of this node
+/**
+ * @brief Return pointer to the left of this node.
*
- * This function returns a pointer to the left node of this node.
+ * This function returns a pointer to the left node of this node.
*
- * @param[in] the_node is the node to be operated upon.
+ * @param[in] the_node is the node to be operated upon.
*
- * @return This method returns the left node on the rbtree.
+ * @return This method returns the left node on the rbtree.
*/
RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Left(
const RBTree_Node *the_node
@@ -151,13 +173,14 @@ RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Left(
return the_node->child[RBT_LEFT];
}
-/** @brief Return pointer to the right of this node
+/**
+ * @brief Return pointer to the right of this node.
*
- * This function returns a pointer to the right node of this node.
+ * This function returns a pointer to the right node of this node.
*
- * @param[in] the_node is the node to be operated upon.
+ * @param[in] the_node is the node to be operated upon.
*
- * @return This method returns the right node on the rbtree.
+ * @return This method returns the right node on the rbtree.
*/
RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Right(
const RBTree_Node *the_node
@@ -166,15 +189,16 @@ RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Right(
return the_node->child[RBT_RIGHT];
}
-/** @brief Is the RBTree Empty
+/**
+ * @brief Is the RBTree empty.
*
- * This function returns true if there are no nodes on @a the_rbtree and
- * false otherwise.
+ * This function returns true if there are no nodes on @a the_rbtree and
+ * false otherwise.
*
- * @param[in] the_rbtree is the rbtree to be operated upon.
+ * @param[in] the_rbtree is the rbtree to be operated upon.
*
- * @return This function returns true if there are no nodes on
- * @a the_rbtree and false otherwise.
+ * @retval true There are no nodes on @a the_rbtree.
+ * @retval false There are nodes on @a the_rbtree.
*/
RTEMS_INLINE_ROUTINE bool _RBTree_Is_empty(
const RBTree_Control *the_rbtree
@@ -183,11 +207,15 @@ RTEMS_INLINE_ROUTINE bool _RBTree_Is_empty(
return (the_rbtree->root == NULL);
}
-/** @brief Is this the First Node on the RBTree
+/**
+ * @brief Is this the first node on the RBTree.
*
- * This function returns true if @a the_node is the first node on
- * @a the_rbtree and false otherwise. @a dir specifies whether first means
- * minimum (0) or maximum (1).
+ * This function returns true if @a the_node is the first node on
+ * @a the_rbtree and false otherwise. @a dir specifies whether first means
+ * minimum (0) or maximum (1).
+ *
+ * @retval true @a the_node is the first node on @a the_rbtree.
+ * @retval false @a the_node is not the first node on @a the_rbtree.
*
*/
RTEMS_INLINE_ROUTINE bool _RBTree_Is_first(
@@ -199,9 +227,13 @@ RTEMS_INLINE_ROUTINE bool _RBTree_Is_first(
return (the_node == _RBTree_First(the_rbtree, dir));
}
-/** @brief Is this node red?
+/**
+ * @brief Is this node red.
+ *
+ * This function returns true if @a the_node is red and false otherwise.
*
- * This function returns true if @a the_node is red and false otherwise.
+ * @retval true @a the_node is red.
+ * @retval false @a the_node in not red.
*/
RTEMS_INLINE_ROUTINE bool _RBTree_Is_red(
const RBTree_Node *the_node
@@ -211,24 +243,32 @@ RTEMS_INLINE_ROUTINE bool _RBTree_Is_red(
}
-/** @brief Does this RBTree have only One Node
+/**
+ * @brief Does this RBTree have only one node.
*
- * This function returns true if there is only one node on @a the_rbtree and
- * false otherwise.
+ * This function returns true if there is only one node on @a the_rbtree and
+ * false otherwise.
*
+ * @retval true @a the_rbtree has only one node.
+ * @retval false @a the_rbtree has more than one nodes.
*/
RTEMS_INLINE_ROUTINE bool _RBTree_Has_only_one_node(
const RBTree_Control *the_rbtree
)
{
if(!the_rbtree) return false; /* TODO: expected behavior? */
- return (the_rbtree->root->child[RBT_LEFT] == NULL && the_rbtree->root->child[RBT_RIGHT] == NULL);
+ return (the_rbtree->root->child[RBT_LEFT] == NULL &&
+ the_rbtree->root->child[RBT_RIGHT] == NULL);
}
-/** @brief Is this Node the RBTree root
+/**
+ * @brief Is this node the RBTree root.
*
- * This function returns true if @a the_node is the root of @a the_rbtree and
- * false otherwise.
+ * This function returns true if @a the_node is the root of @a the_rbtree and
+ * false otherwise.
+ *
+ * @retval true @a the_node is the root of @a the_rbtree.
+ * @retval false @a the_node is not the root of @a the_rbtree.
*/
RTEMS_INLINE_ROUTINE bool _RBTree_Is_root(
const RBTree_Control *the_rbtree,
@@ -238,9 +278,10 @@ RTEMS_INLINE_ROUTINE bool _RBTree_Is_root(
return (the_node == _RBTree_Root(the_rbtree));
}
-/** @brief Initialize this RBTree as Empty
+/**
+ * @brief Initialize this RBTree as empty.
*
- * This routine initializes @a the_rbtree to contain zero nodes.
+ * This routine initializes @a the_rbtree to contain zero nodes.
*/
RTEMS_INLINE_ROUTINE void _RBTree_Initialize_empty(
RBTree_Control *the_rbtree,
@@ -256,11 +297,11 @@ RTEMS_INLINE_ROUTINE void _RBTree_Initialize_empty(
the_rbtree->is_unique = is_unique;
}
-/** @brief Return a pointer to node's grandparent
+/**
+ * @brief Return a pointer to node's grandparent.
*
- * This function returns a pointer to the grandparent of @a the_node if it
- * exists, and NULL if not.
- *
+ * This function returns a pointer to the grandparent of @a the_node if it
+ * exists, and NULL if not.
*/
RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Grandparent(
const RBTree_Node *the_node
@@ -273,10 +314,11 @@ RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Grandparent(
return(the_node->parent->parent);
}
-/** @brief Return a pointer to node's sibling
+/**
+ * @brief Return a pointer to node's sibling.
*
- * This function returns a pointer to the sibling of @a the_node if it
- * exists, and NULL if not.
+ * This function returns a pointer to the sibling of @a the_node if it
+ * exists, and NULL if not.
*/
RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Sibling(
const RBTree_Node *the_node
@@ -292,10 +334,11 @@ RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Sibling(
return the_node->parent->child[RBT_LEFT];
}
-/** @brief Return a pointer to node's parent's sibling
+/**
+ * @brief Return a pointer to node's parent's sibling.
*
- * This function returns a pointer to the sibling of the parent of
- * @a the_node if it exists, and NULL if not.
+ * This function returns a pointer to the sibling of the parent of
+ * @a the_node if it exists, and NULL if not.
*/
RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Parent_sibling(
const RBTree_Node *the_node
@@ -307,10 +350,11 @@ RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Parent_sibling(
return _RBTree_Sibling(the_node->parent);
}
-/** @brief Find the RBTree_Control header given a node in the tree
+/**
+ * @brief Find the RBTree_Control header given a node in the tree.
*
- * This function returns a pointer to the header of the Red Black
- * Tree containing @a the_node if it exists, and NULL if not.
+ * This function returns a pointer to the header of the Red Black
+ * Tree containing @a the_node if it exists, and NULL if not.
*/
RTEMS_INLINE_ROUTINE RBTree_Control *_RBTree_Find_header_unprotected(
RBTree_Node *the_node
@@ -341,47 +385,13 @@ RTEMS_INLINE_ROUTINE bool _RBTree_Is_lesser(
return compare_result < 0;
}
-/** @brief Find the node with given key in the tree
- *
- * This function returns a pointer to the node in @a the_rbtree
- * having key equal to key of @a the_node if it exists,
- * and NULL if not. @a the_node has to be made up before a search.
- *
- * @note If the tree is not unique and contains duplicate keys, the set
- * of duplicate keys acts as FIFO.
- */
-RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Find_unprotected(
- RBTree_Control *the_rbtree,
- RBTree_Node *the_node
- )
-{
- RBTree_Node* iter_node = the_rbtree->root;
- RBTree_Node* found = NULL;
- int compare_result;
- while (iter_node) {
- compare_result = the_rbtree->compare_function(the_node, iter_node);
- if ( _RBTree_Is_equal( compare_result ) ) {
- found = iter_node;
- if ( the_rbtree->is_unique )
- break;
- }
-
- RBTree_Direction dir =
- (RBTree_Direction) _RBTree_Is_greater( compare_result );
- iter_node = iter_node->child[dir];
- } /* while(iter_node) */
-
- return found;
-}
-
/**
* @brief Returns the predecessor of a node.
*
- * @param[in] rbtree The red-black tree.
- * @param[in] node The node.
+ * @param[in] node is the node.
*
- * @retval NULL The predecessor does not exist.
- * @retval otherwise The predecessor node.
+ * @retval NULL The predecessor does not exist. Otherwise it returns
+ * the predecessor node.
*/
RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Predecessor_unprotected(
const RBTree_Node *node
@@ -405,11 +415,9 @@ RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Predecessor(
/**
* @brief Returns the successor of a node.
*
- * @param[in] rbtree The red-black tree.
- * @param[in] node The node.
+ * @param[in] node is the node.
*
- * @retval NULL The successor does not exist.
- * @retval otherwise The successor node.
+ * @retval NULL The successor does not exist. Otherwise the successor node.
*/
RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Successor_unprotected(
const RBTree_Node *node
@@ -430,18 +438,19 @@ RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Successor(
return _RBTree_Next( node, RBT_RIGHT );
}
-/** @brief Get the First Node (unprotected)
+/**
+ * @brief Get the first node (unprotected).
*
- * This function removes the minimum or maximum node from the_rbtree and
- * returns a pointer to that node. It does NOT disable interrupts to ensure
- * the atomicity of the get operation.
+ * This function removes the minimum or maximum node from the_rbtree and
+ * returns a pointer to that node. It does NOT disable interrupts to ensure
+ * the atomicity of the get operation.
*
- * @param[in] the_rbtree is the rbtree to attempt to get the min node from.
- * @param[in] dir specifies whether to get minimum (0) or maximum (1)
+ * @param[in] the_rbtree is the rbtree to attempt to get the min node from.
+ * @param[in] dir specifies whether to get minimum (0) or maximum (1)
*
- * @return This method returns the min or max node on the rbtree, or NULL.
+ * @return This method returns the min or max node on the rbtree, or NULL.
*
- * @note This routine may return NULL if the RBTree is empty.
+ * @note This routine may return NULL if the RBTree is empty.
*/
RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Get_unprotected(
RBTree_Control *the_rbtree,
@@ -453,10 +462,11 @@ RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Get_unprotected(
return the_node;
}
-/** @brief Rotate the_node in the direction passed as second argument
- *
- * This routine rotates @a the_node to the direction @a dir, swapping
- * @a the_node with its child\[@a dir\].
+/**
+ * @brief Rotate the_node in the direction passed as second argument.
+ *
+ * This routine rotates @a the_node to the direction @a dir, swapping
+ * @a the_node with its child\[@a dir\].
*/
RTEMS_INLINE_ROUTINE void _RBTree_Rotate(
RBTree_Node *the_node,
@@ -481,7 +491,8 @@ RTEMS_INLINE_ROUTINE void _RBTree_Rotate(
the_node->parent = c;
}
-/** @brief Determines whether the tree is unique
+/**
+ * @brief Determines whether the tree is unique.
*/
RTEMS_INLINE_ROUTINE bool _RBTree_Is_unique(
const RBTree_Control *the_rbtree
@@ -489,7 +500,8 @@ RTEMS_INLINE_ROUTINE bool _RBTree_Is_unique(
{
return( the_rbtree && the_rbtree->is_unique );
}
-/**@}*/
+
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/scheduler.inl b/cpukit/score/inline/rtems/score/scheduler.inl
index 227cabc399..20460d1540 100644
--- a/cpukit/score/inline/rtems/score/scheduler.inl
+++ b/cpukit/score/inline/rtems/score/scheduler.inl
@@ -1,8 +1,10 @@
-/**
- * @file rtems/score/scheduler.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines Associated with the Manipulation of the Scheduler
*
- * This inline file contains all of the inlined routines associated with
- * the manipulation of the scheduler.
+ * This inline file contains all of the inlined routines associated with
+ * the manipulation of the scheduler.
*/
/*
@@ -22,135 +24,145 @@
#define _RTEMS_SCORE_SCHEDULER_INL
/**
- * @addtogroup ScoreScheduler
- * @{
+ * @addtogroup ScoreScheduler
*/
+/**@{**/
/**
- * The preferred method to add a new scheduler is to define the jump table
- * entries and add a case to the _Scheduler_Initialize routine.
+ * The preferred method to add a new scheduler is to define the jump table
+ * entries and add a case to the _Scheduler_Initialize routine.
*
- * Generic scheduling implementations that rely on the ready queue only can
+ * Generic scheduling implementations that rely on the ready queue only can
* be found in the _Scheduler_queue_XXX functions.
- *
*/
-/* Passing the Scheduler_Control* to these functions allows for multiple
- * scheduler's to exist simultaneously, which could be useful on an SMP
- * system. Then remote Schedulers may be accessible. How to protect such
+/*
+ * Passing the Scheduler_Control* to these functions allows for multiple
+ * scheduler's to exist simultaneously, which could be useful on an SMP
+ * system. Then remote Schedulers may be accessible. How to protect such
* accesses remains an open problem.
*/
-/** @brief _Scheduler_Schedule
+/**
+ * @brief Scheduler schedule.
*
- * This kernel routine implements the scheduling decision logic for
- * the scheduler. It does NOT dispatch.
+ * This kernel routine implements the scheduling decision logic for
+ * the scheduler. It does NOT dispatch.
*/
RTEMS_INLINE_ROUTINE void _Scheduler_Schedule( void )
{
_Scheduler.Operations.schedule();
}
-/** @brief _Scheduler_Yield
+/**
+ * @brief Scheduler yield.
*
- * This routine is invoked when a thread wishes to voluntarily
- * transfer control of the processor to another thread. This routine
- * always operates on the scheduler that 'owns' the currently executing
- * thread.
+ * This routine is invoked when a thread wishes to voluntarily
+ * transfer control of the processor to another thread. This routine
+ * always operates on the scheduler that 'owns' the currently executing
+ * thread.
*/
RTEMS_INLINE_ROUTINE void _Scheduler_Yield( void )
{
_Scheduler.Operations.yield();
}
-/** @brief _Scheduler_Block
+/**
+ * @brief Scheduler block.
*
- * This routine removes @a the_thread from the scheduling decision for
- * the scheduler. The primary task is to remove the thread from the
- * ready queue. It performs any necessary schedulering operations
- * including the selection of a new heir thread.
+ * This routine removes @a the_thread from the scheduling decision for
+ * the scheduler. The primary task is to remove the thread from the
+ * ready queue. It performs any necessary schedulering operations
+ * including the selection of a new heir thread.
*/
-RTEMS_INLINE_ROUTINE void _Scheduler_Block(
- Thread_Control *the_thread
+RTEMS_INLINE_ROUTINE void _Scheduler_Block(
+ Thread_Control *the_thread
)
{
_Scheduler.Operations.block( the_thread );
}
-/** @brief _Scheduler_Unblock
+/**
+ * @brief Scheduler unblock.
*
- * This routine adds @a the_thread to the scheduling decision for
- * the scheduler. The primary task is to add the thread to the
- * ready queue per the schedulering policy and update any appropriate
- * scheduling variables, for example the heir thread.
+ * This routine adds @a the_thread to the scheduling decision for
+ * the scheduler. The primary task is to add the thread to the
+ * ready queue per the schedulering policy and update any appropriate
+ * scheduling variables, for example the heir thread.
*/
RTEMS_INLINE_ROUTINE void _Scheduler_Unblock(
- Thread_Control *the_thread
+ Thread_Control *the_thread
)
{
_Scheduler.Operations.unblock( the_thread );
}
-/** @brief _Scheduler_Allocate
+/**
+ * @brief Scheduler allocate.
*
* This routine allocates @a the_thread->scheduler
*/
-RTEMS_INLINE_ROUTINE void* _Scheduler_Allocate(
+RTEMS_INLINE_ROUTINE void* _Scheduler_Allocate(
Thread_Control *the_thread
)
{
return _Scheduler.Operations.allocate( the_thread );
}
-/** @brief _Scheduler_Free
+/**
+ * @brief Scheduler free.
*
* This routine frees @a the_thread->scheduler
*/
-RTEMS_INLINE_ROUTINE void _Scheduler_Free(
+RTEMS_INLINE_ROUTINE void _Scheduler_Free(
Thread_Control *the_thread
)
{
return _Scheduler.Operations.free( the_thread );
}
-/** @brief _Scheduler_Update
+/**
+ * @brief Scheduler update.
*
* This routine updates @a the_thread->scheduler
*/
-RTEMS_INLINE_ROUTINE void _Scheduler_Update(
+RTEMS_INLINE_ROUTINE void _Scheduler_Update(
Thread_Control *the_thread
)
{
_Scheduler.Operations.update( the_thread );
}
-/** @brief _Scheduler_Enqueue
+/**
+ * @brief Scheduler enqueue.
*
* This routine enqueue @a the_thread->scheduler
*/
-RTEMS_INLINE_ROUTINE void _Scheduler_Enqueue(
+RTEMS_INLINE_ROUTINE void _Scheduler_Enqueue(
Thread_Control *the_thread
)
{
_Scheduler.Operations.enqueue( the_thread );
}
-/** @brief _Scheduler_Enqueue_first
+/**
+ * @brief Scheduler enqueue first.
*
* This routine enqueue_first @a the_thread->scheduler
*/
-RTEMS_INLINE_ROUTINE void _Scheduler_Enqueue_first(
+RTEMS_INLINE_ROUTINE void _Scheduler_Enqueue_first(
Thread_Control *the_thread
)
{
_Scheduler.Operations.enqueue_first( the_thread );
}
-/** @brief _Scheduler_Extract
+/**
+ * @brief Scheduler extract.
*
* This routine extract @a the_thread->scheduler
*/
-RTEMS_INLINE_ROUTINE void _Scheduler_Extract(
+RTEMS_INLINE_ROUTINE void _Scheduler_Extract(
Thread_Control *the_thread
)
{
@@ -158,7 +170,7 @@ RTEMS_INLINE_ROUTINE void _Scheduler_Extract(
}
/**
- * @brief Scheduler Priority compare
+ * @brief Scheduler priority compare.
*
* This routine compares two priorities.
*/
@@ -171,7 +183,7 @@ RTEMS_INLINE_ROUTINE int _Scheduler_Priority_compare(
}
/**
- * @brief Scheduler Release job
+ * @brief Scheduler release job.
*
* This routine is called when a new period of task is issued.
*/
@@ -183,10 +195,11 @@ RTEMS_INLINE_ROUTINE void _Scheduler_Release_job(
_Scheduler.Operations.release_job(the_thread, length);
}
-/** @brief Scheduler Method Invoked at Each Clock Tick
+/**
+ * @brief Scheduler method invoked at each clock tick.
*
* This method is invoked at each clock tick to allow the scheduler
- * implementation to perform any activities required. For the
+ * implementation to perform any activities required. For the
* scheduler which support standard RTEMS features, this includes
* time-slicing management.
*/
@@ -195,7 +208,7 @@ RTEMS_INLINE_ROUTINE void _Scheduler_Tick( void )
_Scheduler.Operations.tick();
}
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/schedulerpriority.inl b/cpukit/score/inline/rtems/score/schedulerpriority.inl
index 5c3dd5fbd6..4655f9501f 100644
--- a/cpukit/score/inline/rtems/score/schedulerpriority.inl
+++ b/cpukit/score/inline/rtems/score/schedulerpriority.inl
@@ -1,8 +1,11 @@
-/**
- * @file rtems/score/schedulerpriority.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines Associated with the Manipulation of the
+ * Priority-Based Scheduling Structures
*
- * This inline file contains all of the inlined routines associated with
- * the manipulation of the priority-based scheduling structures.
+ * This inline file contains all of the inlined routines associated with
+ * the manipulation of the priority-based scheduling structures.
*/
/*
@@ -24,13 +27,14 @@
#include <rtems/score/wkspace.h>
/**
- * @addtogroup ScoreScheduler
- * @{
+ * @addtogroup ScoreScheduler
*/
+/**@{**/
-/** @brief Scheduler priority Ready queue initialize
+/**
+ * @brief Ready queue initialization.
*
- * This routine initializes @a the_ready_queue for priority-based scheduling.
+ * This routine initializes @a the_ready_queue for priority-based scheduling.
*/
RTEMS_INLINE_ROUTINE void _Scheduler_priority_Ready_queue_initialize(void)
{
@@ -49,11 +53,11 @@ RTEMS_INLINE_ROUTINE void _Scheduler_priority_Ready_queue_initialize(void)
}
/**
- * @brief _Scheduler_priority_Ready_queue_enqueue
+ * @brief Put a thread to the ready queue.
+ *
+ * This routine puts @a the_thread on to the priority-based ready queue.
*
- * This routine puts @a the_thread on to the priority-based ready queue.
- *
- * @param[in] the_thread - pointer to thread
+ * @param[in] the_thread is a pointer to the thread
*/
RTEMS_INLINE_ROUTINE void _Scheduler_priority_Ready_queue_enqueue(
Thread_Control *the_thread
@@ -66,18 +70,18 @@ RTEMS_INLINE_ROUTINE void _Scheduler_priority_Ready_queue_enqueue(
ready = sched_info->ready_chain;
_Priority_bit_map_Add( &sched_info->Priority_map );
-
+
_Chain_Append_unprotected( ready, &the_thread->Object.Node );
}
/**
- * @brief _Scheduler_priority_Ready_queue_Enqueue_first
+ * @brief Put a thread to the head of the ready queue.
+ *
+ * This routine puts @a the_thread to the head of the ready queue.
+ * For priority-based ready queues, the thread will be the first thread
+ * at its priority level.
*
- * This routine puts @a the_thread to the head of the ready queue.
- * For priority-based ready queues, the thread will be the first thread
- * at its priority level.
- *
- * @param[in] the_thread - pointer to thread
+ * @param[in] the_thread is a pointer to the thread.
*/
RTEMS_INLINE_ROUTINE void _Scheduler_priority_Ready_queue_enqueue_first(
Thread_Control *the_thread
@@ -96,12 +100,12 @@ RTEMS_INLINE_ROUTINE void _Scheduler_priority_Ready_queue_enqueue_first(
}
/**
- * @brief _Scheduler_priority_Ready_queue_extract
+ * @brief Remove a specific thread from the ready queue.
*
- * This routine removes a specific thread from the specified
- * priority-based ready queue.
+ * This routine removes a specific thread from the specified
+ * priority-based ready queue.
*
- * @param[in] the_thread - pointer to thread
+ * @param[in] the_thread is a pointer to the thread.
*/
RTEMS_INLINE_ROUTINE void _Scheduler_priority_Ready_queue_extract(
Thread_Control *the_thread
@@ -122,13 +126,13 @@ RTEMS_INLINE_ROUTINE void _Scheduler_priority_Ready_queue_extract(
}
/**
- * @brief _Scheduler_priority_Ready_queue_first
+ * @brief Return a pointer to the first thread.
*
- * This routines returns a pointer to the first thread on @a the_ready_queue.
+ * This routines returns a pointer to the first thread on @a the_ready_queue.
*
- * @param[in] the_ready_queue - pointer to thread queue
+ * @param[in] the_ready_queue - pointer to thread queue
*
- * @return This method returns the first thread or NULL
+ * @return This method returns the first thread or NULL
*/
RTEMS_INLINE_ROUTINE Thread_Control *_Scheduler_priority_Ready_queue_first(
Chain_Control *the_ready_queue
@@ -143,12 +147,12 @@ RTEMS_INLINE_ROUTINE Thread_Control *_Scheduler_priority_Ready_queue_first(
}
/**
- * @brief _Scheduler_priority_Ready_queue_requeue
+ * @brief Requeue a thread on the ready queue.
*
- * This routine is invoked when a thread changes priority and should be
- * moved to a different position on the ready queue.
+ * This routine is invoked when a thread changes priority and should be
+ * moved to a different position on the ready queue.
*
- * @param[in] the_thread - pointer to thread
+ * @param[in] the_thread is a pointer to the thread
*/
RTEMS_INLINE_ROUTINE void _Scheduler_priority_Ready_queue_requeue(
Thread_Control *the_thread
@@ -162,19 +166,17 @@ RTEMS_INLINE_ROUTINE void _Scheduler_priority_Ready_queue_requeue(
_Chain_Extract_unprotected( &the_thread->Object.Node );
_Chain_Append_unprotected(
- sched_info->ready_chain,
+ sched_info->ready_chain,
&the_thread->Object.Node
);
}
}
/**
- * @brief _Scheduler_priority_Schedule_body
- *
- * This kernel routine implements scheduling decision logic
- * for priority-based scheduling.
+ * @brief Scheduling decision logic.
*
- * @param[in] the_thread - pointer to thread
+ * This kernel routine implements scheduling decision logic
+ * for priority-based scheduling.
*/
RTEMS_INLINE_ROUTINE void _Scheduler_priority_Schedule_body(void)
{
@@ -184,12 +186,12 @@ RTEMS_INLINE_ROUTINE void _Scheduler_priority_Schedule_body(void)
}
/**
- * @brief Scheduler priority Priority compare body
+ * @brief Priority comparison.
*
- * This routine implements priority comparison for priority-based
- * scheduling.
+ * This routine implements priority comparison for priority-based
+ * scheduling.
*
- * @return >0 for higher priority, 0 for equal and <0 for lower priority.
+ * @return >0 for higher priority, 0 for equal and <0 for lower priority.
*/
RTEMS_INLINE_ROUTINE int _Scheduler_priority_Priority_compare_body(
Priority_Control p1,
@@ -200,7 +202,7 @@ RTEMS_INLINE_ROUTINE int _Scheduler_priority_Priority_compare_body(
return ( p2 - p1 );
}
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/schedulersimple.inl b/cpukit/score/inline/rtems/score/schedulersimple.inl
index b94cd224da..e67fc3cd84 100644
--- a/cpukit/score/inline/rtems/score/schedulersimple.inl
+++ b/cpukit/score/inline/rtems/score/schedulersimple.inl
@@ -1,8 +1,11 @@
-/**
- * @file rtems/score/schedulersimple.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines Associated with the Manipulation of the
+ * Priority-Based Scheduling Structures
*
- * This inline file contains all of the inlined routines associated with
- * the manipulation of the priority-based scheduling structures.
+ * This inline file contains all of the inlined routines associated with
+ * the manipulation of the priority-based scheduling structures.
*/
/*
@@ -23,15 +26,15 @@
#include <rtems/score/thread.h>
/**
- * @addtogroup ScoreScheduler
- * @{
+ * @addtogroup ScoreScheduler
*/
+/**@{**/
/**
- * This routine puts @a the_thread on to the ready queue.
+ * This routine puts @a the_thread on to the ready queue.
*
- * @param[in] the_ready_queue is a pointer to the ready queue head
- * @param[in] the_thread is the thread to be blocked
+ * @param[in] the_ready_queue is a pointer to the ready queue head
+ * @param[in] the_thread is the thread to be blocked
*/
RTEMS_INLINE_ROUTINE void _Scheduler_simple_Ready_queue_requeue(
Scheduler_Control *the_ready_queue,
@@ -45,7 +48,7 @@ RTEMS_INLINE_ROUTINE void _Scheduler_simple_Ready_queue_requeue(
_Scheduler_simple_Ready_queue_enqueue( the_thread );
}
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/stack.inl b/cpukit/score/inline/rtems/score/stack.inl
index 2f60f0f50b..7cb73eef9e 100644
--- a/cpukit/score/inline/rtems/score/stack.inl
+++ b/cpukit/score/inline/rtems/score/stack.inl
@@ -1,8 +1,10 @@
-/**
- * @file rtems/score/stack.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines from the Stack Handler
*
- * This file contains the static inline implementation of the inlined
- * routines from the Stack Handler.
+ * This file contains the static inline implementation of the inlined
+ * routines from the Stack Handler.
*/
/*
@@ -24,14 +26,14 @@
#include <rtems/score/basedefs.h> /* RTEMS_INLINE_ROUTINE */
/**
- * @addtogroup ScoreStack
- * @{
+ * @addtogroup ScoreStack
*/
+/**@{**/
/**
- * This routine initializes the_stack record to indicate that
- * size bytes of memory starting at starting_address have been
- * reserved for a stack.
+ * This routine initializes the_stack record to indicate that
+ * size bytes of memory starting at starting_address have been
+ * reserved for a stack.
*/
RTEMS_INLINE_ROUTINE void _Stack_Initialize (
Stack_Control *the_stack,
@@ -44,10 +46,10 @@ RTEMS_INLINE_ROUTINE void _Stack_Initialize (
}
/**
- * This function returns the minimum stack size configured
- * for this application.
+ * This function returns the minimum stack size configured
+ * for this application.
*
- * @return This method returns the minimum stack size;
+ * @return This method returns the minimum stack size;
*/
RTEMS_INLINE_ROUTINE uint32_t _Stack_Minimum (void)
{
@@ -55,12 +57,12 @@ RTEMS_INLINE_ROUTINE uint32_t _Stack_Minimum (void)
}
/**
- * This function returns true if size bytes is enough memory for
- * a valid stack area on this processor, and false otherwise.
+ * This function returns true if size bytes is enough memory for
+ * a valid stack area on this processor, and false otherwise.
*
- * @param[in] size is the stack size to check
+ * @param[in] size is the stack size to check
*
- * @return This method returns true if the stack is large enough.
+ * @return This method returns true if the stack is large enough.
*/
RTEMS_INLINE_ROUTINE bool _Stack_Is_enough (
size_t size
@@ -70,13 +72,13 @@ RTEMS_INLINE_ROUTINE bool _Stack_Is_enough (
}
/**
- * This function returns the appropriate stack size given the requested
- * size. If the requested size is below the minimum, then the minimum
- * configured stack size is returned.
+ * This function returns the appropriate stack size given the requested
+ * size. If the requested size is below the minimum, then the minimum
+ * configured stack size is returned.
*
- * @param[in] size is the stack size to check
+ * @param[in] size is the stack size to check
*
- * @return This method returns the appropriate stack size.
+ * @return This method returns the appropriate stack size.
*/
RTEMS_INLINE_ROUTINE size_t _Stack_Ensure_minimum (
size_t size
@@ -87,7 +89,7 @@ RTEMS_INLINE_ROUTINE size_t _Stack_Ensure_minimum (
return _Stack_Minimum();
}
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/states.inl b/cpukit/score/inline/rtems/score/states.inl
index f5d816a8d3..5dfdc4230a 100644
--- a/cpukit/score/inline/rtems/score/states.inl
+++ b/cpukit/score/inline/rtems/score/states.inl
@@ -1,12 +1,14 @@
-/**
- * @file rtems/score/states.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines Associated with Thread State Information
*
- * This file contains the static inline implementation of the inlined
- * routines associated with thread state information.
+ * This file contains the static inline implementation of the inlined
+ * routines associated with thread state information.
*/
/*
- * COPYRIGHT (c) 1989-2009.
+ * COPYRIGHT (c) 1989-2012.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -24,18 +26,18 @@
#include <rtems/score/basedefs.h> /* RTEMS_INLINE_ROUTINE */
/**
- * @addtogroup ScoreStates
- * @{
+ * @addtogroup ScoreStates
*/
+/**@{**/
/**
- * This function sets the given states_to_set into the current_state
- * passed in. The result is returned to the user in current_state.
+ * This function sets the given states_to_set into the current_state
+ * passed in. The result is returned to the user in current_state.
*
- * @param[in] states_to_set is the state bits to set
- * @param[in] current_state is the state set to add them to
+ * @param[in] states_to_set is the state bits to set
+ * @param[in] current_state is the state set to add them to
*
- * @return This method returns the updated states value.
+ * @return This method returns the updated states value.
*/
RTEMS_INLINE_ROUTINE States_Control _States_Set (
States_Control states_to_set,
@@ -46,13 +48,13 @@ RTEMS_INLINE_ROUTINE States_Control _States_Set (
}
/**
- * This function clears the given states_to_clear into the current_state
- * passed in. The result is returned to the user in current_state.
+ * This function clears the given states_to_clear into the current_state
+ * passed in. The result is returned to the user in current_state.
*
- * @param[in] states_to_set is the state bits to clean
- * @param[in] current_state is the state set to remove them from
+ * @param[in] states_to_clear is the state bits to clean
+ * @param[in] current_state is the state set to remove them from
*
- * @return This method returns the updated states value.
+ * @return This method returns the updated states value.
*/
RTEMS_INLINE_ROUTINE States_Control _States_Clear (
States_Control states_to_clear,
@@ -63,12 +65,12 @@ RTEMS_INLINE_ROUTINE States_Control _States_Clear (
}
/**
- * This function returns true if the_states indicates that the
- * state is READY, and false otherwise.
+ * This function returns true if the_states indicates that the
+ * state is READY, and false otherwise.
*
- * @param[in] the_states is the task state set to test
+ * @param[in] the_states is the task state set to test
*
- * @return This method returns true if the desired state condition is set.
+ * @return This method returns true if the desired state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_ready (
States_Control the_states
@@ -78,12 +80,12 @@ RTEMS_INLINE_ROUTINE bool _States_Is_ready (
}
/**
- * This function returns true if the DORMANT state is the ONLY state
- * set in the_states, and false otherwise.
+ * This function returns true if the DORMANT state is the ONLY state
+ * set in the_states, and false otherwise.
*
- * @param[in] the_states is the task state set to test
+ * @param[in] the_states is the task state set to test
*
- * @return This method returns true if the desired state condition is set.
+ * @return This method returns true if the desired state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_only_dormant (
States_Control the_states
@@ -93,12 +95,12 @@ RTEMS_INLINE_ROUTINE bool _States_Is_only_dormant (
}
/**
- * This function returns true if the DORMANT state is set in
- * the_states, and false otherwise.
+ * This function returns true if the DORMANT state is set in
+ * the_states, and false otherwise.
*
- * @param[in] the_states is the task state set to test
+ * @param[in] the_states is the task state set to test
*
- * @return This method returns true if the desired state condition is set.
+ * @return This method returns true if the desired state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_dormant (
States_Control the_states
@@ -108,12 +110,12 @@ RTEMS_INLINE_ROUTINE bool _States_Is_dormant (
}
/**
- * This function returns true if the SUSPENDED state is set in
- * the_states, and false otherwise.
+ * This function returns true if the SUSPENDED state is set in
+ * the_states, and false otherwise.
*
- * @param[in] the_states is the task state set to test
+ * @param[in] the_states is the task state set to test
*
- * @return This method returns true if the desired state condition is set.
+ * @return This method returns true if the desired state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_suspended (
States_Control the_states
@@ -123,12 +125,12 @@ RTEMS_INLINE_ROUTINE bool _States_Is_suspended (
}
/**
- * This function returns true if the TRANSIENT state is set in
- * the_states, and false otherwise.
+ * This function returns true if the TRANSIENT state is set in
+ * the_states, and false otherwise.
*
- * @param[in] the_states is the task state set to test
+ * @param[in] the_states is the task state set to test
*
- * @return This method returns true if the desired state condition is set.
+ * @return This method returns true if the desired state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_transient (
States_Control the_states
@@ -138,12 +140,12 @@ RTEMS_INLINE_ROUTINE bool _States_Is_transient (
}
/**
- * This function returns true if the DELAYING state is set in
- * the_states, and false otherwise.
+ * This function returns true if the DELAYING state is set in
+ * the_states, and false otherwise.
*
- * @param[in] the_states is the task state set to test
+ * @param[in] the_states is the task state set to test
*
- * @return This method returns true if the desired state condition is set.
+ * @return This method returns true if the desired state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_delaying (
States_Control the_states
@@ -153,12 +155,12 @@ RTEMS_INLINE_ROUTINE bool _States_Is_delaying (
}
/**
- * This function returns true if the WAITING_FOR_BUFFER state is set in
- * the_states, and false otherwise.
+ * This function returns true if the WAITING_FOR_BUFFER state is set in
+ * the_states, and false otherwise.
*
- * @param[in] the_states is the task state set to test
+ * @param[in] the_states is the task state set to test
*
- * @return This method returns true if the desired state condition is set.
+ * @return This method returns true if the desired state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_buffer (
States_Control the_states
@@ -168,12 +170,12 @@ RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_buffer (
}
/**
- * This function returns true if the WAITING_FOR_SEGMENT state is set in
- * the_states, and false otherwise.
+ * This function returns true if the WAITING_FOR_SEGMENT state is set in
+ * the_states, and false otherwise.
*
- * @param[in] the_states is the task state set to test
+ * @param[in] the_states is the task state set to test
*
- * @return This method returns true if the desired state condition is set.
+ * @return This method returns true if the desired state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_segment (
States_Control the_states
@@ -183,12 +185,12 @@ RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_segment (
}
/**
- * This function returns true if the WAITING_FOR_MESSAGE state is set in
- * the_states, and false otherwise.
+ * This function returns true if the WAITING_FOR_MESSAGE state is set in
+ * the_states, and false otherwise.
*
- * @param[in] the_states is the task state set to test
+ * @param[in] the_states is the task state set to test
*
- * @return This method returns true if the desired state condition is set.
+ * @return This method returns true if the desired state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_message (
States_Control the_states
@@ -198,12 +200,12 @@ RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_message (
}
/**
- * This function returns true if the WAITING_FOR_EVENT state is set in
- * the_states, and false otherwise.
+ * This function returns true if the WAITING_FOR_EVENT state is set in
+ * the_states, and false otherwise.
*
- * @param[in] the_states is the task state set to test
+ * @param[in] the_states is the task state set to test
*
- * @return This method returns true if the desired state condition is set.
+ * @return This method returns true if the desired state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_event (
States_Control the_states
@@ -213,12 +215,12 @@ RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_event (
}
/**
- * This function returns true if the WAITING_FOR_SYSTEM_EVENT state is set in
- * the_states, and false otherwise.
+ * This function returns true if the WAITING_FOR_SYSTEM_EVENT state is set in
+ * the_states, and false otherwise.
*
- * @param[in] the_states is the task state set to test
+ * @param[in] the_states is the task state set to test
*
- * @return This method returns true if the desired state condition is set.
+ * @return This method returns true if the desired state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_system_event (
States_Control the_states
@@ -228,12 +230,12 @@ RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_system_event (
}
/**
- * This function returns true if the WAITING_FOR_MUTEX state
- * is set in the_states, and false otherwise.
+ * This function returns true if the WAITING_FOR_MUTEX state
+ * is set in the_states, and false otherwise.
*
- * @param[in] the_states is the task state set to test
+ * @param[in] the_states is the task state set to test
*
- * @return This method returns true if the desired state condition is set.
+ * @return This method returns true if the desired state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_mutex (
States_Control the_states
@@ -243,12 +245,12 @@ RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_mutex (
}
/**
- * This function returns true if the WAITING_FOR_SEMAPHORE state
- * is set in the_states, and false otherwise.
+ * This function returns true if the WAITING_FOR_SEMAPHORE state
+ * is set in the_states, and false otherwise.
*
- * @param[in] the_states is the task state set to test
+ * @param[in] the_states is the task state set to test
*
- * @return This method returns true if the desired state condition is set.
+ * @return This method returns true if the desired state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_semaphore (
States_Control the_states
@@ -258,12 +260,12 @@ RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_semaphore (
}
/**
- * This function returns true if the WAITING_FOR_TIME state is set in
- * the_states, and false otherwise.
+ * This function returns true if the WAITING_FOR_TIME state is set in
+ * the_states, and false otherwise.
*
- * @param[in] the_states is the task state set to test
+ * @param[in] the_states is the task state set to test
*
- * @return This method returns true if the desired state condition is set.
+ * @return This method returns true if the desired state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_time (
States_Control the_states
@@ -273,12 +275,12 @@ RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_time (
}
/**
- * This function returns true if the WAITING_FOR_TIME state is set in
- * the_states, and false otherwise.
+ * This function returns true if the WAITING_FOR_TIME state is set in
+ * the_states, and false otherwise.
*
- * @param[in] the_states is the task state set to test
+ * @param[in] the_states is the task state set to test
*
- * @return This method returns true if the desired state condition is set.
+ * @return This method returns true if the desired state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_rpc_reply (
States_Control the_states
@@ -288,12 +290,12 @@ RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_rpc_reply (
}
/**
- * This function returns true if the WAITING_FOR_PERIOD state is set in
- * the_states, and false otherwise.
+ * This function returns true if the WAITING_FOR_PERIOD state is set in
+ * the_states, and false otherwise.
*
- * @param[in] the_states is the task state set to test
+ * @param[in] the_states is the task state set to test
*
- * @return This method returns true if the desired state condition is set.
+ * @return This method returns true if the desired state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_period (
States_Control the_states
@@ -303,12 +305,12 @@ RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_period (
}
/**
- * This function returns true if the task's state is set in
- * way that allows it to be interrupted by a signal.
+ * This function returns true if the task's state is set in
+ * way that allows it to be interrupted by a signal.
*
- * @param[in] the_states is the task state set to test
+ * @param[in] the_states is the task state set to test
*
- * @return This method returns true if the desired state condition is set.
+ * @return This method returns true if the desired state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_interruptible_by_signal (
States_Control the_states
@@ -318,13 +320,13 @@ RTEMS_INLINE_ROUTINE bool _States_Is_interruptible_by_signal (
}
/**
- * This function returns true if one of the states which indicates
- * that a task is blocked waiting for a local resource is set in
- * the_states, and false otherwise.
+ * This function returns true if one of the states which indicates
+ * that a task is blocked waiting for a local resource is set in
+ * the_states, and false otherwise.
*
- * @param[in] the_states is the task state set to test
+ * @param[in] the_states is the task state set to test
*
- * @return This method returns true if the desired state condition is set.
+ * @return This method returns true if the desired state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_locally_blocked (
@@ -335,14 +337,14 @@ RTEMS_INLINE_ROUTINE bool _States_Is_locally_blocked (
}
/**
- * This function returns true if one of the states which indicates
- * that a task is blocked waiting for a local resource is set in
- * the_states, and false otherwise.
+ * This function returns true if one of the states which indicates
+ * that a task is blocked waiting for a local resource is set in
+ * the_states, and false otherwise.
*
- * @param[in] the_states is the task state set to test
+ * @param[in] the_states is the task state set to test
*
- * @return This method returns true if the state indicates that the
- * assocated thread is waiting on a thread queue.
+ * @return This method returns true if the state indicates that the
+ * assocated thread is waiting on a thread queue.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_on_thread_queue (
States_Control the_states
@@ -352,13 +354,13 @@ RTEMS_INLINE_ROUTINE bool _States_Is_waiting_on_thread_queue (
}
/**
- * This function returns true if one of the states which indicates
- * that a task is blocked is set in the_states, and false otherwise.
+ * This function returns true if one of the states which indicates
+ * that a task is blocked is set in the_states, and false otherwise.
*
- * @param[in] the_states is the task state set to test
+ * @param[in] the_states is the task state set to test
*
- * @return This method returns true if the state indicates that the
- * assocated thread is blocked.
+ * @return This method returns true if the state indicates that the
+ * assocated thread is blocked.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_blocked (
States_Control the_states
@@ -368,13 +370,13 @@ RTEMS_INLINE_ROUTINE bool _States_Is_blocked (
}
/**
- * This function returns true if any of the states in the mask
- * are set in the_states, and false otherwise.
+ * This function returns true if any of the states in the mask
+ * are set in the_states, and false otherwise.
*
- * @param[in] the_states is the task state set to test
- * @param[in] mask is the state bits to test for
+ * @param[in] the_states is the task state set to test
+ * @param[in] mask is the state bits to test for
*
- * @return This method returns true if the indicates state condition is set.
+ * @return This method returns true if the indicates state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Are_set (
States_Control the_states,
@@ -384,7 +386,7 @@ RTEMS_INLINE_ROUTINE bool _States_Are_set (
return ( (the_states & mask) != STATES_READY);
}
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/sysstate.inl b/cpukit/score/inline/rtems/score/sysstate.inl
index 02d2598690..3fa534ce17 100644
--- a/cpukit/score/inline/rtems/score/sysstate.inl
+++ b/cpukit/score/inline/rtems/score/sysstate.inl
@@ -1,9 +1,7 @@
-/**
+/**
* @file
*
- * @ingroup ScoreSysState
- *
- * @brief System State Handler API.
+ * @brief System State Handler API
*/
/*
@@ -23,10 +21,9 @@
#define _RTEMS_SCORE_SYSSTATE_INL
/**
- * @addtogroup ScoreSysState
- *
- * @{
+ * @addtogroup ScoreSysState
*/
+/**@{**/
RTEMS_INLINE_ROUTINE void _System_state_Set (
System_state_Codes state
@@ -34,7 +31,7 @@ RTEMS_INLINE_ROUTINE void _System_state_Set (
{
_System_state_Current = state;
}
-
+
RTEMS_INLINE_ROUTINE void _System_state_Handler_initialization (
#if defined(RTEMS_MULTIPROCESSING)
bool is_multiprocessing
@@ -96,7 +93,7 @@ RTEMS_INLINE_ROUTINE bool _System_state_Is_failed (
return (state == SYSTEM_STATE_FAILED);
}
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/thread.inl b/cpukit/score/inline/rtems/score/thread.inl
index 272c14fdf2..681cfcc3df 100644
--- a/cpukit/score/inline/rtems/score/thread.inl
+++ b/cpukit/score/inline/rtems/score/thread.inl
@@ -1,8 +1,10 @@
-/**
- * @file rtems/score/thread.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines from the Thread Handler
*
- * This file contains the macro implementation of the inlined
- * routines from the Thread handler.
+ * This file contains the macro implementation of the inlined
+ * routines from the Thread handler.
*/
/*
@@ -25,9 +27,9 @@
#include <rtems/score/context.h>
/**
- * @addtogroup ScoreThread
- * @{
+ * @addtogroup ScoreThread
*/
+/**@{**/
#if defined(RTEMS_SMP)
@@ -37,8 +39,9 @@
#else
- /** @brief _Thread_Dispatch_in_critical_section
- *
+ /**
+ * @brief _Thread_Dispatch_in_critical_section
+ *
* This routine returns true if thread dispatch indicates
* that we are in a critical section.
*/
@@ -50,8 +53,9 @@
return true;
}
- /** @brief _Thread_Dispatch_get_disable_level
- *
+ /**
+ * @brief Get thread dispatch disable level.
+ *
* This routine returns value of the the thread dispatch level.
*/
RTEMS_INLINE_ROUTINE uint32_t _Thread_Dispatch_get_disable_level(void)
@@ -59,9 +63,10 @@
return _Thread_Dispatch_disable_level;
}
- /** @brief _Thread_Dispatch_set_disable_level
- *
- * This routine sets thread dispatch level to the
+ /**
+ * @brief Set thread dispatch disable level.
+ *
+ * This routine sets thread dispatch level to the
* value passed in.
*/
RTEMS_INLINE_ROUTINE uint32_t _Thread_Dispatch_set_disable_level(uint32_t value)
@@ -70,8 +75,9 @@
return value;
}
- /** @brief _Thread_Dispatch_increment_disable_level
- *
+ /**
+ * @brief Increase thread dispatch disable level.
+ *
* This rountine increments the thread dispatch level
*/
RTEMS_INLINE_ROUTINE uint32_t _Thread_Dispatch_increment_disable_level(void)
@@ -84,8 +90,9 @@
return level;
}
- /** @brief _Thread_Dispatch_decrement_disable_level
- *
+ /**
+ * @brief Decrease thread dispatch disable level.
+ *
* This routine decrements the thread dispatch level.
*/
RTEMS_INLINE_ROUTINE uint32_t _Thread_Dispatch_decrement_disable_level(void)
@@ -98,9 +105,10 @@
return level;
}
- /** @brief _Thread_Dispatch_initialization
- *
- * This routine initializes the thread dispatching subsystem.
+ /**
+ * @brief Thread dispatch initialization.
+ *
+ * This routine initializes the thread dispatching subsystem.
*/
RTEMS_INLINE_ROUTINE void _Thread_Dispatch_initialization( void )
{
@@ -110,9 +118,9 @@
#endif
/**
- * This routine halts multitasking and returns control to
- * the "thread" (i.e. the BSP) which initially invoked the
- * routine which initialized the system.
+ * This routine halts multitasking and returns control to
+ * the "thread" (i.e. the BSP) which initially invoked the
+ * routine which initialized the system.
*/
RTEMS_INLINE_ROUTINE void _Thread_Stop_multitasking( void )
@@ -140,8 +148,8 @@ RTEMS_INLINE_ROUTINE void _Thread_Stop_multitasking( void )
}
/**
- * This function returns true if the_thread is the currently executing
- * thread, and false otherwise.
+ * This function returns true if the_thread is the currently executing
+ * thread, and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool _Thread_Is_executing (
@@ -152,8 +160,8 @@ RTEMS_INLINE_ROUTINE bool _Thread_Is_executing (
}
/**
- * This function returns true if the_thread is the heir
- * thread, and false otherwise.
+ * This function returns true if the_thread is the heir
+ * thread, and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool _Thread_Is_heir (
@@ -164,8 +172,8 @@ RTEMS_INLINE_ROUTINE bool _Thread_Is_heir (
}
/**
- * This function returns true if the currently executing thread
- * is also the heir thread, and false otherwise.
+ * This function returns true if the currently executing thread
+ * is also the heir thread, and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool _Thread_Is_executing_also_the_heir( void )
@@ -174,9 +182,9 @@ RTEMS_INLINE_ROUTINE bool _Thread_Is_executing_also_the_heir( void )
}
/**
- * This routine clears any blocking state for the_thread. It performs
- * any necessary scheduling operations including the selection of
- * a new heir thread.
+ * This routine clears any blocking state for the_thread. It performs
+ * any necessary scheduling operations including the selection of
+ * a new heir thread.
*/
RTEMS_INLINE_ROUTINE void _Thread_Unblock (
@@ -187,8 +195,8 @@ RTEMS_INLINE_ROUTINE void _Thread_Unblock (
}
/**
- * This routine resets the current context of the calling thread
- * to that of its initial state.
+ * This routine resets the current context of the calling thread
+ * to that of its initial state.
*/
RTEMS_INLINE_ROUTINE void _Thread_Restart_self( void )
@@ -202,9 +210,9 @@ RTEMS_INLINE_ROUTINE void _Thread_Restart_self( void )
}
/**
- * This function returns true if the floating point context of
- * the_thread is currently loaded in the floating point unit, and
- * false otherwise.
+ * This function returns true if the floating point context of
+ * the_thread is currently loaded in the floating point unit, and
+ * false otherwise.
*/
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )
@@ -217,8 +225,8 @@ RTEMS_INLINE_ROUTINE bool _Thread_Is_allocated_fp (
#endif
/**
- * This routine is invoked when the currently loaded floating
- * point context is now longer associated with an active thread.
+ * This routine is invoked when the currently loaded floating
+ * point context is now longer associated with an active thread.
*/
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )
@@ -229,7 +237,7 @@ RTEMS_INLINE_ROUTINE void _Thread_Deallocate_fp( void )
#endif
/**
- * This routine prevents dispatching.
+ * This routine prevents dispatching.
*/
#if defined ( __THREAD_DO_NOT_INLINE_DISABLE_DISPATCH__ )
@@ -243,10 +251,10 @@ RTEMS_INLINE_ROUTINE void _Thread_Disable_dispatch( void )
#endif
/**
- * This routine allows dispatching to occur again. If this is
- * the outer most dispatching critical section, then a dispatching
- * operation will be performed and, if necessary, control of the
- * processor will be transferred to the heir thread.
+ * This routine allows dispatching to occur again. If this is
+ * the outer most dispatching critical section, then a dispatching
+ * operation will be performed and, if necessary, control of the
+ * processor will be transferred to the heir thread.
*/
#if defined ( __THREAD_DO_NOT_INLINE_ENABLE_DISPATCH__ )
@@ -262,9 +270,9 @@ RTEMS_INLINE_ROUTINE void _Thread_Disable_dispatch( void )
#endif
/**
- * This routine allows dispatching to occur again. However,
- * no dispatching operation is performed even if this is the outer
- * most dispatching critical section.
+ * This routine allows dispatching to occur again. However,
+ * no dispatching operation is performed even if this is the outer
+ * most dispatching critical section.
*/
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )
@@ -274,8 +282,8 @@ RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )
}
/**
- * This function returns true if dispatching is disabled, and false
- * otherwise.
+ * This function returns true if dispatching is disabled, and false
+ * otherwise.
*/
RTEMS_INLINE_ROUTINE bool _Thread_Is_dispatching_enabled( void )
@@ -284,8 +292,8 @@ RTEMS_INLINE_ROUTINE bool _Thread_Is_dispatching_enabled( void )
}
/**
- * This function returns true if dispatching is disabled, and false
- * otherwise.
+ * This function returns true if dispatching is disabled, and false
+ * otherwise.
*/
RTEMS_INLINE_ROUTINE bool _Thread_Is_context_switch_necessary( void )
@@ -294,7 +302,7 @@ RTEMS_INLINE_ROUTINE bool _Thread_Is_context_switch_necessary( void )
}
/**
- * This function returns true if the_thread is NULL and false otherwise.
+ * This function returns true if the_thread is NULL and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool _Thread_Is_null (
@@ -304,9 +312,10 @@ RTEMS_INLINE_ROUTINE bool _Thread_Is_null (
return ( the_thread == NULL );
}
-/** @brief _Thread_Is_proxy_blocking
+/**
+ * @brief Is proxy blocking.
*
- * status which indicates that a proxy is blocking, and false otherwise.
+ * status which indicates that a proxy is blocking, and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool _Thread_Is_proxy_blocking (
uint32_t code
@@ -316,18 +325,18 @@ RTEMS_INLINE_ROUTINE bool _Thread_Is_proxy_blocking (
}
/**
- * This routine allocates an internal thread.
+ * This routine allocates an internal thread.
*/
-
+
RTEMS_INLINE_ROUTINE Thread_Control *_Thread_Internal_allocate( void )
{
return (Thread_Control *) _Objects_Allocate( &_Thread_Internal_information );
}
-
+
/**
- * This routine frees an internal thread.
+ * This routine frees an internal thread.
*/
-
+
RTEMS_INLINE_ROUTINE void _Thread_Internal_free (
Thread_Control *the_task
)
@@ -336,18 +345,18 @@ RTEMS_INLINE_ROUTINE void _Thread_Internal_free (
}
/**
- * This routine returns the C library re-enterant pointer.
+ * This routine returns the C library re-enterant pointer.
*/
-
+
RTEMS_INLINE_ROUTINE struct _reent **_Thread_Get_libc_reent( void )
{
return _Thread_libc_reent;
}
/**
- * This routine set the C library re-enterant pointer.
+ * This routine set the C library re-enterant pointer.
*/
-
+
RTEMS_INLINE_ROUTINE void _Thread_Set_libc_reent (
struct _reent **libc_reent
)
@@ -356,13 +365,13 @@ RTEMS_INLINE_ROUTINE void _Thread_Set_libc_reent (
}
/**
- * This routine evaluates the current scheduling information for the
- * system and determines if a context switch is required. This
- * is usually called after changing an execution mode such as preemptability
- * for a thread.
+ * This routine evaluates the current scheduling information for the
+ * system and determines if a context switch is required. This
+ * is usually called after changing an execution mode such as preemptability
+ * for a thread.
*
- * @param[in] are_signals_pending specifies whether or not the API
- * level signals are pending and a dispatch is needed.
+ * @param[in] are_signals_pending specifies whether or not the API
+ * level signals are pending and a dispatch is needed.
*/
RTEMS_INLINE_ROUTINE bool _Thread_Evaluate_is_dispatch_needed(
bool are_signals_pending
@@ -381,7 +390,7 @@ RTEMS_INLINE_ROUTINE bool _Thread_Evaluate_is_dispatch_needed(
return false;
}
-/**@}*/
+/** @}*/
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/threadmp.inl b/cpukit/score/inline/rtems/score/threadmp.inl
index 81ecb6dcc6..85088d1b73 100644
--- a/cpukit/score/inline/rtems/score/threadmp.inl
+++ b/cpukit/score/inline/rtems/score/threadmp.inl
@@ -1,8 +1,10 @@
-/**
- * @file rtems/score/threadmp.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines for the Multiprocessing part of Thread Package
*
- * This include file contains the bodies of all inlined routines
- * for the multiprocessing part of thread package.
+ * This include file contains the bodies of all inlined routines
+ * for the multiprocessing part of thread package.
*/
/*
@@ -24,23 +26,23 @@
#define _RTEMS_SCORE_THREADMP_INL
/**
- * @addtogroup ScoreThreadMP
- * @{
+ * @addtogroup ScoreThreadMP
*/
+/**@{**/
/**
- * This function returns true if the thread in question is the
- * multiprocessing receive thread.
+ * This function returns true if the thread in question is the
+ * multiprocessing receive thread.
*
- * @note This is a macro to avoid needing a prototype for
- * _MPCI_Receive_server_tcb until it is used.
+ * @note This is a macro to avoid needing a prototype for
+ * _MPCI_Receive_server_tcb until it is used.
*/
#define _Thread_MP_Is_receive(_the_thread) \
((_the_thread) == _MPCI_Receive_server_tcb)
/**
- * This routine frees a proxy control block to the
- * inactive chain of free proxy control blocks.
+ * This routine frees a proxy control block to the
+ * inactive chain of free proxy control blocks.
*/
RTEMS_INLINE_ROUTINE void _Thread_MP_Free_proxy (
@@ -56,7 +58,7 @@ RTEMS_INLINE_ROUTINE void _Thread_MP_Free_proxy (
_Chain_Append( &_Thread_MP_Inactive_proxies, &the_thread->Object.Node );
}
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/threadq.inl b/cpukit/score/inline/rtems/score/threadq.inl
index d16013d19f..d64638908a 100644
--- a/cpukit/score/inline/rtems/score/threadq.inl
+++ b/cpukit/score/inline/rtems/score/threadq.inl
@@ -1,8 +1,10 @@
-/**
- * @file rtems/score/threadq.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines Associated with the Manipulation of Thread Queues
*
- * This inline file contains all of the inlined routines associated with
- * the manipulation of thread queues.
+ * This inline file contains all of the inlined routines associated with
+ * the manipulation of thread queues.
*/
/*
@@ -24,11 +26,11 @@
#include <rtems/score/thread.h>
/**
- * @addtogroup ScoreThreadQ
- * @{
+ * @addtogroup ScoreThreadQ
*/
+/**@{**/
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/tod.inl b/cpukit/score/inline/rtems/score/tod.inl
index d8a8bb7f20..89b2634d95 100644
--- a/cpukit/score/inline/rtems/score/tod.inl
+++ b/cpukit/score/inline/rtems/score/tod.inl
@@ -1,8 +1,10 @@
-/**
- * @file rtems/score/tod.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines from the Time of Day Handle
*
- * This file contains the static inline implementation of the inlined routines
- * from the Time of Day Handler.
+ * This file contains the static inline implementation of the inlined routines
+ * from the Time of Day Handler.
*/
/*
@@ -26,12 +28,12 @@
#include <rtems/score/isr.h>
/**
- * @addtogroup ScoreTOD
- * @{
+ * @addtogroup ScoreTOD
*/
+/**@{**/
/**
- * This routine deactivates updating of the current time of day.
+ * This routine deactivates updating of the current time of day.
*/
RTEMS_INLINE_ROUTINE void _TOD_Deactivate( void )
@@ -40,7 +42,7 @@ RTEMS_INLINE_ROUTINE void _TOD_Deactivate( void )
}
/**
- * This routine activates updating of the current time of day.
+ * This routine activates updating of the current time of day.
*/
RTEMS_INLINE_ROUTINE void _TOD_Activate( void )
@@ -49,7 +51,7 @@ RTEMS_INLINE_ROUTINE void _TOD_Activate( void )
}
/**
- * This routine returns a timeval based upon the internal timespec format TOD.
+ * This routine returns a timeval based upon the internal timespec format TOD.
*/
RTEMS_INLINE_ROUTINE void _TOD_Get_timeval(
@@ -64,7 +66,7 @@ RTEMS_INLINE_ROUTINE void _TOD_Get_timeval(
_Timestamp_To_timeval( snapshot_as_timestamp_ptr, time );
}
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/tqdata.inl b/cpukit/score/inline/rtems/score/tqdata.inl
index aa7aaf4dc7..c5b85d2786 100644
--- a/cpukit/score/inline/rtems/score/tqdata.inl
+++ b/cpukit/score/inline/rtems/score/tqdata.inl
@@ -1,8 +1,10 @@
-/**
- * @file rtems/score/tqdata.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines Needed to Support the Thread Queue Data
*
- * This file contains the static inline implementation of the inlined
- * routines needed to support the Thread Queue Data.
+ * This file contains the static inline implementation of the inlined
+ * routines needed to support the Thread Queue Data.
*/
/*
@@ -22,13 +24,13 @@
#define _RTEMS_SCORE_TQDATA_INL
/**
- * @addtogroup ScoreThreadQ
- * @{
+ * @addtogroup ScoreThreadQ
*/
+/**@{**/
/**
- * This function returns the index of the priority chain on which
- * a thread of the_priority should be placed.
+ * This function returns the index of the priority chain on which
+ * a thread of the_priority should be placed.
*/
RTEMS_INLINE_ROUTINE uint32_t _Thread_queue_Header_number (
@@ -39,9 +41,9 @@ RTEMS_INLINE_ROUTINE uint32_t _Thread_queue_Header_number (
}
/**
- * This function returns true if the_priority indicates that the
- * enqueue search should start at the front of this priority
- * group chain, and false if the search should start at the rear.
+ * This function returns true if the_priority indicates that the
+ * enqueue search should start at the front of this priority
+ * group chain, and false if the search should start at the rear.
*/
RTEMS_INLINE_ROUTINE bool _Thread_queue_Is_reverse_search (
@@ -52,10 +54,10 @@ RTEMS_INLINE_ROUTINE bool _Thread_queue_Is_reverse_search (
}
/**
- * This routine is invoked to indicate that the specified thread queue is
- * entering a critical section.
+ * This routine is invoked to indicate that the specified thread queue is
+ * entering a critical section.
*/
-
+
RTEMS_INLINE_ROUTINE void _Thread_queue_Enter_critical_section (
Thread_queue_Control *the_thread_queue
)
@@ -63,9 +65,7 @@ RTEMS_INLINE_ROUTINE void _Thread_queue_Enter_critical_section (
the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;
}
-/**
- * @}
- */
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/watchdog.inl b/cpukit/score/inline/rtems/score/watchdog.inl
index e73a419e32..cfee466df2 100644
--- a/cpukit/score/inline/rtems/score/watchdog.inl
+++ b/cpukit/score/inline/rtems/score/watchdog.inl
@@ -1,8 +1,10 @@
-/**
- * @file rtems/score/watchdog.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines in the Watchdog Handler
*
- * This file contains the static inline implementation of all inlined
- * routines in the Watchdog Handler.
+ * This file contains the static inline implementation of all inlined
+ * routines in the Watchdog Handler.
*/
/*
@@ -22,14 +24,14 @@
#define _RTEMS_SCORE_WATCHDOG_INL
/**
- * @addtogroup ScoreWatchdog
+ * @addtogroup ScoreWatchdog
* @{
*/
/**
- * This routine initializes the specified watchdog. The watchdog is
- * made inactive, the watchdog id and handler routine are set to the
- * specified values.
+ * This routine initializes the specified watchdog. The watchdog is
+ * made inactive, the watchdog id and handler routine are set to the
+ * specified values.
*/
RTEMS_INLINE_ROUTINE void _Watchdog_Initialize(
@@ -46,8 +48,8 @@ RTEMS_INLINE_ROUTINE void _Watchdog_Initialize(
}
/**
- * This routine returns true if the watchdog timer is in the ACTIVE
- * state, and false otherwise.
+ * This routine returns true if the watchdog timer is in the ACTIVE
+ * state, and false otherwise.
*/
RTEMS_INLINE_ROUTINE bool _Watchdog_Is_active(
@@ -60,8 +62,8 @@ RTEMS_INLINE_ROUTINE bool _Watchdog_Is_active(
}
/**
- * This routine activates THE_WATCHDOG timer which is already
- * on a watchdog chain.
+ * This routine activates THE_WATCHDOG timer which is already
+ * on a watchdog chain.
*/
RTEMS_INLINE_ROUTINE void _Watchdog_Activate(
@@ -74,8 +76,8 @@ RTEMS_INLINE_ROUTINE void _Watchdog_Activate(
}
/**
- * This routine deactivates THE_WATCHDOG timer which will remain
- * on a watchdog chain.
+ * This routine deactivates THE_WATCHDOG timer which will remain
+ * on a watchdog chain.
*/
RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(
@@ -88,8 +90,8 @@ RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(
}
/**
- * This routine is invoked at each clock tick to update the ticks
- * watchdog chain.
+ * This routine is invoked at each clock tick to update the ticks
+ * watchdog chain.
*/
RTEMS_INLINE_ROUTINE void _Watchdog_Tickle_ticks( void )
@@ -100,8 +102,8 @@ RTEMS_INLINE_ROUTINE void _Watchdog_Tickle_ticks( void )
}
/**
- * This routine is invoked at each clock tick to update the seconds
- * watchdog chain.
+ * This routine is invoked at each clock tick to update the seconds
+ * watchdog chain.
*/
RTEMS_INLINE_ROUTINE void _Watchdog_Tickle_seconds( void )
@@ -112,10 +114,10 @@ RTEMS_INLINE_ROUTINE void _Watchdog_Tickle_seconds( void )
}
/**
- * This routine inserts THE_WATCHDOG into the ticks watchdog chain
- * for a time of UNITS ticks. The INSERT_MODE indicates whether
- * THE_WATCHDOG is to be activated automatically or later, explicitly
- * by the caller.
+ * This routine inserts THE_WATCHDOG into the ticks watchdog chain
+ * for a time of UNITS ticks. The INSERT_MODE indicates whether
+ * THE_WATCHDOG is to be activated automatically or later, explicitly
+ * by the caller.
*/
RTEMS_INLINE_ROUTINE void _Watchdog_Insert_ticks(
@@ -131,10 +133,10 @@ RTEMS_INLINE_ROUTINE void _Watchdog_Insert_ticks(
}
/**
- * This routine inserts THE_WATCHDOG into the seconds watchdog chain
- * for a time of UNITS seconds. The INSERT_MODE indicates whether
- * THE_WATCHDOG is to be activated automatically or later, explicitly
- * by the caller.
+ * This routine inserts THE_WATCHDOG into the seconds watchdog chain
+ * for a time of UNITS seconds. The INSERT_MODE indicates whether
+ * THE_WATCHDOG is to be activated automatically or later, explicitly
+ * by the caller.
*/
RTEMS_INLINE_ROUTINE void _Watchdog_Insert_seconds(
@@ -150,9 +152,9 @@ RTEMS_INLINE_ROUTINE void _Watchdog_Insert_seconds(
}
/**
- * This routine adjusts the seconds watchdog chain in the forward
- * or backward DIRECTION for UNITS seconds. This is invoked when the
- * current time of day is changed.
+ * This routine adjusts the seconds watchdog chain in the forward
+ * or backward DIRECTION for UNITS seconds. This is invoked when the
+ * current time of day is changed.
*/
RTEMS_INLINE_ROUTINE void _Watchdog_Adjust_seconds(
@@ -166,8 +168,8 @@ RTEMS_INLINE_ROUTINE void _Watchdog_Adjust_seconds(
}
/**
- * This routine adjusts the ticks watchdog chain in the forward
- * or backward DIRECTION for UNITS ticks.
+ * This routine adjusts the ticks watchdog chain in the forward
+ * or backward DIRECTION for UNITS ticks.
*/
RTEMS_INLINE_ROUTINE void _Watchdog_Adjust_ticks(
@@ -181,10 +183,10 @@ RTEMS_INLINE_ROUTINE void _Watchdog_Adjust_ticks(
}
/**
- * This routine resets THE_WATCHDOG timer to its state at INSERT
- * time. This routine is valid only on interval watchdog timers
- * and is used to make an interval watchdog timer fire "every" so
- * many ticks.
+ * This routine resets THE_WATCHDOG timer to its state at INSERT
+ * time. This routine is valid only on interval watchdog timers
+ * and is used to make an interval watchdog timer fire "every" so
+ * many ticks.
*/
RTEMS_INLINE_ROUTINE void _Watchdog_Reset(
@@ -199,8 +201,8 @@ RTEMS_INLINE_ROUTINE void _Watchdog_Reset(
}
/**
- * This routine returns a pointer to the watchdog timer following
- * THE_WATCHDOG on the watchdog chain.
+ * This routine returns a pointer to the watchdog timer following
+ * THE_WATCHDOG on the watchdog chain.
*/
RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Next(
@@ -213,8 +215,8 @@ RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Next(
}
/**
- * This routine returns a pointer to the watchdog timer preceding
- * THE_WATCHDOG on the watchdog chain.
+ * This routine returns a pointer to the watchdog timer preceding
+ * THE_WATCHDOG on the watchdog chain.
*/
RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Previous(
@@ -227,8 +229,8 @@ RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Previous(
}
/**
- * This routine returns a pointer to the first watchdog timer
- * on the watchdog chain HEADER.
+ * This routine returns a pointer to the first watchdog timer
+ * on the watchdog chain HEADER.
*/
RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_First(
@@ -241,8 +243,8 @@ RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_First(
}
/**
- * This routine returns a pointer to the last watchdog timer
- * on the watchdog chain HEADER.
+ * This routine returns a pointer to the last watchdog timer
+ * on the watchdog chain HEADER.
*/
RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Last(
@@ -254,7 +256,7 @@ RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Last(
}
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/wkspace.inl b/cpukit/score/inline/rtems/score/wkspace.inl
index 5d3748a7a5..16679c8ff3 100644
--- a/cpukit/score/inline/rtems/score/wkspace.inl
+++ b/cpukit/score/inline/rtems/score/wkspace.inl
@@ -1,8 +1,10 @@
-/**
- * @file rtems/score/wkspace.inl
+/**
+ * @file
+ *
+ * @brief Inlined Routines Associated with the RAM Workspace
*
- * This include file contains the bodies of the routines which contains
- * information related to the RAM Workspace.
+ * This include file contains the bodies of the routines which contains
+ * information related to the RAM Workspace.
*/
/*
@@ -22,11 +24,12 @@
#define _RTEMS_SCORE_WKSPACE_INL
/**
- * @addtogroup ScoreWorkspace
+ * @addtogroup ScoreWorkspace
+ *
* @{
*/
-/**@}*/
+/** @} */
#endif
/* end of include file */
diff --git a/cpukit/score/src/objectshrinkinformation.c b/cpukit/score/src/objectshrinkinformation.c
index de32f24d8d..466a85df74 100644
--- a/cpukit/score/src/objectshrinkinformation.c
+++ b/cpukit/score/src/objectshrinkinformation.c
@@ -34,12 +34,9 @@ void _Objects_Shrink_information(
Objects_Information *information
)
{
- Objects_Control *the_object;
- Objects_Control *extract_me;
uint32_t block_count;
uint32_t block;
uint32_t index_base;
- uint32_t index;
/*
* Search the list to find block or chunk with all objects inactive.
@@ -52,25 +49,24 @@ void _Objects_Shrink_information(
for ( block = 0; block < block_count; block++ ) {
if ( information->inactive_per_block[ block ] ==
information->allocation_size ) {
+ Chain_Node *node = _Chain_First( &information->Inactive );
+ const Chain_Node *tail = _Chain_Immutable_tail( &information->Inactive );
+ uint32_t index_end = index_base + information->allocation_size;
- /*
- * Assume the Inactive chain is never empty at this point
- */
- the_object = (Objects_Control *) _Chain_First( &information->Inactive );
+ while ( node != tail ) {
+ Objects_Control *object = (Objects_Control *) node;
+ uint32_t index = _Objects_Get_index( object->id );
+
+ /*
+ * Get the next node before the node is extracted
+ */
+ node = _Chain_Next( node );
+
+ if ( index >= index_base && index < index_end ) {
+ _Chain_Extract( &object->Node );
+ }
+ }
- do {
- index = _Objects_Get_index( the_object->id );
- /*
- * Get the next node before the node is extracted
- */
- extract_me = the_object;
- the_object = (Objects_Control *) the_object->Node.next;
- if ((index >= index_base) &&
- (index < (index_base + information->allocation_size))) {
- _Chain_Extract( &extract_me->Node );
- }
- }
- while ( the_object );
/*
* Free the memory and reset the structures in the object' information
*/
diff --git a/cpukit/score/src/rbtreefind.c b/cpukit/score/src/rbtreefind.c
index 2e8cdc3bff..2eb92a5ac5 100644
--- a/cpukit/score/src/rbtreefind.c
+++ b/cpukit/score/src/rbtreefind.c
@@ -23,8 +23,8 @@
#include <rtems/score/isr.h>
RBTree_Node *_RBTree_Find(
- RBTree_Control *the_rbtree,
- RBTree_Node *search_node
+ const RBTree_Control *the_rbtree,
+ const RBTree_Node *search_node
)
{
ISR_Level level;
@@ -36,3 +36,27 @@ RBTree_Node *_RBTree_Find(
_ISR_Enable( level );
return return_node;
}
+
+RBTree_Node *_RBTree_Find_unprotected(
+ const RBTree_Control *the_rbtree,
+ const RBTree_Node *the_node
+)
+{
+ RBTree_Node* iter_node = the_rbtree->root;
+ RBTree_Node* found = NULL;
+ int compare_result;
+ while (iter_node) {
+ compare_result = the_rbtree->compare_function(the_node, iter_node);
+ if ( _RBTree_Is_equal( compare_result ) ) {
+ found = iter_node;
+ if ( the_rbtree->is_unique )
+ break;
+ }
+
+ RBTree_Direction dir =
+ (RBTree_Direction) _RBTree_Is_greater( compare_result );
+ iter_node = iter_node->child[dir];
+ } /* while(iter_node) */
+
+ return found;
+}
diff --git a/doc/user/fatal.t b/doc/user/fatal.t
index 1b725e89f4..20faa642ba 100644
--- a/doc/user/fatal.t
+++ b/doc/user/fatal.t
@@ -230,6 +230,33 @@ Prints the exception frame via printk().
@c
@c
@page
+@subsection FATAL_SOURCE_DESCRIPTION - Returns a description for a fatal source
+
+@cindex fatal error
+
+@subheading CALLING SEQUENCE:
+
+@ifset is-C
+@findex rtems_fatal_source_description
+@example
+const char *rtems_fatal_source_description(
+ rtems_fatal_source source
+);
+@end example
+@end ifset
+
+@subheading DIRECTIVE STATUS CODES
+
+The fatal source description or "?" in case the passed fatal source is invalid.
+
+@subheading DESCRIPTION:
+
+Returns a description for a fatal source.
+
+@c
+@c
+@c
+@page
@subsection INTERNAL_ERROR_DESCRIPTION - Returns a description for an internal error code
@cindex fatal error
diff --git a/testsuites/fstests/fsrdwr/init.c b/testsuites/fstests/fsrdwr/init.c
index 1ab9ccbb6b..2bdaeaa197 100644
--- a/testsuites/fstests/fsrdwr/init.c
+++ b/testsuites/fstests/fsrdwr/init.c
@@ -291,6 +291,8 @@ truncate_test03 (void)
*/
status = chdir ("..");
rtems_test_assert (status == 0);
+
+ free(readbuf);
}
static void
@@ -518,6 +520,8 @@ lseek_test (void)
rtems_test_assert (status == 0);
test_case_leave ();
+
+ free(readbuf);
}
static void
diff --git a/testsuites/fstests/imfs_fserror/imfs_fserror.scn b/testsuites/fstests/imfs_fserror/imfs_fserror.scn
new file mode 100644
index 0000000000..040ea13041
--- /dev/null
+++ b/testsuites/fstests/imfs_fserror/imfs_fserror.scn
@@ -0,0 +1,94 @@
+*** FILE SYSTEM TEST ( IMFS ) ***
+Initializing filesystem IMFS
+
+
+*** ERROR TEST ***
+Testing open with arguments: "name01, O_CREAT | O_EXCL" EXPECT "EEXIST"
+PASS
+Testing mkdir with arguments: "name01, mode" EXPECT "EEXIST"
+PASS
+Testing open with arguments: "name02, O_WRONLY" EXPECT "EISDIR"
+PASS
+Testing open with arguments: "name02, O_RDWR" EXPECT "EISDIR"
+PASS
+Testing open with arguments: "name, O_WRONLY" EXPECT "ENOENT"
+PASS
+Testing open with arguments: "\"\", O_WRONLY" EXPECT "ENOENT"
+PASS
+Testing open with arguments: "name03, O_WRONLY" EXPECT "ENOENT"
+PASS
+Testing mkdir with arguments: "name, mode" EXPECT "ENOENT"
+PASS
+Testing mkdir with arguments: "\"\", mode" EXPECT "ENOENT"
+PASS
+Testing open with arguments: "name, O_WRONLY" EXPECT "ENOTDIR"
+PASS
+Testing mkdir with arguments: "name, mode" EXPECT "ENOTDIR"
+PASS
+Testing close with arguments: "-1" EXPECT "EBADF"
+PASS
+Testing close with arguments: "100" EXPECT "EBADF"
+PASS
+Testing rename with arguments: "name01, name" EXPECT "EINVAL"
+FAIL ../../../../../../../rtems/c/src/../../testsuites/fstests/imfs_fserror/../fserror/test.c: 156
+Testing rename with arguments: "name03, name02" EXPECT "EISDIR"
+FAIL ../../../../../../../rtems/c/src/../../testsuites/fstests/imfs_fserror/../fserror/test.c: 164
+Testing rename with arguments: "nonexistence, name01" EXPECT "ENOENT"
+FAIL ../../../../../../../rtems/c/src/../../testsuites/fstests/imfs_fserror/../fserror/test.c: 171
+Testing rename with arguments: "\"\", name01" EXPECT "ENOENT"
+FAIL ../../../../../../../rtems/c/src/../../testsuites/fstests/imfs_fserror/../fserror/test.c: 172
+Testing rename with arguments: "name01, \"\"" EXPECT "ENOENT"
+PASS
+Testing rename with arguments: "name, name03" EXPECT "ENOTDIR"
+FAIL ../../../../../../../rtems/c/src/../../testsuites/fstests/imfs_fserror/../fserror/test.c: 182
+Testing rename with arguments: "name03, name" EXPECT "ENOTDIR"
+PASS
+Testing rename with arguments: "name02, name03" EXPECT "ENOTDIR"
+FAIL ../../../../../../../rtems/c/src/../../testsuites/fstests/imfs_fserror/../fserror/test.c: 184
+Testing truncate with arguments: "file, -1" EXPECT "EINVAL"
+PASS
+Testing rmdir with arguments: "\"..\"" EXPECT "ENOTEMPTY"
+PASS
+Testing rmdir with arguments: "\"tmp\"" EXPECT "ENOTEMPTY"
+PASS
+Testing rmdir with arguments: "\".\"" EXPECT "EINVAL"
+PASS
+Testing rmdir with arguments: "\"tmp/.\"" EXPECT "EINVAL"
+PASS
+Testing rmdir with arguments: "\"\"" EXPECT "ENOENT"
+PASS
+Testing rmdir with arguments: "nonexistence" EXPECT "ENOENT"
+PASS
+Testing unlink with arguments: "\"\"" EXPECT "ENOENT"
+PASS
+Testing unlink with arguments: "nonexistence" EXPECT "ENOENT"
+PASS
+Testing rmdir with arguments: "\"tmp/file\"" EXPECT "ENOTDIR"
+PASS
+Testing unlink with arguments: "\"tmp/file/dir\"" EXPECT "ENOTDIR"
+PASS
+Testing read with arguments: "fd, readbuf, 10" EXPECT "EBADF"
+PASS
+Testing read with arguments: "100, readbuf, 10" EXPECT "EBADF"
+PASS
+Testing write with arguments: "fd, databuf, 10" EXPECT "EBADF"
+PASS
+Testing write with arguments: "fd, readbuf, 10" EXPECT "EBADF"
+PASS
+Testing lseek with arguments: "fd, -100, SEEK_END" EXPECT "EINVAL"
+PASS
+Testing lseek with arguments: "fd, -100, SEEK_CUR" EXPECT "EINVAL"
+PASS
+Testing lseek with arguments: "fd, -100, SEEK_SET" EXPECT "EINVAL"
+PASS
+Testing lseek with arguments: "fd, huge, SEEK_END" EXPECT "EOVERFLOW"
+PASS
+Testing lseek with arguments: "fd, huge, SEEK_CUR" EXPECT "EOVERFLOW"
+PASS
+Testing lseek with arguments: "fd, 0, SEEK_SET" EXPECT "EBADF"
+PASS
+*** END OF ERROR TEST ***
+
+
+Shutting down filesystem IMFS
+*** END OF FILE SYSTEM TEST ( IMFS ) ***
diff --git a/testsuites/fstests/imfs_fslink/imfs_fslink.scn b/testsuites/fstests/imfs_fslink/imfs_fslink.scn
new file mode 100644
index 0000000000..7850d63b59
--- /dev/null
+++ b/testsuites/fstests/imfs_fslink/imfs_fslink.scn
@@ -0,0 +1,15 @@
+*** FILE SYSTEM TEST ( IMFS ) ***
+Initializing filesystem IMFS
+
+
+*** LINK TEST ***
+link creates hardlinks
+test if the stat is the same
+chmod and chown
+unlink then stat the file
+*** END OF LINK TEST ***
+
+
+Shutting down filesystem IMFS
+*** END OF FILE SYSTEM TEST ( IMFS ) ***
+
diff --git a/testsuites/fstests/imfs_fspatheval/imfs_fspathenval.scn b/testsuites/fstests/imfs_fspatheval/imfs_fspathenval.scn
new file mode 100644
index 0000000000..1fb40cefff
--- /dev/null
+++ b/testsuites/fstests/imfs_fspatheval/imfs_fspathenval.scn
@@ -0,0 +1,81 @@
+*** FILE SYSTEM TEST ( IMFS ) ***
+Initializing filesystem IMFS
+
+
+*** PATH EVALUATION TEST ***
+Making directory /test1/
+Making directory tets2
+Making directory ///test3
+Making directory test4////
+Making directory ../../test5
+Making directory /test1/../test6
+Making directory ./test7/
+Making directory .././test8
+Making directory test8/./../test9
+Making directory ///test9/../test10
+
+Making directory !#$%&()-@^_`{}~'
+Making directory 0_1_A
+Making directory aaa bbb
+Making directory ccc....ddd
+Making directory fff
+
+Removing directory test10
+Removing directory test9
+Removing directory test8
+Removing directory test7
+Removing directory test6
+Removing directory test5
+Removing directory test4
+Removing directory test3
+Removing directory tets2
+Removing directory test1
+
+Removing directory fff
+Removing directory ccc....ddd
+Removing directory aaa bbb
+Removing directory 0_1_A
+Removing directory !#$%&()-@^_`{}~'
+
+Create file /test1
+Create file tets2
+Create file ///test3
+Create file test4
+Create file ../../test5
+Create file /../test6
+Create file ./test7
+Create file .././test8
+Create file /./../test9
+Create file //../test10
+
+Create file !#$%&()-@^_`{}~'
+Create file 0_1_A
+Create file aaa bbb
+Create file ccc....ddd
+Create file fff
+
+Removing file test10
+Removing file test9
+Removing file test8
+Removing file test7
+Removing file test6
+Removing file test5
+Removing file test4
+Removing file test3
+Removing file tets2
+Removing file test1
+
+Removing file fff
+Removing file ccc....ddd
+Removing file aaa bbb
+Removing file 0_1_A
+Removing file !#$%&()-@^_`{}~'
+
+mkdir /tmp/a/b
+cd /tmp
+*** END OF PATH EVALUATION TEST ***
+
+
+Shutting down filesystem IMFS
+*** END OF FILE SYSTEM TEST ( IMFS ) ***
+
diff --git a/testsuites/fstests/imfs_fspermission/imfs_fspermission.scn b/testsuites/fstests/imfs_fspermission/imfs_fspermission.scn
new file mode 100644
index 0000000000..87120ea5f7
--- /dev/null
+++ b/testsuites/fstests/imfs_fspermission/imfs_fspermission.scn
@@ -0,0 +1,52 @@
+*** FILE SYSTEM TEST ( IMFS ) ***
+Initializing filesystem IMFS
+
+
+*** PERMISSION TEST ***
+The previous cmask is 022
+The file mode of file01 is 755
+The file mode of file02 is 755
+The file mode of dir01 is 755
+The previous cmask is 321
+The file mode of file01 is 456
+The file mode of file02 is 456
+The file mode of dir01 is 456
+The file mode of file01 is 777
+The file mode of file02 is 240
+The file mode of dir01 is 340
+Testing open with arguments: "file02,O_RDONLY" EXPECT "EACCES"
+PASS
+Testing open with arguments: "file02,O_RDWR" EXPECT "EACCES"
+PASS
+Change euid and check
+Testing open with arguments: "file02,O_WRONLY" EXPECT "EACCES"
+PASS
+Testing open with arguments: "file02,O_RDWR" EXPECT "EACCES"
+PASS
+Testing creat with arguments: "path,mode" EXPECT "EACCES"
+PASS
+Testing rename with arguments: "path,\"test\"" EXPECT "EACCES"
+PASS
+Testing truncate with arguments: "path,0" EXPECT "EACCES"
+PASS
+Testing link with arguments: "path,\"test\"" EXPECT "EACCES"
+PASS
+Testing unlink with arguments: "path" EXPECT "EACCES"
+PASS
+Change egid and check
+Testing open with arguments: "file02,O_WRONLY" EXPECT "EACCES"
+PASS
+Testing open with arguments: "file02,O_RDONLY" EXPECT "EACCES"
+PASS
+Testing open with arguments: "file02,O_RDWR" EXPECT "EACCES"
+PASS
+Testing creat with arguments: "path,mode" EXPECT "EACCES"
+PASS
+The directory file mode is 777
+The directory file mode is 321
+*** END OF PERMISSION TEST ***
+
+
+Shutting down filesystem IMFS
+*** END OF FILE SYSTEM TEST ( IMFS ) ***
+
diff --git a/testsuites/fstests/imfs_fsrdwr/imfs_fsrdwr.scn b/testsuites/fstests/imfs_fsrdwr/imfs_fsrdwr.scn
new file mode 100644
index 0000000000..d0bef8e204
--- /dev/null
+++ b/testsuites/fstests/imfs_fsrdwr/imfs_fsrdwr.scn
@@ -0,0 +1,22 @@
+*** FILE SYSTEM TEST ( IMFS ) ***
+Initializing filesystem IMFS
+test case: read_write_test
+test case: lseek_test
+Create a new file
+Writing 2430 bytes to file
+Successfully wrote 2430
+Check the current position
+2431
+test case: truncate_test03
+test case: truncate_to_zero
+test case: block_read_and_write
+test case: block_rw_case_0
+test case: block_rw_case_1
+test case: block_rw_case_2
+test case: block_rw_case_3
+test case: block_rw_case_4
+
+
+Shutting down filesystem IMFS
+*** END OF FILE SYSTEM TEST ( IMFS ) ***
+
diff --git a/testsuites/fstests/imfs_fstime/imfs_fstime.scn b/testsuites/fstests/imfs_fstime/imfs_fstime.scn
new file mode 100644
index 0000000000..845df58044
--- /dev/null
+++ b/testsuites/fstests/imfs_fstime/imfs_fstime.scn
@@ -0,0 +1,12 @@
+*** FILE SYSTEM TEST ( IMFS ) ***
+Initializing filesystem IMFS
+
+
+*** TIME TEST ***
+Sleep a few seconds
+*** END OF TIME TEST ***
+
+
+Shutting down filesystem IMFS
+*** END OF FILE SYSTEM TEST ( IMFS ) ***
+
diff --git a/testsuites/fstests/mdosfs_support/fs_support.c b/testsuites/fstests/mdosfs_support/fs_support.c
index 62370c9a9b..27882b8216 100644
--- a/testsuites/fstests/mdosfs_support/fs_support.c
+++ b/testsuites/fstests/mdosfs_support/fs_support.c
@@ -18,6 +18,7 @@
#include <rtems/libio.h>
#include <rtems/dosfs.h>
+#include <rtems/libcsupport.h>
#include "ramdisk_support.h"
#include "fstest.h"
@@ -25,18 +26,20 @@
#define BLOCK_SIZE 512
-msdos_format_request_param_t rqdata = {
- OEMName: "RTEMS",
- VolLabel: "RTEMSDisk",
- sectors_per_cluster: 2,
- fat_num: 0,
- files_per_root_dir: 0,
- media: 0,
- quick_format: FALSE,
- skip_alignment: 0,
- info_level: 0
+static const msdos_format_request_param_t rqdata = {
+ .OEMName = "RTEMS",
+ .VolLabel = "RTEMSDisk",
+ .sectors_per_cluster = 2,
+ .fat_num = 0,
+ .files_per_root_dir = 0,
+ .media = 0,
+ .quick_format = true,
+ .skip_alignment = 0,
+ .info_level = 0
};
+static rtems_resource_snapshot before_mount;
+
void test_initialize_filesystem(void)
{
int rc=0;
@@ -48,6 +51,8 @@ void test_initialize_filesystem(void)
rc=msdos_format(RAMDISK_PATH,&rqdata);
rtems_test_assert(rc==0);
+ rtems_resource_snapshot_take(&before_mount);
+
rc=mount(RAMDISK_PATH,
BASE_FOR_TEST,
"dosfs",
@@ -62,6 +67,7 @@ void test_shutdown_filesystem(void)
int rc=0;
rc=unmount(BASE_FOR_TEST) ;
rtems_test_assert(rc==0);
+ rtems_test_assert(rtems_resource_snapshot_check(&before_mount));
del_ramdisk();
}
diff --git a/testsuites/fstests/mimfs_fslink/mimfs_fslink.scn b/testsuites/fstests/mimfs_fslink/mimfs_fslink.scn
new file mode 100644
index 0000000000..d0a6f1e395
--- /dev/null
+++ b/testsuites/fstests/mimfs_fslink/mimfs_fslink.scn
@@ -0,0 +1,10 @@
+*** FILE SYSTEM TEST ( MOUNTED IMFS ) ***
+Initializing filesystem MOUNTED IMFS
+
+
+*** LINK TEST ***
+link creates hardlinks
+test if the stat is the same
+chmod and chown
+unlink then stat the file
+*** END OF LINK TEST ***
diff --git a/testsuites/fstests/mimfs_fspatheval/mimfs_fspatheval.scn b/testsuites/fstests/mimfs_fspatheval/mimfs_fspatheval.scn
new file mode 100644
index 0000000000..c81e4950aa
--- /dev/null
+++ b/testsuites/fstests/mimfs_fspatheval/mimfs_fspatheval.scn
@@ -0,0 +1,76 @@
+*** FILE SYSTEM TEST ( MOUNTED IMFS ) ***
+Initializing filesystem MOUNTED IMFS
+
+
+*** PATH EVALUATION TEST ***
+Making directory /test1/
+Making directory tets2
+Making directory ///test3
+Making directory test4////
+Making directory ../../test5
+Making directory /test1/../test6
+Making directory ./test7/
+Making directory .././test8
+Making directory test8/./../test9
+Making directory ///test9/../test10
+
+Making directory !#$%&()-@^_`{}~'
+Making directory 0_1_A
+Making directory aaa bbb
+Making directory ccc....ddd
+Making directory fff
+
+Removing directory test10
+Removing directory test9
+Removing directory test8
+Removing directory test7
+Removing directory test6
+Removing directory test5
+Removing directory test4
+Removing directory test3
+Removing directory tets2
+Removing directory test1
+
+Removing directory fff
+Removing directory ccc....ddd
+Removing directory aaa bbb
+Removing directory 0_1_A
+Removing directory !#$%&()-@^_`{}~'
+
+Create file /test1
+Create file tets2
+Create file ///test3
+Create file test4
+Create file ../../test5
+Create file /../test6
+Create file ./test7
+Create file .././test8
+Create file /./../test9
+Create file //../test10
+
+Create file !#$%&()-@^_`{}~'
+Create file 0_1_A
+Create file aaa bbb
+Create file ccc....ddd
+Create file fff
+
+Removing file test10
+Removing file test9
+Removing file test8
+Removing file test7
+Removing file test6
+Removing file test5
+Removing file test4
+Removing file test3
+Removing file tets2
+Removing file test1
+
+Removing file fff
+Removing file ccc....ddd
+Removing file aaa bbb
+Removing file 0_1_A
+Removing file !#$%&()-@^_`{}~'
+
+mkdir /tmp/a/b
+cd /tmp
+*** END OF PATH EVALUATION TEST ***
diff --git a/testsuites/fstests/mimfs_fspermission/mimfs_fspermission-interupted.scn b/testsuites/fstests/mimfs_fspermission/mimfs_fspermission-interupted.scn
new file mode 100644
index 0000000000..e425aa7b07
--- /dev/null
+++ b/testsuites/fstests/mimfs_fspermission/mimfs_fspermission-interupted.scn
@@ -0,0 +1,47 @@
+*** FILE SYSTEM TEST ( MOUNTED IMFS ) ***
+Initializing filesystem MOUNTED IMFS
+
+
+*** PERMISSION TEST ***
+The previous cmask is 022
+The file mode of file01 is 755
+The file mode of file02 is 755
+The file mode of dir01 is 755
+The previous cmask is 321
+The file mode of file01 is 456
+The file mode of file02 is 456
+The file mode of dir01 is 456
+The file mode of file01 is 777
+The file mode of file02 is 240
+The file mode of dir01 is 340
+Testing open with arguments: "file02,O_RDONLY" EXPECT "EACCES"
+PASS
+Testing open with arguments: "file02,O_RDWR" EXPECT "EACCES"
+PASS
+Change euid and check
+Testing open with arguments: "file02,O_WRONLY" EXPECT "EACCES"
+PASS
+Testing open with arguments: "file02,O_RDWR" EXPECT "EACCES"
+PASS
+Testing creat with arguments: "path,mode" EXPECT "EACCES"
+PASS
+Testing rename with arguments: "path,\"test\"" EXPECT "EACCES"
+PASS
+Testing truncate with arguments: "path,0" EXPECT "EACCES"
+PASS
+Testing link with arguments: "path,\"test\"" EXPECT "EACCES"
+PASS
+Testing unlink with arguments: "path" EXPECT "EACCES"
+PASS
+Change egid and check
+Testing open with arguments: "file02,O_WRONLY" EXPECT "EACCES"
+PASS
+Testing open with arguments: "file02,O_RDONLY" EXPECT "EACCES"
+PASS
+Testing open with arguments: "file02,O_RDWR" EXPECT "EACCES"
+PASS
+Testing creat with arguments: "path,mode" EXPECT "EACCES"
+PASS
+The directory file mode is 777
+The directory file mode is 321
+*** END OF PERMISSION TEST ***
diff --git a/testsuites/fstests/mimfs_fsrdwr/mimfs_fsrdwr.scn b/testsuites/fstests/mimfs_fsrdwr/mimfs_fsrdwr.scn
new file mode 100644
index 0000000000..37ea03cfa6
--- /dev/null
+++ b/testsuites/fstests/mimfs_fsrdwr/mimfs_fsrdwr.scn
@@ -0,0 +1,21 @@
+*** FILE SYSTEM TEST ( MOUNTED IMFS ) ***
+Initializing filesystem MOUNTED IMFS
+test case: read_write_test
+test case: lseek_test
+Create a new file
+Writing 2430 bytes to file
+Successfully wrote 2430
+Check the current position
+2431
+test case: truncate_test03
+test case: truncate_to_zero
+test case: block_read_and_write
+test case: block_rw_case_0
+test case: block_rw_case_1
+test case: block_rw_case_2
+test case: block_rw_case_3
+test case: block_rw_case_4
+
+
+Shutting down filesystem MOUNTED IMFS
+*** END OF FILE SYSTEM TEST ( MOUNTED IMFS ) ***
diff --git a/testsuites/fstests/mimfs_fssymlink/mimfs_fssymlink.scn b/testsuites/fstests/mimfs_fssymlink/mimfs_fssymlink.scn
new file mode 100644
index 0000000000..c18037dacf
--- /dev/null
+++ b/testsuites/fstests/mimfs_fssymlink/mimfs_fssymlink.scn
@@ -0,0 +1,31 @@
+*** FILE SYSTEM TEST ( MOUNTED IMFS ) ***
+Initializing filesystem MOUNTED IMFS
+
+
+*** SYMLINK TEST ***
+Create a file named file
+Create a symlink named symlink to file
+call readlink
+file
+Unlink the file
+call readlink
+Create a dir named file
+Create a symlink named symlink to file
+call readlink
+rmdir the dir
+symlink loop erro test
+Testing creat with arguments: "path,mode" EXPECT "ELOOP"
+PASS
+Testing open with arguments: "path,O_CREAT|O_WRONLY,mode" EXPECT "ELOOP"
+PASS
+Testing truncate with arguments: "path,0" EXPECT "ELOOP"
+PASS
+Testing rename with arguments: "path,file04" EXPECT "ELOOP"
+FAIL ../../../../../../../rtems/c/src/../../testsuites/fstests/mimfs_fssymlink/../fssymlink/test.c: 151
+Testing unlink with arguments: "path" EXPECT "ELOOP"
+PASS
+Testing mkdir with arguments: "path,mode" EXPECT "ELOOP"
+PASS
+Testing rmdir with arguments: "path" EXPECT "ELOOP"
+PASS
+*** END OF SYMLINK TEST ***
diff --git a/testsuites/fstests/mimfs_fstime/mimfs_fstime.scn b/testsuites/fstests/mimfs_fstime/mimfs_fstime.scn
new file mode 100644
index 0000000000..74a503935b
--- /dev/null
+++ b/testsuites/fstests/mimfs_fstime/mimfs_fstime.scn
@@ -0,0 +1,7 @@
+*** FILE SYSTEM TEST ( MOUNTED IMFS ) ***
+Initializing filesystem MOUNTED IMFS
+
+
+*** TIME TEST ***
+Sleep a few seconds
+*** END OF TIME TEST ***
diff --git a/testsuites/fstests/support/fstest_support.c b/testsuites/fstests/support/fstest_support.c
index 51f19c1105..cbd832687a 100644
--- a/testsuites/fstests/support/fstest_support.c
+++ b/testsuites/fstests/support/fstest_support.c
@@ -16,11 +16,12 @@
#include <fcntl.h>
#include <string.h>
#include <unistd.h>
-#include <stdlib.h> /* exit */
+#include <stdlib.h>
#include <sys/stat.h>
#include <sys/types.h>
-#include "rtems.h"
+#include <rtems.h>
+#include <rtems/userenv.h>
#include "fstest_support.h"
#include "fs_config.h"
@@ -31,7 +32,17 @@
/* Break out of a chroot() environment in C */
static void break_out_of_chroot(void)
{
- chroot("/");
+ int rv;
+ struct stat st;
+
+ rtems_libio_use_global_env();
+
+ /* Perform deferred global location releases */
+ rv = stat(".", &st);
+ rtems_test_assert(rv == 0);
+
+ /* Perform deferred memory frees */
+ free(malloc(1));
}
/*
diff --git a/testsuites/fstests/support/ramdisk_support.c b/testsuites/fstests/support/ramdisk_support.c
index 339c63a6cb..17dbb67820 100644
--- a/testsuites/fstests/support/ramdisk_support.c
+++ b/testsuites/fstests/support/ramdisk_support.c
@@ -11,6 +11,9 @@
#include "config.h"
#endif
+#include <sys/stat.h>
+#include <fcntl.h>
+
#include <rtems/ramdisk.h>
#include <rtems/blkdev.h>
#include <rtems/libio.h>
@@ -25,6 +28,20 @@
dev_t dev = 0;
+static void initialize_swapout_task(void)
+{
+ int fd = open(RAMDISK_PATH, O_RDONLY);
+ int rv = 0;
+
+ rtems_test_assert(fd >= 0);
+
+ rv = rtems_disk_fd_sync(fd);
+ rtems_test_assert(rv == 0);
+
+ rv = close(fd);
+ rtems_test_assert(rv == 0);
+}
+
void
init_ramdisk (void)
{
@@ -36,6 +53,8 @@ init_ramdisk (void)
false, RAMDISK_PATH, &dev);
rtems_test_assert (rc == 0);
+
+ initialize_swapout_task();
}
void
diff --git a/testsuites/libtests/ftp01/ftp01.scn b/testsuites/libtests/ftp01/ftp01.scn
index a3292961c8..a27da4b698 100644
--- a/testsuites/libtests/ftp01/ftp01.scn
+++ b/testsuites/libtests/ftp01/ftp01.scn
@@ -17,6 +17,8 @@ USER anonymous
230 User logged in.
TYPE I
200 Type set to I.
+SIZE a.txt
+213 1102
PASV
227 Entering passive mode (127,0,0,1,4,4).
RETR a.txt
@@ -41,6 +43,8 @@ USER anonymous
230 User logged in.
TYPE I
200 Type set to I.
+SIZE b.txt
+213 1102
PASV
227 Entering passive mode (127,0,0,1,4,10).
RETR b.txt
diff --git a/testsuites/libtests/ftp01/init.c b/testsuites/libtests/ftp01/init.c
index 354c0f045a..369aebe92a 100644
--- a/testsuites/libtests/ftp01/init.c
+++ b/testsuites/libtests/ftp01/init.c
@@ -104,7 +104,7 @@ static void change_self_priority(void)
rtems_test_assert(sc == RTEMS_SUCCESSFUL);
}
-static void create_file(const char *path)
+static void create_file(const char *path, const void *begin, size_t size)
{
int rv = 0;
int fd = open(path, O_WRONLY);
@@ -112,8 +112,8 @@ static void create_file(const char *path)
rtems_test_assert(fd >= 0);
- n = write(fd, &content [0], sizeof(content));
- rtems_test_assert(n == (ssize_t) sizeof(content));
+ n = write(fd, begin, size);
+ rtems_test_assert(n == (ssize_t) size);
rv = close(fd);
rtems_test_assert(rv == 0);
@@ -126,15 +126,33 @@ static void copy_file(const char *src_path, const char *dest_path)
int out = open(dest_path, O_WRONLY);
ssize_t n_in = 0;
char buf [64];
+ struct stat st_in;
+ struct stat st_out;
+
+ memset(&st_in, 0xff, sizeof(st_in));
+ memset(&st_out, 0xff, sizeof(st_out));
rtems_test_assert(in >= 0);
rtems_test_assert(out >= 0);
+ rv = fstat(out, &st_out);
+ rtems_test_assert(rv == 0);
+
+ rtems_test_assert(st_out.st_size == 0);
+
while ((n_in = read(in, buf, sizeof(buf))) > 0) {
ssize_t n_out = write(out, buf, (size_t) n_in);
rtems_test_assert(n_out == n_in);
}
+ rv = fstat(out, &st_out);
+ rtems_test_assert(rv == 0);
+
+ rv = fstat(in, &st_in);
+ rtems_test_assert(rv == 0);
+
+ rtems_test_assert(st_in.st_size == st_out.st_size);
+
rv = close(out);
rtems_test_assert(rv == 0);
@@ -189,7 +207,7 @@ static void test(void)
initialize_ftpfs();
change_self_priority();
- create_file(file_a);
+ create_file(file_a, &content [0], sizeof(content));
copy_file(file_a, file_b);
check_file(file_b);
check_file_size(file_a, sizeof(content));
diff --git a/testsuites/libtests/stackchk/init.c b/testsuites/libtests/stackchk/init.c
index 1551eecb37..772b039592 100644
--- a/testsuites/libtests/stackchk/init.c
+++ b/testsuites/libtests/stackchk/init.c
@@ -86,7 +86,11 @@ rtems_task Init(
directive_failed( status, "rtems_task_delete of RTEMS_SELF" );
}
-void Fatal_extension( uint32_t source, bool is_internal, uint32_t error )
+void Fatal_extension(
+ rtems_fatal_source source,
+ bool is_internal,
+ rtems_fatal_code error
+)
{
if ( source != RTEMS_FATAL_SOURCE_STACK_CHECKER ) {
printk( "unexpected fatal source\n" );
diff --git a/testsuites/libtests/stackchk/system.h b/testsuites/libtests/stackchk/system.h
index 95babb8a0c..16b623ae2d 100644
--- a/testsuites/libtests/stackchk/system.h
+++ b/testsuites/libtests/stackchk/system.h
@@ -41,7 +41,11 @@ void blow_stack( void );
#define CONFIGURE_STACK_CHECKER_ENABLED
-void Fatal_extension( uint32_t source, bool is_internal, uint32_t error );
+void Fatal_extension(
+ rtems_fatal_source source,
+ bool is_internal,
+ rtems_fatal_code error
+);
#define CONFIGURE_INITIAL_EXTENSIONS \
{ NULL, NULL, NULL, NULL, NULL, NULL, NULL, Fatal_extension }
diff --git a/testsuites/psxtests/psxbarrier01/psxtmbarrier01.scn b/testsuites/psxtests/psxbarrier01/psxtmbarrier01.scn
new file mode 100644
index 0000000000..cbae9a718c
--- /dev/null
+++ b/testsuites/psxtests/psxbarrier01/psxtmbarrier01.scn
@@ -0,0 +1,5 @@
+*** POSIX TIME TEST PSXTMBARRIER 01 ***
+pthread_barrier_init 20
+pthread_barrier_destroy 21
+*** END OF POSIX TIME TEST PSXTMBARRIER 01 ***
+
diff --git a/testsuites/psxtests/psxfatal_support/init.c b/testsuites/psxtests/psxfatal_support/init.c
index ee1e33e708..93645e61ca 100644
--- a/testsuites/psxtests/psxfatal_support/init.c
+++ b/testsuites/psxtests/psxfatal_support/init.c
@@ -34,12 +34,6 @@ void *POSIX_Init(
rtems_test_exit(0);
}
-char *Sources[] = {
- "INTERNAL_ERROR_CORE",
- "INTERNAL_ERROR_RTEMS_API",
- "INTERNAL_ERROR_POSIX_API",
-};
-
char *Errors_Rtems[] = {
"RTEMS_SUCCESSFUL", /* successful completion */
"RTEMS_TASK_EXITTED", /* returned from a task */
@@ -84,19 +78,15 @@ void Put_Error( uint32_t source, uint32_t error )
}
}
-void Put_Source( uint32_t source )
+void Put_Source( rtems_fatal_source source )
{
- if ( source > INTERNAL_ERROR_POSIX_API )
- printk("Unknown Source (%d)", source);
- else
- printk( Sources[ source ] );
+ printk( "%s", rtems_fatal_source_description( source ) );
}
-
void Fatal_extension(
- uint32_t source,
- bool is_internal,
- uint32_t error
+ rtems_fatal_source source,
+ bool is_internal,
+ rtems_fatal_code error
)
{
print_test_begin_message();
diff --git a/testsuites/psxtests/psxfatal_support/system.h b/testsuites/psxtests/psxfatal_support/system.h
index d791b19a89..e7ba4b12f7 100644
--- a/testsuites/psxtests/psxfatal_support/system.h
+++ b/testsuites/psxtests/psxfatal_support/system.h
@@ -24,7 +24,7 @@
/* functions */
void force_error(void);
-void Put_Source(uint32_t source);
+void Put_Source( rtems_fatal_source source );
void Put_Error(
uint32_t source,
@@ -36,9 +36,9 @@ void *POSIX_Init(
);
void Fatal_extension(
- uint32_t source,
- bool is_internal,
- uint32_t error
+ rtems_fatal_source source,
+ bool is_internal,
+ rtems_fatal_code error
);
/* need prototypes */
diff --git a/testsuites/psxtmtests/Makefile.am b/testsuites/psxtmtests/Makefile.am
index 72340ab0c7..be21fa286b 100644
--- a/testsuites/psxtmtests/Makefile.am
+++ b/testsuites/psxtmtests/Makefile.am
@@ -6,6 +6,13 @@ if HAS_POSIX
SUBDIRS += psxtmbarrier01
SUBDIRS += psxtmbarrier02
SUBDIRS += psxtmbarrier03
+SUBDIRS += psxtmcond01
+SUBDIRS += psxtmcond02
+SUBDIRS += psxtmcond03
+SUBDIRS += psxtmcond05
+SUBDIRS += psxtmcond08
+SUBDIRS += psxtmcond09
+SUBDIRS += psxtmcond10
SUBDIRS += psxtmkey01
SUBDIRS += psxtmkey02
SUBDIRS += psxtmmq01
@@ -33,6 +40,7 @@ SUBDIRS += psxtmsem05
SUBDIRS += psxtmsleep01
SUBDIRS += psxtmsleep02
SUBDIRS += psxtmthread01
+SUBDIRS += psxtmthread02
SUBDIRS += psxtmthread03
endif
diff --git a/testsuites/psxtmtests/configure.ac b/testsuites/psxtmtests/configure.ac
index 9e59681a7f..9eedb89fa1 100644
--- a/testsuites/psxtmtests/configure.ac
+++ b/testsuites/psxtmtests/configure.ac
@@ -80,6 +80,13 @@ AC_CONFIG_FILES([Makefile
psxtmbarrier01/Makefile
psxtmbarrier02/Makefile
psxtmbarrier03/Makefile
+psxtmcond01/Makefile
+psxtmcond02/Makefile
+psxtmcond03/Makefile
+psxtmcond05/Makefile
+psxtmcond08/Makefile
+psxtmcond09/Makefile
+psxtmcond10/Makefile
psxtmkey01/Makefile
psxtmkey02/Makefile
psxtmmq01/Makefile
@@ -107,6 +114,7 @@ psxtmsem05/Makefile
psxtmsleep01/Makefile
psxtmsleep02/Makefile
psxtmthread01/Makefile
+psxtmthread02/Makefile
psxtmthread03/Makefile
])
AC_OUTPUT
diff --git a/testsuites/psxtmtests/psxtmbarrier02/psxtmbarrier02.scn b/testsuites/psxtmtests/psxtmbarrier02/psxtmbarrier02.scn
new file mode 100644
index 0000000000..09b010d387
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmbarrier02/psxtmbarrier02.scn
@@ -0,0 +1,3 @@
+*** POSIX TIME PSXTMBARRIER 02 ***
+pthread_barrier_wait – blocking 95
+*** END OF POSIX TIME PSXTMBARRIER 02 ***
diff --git a/testsuites/psxtmtests/psxtmbarrier03/psxtmbarrier03.scn b/testsuites/psxtmtests/psxtmbarrier03/psxtmbarrier03.scn
new file mode 100644
index 0000000000..f1b1d8921d
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmbarrier03/psxtmbarrier03.scn
@@ -0,0 +1,3 @@
+*** POSIX TIME TEST PSXTMBARRIER 03 ***
+pthread_barrier_wait – releasing, no preempt 50
+*** END OF POSIX TIME TEST PSXTMBARRIER 03 ***
diff --git a/testsuites/psxtmtests/psxtmcond01/Makefile.am b/testsuites/psxtmtests/psxtmcond01/Makefile.am
new file mode 100644
index 0000000000..29fa1ceb42
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmcond01/Makefile.am
@@ -0,0 +1,28 @@
+MANAGERS = all
+
+rtems_tests_PROGRAMS = psxtmcond01
+psxtmcond01_SOURCES = init.c
+psxtmcond01_SOURCES += ../../tmtests/include/timesys.h
+psxtmcond01_SOURCES += ../../support/src/tmtests_empty_function.c
+psxtmcond01_SOURCES += ../../support/src/tmtests_support.c
+
+dist_rtems_tests_DATA = psxtmcond01.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+OPERATION_COUNT = @OPERATION_COUNT@
+AM_CPPFLAGS += -I$(top_srcdir)/../tmtests/include
+AM_CPPFLAGS += -DOPERATION_COUNT=$(OPERATION_COUNT)
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+
+LINK_OBJS = $(psxtmcond01_OBJECTS) $(psxtmcond01_LDADD)
+LINK_LIBS = $(psxtmcond01_LDLIBS)
+
+psxtmcond01$(EXEEXT): $(psxtmcond01_OBJECTS) $(psxtmcond01_DEPENDENCIES)
+ @rm -f psxtmcond01$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
+
diff --git a/testsuites/psxtmtests/psxtmcond01/init.c b/testsuites/psxtmtests/psxtmcond01/init.c
new file mode 100644
index 0000000000..bbfaa894f1
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmcond01/init.c
@@ -0,0 +1,94 @@
+/*
+ * COPYRIGHT (c) 1989-2012.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <coverhd.h>
+#include <tmacros.h>
+#include <timesys.h>
+#include "test_support.h"
+#include <pthread.h>
+#include <sched.h>
+#include <rtems/timerdrv.h>
+
+/* forward declarations to avoid warnings */
+void *POSIX_Init(void *argument);
+void benchmark_create_cond_var(void);
+void benchmark_destroy_cond_var(void);
+
+pthread_cond_t mycondvar;
+
+void benchmark_create_cond_var(void)
+{
+ long end_time;
+ int status;
+
+ benchmark_timer_initialize();
+ status = pthread_cond_init(&mycondvar, NULL);
+ end_time = benchmark_timer_read();
+ rtems_test_assert( status == 0 );
+
+ put_time(
+ "pthread_cond_init (single invocation)",
+ end_time,
+ 1,
+ 0,
+ 0
+ );
+}
+
+void benchmark_destroy_cond_var(void)
+{
+ long end_time;
+ int status;
+
+ benchmark_timer_initialize();
+ status = pthread_cond_destroy(&mycondvar);
+ end_time = benchmark_timer_read();
+ rtems_test_assert( status == 0 );
+
+ put_time(
+ "pthread_cond_destroy (single invocation)",
+ end_time,
+ 1,
+ 0,
+ 0
+ );
+}
+
+void *POSIX_Init(
+ void *argument
+)
+{
+ puts( "\n\n*** POSIX TIME TEST PSXTMCOND01 ***" );
+
+ benchmark_create_cond_var();
+ benchmark_destroy_cond_var();
+
+ puts( "*** END OF POSIX TIME TEST PSXTMCOND01 ***" );
+ rtems_test_exit(0);
+}
+
+/* configuration information */
+
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
+
+/* configure an instance of the condition variable created and destroyed */
+#define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES 1
+
+#define CONFIGURE_MAXIMUM_POSIX_THREADS 1
+#define CONFIGURE_POSIX_INIT_THREAD_TABLE
+
+#define CONFIGURE_INIT
+
+#include <rtems/confdefs.h>
+/* end of file */
diff --git a/testsuites/psxtmtests/psxtmcond01/psxtmcond01.doc b/testsuites/psxtmtests/psxtmcond01/psxtmcond01.doc
new file mode 100644
index 0000000000..9ea2348c7d
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmcond01/psxtmcond01.doc
@@ -0,0 +1,6 @@
+This test benchmarks the following cases:
+
++ single invocation of creating a POSIX condition variable
+ (e.g pthread_cond_init)
++ single invocation of deleting a POSIX condition variable
+ (e.g pthread_cond_destroy)
diff --git a/testsuites/psxtmtests/psxtmcond02/Makefile.am b/testsuites/psxtmtests/psxtmcond02/Makefile.am
new file mode 100644
index 0000000000..73ea6d6907
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmcond02/Makefile.am
@@ -0,0 +1,27 @@
+MANAGERS = all
+
+rtems_tests_PROGRAMS = psxtmcond02
+psxtmcond02_SOURCES = init.c
+psxtmcond02_SOURCES += ../../tmtests/include/timesys.h
+psxtmcond02_SOURCES += ../../support/src/tmtests_empty_function.c
+psxtmcond02_SOURCES += ../../support/src/tmtests_support.c
+
+dist_rtems_tests_DATA = psxtmcond02.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+OPERATION_COUNT = @OPERATION_COUNT@
+AM_CPPFLAGS += -I$(top_srcdir)/../tmtests/include
+AM_CPPFLAGS += -DOPERATION_COUNT=$(OPERATION_COUNT)
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+
+LINK_OBJS = $(psxtmcond02_OBJECTS) $(psxtmcond02_LDADD)
+LINK_LIBS = $(psxtmcond02_LDLIBS)
+
+psxtmcond02$(EXEEXT): $(psxtmcond02_OBJECTS) $(psxtmcond02_DEPENDENCIES)
+ @rm -f psxtmcond02$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/psxtmtests/psxtmcond02/init.c b/testsuites/psxtmtests/psxtmcond02/init.c
new file mode 100644
index 0000000000..26c36b35f3
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmcond02/init.c
@@ -0,0 +1,73 @@
+/*
+ * COPYRIGHT (c) 1989-2012.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <timesys.h>
+#include <pthread.h>
+#include <rtems/timerdrv.h>
+#include "test_support.h"
+
+/* forward declarations to avoid warnings */
+void *POSIX_Init(void *argument);
+void benchmark_signal(void);
+
+pthread_cond_t CondID;
+
+void benchmark_signal(void)
+{
+ long end_time;
+ int status;
+
+ benchmark_timer_initialize();
+
+ status = pthread_cond_signal(&CondID);
+
+ end_time = benchmark_timer_read();
+ rtems_test_assert( status == 0 );
+
+ put_time(
+ "pthread_cond_signal - no threads waiting",
+ end_time,
+ 1, /* Only executed once */
+ 0,
+ 0
+ );
+
+}
+
+void *POSIX_Init(
+ void *argument
+)
+{
+ puts( "\n\n*** POSIX TIME TEST PSXTMCOND02 ***" );
+
+ pthread_cond_init(&CondID, NULL);
+
+ benchmark_signal();
+
+ puts( "*** END OF POSIX TIME TEST PSXTMCOND02 ***" );
+ rtems_test_exit(0);
+}
+
+/* configuration information */
+
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
+
+#define CONFIGURE_MAXIMUM_POSIX_THREADS 1
+#define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES 2
+#define CONFIGURE_POSIX_INIT_THREAD_TABLE
+
+#define CONFIGURE_INIT
+
+#include <rtems/confdefs.h>
+/* end of file */
diff --git a/testsuites/psxtmtests/psxtmcond02/psxtmcond02.doc b/testsuites/psxtmtests/psxtmcond02/psxtmcond02.doc
new file mode 100644
index 0000000000..865fc07091
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmcond02/psxtmcond02.doc
@@ -0,0 +1,11 @@
+# COPYRIGHT (c) 1989-2011.
+# On-Line Applications Research Corporation (OAR).
+#
+# The license and distribution terms for this file may be
+# found in the file LICENSE in this distribution or at
+# http://www.rtems.com/license/LICENSE.
+#
+
+This test benchmarks the following operations:
+
++
diff --git a/testsuites/psxtmtests/psxtmcond03/Makefile.am b/testsuites/psxtmtests/psxtmcond03/Makefile.am
new file mode 100644
index 0000000000..5c09759ac8
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmcond03/Makefile.am
@@ -0,0 +1,27 @@
+MANAGERS = all
+
+rtems_tests_PROGRAMS = psxtmcond03
+psxtmcond03_SOURCES = init.c
+psxtmcond03_SOURCES += ../../tmtests/include/timesys.h
+psxtmcond03_SOURCES += ../../support/src/tmtests_empty_function.c
+psxtmcond03_SOURCES += ../../support/src/tmtests_support.c
+
+dist_rtems_tests_DATA = psxtmcond03.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+OPERATION_COUNT = @OPERATION_COUNT@
+AM_CPPFLAGS += -I$(top_srcdir)/../tmtests/include
+AM_CPPFLAGS += -DOPERATION_COUNT=$(OPERATION_COUNT)
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+
+LINK_OBJS = $(psxtmcond03_OBJECTS) $(psxtmcond03_LDADD)
+LINK_LIBS = $(psxtmcond03_LDLIBS)
+
+psxtmcond03$(EXEEXT): $(psxtmcond03_OBJECTS) $(psxtmcond03_DEPENDENCIES)
+ @rm -f psxtmcond03$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/psxtmtests/psxtmcond03/init.c b/testsuites/psxtmtests/psxtmcond03/init.c
new file mode 100644
index 0000000000..4c1b9ad6d3
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmcond03/init.c
@@ -0,0 +1,104 @@
+/*
+ * COPYRIGHT (c) 1989-2012.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <coverhd.h>
+#include <tmacros.h>
+#include <timesys.h>
+#include "test_support.h"
+#include <pthread.h>
+#include <sched.h>
+#include <rtems/timerdrv.h>
+
+/* forward declarations to avoid warnings */
+void *POSIX_Init(void *argument);
+void *Blocker(void *argument);
+
+pthread_mutex_t MutexID;
+pthread_cond_t CondID;
+
+void *Blocker(
+ void *argument
+)
+{
+ pthread_cond_wait(&CondID,&MutexID);
+ /* should never return */
+ rtems_test_assert( FALSE );
+
+ return NULL;
+}
+
+void *POSIX_Init(
+ void *argument
+)
+{
+ int status;
+ pthread_t threadId;
+ long end_time;
+
+ puts( "\n\n*** POSIX TIME TEST PSXTMCOND03 ***" );
+
+ status = pthread_create( &threadId, NULL, Blocker, NULL );
+ rtems_test_assert( status == 0 );
+
+ status = pthread_mutex_init(&MutexID, NULL);
+ rtems_test_assert( status == 0 );
+
+ status = pthread_cond_init(&CondID, NULL); /* Create condition variable */
+ rtems_test_assert( status == 0 );
+
+ /*
+ * Ensure the mutex is unavailable so the other threads block.
+ */
+ status = pthread_mutex_lock(&MutexID);
+ rtems_test_assert( status == 0 );
+
+ /*
+ * Let the other thread start so the thread startup overhead,
+ * is accounted for. When we return, we can start the benchmark.
+ */
+ sched_yield();
+ /* let other thread run */
+
+ benchmark_timer_initialize();
+ status = pthread_cond_signal(&CondID);
+ end_time = benchmark_timer_read();
+ rtems_test_assert( status == 0 );
+
+ put_time(
+ "pthread_cond_signal - thread waiting, no preempt",
+ end_time,
+ 1,
+ 0,
+ 0
+ );
+
+ puts( "*** END OF POSIX TIME TEST PSXTMCOND03 ***" );
+ rtems_test_exit( 0 );
+
+ return NULL;
+}
+
+/* configuration information */
+
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
+
+#define CONFIGURE_MAXIMUM_POSIX_THREADS 2
+#define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES 2
+#define CONFIGURE_MAXIMUM_POSIX_MUTEXES 2
+#define CONFIGURE_POSIX_INIT_THREAD_TABLE
+
+#define CONFIGURE_INIT
+
+#include <rtems/confdefs.h>
+ /* end of file */
diff --git a/testsuites/psxtmtests/psxtmcond03/psxtmcond03.doc b/testsuites/psxtmtests/psxtmcond03/psxtmcond03.doc
new file mode 100644
index 0000000000..865fc07091
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmcond03/psxtmcond03.doc
@@ -0,0 +1,11 @@
+# COPYRIGHT (c) 1989-2011.
+# On-Line Applications Research Corporation (OAR).
+#
+# The license and distribution terms for this file may be
+# found in the file LICENSE in this distribution or at
+# http://www.rtems.com/license/LICENSE.
+#
+
+This test benchmarks the following operations:
+
++
diff --git a/testsuites/psxtmtests/psxtmcond05/Makefile.am b/testsuites/psxtmtests/psxtmcond05/Makefile.am
new file mode 100644
index 0000000000..9904655c42
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmcond05/Makefile.am
@@ -0,0 +1,27 @@
+MANAGERS = all
+
+rtems_tests_PROGRAMS = psxtmcond05
+psxtmcond05_SOURCES = init.c
+psxtmcond05_SOURCES += ../../tmtests/include/timesys.h
+psxtmcond05_SOURCES += ../../support/src/tmtests_empty_function.c
+psxtmcond05_SOURCES += ../../support/src/tmtests_support.c
+
+dist_rtems_tests_DATA = psxtmcond05.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+OPERATION_COUNT = @OPERATION_COUNT@
+AM_CPPFLAGS += -I$(top_srcdir)/../tmtests/include
+AM_CPPFLAGS += -DOPERATION_COUNT=$(OPERATION_COUNT)
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+
+LINK_OBJS = $(psxtmcond05_OBJECTS) $(psxtmcond05_LDADD)
+LINK_LIBS = $(psxtmcond05_LDLIBS)
+
+psxtmcond05$(EXEEXT): $(psxtmcond05_OBJECTS) $(psxtmcond05_DEPENDENCIES)
+ @rm -f psxtmcond05$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/psxtmtests/psxtmcond05/init.c b/testsuites/psxtmtests/psxtmcond05/init.c
new file mode 100644
index 0000000000..bf4de19b09
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmcond05/init.c
@@ -0,0 +1,71 @@
+/*
+ * COPYRIGHT (c) 1989-2012.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <timesys.h>
+#include <rtems/timerdrv.h>
+#include "test_support.h"
+
+/* forward declarations to avoid warnings */
+void *POSIX_Init(void *argument);
+void benchmark_broadcast(void);
+
+pthread_cond_t CondID;
+
+void benchmark_broadcast(void)
+{
+ long end_time;
+ int status;
+
+ benchmark_timer_initialize();
+ status = pthread_cond_broadcast(&CondID);
+ end_time = benchmark_timer_read();
+ rtems_test_assert( status == 0 );
+
+ put_time(
+ "pthread_cond_broadcast - no threads waiting",
+ end_time,
+ 1, /* Only executed once */
+ 0,
+ 0
+ );
+
+}
+
+void *POSIX_Init(
+ void *argument
+)
+{
+
+ puts( "\n\n*** POSIX TIME TEST PSXTMCOND05 ***" );
+
+ pthread_cond_init(&CondID, NULL);
+
+ benchmark_broadcast();
+
+ puts( "*** END OF POSIX TIME TEST PSXTMCOND05 ***" );
+ rtems_test_exit(0);
+}
+
+/* configuration information */
+
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
+
+#define CONFIGURE_MAXIMUM_POSIX_THREADS 1
+#define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES 2
+#define CONFIGURE_POSIX_INIT_THREAD_TABLE
+
+#define CONFIGURE_INIT
+
+#include <rtems/confdefs.h>
+/* end of file */
diff --git a/testsuites/psxtmtests/psxtmcond05/psxtmcond05.doc b/testsuites/psxtmtests/psxtmcond05/psxtmcond05.doc
new file mode 100644
index 0000000000..865fc07091
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmcond05/psxtmcond05.doc
@@ -0,0 +1,11 @@
+# COPYRIGHT (c) 1989-2011.
+# On-Line Applications Research Corporation (OAR).
+#
+# The license and distribution terms for this file may be
+# found in the file LICENSE in this distribution or at
+# http://www.rtems.com/license/LICENSE.
+#
+
+This test benchmarks the following operations:
+
++
diff --git a/testsuites/psxtmtests/psxtmcond08/Makefile.am b/testsuites/psxtmtests/psxtmcond08/Makefile.am
new file mode 100644
index 0000000000..6207972fa9
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmcond08/Makefile.am
@@ -0,0 +1,28 @@
+MANAGERS = all
+
+rtems_tests_PROGRAMS = psxtmcond08
+psxtmcond08_SOURCES = init.c
+psxtmcond08_SOURCES += ../../tmtests/include/timesys.h
+psxtmcond08_SOURCES += ../../support/src/tmtests_empty_function.c
+psxtmcond08_SOURCES += ../../support/src/tmtests_support.c
+
+dist_rtems_tests_DATA = psxtmcond08.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+OPERATION_COUNT = @OPERATION_COUNT@
+AM_CPPFLAGS += -I$(top_srcdir)/../tmtests/include
+AM_CPPFLAGS += -DOPERATION_COUNT=$(OPERATION_COUNT)
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -DUSE_WAIT
+
+LINK_OBJS = $(psxtmcond08_OBJECTS) $(psxtmcond08_LDADD)
+LINK_LIBS = $(psxtmcond08_LDLIBS)
+
+psxtmcond08$(EXEEXT): $(psxtmcond08_OBJECTS) $(psxtmcond08_DEPENDENCIES)
+ @rm -f psxtmcond08$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/psxtmtests/psxtmcond08/init.c b/testsuites/psxtmtests/psxtmcond08/init.c
new file mode 100644
index 0000000000..af970361b3
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmcond08/init.c
@@ -0,0 +1,178 @@
+/*
+ * COPYRIGHT (c) 1989-2012.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#if defined(USE_WAIT)
+ #define TEST_NUMBER "08"
+ #define TEST_CASE "pthread_cond_wait - blocking"
+#elif defined(USE_TIMEDWAIT_WITH_VALUE)
+ #define TEST_NUMBER "09"
+ #define TEST_CASE "pthread_cond_timedwait - blocking"
+#elif defined(USE_TIMEDWAIT_WAIT_VALUE_IN_PAST)
+ #define TEST_NUMBER "10"
+ #define TEST_CASE "pthread_cond_timedwait - time in past error"
+#else
+ #error "How am I being compiled?"
+#endif
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <stdio.h>
+#include <time.h>
+#include <errno.h>
+#include <timesys.h>
+#include <tmacros.h>
+#include <rtems/timerdrv.h>
+#include "test_support.h"
+
+#include <pthread.h>
+
+/* forward declarations to avoid warnings */
+void *POSIX_Init(void *argument);
+void *Middle(void *argument);
+void *Low(void *argument);
+
+pthread_cond_t CondID;
+pthread_mutex_t MutexID;
+struct timespec sleepTime;
+
+void *Low(
+ void *argument
+)
+{
+ long end_time;
+
+ end_time = benchmark_timer_read();
+
+ put_time(
+ TEST_CASE,
+ end_time,
+ OPERATION_COUNT,
+ 0,
+ 0
+ );
+
+ puts( "*** END OF POSIX TIME TEST PSXTMCOND" TEST_NUMBER " ***" );
+
+ rtems_test_exit( 0 );
+ return NULL;
+}
+
+void *Middle(
+ void *argument
+)
+{
+ int rc;
+
+
+ rc = pthread_mutex_lock(&MutexID);
+ rtems_test_assert( rc == 0 );
+
+ /* block and switch to another task here */
+
+ #if defined(USE_WAIT)
+ rc = pthread_cond_wait( &CondID, &MutexID );
+ rtems_test_assert( rc == 0 );
+
+ #elif defined(USE_TIMEDWAIT_WITH_VALUE)
+
+ rc = pthread_cond_timedwait( &CondID, &MutexID, &sleepTime );
+ rtems_test_assert( rc == 0 );
+
+ #elif defined(USE_TIMEDWAIT_WAIT_VALUE_IN_PAST)
+ {
+ long end_time;
+
+ /* override sleepTime with something obviously in the past */
+ sleepTime.tv_sec = 0;
+ sleepTime.tv_nsec = 5;
+
+ /* this does all the work of timedwait but immediately returns */
+ rc = pthread_cond_timedwait( &CondID, &MutexID, &sleepTime );
+ end_time = benchmark_timer_read();
+ rtems_test_assert(rc == ETIMEDOUT);
+ }
+ #endif
+
+ pthread_mutex_unlock(&MutexID);
+ #if defined(USE_TIMEDWAIT_WAIT_VALUE_IN_PAST)
+ /*
+ * In this case, unlock does not switch to another thread. so we need
+ * to explicitly yield. If we do not yield, then we will measure the
+ * time required to do an implicit pthread_exit() which is undesirable
+ * from a measurement viewpoint.
+ */
+ sched_yield();
+ #endif
+ return NULL;
+}
+
+void *POSIX_Init(
+ void *argument
+)
+{
+ int i;
+ int status;
+ pthread_t threadId;
+ int rc;
+ struct timeval tp;
+
+ puts( "\n\n*** POSIX TIME TEST PSXTMCOND" TEST_NUMBER " ***" );
+
+ rc = gettimeofday(&tp, NULL);
+ rtems_test_assert( rc == 0 );
+
+ /* Convert from timeval to timespec */
+ sleepTime.tv_sec = tp.tv_sec;
+ sleepTime.tv_nsec = tp.tv_usec * 1000;
+ sleepTime.tv_nsec += 1;
+
+ rc = pthread_cond_init(&CondID, NULL);
+ rtems_test_assert( rc == 0 );
+
+ rc = pthread_mutex_init(&MutexID, NULL);
+ rtems_test_assert( rc == 0 );
+
+ rc = pthread_mutex_lock(&MutexID);
+ rtems_test_assert( rc == 0 );
+
+ for ( i=0 ; i < OPERATION_COUNT - 1 ; i++ ) {
+ status = pthread_create( &threadId, NULL, Middle, NULL );
+ rtems_test_assert( !status );
+ }
+
+ status = pthread_create( &threadId, NULL, Low, NULL );
+ rtems_test_assert( !status );
+
+ /* start the timer and switch through all the other tasks */
+ benchmark_timer_initialize();
+
+ rc = pthread_mutex_unlock(&MutexID);
+ rtems_test_assert( rc == 0 );
+
+ /* Should never return. */
+ return NULL;
+}
+
+/* configuration information */
+
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
+
+#define CONFIGURE_MAXIMUM_POSIX_THREADS OPERATION_COUNT + 2
+#define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES 2
+#define CONFIGURE_POSIX_INIT_THREAD_TABLE
+#define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES 2
+#define CONFIGURE_MAXIMUM_POSIX_MUTEXES 2
+
+#define CONFIGURE_INIT
+
+#include <rtems/confdefs.h>
+ /* end of file */
diff --git a/testsuites/psxtmtests/psxtmcond08/psxtmcond08.doc b/testsuites/psxtmtests/psxtmcond08/psxtmcond08.doc
new file mode 100644
index 0000000000..865fc07091
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmcond08/psxtmcond08.doc
@@ -0,0 +1,11 @@
+# COPYRIGHT (c) 1989-2011.
+# On-Line Applications Research Corporation (OAR).
+#
+# The license and distribution terms for this file may be
+# found in the file LICENSE in this distribution or at
+# http://www.rtems.com/license/LICENSE.
+#
+
+This test benchmarks the following operations:
+
++
diff --git a/testsuites/psxtmtests/psxtmcond09/Makefile.am b/testsuites/psxtmtests/psxtmcond09/Makefile.am
new file mode 100644
index 0000000000..c5b4eddd0d
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmcond09/Makefile.am
@@ -0,0 +1,28 @@
+MANAGERS = all
+
+rtems_tests_PROGRAMS = psxtmcond09
+psxtmcond09_SOURCES = ../psxtmcond08/init.c
+psxtmcond09_SOURCES += ../../tmtests/include/timesys.h
+psxtmcond09_SOURCES += ../../support/src/tmtests_empty_function.c
+psxtmcond09_SOURCES += ../../support/src/tmtests_support.c
+
+dist_rtems_tests_DATA = psxtmcond09.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+OPERATION_COUNT = @OPERATION_COUNT@
+AM_CPPFLAGS += -I$(top_srcdir)/../tmtests/include
+AM_CPPFLAGS += -DOPERATION_COUNT=$(OPERATION_COUNT)
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -DUSE_TIMEDWAIT_WITH_VALUE
+
+LINK_OBJS = $(psxtmcond09_OBJECTS) $(psxtmcond09_LDADD)
+LINK_LIBS = $(psxtmcond09_LDLIBS)
+
+psxtmcond09$(EXEEXT): $(psxtmcond09_OBJECTS) $(psxtmcond09_DEPENDENCIES)
+ @rm -f psxtmcond09$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/psxtmtests/psxtmcond09/psxtmcond09.doc b/testsuites/psxtmtests/psxtmcond09/psxtmcond09.doc
new file mode 100644
index 0000000000..865fc07091
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmcond09/psxtmcond09.doc
@@ -0,0 +1,11 @@
+# COPYRIGHT (c) 1989-2011.
+# On-Line Applications Research Corporation (OAR).
+#
+# The license and distribution terms for this file may be
+# found in the file LICENSE in this distribution or at
+# http://www.rtems.com/license/LICENSE.
+#
+
+This test benchmarks the following operations:
+
++
diff --git a/testsuites/psxtmtests/psxtmcond10/Makefile.am b/testsuites/psxtmtests/psxtmcond10/Makefile.am
new file mode 100644
index 0000000000..19222c8d5c
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmcond10/Makefile.am
@@ -0,0 +1,28 @@
+MANAGERS = all
+
+rtems_tests_PROGRAMS = psxtmcond10
+psxtmcond10_SOURCES = ../psxtmcond08/init.c
+psxtmcond10_SOURCES += ../../tmtests/include/timesys.h
+psxtmcond10_SOURCES += ../../support/src/tmtests_empty_function.c
+psxtmcond10_SOURCES += ../../support/src/tmtests_support.c
+
+dist_rtems_tests_DATA = psxtmcond10.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+OPERATION_COUNT = @OPERATION_COUNT@
+AM_CPPFLAGS += -I$(top_srcdir)/../tmtests/include
+AM_CPPFLAGS += -DOPERATION_COUNT=$(OPERATION_COUNT)
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -DUSE_TIMEDWAIT_WAIT_VALUE_IN_PAST
+
+LINK_OBJS = $(psxtmcond10_OBJECTS) $(psxtmcond10_LDADD)
+LINK_LIBS = $(psxtmcond10_LDLIBS)
+
+psxtmcond10$(EXEEXT): $(psxtmcond10_OBJECTS) $(psxtmcond10_DEPENDENCIES)
+ @rm -f psxtmcond10$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/psxtmtests/psxtmcond10/psxtmcond10.doc b/testsuites/psxtmtests/psxtmcond10/psxtmcond10.doc
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmcond10/psxtmcond10.doc
diff --git a/testsuites/psxtmtests/psxtmkey01/psxtmkey01.scn b/testsuites/psxtmtests/psxtmkey01/psxtmkey01.scn
new file mode 100644
index 0000000000..24f5841cbb
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmkey01/psxtmkey01.scn
@@ -0,0 +1,4 @@
+*** POSIX TIME TEST PSXTMKEY01 ***
+pthread_key_create 86
+pthread_key_delete 79
+*** END OF POSIX TIME TEST PSXTMKEY01 ***
diff --git a/testsuites/psxtmtests/psxtmkey02/psxtmkey02.scn b/testsuites/psxtmtests/psxtmkey02/psxtmkey02.scn
new file mode 100644
index 0000000000..a81aa96eef
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmkey02/psxtmkey02.scn
@@ -0,0 +1,5 @@
+*** POSIX TIME TEST PSXTMKEY02 ***
+pthread_getspecific 11
+pthread_setspecific 11
+pthread_getspecific 11
+*** END OF POSIX TIME TEST PSXTMKEY02 ***
diff --git a/testsuites/psxtmtests/psxtmmq01/psxtmmq01.scn b/testsuites/psxtmtests/psxtmmq01/psxtmmq01.scn
new file mode 100644
index 0000000000..585a0b7b9c
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmmq01/psxtmmq01.scn
@@ -0,0 +1,12 @@
+*** POSIX TIME TEST PSXTMMQ01 ***
+mq_open (first open) 106
+mq_send - no threads waiting 44
+mq_open (second open) 38
+mq_receive - available 41
+mq_unlink 46
+mq_timedsend - no threads waiting 92
+mq_timedreceive - available 91
+mq_notify 13
+mq_close (close of second) 21
+mq_close (close of first) 21
+*** END OF POSIX TIME TEST PSXTMMQ01 ***
diff --git a/testsuites/psxtmtests/psxtmmutex01/psxtmmutex01.scn b/testsuites/psxtmtests/psxtmmutex01/psxtmmutex01.scn
new file mode 100644
index 0000000000..a1b10c7ae7
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmmutex01/psxtmmutex01.scn
@@ -0,0 +1,4 @@
+*** POSIX TIME TEST PSXTMMUTEX01 ***
+pthread_mutex_init 28
+pthread_mutex_destroy 32
+*** END OF POSIX TIME TEST PSXTMMUTEX01 ***
diff --git a/testsuites/psxtmtests/psxtmmutex02/psxtmmutex02.scn b/testsuites/psxtmtests/psxtmmutex02/psxtmmutex02.scn
new file mode 100644
index 0000000000..2f4dada073
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmmutex02/psxtmmutex02.scn
@@ -0,0 +1,3 @@
+*** POSIX TIME TEST PSXTMMUTEX02 ***
+pthread_mutex_lock - unavailable, block 98
+*** END OF POSIX TIME TEST PSXTMMUTEX02 ***
diff --git a/testsuites/psxtmtests/psxtmmutex03/psxtmmutex03.scn b/testsuites/psxtmtests/psxtmmutex03/psxtmmutex03.scn
new file mode 100644
index 0000000000..7892cea985
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmmutex03/psxtmmutex03.scn
@@ -0,0 +1,9 @@
+*** POSIX TIME TEST PSXTMMUTEX03 ***
+pthread_mutex_lock - available 12
+pthread_mutex_unlock - no threads waiting 26
+pthread_mutex_trylock - available 12
+pthread_mutex_trylock - not available 12
+pthread_mutex_unlock - no threads waiting 27
+pthread_mutex_timedlock - available 14
+pthread_mutex_unlock - no threads waiting 26
+*** END OF POSIX TIME TEST PSXTMMUTEX03 ***
diff --git a/testsuites/psxtmtests/psxtmmutex04/psxtmmutex04.scn b/testsuites/psxtmtests/psxtmmutex04/psxtmmutex04.scn
new file mode 100644
index 0000000000..279bf0e4cd
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmmutex04/psxtmmutex04.scn
@@ -0,0 +1,3 @@
+*** POSIX TIME TEST PSXTMMUTEX04 ***
+pthread_mutex_timedlock - not available, block 98
+*** END OF POSIX TIME TEST PSXTMMUTEX04 ***
diff --git a/testsuites/psxtmtests/psxtmmutex05/psxtmmutex05.scn b/testsuites/psxtmtests/psxtmmutex05/psxtmmutex05.scn
new file mode 100644
index 0000000000..89ad03dbe0
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmmutex05/psxtmmutex05.scn
@@ -0,0 +1,3 @@
+*** POSIX TIME TEST PSXTMMUTEX05 ***
+pthread_mutex_unlock - unblocking, no preemption 37
+*** END OF POSIX TIME TEST PSXTMMUTEX05 ***
diff --git a/testsuites/psxtmtests/psxtmmutex06/psxtmmutex06.scn b/testsuites/psxtmtests/psxtmmutex06/psxtmmutex06.scn
new file mode 100644
index 0000000000..214bf5a0fe
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmmutex06/psxtmmutex06.scn
@@ -0,0 +1,3 @@
+*** POSIX TIME TEST PSXTMMUTEX02 ***
+pthread_mutex_unlock - unblocking, preempt 96
+*** END OF POSIX TIME TEST PSXTMMUTEX07 ***
diff --git a/testsuites/psxtmtests/psxtmmutex07/psxtmmutex07.scn b/testsuites/psxtmtests/psxtmmutex07/psxtmmutex07.scn
new file mode 100644
index 0000000000..cbf46ac8b6
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmmutex07/psxtmmutex07.scn
@@ -0,0 +1,5 @@
+*** POSIX TIME TEST PSXTMMUTEX07 ***
+pthread_mutex_getprioceiling 11
+pthread_mutex_setprioceiling 40
+pthread_mutex_getprioceiling 12
+*** END OF POSIX TIME TEST PSXTMMUTEX07 ***
diff --git a/testsuites/psxtmtests/psxtmtests_plan.csv b/testsuites/psxtmtests/psxtmtests_plan.csv
index 12018650c4..ff0e0aeb21 100644
--- a/testsuites/psxtmtests/psxtmtests_plan.csv
+++ b/testsuites/psxtmtests/psxtmtests_plan.csv
@@ -21,8 +21,10 @@
"pthread_cond_broadcast - no threads waiting","psxtmcond05","psxtmtest_single",
"pthread_cond_broadcast - threads waiting, no preempt","psxtmcond06","psxtmtest_unblocking_nopreempt",
"pthread_cond_broadcast - threads waiting, preempt","psxtmcond07","psxtmtest_unblocking_preempt",
-"pthread_cond_wait - blocks","psxtmcond08","psxtmtest_blocking",
-"pthread_cond_timedwait - blocks","psxtmcond09","psxtmtest_blocking",
+
+"pthread_cond_wait - blocks (mutex+condvar pattern)","psxtmcond08","psxtmtest_blocking",
+"pthread_cond_timedwait(&time) - blocks (mutex+condvar pattern)","psxtmcond09","psxtmtest_blocking",
+"pthread_cond_timedwait(&time) - time in past error","psxtmcond10","psxtmtest_blocking",
,,,
"pthread_create - no preempt","psxtmthread01","psxtmtest_single","Yes"
"pthread_create - preempt","psxtmthread02","psxtmtest_single",
diff --git a/testsuites/psxtmtests/psxtmthread02/Makefile.am b/testsuites/psxtmtests/psxtmthread02/Makefile.am
new file mode 100644
index 0000000000..c39e2c0aa5
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmthread02/Makefile.am
@@ -0,0 +1,27 @@
+MANAGERS = all
+
+rtems_tests_PROGRAMS = psxtmthread02
+psxtmthread02_SOURCES = init.c
+psxtmthread02_SOURCES += ../../tmtests/include/timesys.h
+psxtmthread02_SOURCES += ../../support/src/tmtests_empty_function.c
+psxtmthread02_SOURCES += ../../support/src/tmtests_support.c
+
+dist_rtems_tests_DATA = psxtmthread02.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+OPERATION_COUNT = @OPERATION_COUNT@
+AM_CPPFLAGS += -I$(top_srcdir)/../tmtests/include
+AM_CPPFLAGS += -DOPERATION_COUNT=$(OPERATION_COUNT)
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+
+LINK_OBJS = $(psxtmthread02_OBJECTS) $(psxtmthread02_LDADD)
+LINK_LIBS = $(psxtmthread02_LDLIBS)
+
+psxtmthread02$(EXEEXT): $(psxtmthread02_OBJECTS) $(psxtmthread02_DEPENDENCIES)
+ @rm -f psxtmthread02$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/psxtmtests/psxtmthread02/init.c b/testsuites/psxtmtests/psxtmthread02/init.c
new file mode 100644
index 0000000000..41fb17f462
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmthread02/init.c
@@ -0,0 +1,80 @@
+/*
+ * COPYRIGHT (c) 1989-2012.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <timesys.h>
+#include <pthread.h>
+#include <rtems/timerdrv.h>
+#include "test_support.h"
+
+/* forward declarations to avoid warnings */
+void *POSIX_Init(void *argument);
+void benchmark_pthread_create(void);
+void thread(void *argument);
+
+void benchmark_pthread_create(void)
+{
+ long end_time;
+ int status;
+ pthread_t thread_ID;
+
+ benchmark_timer_initialize();
+
+ status = pthread_create(&thread_ID, NULL, thread, NULL);
+ rtems_test_assert( status == 0 );
+
+ end_time = benchmark_timer_read();
+
+ rtems_test_assert( status == 0 );
+
+ put_time(
+ "pthread_create - preempt",
+ end_time,
+ 1, /* Only executed once */
+ 0,
+ 0
+ );
+
+}
+
+void thread(
+ void *argument
+)
+{
+ //Empty thread used in pthread_create().
+}
+
+void *POSIX_Init(
+ void *argument
+)
+{
+
+ puts( "\n\n*** POSIX TIME TEST PSXTMTHREAD02 ***" );
+
+ benchmark_pthread_create();
+
+ puts( "*** END OF POSIX TIME TEST PSXTMTHREAD02 ***" );
+ rtems_test_exit(0);
+}
+
+/* configuration information */
+
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
+
+#define CONFIGURE_MAXIMUM_POSIX_THREADS 2
+#define CONFIGURE_POSIX_INIT_THREAD_TABLE
+
+#define CONFIGURE_INIT
+
+#include <rtems/confdefs.h>
+/* end of file */
diff --git a/testsuites/psxtmtests/psxtmthread02/psxtmthread02.doc b/testsuites/psxtmtests/psxtmthread02/psxtmthread02.doc
new file mode 100644
index 0000000000..865fc07091
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmthread02/psxtmthread02.doc
@@ -0,0 +1,11 @@
+# COPYRIGHT (c) 1989-2011.
+# On-Line Applications Research Corporation (OAR).
+#
+# The license and distribution terms for this file may be
+# found in the file LICENSE in this distribution or at
+# http://www.rtems.com/license/LICENSE.
+#
+
+This test benchmarks the following operations:
+
++
diff --git a/testsuites/sptests/spfatal_support/init.c b/testsuites/sptests/spfatal_support/init.c
index 5554e88762..eb7a167361 100644
--- a/testsuites/sptests/spfatal_support/init.c
+++ b/testsuites/sptests/spfatal_support/init.c
@@ -34,13 +34,6 @@ rtems_task Init(
rtems_test_exit(0);
}
-char *Sources[] = {
- "INTERNAL_ERROR_CORE",
- "INTERNAL_ERROR_RTEMS_API",
- "INTERNAL_ERROR_POSIX_API",
-};
-
-
char *Errors_Rtems[] = {
"RTEMS_SUCCESSFUL", /* successful completion */
"RTEMS_TASK_EXITTED", /* returned from a task */
@@ -82,19 +75,15 @@ void Put_Error( uint32_t source, uint32_t error )
}
}
-void Put_Source( uint32_t source )
+void Put_Source( rtems_fatal_source source )
{
- if ( source > INTERNAL_ERROR_POSIX_API )
- printk("Unknown Source (%d)", source);
- else
- printk( Sources[ source ] );
+ printk( "%s", rtems_fatal_source_description( source ) );
}
-
void Fatal_extension(
- uint32_t source,
- bool is_internal,
- uint32_t error
+ rtems_fatal_source source,
+ bool is_internal,
+ rtems_fatal_code error
)
{
print_test_begin_message();
diff --git a/testsuites/sptests/spfatal_support/system.h b/testsuites/sptests/spfatal_support/system.h
index 2be14593de..69f917f972 100644
--- a/testsuites/sptests/spfatal_support/system.h
+++ b/testsuites/sptests/spfatal_support/system.h
@@ -25,9 +25,9 @@ rtems_task Init(
);
void Fatal_extension(
- uint32_t source,
- bool is_internal,
- uint32_t error
+ rtems_fatal_source source,
+ bool is_internal,
+ rtems_fatal_code error
);
void Put_Error(
@@ -35,9 +35,7 @@ void Put_Error(
uint32_t error
);
-void Put_Source(
- uint32_t source
-);
+void Put_Source( rtems_fatal_source source );
void force_error(void);
diff --git a/testsuites/sptests/spinternalerror02/init.c b/testsuites/sptests/spinternalerror02/init.c
index 79b36ca89c..8bfb6503e9 100644
--- a/testsuites/sptests/spinternalerror02/init.c
+++ b/testsuites/sptests/spinternalerror02/init.c
@@ -20,7 +20,7 @@
#include <rtems.h>
-static void test(void)
+static void test_internal_error_description(void)
{
rtems_fatal_code error = 0;
const char *desc_last = NULL;
@@ -36,11 +36,28 @@ static void test(void)
rtems_test_assert( error - 3 == INTERNAL_ERROR_CPU_ISR_INSTALL_VECTOR );
}
+static void test_fatal_source_description(void)
+{
+ rtems_fatal_source source = 0;
+ const char *desc_last = NULL;
+ const char *desc;
+
+ do {
+ desc_last = desc;
+ desc = rtems_fatal_source_description( source );
+ ++source;
+ puts( desc );
+ } while ( desc != desc_last );
+
+ rtems_test_assert( source - 3 == RTEMS_FATAL_SOURCE_EXCEPTION );
+}
+
static void Init(rtems_task_argument arg)
{
puts("\n\n*** TEST SPINTERNALERROR 2 ***");
- test();
+ test_internal_error_description();
+ test_fatal_source_description();
puts("*** END OF TEST SPINTERNALERROR 2 ***");
diff --git a/testsuites/sptests/spinternalerror02/spinternalerror02.scn b/testsuites/sptests/spinternalerror02/spinternalerror02.scn
index 6fdbed6083..9d7a722751 100644
--- a/testsuites/sptests/spinternalerror02/spinternalerror02.scn
+++ b/testsuites/sptests/spinternalerror02/spinternalerror02.scn
@@ -26,4 +26,17 @@ INTERNAL_ERROR_NO_MEMORY_FOR_HEAP
INTERNAL_ERROR_CPU_ISR_INSTALL_VECTOR
?
?
+INTERNAL_ERROR_CORE
+INTERNAL_ERROR_RTEMS_API
+INTERNAL_ERROR_POSIX_API
+RTEMS_FATAL_SOURCE_BDBUF
+RTEMS_FATAL_SOURCE_APPLICATION
+RTEMS_FATAL_SOURCE_EXIT
+RTEMS_FATAL_SOURCE_BSP_GENERIC
+RTEMS_FATAL_SOURCE_BSP_SPECIFIC
+RTEMS_FATAL_SOURCE_ASSERT
+RTEMS_FATAL_SOURCE_STACK_CHECKER
+RTEMS_FATAL_SOURCE_EXCEPTION
+?
+?
*** END OF TEST SPINTERNALERROR 2 ***
diff --git a/testsuites/sptests/spintrcritical10/init.c b/testsuites/sptests/spintrcritical10/init.c
index 66306cd966..f284780546 100644
--- a/testsuites/sptests/spintrcritical10/init.c
+++ b/testsuites/sptests/spintrcritical10/init.c
@@ -2,49 +2,316 @@
* COPYRIGHT (c) 1989-2012.
* On-Line Applications Research Corporation (OAR).
*
+ * Copyright (c) 2013 embedded brains GmbH.
+ *
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*/
#ifdef HAVE_CONFIG_H
-#include "config.h"
+ #include "config.h"
#endif
#define __RTEMS_VIOLATE_KERNEL_VISIBILITY__ 1
#include <tmacros.h>
#include <intrcritical.h>
-/* forward declarations to avoid warnings */
-rtems_task Init(rtems_task_argument argument);
+#define GREEN RTEMS_EVENT_0
-rtems_id Main_task;
+#define RED RTEMS_EVENT_1
-rtems_task Init(
- rtems_task_argument ignored
-)
+#define EVENTS (GREEN | RED)
+
+#define DEADBEEF 0xdeadbeef
+
+typedef struct {
+ rtems_id timer;
+ Thread_Control *thread;
+ bool hit;
+} test_context;
+
+static void any_satisfy_before_timeout(rtems_id timer, void *arg)
{
- rtems_status_code sc;
- rtems_event_set out;
- int resets;
+ rtems_status_code sc;
+ test_context *ctx = arg;
+ const Thread_Control *thread = ctx->thread;
- puts( "\n\n*** TEST INTERRUPT CRITICAL SECTION 10 ***" );
+ if (thread->Wait.count != 0) {
+ ctx->hit = _Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;
+
+ rtems_test_assert(thread->Wait.count == EVENTS);
+ rtems_test_assert(
+ *(rtems_event_set *) thread->Wait.return_argument == DEADBEEF
+ );
+ rtems_test_assert(thread->Wait.return_code == RTEMS_SUCCESSFUL);
+
+ sc = rtems_event_send(thread->Object.id, GREEN);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
+
+ rtems_test_assert(thread->Wait.count == 0);
+ rtems_test_assert(
+ *(rtems_event_set *) thread->Wait.return_argument == GREEN
+ );
+ rtems_test_assert(thread->Wait.return_code == RTEMS_SUCCESSFUL);
+
+ sc = rtems_event_send(thread->Object.id, RED);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
+
+ rtems_test_assert(thread->Wait.count == 0);
+ rtems_test_assert(
+ *(rtems_event_set *) thread->Wait.return_argument == GREEN
+ );
+ rtems_test_assert(thread->Wait.return_code == RTEMS_SUCCESSFUL);
+
+ _Event_Timeout(thread->Object.id, &_Event_Sync_state);
+
+ rtems_test_assert(thread->Wait.count == 0);
+ rtems_test_assert(
+ *(rtems_event_set *) thread->Wait.return_argument == GREEN
+ );
+ rtems_test_assert(thread->Wait.return_code == RTEMS_SUCCESSFUL);
+
+ if (ctx->hit) {
+ rtems_test_assert(
+ _Event_Sync_state == THREAD_BLOCKING_OPERATION_SATISFIED
+ );
+ }
+ }
+
+ sc = rtems_timer_reset(timer);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
+}
+
+static void test_any_satisfy_before_timeout(test_context *ctx)
+{
+ rtems_status_code sc;
+ int resets = 0;
+
+ puts(
+ "Init - Trying to generate any satisfied before timeout "
+ "while blocking on event"
+ );
+
+ ctx->hit = false;
+
+ interrupt_critical_section_test_support_initialize(NULL);
+
+ sc = rtems_timer_fire_after(ctx->timer, 1, any_satisfy_before_timeout, ctx);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
+
+ while (!ctx->hit && resets < 2) {
+ rtems_event_set out;
+
+ if (interrupt_critical_section_test_support_delay())
+ resets++;
+
+ out = DEADBEEF;
+ sc = rtems_event_receive(EVENTS, RTEMS_EVENT_ANY | RTEMS_WAIT, 1, &out);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
+ rtems_test_assert(out == GREEN);
+
+ out = DEADBEEF;
+ sc = rtems_event_receive(EVENTS, RTEMS_EVENT_ANY | RTEMS_NO_WAIT, 0, &out);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
+ rtems_test_assert(out == RED);
+ }
+
+ sc = rtems_timer_cancel(ctx->timer);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
+
+ rtems_test_assert(ctx->hit);
+}
+
+static void all_satisfy_before_timeout(rtems_id timer, void *arg)
+{
+ rtems_status_code sc;
+ test_context *ctx = arg;
+ const Thread_Control *thread = ctx->thread;
+
+ if (thread->Wait.count != 0) {
+ ctx->hit = _Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;
+
+ rtems_test_assert(thread->Wait.count == EVENTS);
+ rtems_test_assert(
+ *(rtems_event_set *) thread->Wait.return_argument == DEADBEEF
+ );
+ rtems_test_assert(thread->Wait.return_code == RTEMS_SUCCESSFUL);
+
+ sc = rtems_event_send(thread->Object.id, GREEN);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
+
+ rtems_test_assert(thread->Wait.count == EVENTS);
+ rtems_test_assert(
+ *(rtems_event_set *) thread->Wait.return_argument == DEADBEEF
+ );
+ rtems_test_assert(thread->Wait.return_code == RTEMS_SUCCESSFUL);
+
+ sc = rtems_event_send(thread->Object.id, RED);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
+
+ rtems_test_assert(thread->Wait.count == 0);
+ rtems_test_assert(
+ *(rtems_event_set *) thread->Wait.return_argument == EVENTS
+ );
+ rtems_test_assert(thread->Wait.return_code == RTEMS_SUCCESSFUL);
+
+ _Event_Timeout(thread->Object.id, &_Event_Sync_state);
+
+ rtems_test_assert(thread->Wait.count == 0);
+ rtems_test_assert(
+ *(rtems_event_set *) thread->Wait.return_argument == EVENTS
+ );
+ rtems_test_assert(thread->Wait.return_code == RTEMS_SUCCESSFUL);
+
+ if (ctx->hit) {
+ rtems_test_assert(
+ _Event_Sync_state == THREAD_BLOCKING_OPERATION_SATISFIED
+ );
+ }
+ }
- puts( "Init - Test may not be able to detect case is hit reliably" );
- puts( "Init - Trying to generate timeout while blocking on event" );
+ sc = rtems_timer_reset(timer);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
+}
+
+static void test_all_satisfy_before_timeout(test_context *ctx)
+{
+ rtems_status_code sc;
+ int resets = 0;
+
+ puts(
+ "Init - Trying to generate all satisfied before timeout "
+ "while blocking on event"
+ );
+
+ ctx->hit = false;
+
+ interrupt_critical_section_test_support_initialize(NULL);
- Main_task = rtems_task_self();
+ sc = rtems_timer_fire_after(ctx->timer, 1, all_satisfy_before_timeout, ctx);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
- interrupt_critical_section_test_support_initialize( NULL );
+ while (!ctx->hit && resets < 2) {
+ rtems_event_set out;
- for (resets=0 ; resets< 2 ;) {
- if ( interrupt_critical_section_test_support_delay() )
+ if (interrupt_critical_section_test_support_delay())
resets++;
- sc = rtems_event_receive( 0x01, RTEMS_DEFAULT_OPTIONS, 1, &out );
- fatal_directive_status( sc, RTEMS_TIMEOUT, "event_receive timeout" );
+ out = DEADBEEF;
+ sc = rtems_event_receive(EVENTS, RTEMS_EVENT_ALL | RTEMS_WAIT, 1, &out);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
+ rtems_test_assert(out == EVENTS);
}
+ sc = rtems_timer_cancel(ctx->timer);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
+
+ rtems_test_assert(ctx->hit);
+}
+
+static void timeout_before_satisfied(rtems_id timer, void *arg)
+{
+ rtems_status_code sc;
+ test_context *ctx = arg;
+ const Thread_Control *thread = ctx->thread;
+
+ if (thread->Wait.count != 0) {
+ ctx->hit =
+ _Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;
+
+ rtems_test_assert(thread->Wait.count == EVENTS);
+ rtems_test_assert(
+ *(rtems_event_set *) thread->Wait.return_argument == DEADBEEF
+ );
+ rtems_test_assert(thread->Wait.return_code == RTEMS_SUCCESSFUL);
+
+ _Event_Timeout(thread->Object.id, &_Event_Sync_state);
+
+ rtems_test_assert(thread->Wait.count == 0);
+ rtems_test_assert(
+ *(rtems_event_set *) thread->Wait.return_argument == DEADBEEF
+ );
+ rtems_test_assert(thread->Wait.return_code == RTEMS_TIMEOUT);
+
+ sc = rtems_event_send(thread->Object.id, EVENTS);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
+
+ rtems_test_assert(thread->Wait.count == 0);
+ rtems_test_assert(
+ *(rtems_event_set *) thread->Wait.return_argument == DEADBEEF
+ );
+ rtems_test_assert(thread->Wait.return_code == RTEMS_TIMEOUT);
+
+ if (ctx->hit) {
+ rtems_test_assert(
+ _Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT
+ );
+ }
+ }
+
+ sc = rtems_timer_reset(timer);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
+}
+
+static void test_timeout_before_all_satisfy(test_context *ctx)
+{
+ rtems_status_code sc;
+ int resets = 0;
+
+ puts(
+ "Init - Trying to generate timeout before all satisfied "
+ "while blocking on event"
+ );
+
+ ctx->hit = false;
+
+ interrupt_critical_section_test_support_initialize(NULL);
+
+ sc = rtems_timer_fire_after(ctx->timer, 1, timeout_before_satisfied, ctx);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
+
+ while (!ctx->hit && resets < 2) {
+ rtems_event_set out;
+
+ if (interrupt_critical_section_test_support_delay())
+ resets++;
+
+ out = DEADBEEF;
+ sc = rtems_event_receive(EVENTS, RTEMS_EVENT_ALL | RTEMS_WAIT, 1, &out);
+ rtems_test_assert(sc == RTEMS_TIMEOUT);
+ rtems_test_assert(out == DEADBEEF);
+
+ out = DEADBEEF;
+ sc = rtems_event_receive(EVENTS, RTEMS_EVENT_ALL | RTEMS_NO_WAIT, 0, &out);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
+ rtems_test_assert(out == EVENTS);
+ }
+
+ sc = rtems_timer_cancel(ctx->timer);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
+
+ rtems_test_assert(ctx->hit);
+}
+
+static rtems_task Init(
+ rtems_task_argument ignored
+)
+{
+ rtems_status_code sc;
+ test_context ctx = {
+ .thread = _Thread_Executing
+ };
+
+ puts( "\n\n*** TEST INTERRUPT CRITICAL SECTION 10 ***" );
+
+ sc = rtems_timer_create(rtems_build_name('T', 'I', 'M', 'R'), &ctx.timer);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
+
+ test_any_satisfy_before_timeout(&ctx);
+ test_all_satisfy_before_timeout(&ctx);
+ test_timeout_before_all_satisfy(&ctx);
+
puts( "*** END OF TEST INTERRUPT CRITICAL SECTION 10 ***" );
rtems_test_exit(0);
}
@@ -61,5 +328,3 @@ rtems_task Init(
#define CONFIGURE_INIT
#include <rtems/confdefs.h>
-
-/* global variables */
diff --git a/testsuites/sptests/spintrcritical10/spintrcritical10.scn b/testsuites/sptests/spintrcritical10/spintrcritical10.scn
index 9f59c0ea4d..e8db0c576a 100644
--- a/testsuites/sptests/spintrcritical10/spintrcritical10.scn
+++ b/testsuites/sptests/spintrcritical10/spintrcritical10.scn
@@ -1,4 +1,5 @@
*** TEST INTERRUPT CRITICAL SECTION 10 ***
-Init - Test may not be able to detect case is hit reliably
-Init - Trying to generate timeout while blocking on event
+Init - Trying to generate any satisfied before timeout while blocking on event
+Init - Trying to generate all satisfied before timeout while blocking on event
+Init - Trying to generate timeout before all satisfied while blocking on event
*** END OF TEST INTERRUPT CRITICAL SECTION 10 ***
diff --git a/testsuites/sptests/spintrcritical16/init.c b/testsuites/sptests/spintrcritical16/init.c
index 396445509d..4d551bae79 100644
--- a/testsuites/sptests/spintrcritical16/init.c
+++ b/testsuites/sptests/spintrcritical16/init.c
@@ -52,7 +52,10 @@ rtems_timer_service_routine test_release_from_isr(
case_hit = true;
(void) rtems_semaphore_release( Semaphore );
}
- _Thread_queue_Process_timeout( Main_TCB );
+
+ if ( Main_TCB->Wait.queue != NULL ) {
+ _Thread_queue_Process_timeout( Main_TCB );
+ }
}
rtems_task Init(
diff --git a/testsuites/tmtests/tmoverhd/tmoverhd.doc b/testsuites/tmtests/tmoverhd/tmoverhd.doc
index a2dcbde8b6..3900c4006a 100644
--- a/testsuites/tmtests/tmoverhd/tmoverhd.doc
+++ b/testsuites/tmtests/tmoverhd/tmoverhd.doc
@@ -6,4 +6,79 @@
# http://www.rtems.com/license/LICENSE.
#
+directives:
++ rtems shutdown executive
++ rtems task create
++ rtems task ident
++ rtems task start
++ rtems task restart
++ rtems task delete
++ rtems task suspend
++ rtems task resume
++ rtems task set priority
++ rtems task mode
++ rtems task get note
++ rtems task set note
++ rtems task wake when
++ rtems task wake after
++ rtems interrupt catch
++ rtems clock get
++ rtems clock set
++ rtems clock tick
++ rtems timer create
++ rtems timer delete
++ rtems timer ident
++ rtems timer fire after
++ rtems timer fire when
++ rtems timer reset
++ rtems timer cancel
++ rtems semaphore create
++ rtems semaphore delete
++ rtems semaphore ident
++ rtems semaphore obtain
++ rtems semaphore release
++ rtems message queue create
++ rtems message queue ident
++ rtems message queue delete
++ rtems message queue send
++ rtems message queue urgent
++ rtems message queue broadcast
++ rtems message queue receive
++ rtems message queue flush
++ rtems event send
++ rtems event receive
++ rtems signal catch
++ rtems signal send
++ rtems partition create
++ rtems partition ident
++ rtems partition delete
++ rtems partition get buffer
++ rtems partition return buffer
++ rtems region create
++ rtems region ident
++ rtems region delete
++ rtems region get segment
++ rtems region return segment
++ rtems port create
++ rtems port ident
++ rtems port delete
++ rtems port external to internal
++ rtems port internal to external
++ rtems io initialize
++ rtems io open
++ rtems io close
++ rtems io read
++ rtems io write
++ rtems io control
++ rtems fatal error occurred
++ rtems rate monotonic create
++ rtems rate monotonic ident
++ rtems rate monotonic delete
++ rtems rate monotonic cancel
++ rtems rate monotonic period
++ rtems multiprocessing announce
+
+concepts:
+
++ Test the overhead of various classic RTEMS directives.