nidas
v1.2-1520
|
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/init.h>
#include <linux/poll.h>
#include <linux/interrupt.h>
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/timer.h>
#include <linux/version.h>
#include <linux/fs.h>
#include <linux/cdev.h>
#include <linux/device.h>
#include <linux/ioport.h>
#include <asm/atomic.h>
#include <asm/io.h>
#include <asm/uaccess.h>
#include "arinc.h"
#include "Condor/CEI420A/Include/utildefs.h"
#include <nidas/linux/ver_macros.h>
#include <nidas/linux/types.h>
#include <nidas/linux/util.h>
#include <nidas/linux/isa_bus.h>
#include <nidas/linux/klog.h>
#include <nidas/linux/Revision.h>
Classes | |
struct | arinc_board |
struct | arinc_dev |
Device structure used in the file operations of the character device which provides ARINC samples. More... | |
Macros | |
#define | TIMESYNC_SECS 10 |
#define | REPO_REVISION "unknown" |
#define | ARINC_SAMPLE_QUEUE_SIZE 8 |
#define | BOARD_NUM 0 |
#define | ARINC_IOMEM_SIZE (4096) |
#define | DEVNAME_ARINC "arinc" |
Info for ARINC user devices. More... | |
Functions | |
MODULE_LICENSE ("GPL") | |
MODULE_AUTHOR ("John Wasinger <wasinger@ucar.edu>") | |
MODULE_DESCRIPTION ("CEI420a ISA driver for Linux") | |
MODULE_VERSION (REPO_REVISION) | |
module_param (iomem, uint, 0) | |
MODULE_PARM_DESC (iomem,"ISA memory base (default 0xd0000)") | |
static void | log_error (short board, short err) |
static short | roundUpRate (short rate) |
static void | arinc_timesync (struct timer_list *_tlist) |
static void | arinc_sweep (struct timer_list *tlist) |
static int | arinc_open (struct inode *inode, struct file *filp) |
static long | arinc_ioctl (struct file *filp, unsigned int cmd, unsigned long arg) |
static unsigned int | arinc_poll (struct file *filp, poll_table *wait) |
static ssize_t | arinc_read (struct file *filp, char __user *buf, size_t count, loff_t *pos) |
static ssize_t | arinc_write (struct file *filp, const char __user *buf, size_t count, loff_t *pos) |
static int | arinc_release (struct inode *inode, struct file *filp) |
static void | arinc_cleanup (void) |
static int | scan_ceiisa (void) |
static int __init | arinc_init (void) |
module_init (arinc_init) | |
module_exit (arinc_cleanup) | |
Variables | |
unsigned int | iomem = 0xd0000 |
static struct arinc_board | board |
static struct arinc_dev * | chn_info = 0 |
static dev_t | arinc_device = MKDEV(0, 0) |
static struct cdev | arinc_cdev |
static struct file_operations | arinc_fops |
#define ARINC_IOMEM_SIZE (4096) |
Referenced by arinc_cleanup(), and arinc_init().
#define ARINC_SAMPLE_QUEUE_SIZE 8 |
Referenced by arinc_open(), and arinc_sweep().
#define BOARD_NUM 0 |
Referenced by arinc_cleanup(), arinc_init(), arinc_ioctl(), arinc_open(), arinc_release(), arinc_sweep(), arinc_timesync(), and arinc_write().
#define DEVNAME_ARINC "arinc" |
Info for ARINC user devices.
#define REPO_REVISION "unknown" |
Referenced by arinc_init().
#define TIMESYNC_SECS 10 |
Referenced by arinc_init(), and arinc_timesync().
|
static |
References arinc_cdev, arinc_device, ARINC_IOMEM_SIZE, board, BOARD_NUM, arinc_board::class, arinc_board::device, err, flush_irig_callbacks(), free_dsm_circ_buf(), log_error(), arinc_board::mapaddr, N_ARINC_RX, N_ARINC_TX, arinc_board::physaddr, arinc_dev::samples, arinc_dev::sweeper, arinc_board::syncer, and unregister_irig_callback().
Referenced by arinc_init().
|
static |
References AR_HIGH, arinc_cdev, arinc_cleanup(), arinc_device, ARINC_IOMEM_SIZE, arinc_sweep(), arinc_timesync(), board, BOARD_NUM, arinc_board::class, arinc_board::device, arinc_dev::deviceName, err, iomem, IRIG_1_HZ, arinc_board::lock, log_error(), arinc_board::mapaddr, MSECS_PER_SEC, N_ARINC_RX, N_ARINC_TX, arinc_board::numRxChannelsOpen, arinc_board::physaddr, register_irig_callback(), REPO_REVISION, arinc_dev::rwaitq, scan_ceiisa(), arinc_dev::sweeper, arinc_board::sync_jiffies, arinc_board::syncer, TIMESYNC_SECS, and arinc_dev::used.
|
static |
References AR_EVEN, AR_HIGH, AR_LOW, AR_ODD, arinc_dev::arcfgs, ARINC_BIT, ARINC_IOC_MAXNR, ARINC_MAGIC, ARINC_OPEN, ARINC_SET, ARINC_STAT, arinc_sweep(), board, BOARD_NUM, arinc_dev::deviceName, err, if(), IRIG_NUM_RATES, irigClockRateToEnum(), arcfg_t::label, arinc_board::lock, log_error(), LPB, dsm_arinc_status::lps, MSECS_PER_SEC, N_ARINC_RX, arinc_dev::nArcfg, archn_t::parity, arinc_dev::parity, arinc_dev::pollDtMsec, dsm_arinc_status::pollRate, arcfg_t::rate, arinc_dev::rate, register_irig_callback(), roundUpRate(), arinc_board::running, archn_t::speed, arinc_dev::speed, arinc_dev::status, arinc_dev::sweep_jiffies, and arinc_dev::sweeper.
|
static |
References AR_HIGH, AR_ODD, ARINC_SAMPLE_QUEUE_SIZE, board, BOARD_NUM, err, arinc_board::lock, log_error(), LPB, arinc_dev::lps_cnt_current, N_ARINC_RX, N_ARINC_TX, arinc_dev::nArcfg, arinc_dev::nSweeps, arinc_board::numRxChannelsOpen, arinc_dev::rate, arinc_dev::read_state, realloc_dsm_circ_buf(), arinc_dev::samples, arinc_dev::skippedSamples, arinc_dev::status, and arinc_dev::used.
|
static |
References if(), arinc_dev::read_state, arinc_dev::rwaitq, and arinc_dev::samples.
|
static |
References if(), nidas_circbuf_read(), arinc_dev::read_state, arinc_dev::rwaitq, and arinc_dev::samples.
|
static |
|
static |
References ARINC_SAMPLE_QUEUE_SIZE, board, BOARD_NUM, dsm_sample::data, arinc_dev::deviceName, err, dsm_sample::length, arinc_board::lock, LPB, dsm_arinc_status::lps_cnt, arinc_dev::lps_cnt_current, dsm_arinc_status::nosync, arinc_dev::nSweeps, dsm_arinc_status::overflow, arinc_dev::pollDtMsec, dsm_arinc_status::pollRate, arinc_dev::rwaitq, arinc_dev::samples, arinc_dev::skippedSamples, arinc_dev::status, arinc_dev::sweep_jiffies, arinc_dev::sweeper, dsm_sample::timetag, and dsm_arinc_status::underflow.
Referenced by arinc_init(), and arinc_ioctl().
|
static |
References board, BOARD_NUM, arinc_board::lock, MSECS_PER_SEC, arinc_board::sync_jiffies, arinc_board::syncer, and TIMESYNC_SECS.
Referenced by arinc_init().
|
static |
References BOARD_NUM, err, log_error(), and N_ARINC_RX.
|
static |
Referenced by arinc_cleanup(), arinc_init(), arinc_ioctl(), arinc_open(), arinc_release(), and arinc_write().
MODULE_AUTHOR | ( | "John Wasinger <wasinger@ucar.edu>" | ) |
MODULE_DESCRIPTION | ( | "CEI420a ISA driver for Linux" | ) |
module_exit | ( | arinc_cleanup | ) |
module_init | ( | arinc_init | ) |
MODULE_LICENSE | ( | "GPL" | ) |
module_param | ( | iomem | , |
uint | , | ||
0 | |||
) |
MODULE_PARM_DESC | ( | iomem | , |
"ISA memory base (default 0xd0000)" | |||
) |
MODULE_VERSION | ( | REPO_REVISION | ) |
|
static |
References rate.
Referenced by arinc_ioctl().
|
static |
References board, arinc_board::mapaddr, and arinc_board::physaddr.
Referenced by arinc_init().
|
static |
Referenced by arinc_cleanup(), and arinc_init().
|
static |
Referenced by arinc_cleanup(), and arinc_init().
|
static |
|
static |
Referenced by arinc_cleanup(), arinc_init(), arinc_ioctl(), arinc_open(), arinc_release(), arinc_sweep(), arinc_timesync(), and scan_ceiisa().
|
static |
unsigned int iomem = 0xd0000 |
Referenced by arinc_init().