|
@@ -1,151 +0,0 @@
|
|
|
-/*
|
|
|
- * Copyright 2003 Digi International (www.digi.com)
|
|
|
- * Scott H Kilau <Scott_Kilau at digi dot com>
|
|
|
- *
|
|
|
- * This program is free software; you can redistribute it and/or modify
|
|
|
- * it under the terms of the GNU General Public License as published by
|
|
|
- * the Free Software Foundation; either version 2, or (at your option)
|
|
|
- * any later version.
|
|
|
- *
|
|
|
- * This program is distributed in the hope that it will be useful,
|
|
|
- * but WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED; without even the
|
|
|
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
|
- * PURPOSE. See the GNU General Public License for more details.
|
|
|
- *
|
|
|
- * You should have received a copy of the GNU General Public License
|
|
|
- * along with this program; if not, write to the Free Software
|
|
|
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
|
- *
|
|
|
- * NOTE: THIS IS A SHARED HEADER. DO NOT CHANGE CODING STYLE!!!
|
|
|
- *
|
|
|
- *
|
|
|
- * $Id: dgap_proc.h,v 1.1 2009/10/23 14:01:57 markh Exp $
|
|
|
- *
|
|
|
- * Description:
|
|
|
- *
|
|
|
- * Describes the private structures used to manipulate the "special"
|
|
|
- * proc constructs (not read-only) used by the Digi Neo software.
|
|
|
- * The concept is borrowed heavily from the "sysctl" interface of
|
|
|
- * the kernel. I decided not to use the structures and functions
|
|
|
- * provided by the kernel for two reasons:
|
|
|
- *
|
|
|
- * 1. Due to the planned use of "/proc" in the Neo driver, many
|
|
|
- * of the functions of the "sysctl" interface would go unused.
|
|
|
- * A simpler interface will be easier to maintain.
|
|
|
- *
|
|
|
- * 2. I'd rather divorce our "added package" from the kernel internals.
|
|
|
- * If the "sysctl" structures should change, I will be insulated
|
|
|
- * from those changes. These "/proc" entries won't be under the
|
|
|
- * "sys" tree anyway, so there is no need to maintain a strict
|
|
|
- * dependence relationship.
|
|
|
- *
|
|
|
- * Author:
|
|
|
- *
|
|
|
- * Scott H Kilau
|
|
|
- *
|
|
|
- */
|
|
|
-
|
|
|
-#ifndef _DGAP_RW_PROC_H
|
|
|
-#define _DGAP_RW_PROC_H
|
|
|
-
|
|
|
-/*
|
|
|
- * The list of DGAP entries with r/w capabilities.
|
|
|
- * These magic numbers are used for identification purposes.
|
|
|
- */
|
|
|
-enum {
|
|
|
- DGAP_INFO = 1, /* Get info about the running module */
|
|
|
- DGAP_MKNOD = 2, /* Get info about driver devices */
|
|
|
- DGAP_BOARD_INFO = 3, /* Get info about the specific board */
|
|
|
- DGAP_BOARD_VPD = 4, /* Get info about the board's VPD */
|
|
|
- DGAP_BOARD_VPDDATA = 5, /* Get info about the board's VPD */
|
|
|
- DGAP_BOARD_TTYSTATS = 6, /* Get info about the board's tty stats */
|
|
|
- DGAP_BOARD_TTYFLAGS = 7, /* Get info about the board's tty flags */
|
|
|
- DGAP_BOARD_MKNOD = 8, /* Get info about board devices */
|
|
|
- DGAP_PORT_INFO = 9, /* Get info about the specific port */
|
|
|
- DGAP_PORT_SNIFF = 10, /* Sniff data in/out of specific port */
|
|
|
- DGAP_PORT_CUSTOM_TTYNAME = 11, /* Get info about UDEV tty name */
|
|
|
- DGAP_PORT_CUSTOM_PRNAME = 12, /* Get info about UDEV pr name */
|
|
|
- DGAP_PORT_FEPSTATE = 13, /* Get info about Ports FEP state */
|
|
|
-};
|
|
|
-
|
|
|
-#define DGAP_MAX_PROC_ENTRIES 999
|
|
|
-
|
|
|
-/*
|
|
|
- * Directions for proc handlers
|
|
|
- */
|
|
|
-enum {
|
|
|
- INBOUND = 1, /* Data being written to kernel */
|
|
|
- OUTBOUND = 2, /* Data being read from the kernel */
|
|
|
-};
|
|
|
-
|
|
|
-/*
|
|
|
- * Each entry in a DGAP proc directory is described with a
|
|
|
- * "dgap_proc_entry" structure. A collection of these
|
|
|
- * entries (in an array) represents the members associated
|
|
|
- * with a particular "/proc" directory, and is referred to
|
|
|
- * as a table. All "tables" are terminated by an entry with
|
|
|
- * zeros for every member.
|
|
|
- *
|
|
|
- * The structure members are as follows:
|
|
|
- *
|
|
|
- * int magic -- ID number associated with this particular
|
|
|
- * entry. Should be unique across all of
|
|
|
- * DGAP.
|
|
|
- *
|
|
|
- * const char *name -- ASCII name associated with the /proc entry.
|
|
|
- *
|
|
|
- * mode_t mode -- File access permisssions for the /proc entry.
|
|
|
- *
|
|
|
- * dgap_proc_entry *child -- When set, this entry refers to a directory,
|
|
|
- * and points to the table which describes the
|
|
|
- * entries in the subdirectory
|
|
|
- *
|
|
|
- * dgap_proc_handler *open_handler -- When set, points to the fxn which
|
|
|
- * does any "extra" open stuff.
|
|
|
- *
|
|
|
- * dgap_proc_handler *close_handler -- When set, points to the fxn which
|
|
|
- * does any "extra" close stuff.
|
|
|
- *
|
|
|
- * dgap_proc_handler *read_handler -- When set, points to the fxn which
|
|
|
- * handle outbound data flow
|
|
|
- *
|
|
|
- * dgap_proc_handler *write_handler -- When set, points to the fxn which
|
|
|
- * handles inbound data flow
|
|
|
- *
|
|
|
- * struct proc_dir_entry *de -- Pointer to the directory entry for this
|
|
|
- * object once registered. Used to grab
|
|
|
- * the handle of the object for
|
|
|
- * unregistration
|
|
|
- *
|
|
|
- * void *data; When set, points to the parent structure
|
|
|
- *
|
|
|
- */
|
|
|
-
|
|
|
-struct dgap_proc_entry {
|
|
|
- int magic; /* Integer identifier */
|
|
|
- const char *name; /* ASCII identifier */
|
|
|
- mode_t mode; /* File access permissions */
|
|
|
- struct dgap_proc_entry *child; /* Child pointer */
|
|
|
-
|
|
|
- int (*open_handler) (struct dgap_proc_entry *table, int dir, struct file *filp,
|
|
|
- void *buffer, ssize_t *lenp, loff_t *ppos);
|
|
|
- int (*close_handler) (struct dgap_proc_entry *table, int dir, struct file *filp,
|
|
|
- void *buffer, ssize_t *lenp, loff_t *ppos);
|
|
|
- int (*read_handler) (struct dgap_proc_entry *table, int dir, struct file *filp,
|
|
|
- char __user *buffer, ssize_t *lenp, loff_t *ppos);
|
|
|
- int (*write_handler) (struct dgap_proc_entry *table, int dir, struct file *filp,
|
|
|
- const char __user *buffer, ssize_t *lenp, loff_t *ppos);
|
|
|
-
|
|
|
- struct proc_dir_entry *de; /* proc entry pointer */
|
|
|
- struct semaphore excl_sem; /* Protects exclusive access var */
|
|
|
- int excl_cnt; /* Counts number of curr accesses */
|
|
|
- void *data; /* Allows storing a pointer to parent */
|
|
|
-};
|
|
|
-
|
|
|
-
|
|
|
-void dgap_proc_register_basic_prescan(void);
|
|
|
-void dgap_proc_unregister_all(void);
|
|
|
-void dgap_proc_register_basic_postscan(int board_num);
|
|
|
-void dgap_proc_register_channel_postscan(int board_num);
|
|
|
-
|
|
|
-#endif /* _DGAP_RW_PROC_H */
|