⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iucv.h

📁 内核linux2.4.20,可跟rtlinux3.2打补丁 组成实时linux系统,编译内核
💻 H
📖 第 1 页 / 共 3 页
字号:
/* *  drivers/s390/net/iucv.h *    IUCV base support. * *  S390 version *    Copyright (C) 2000 IBM Corporation *    Author(s):Alan Altmark (Alan_Altmark@us.ibm.com)  *		Xenia Tkatschow (xenia@us.ibm.com) * * * Functionality: * To explore any of the IUCV functions, one must first register * their program using iucv_register_program(). Once your program has * successfully completed a register, it can exploit the other functions. * For furthur reference on all IUCV functionality, refer to the * CP Programming Services book, also available on the web * thru www.ibm.com/s390/vm/pubs, manual # SC24-5760 * *      Definition of Return Codes                                     *      -All positive return codes including zero are reflected back   *       from CP except for iucv_register_program. The definition of each  *       return code can be found in CP Programming Services book.     *       Also available on the web thru www.ibm.com/s390/vm/pubs, manual # SC24-5760           *      - Return Code of:          *             (-EINVAL) Invalid value        *             (-ENOMEM) storage allocation failed               *	pgmask defined in iucv_register_program will be set depending on input *	paramters.  *	 */#include <linux/types.h>#define uchar  unsigned char#define ushort unsigned short#define ulong  unsigned long#define iucv_handle_t void */* flags1: * All flags are defined in the field IPFLAGS1 of each function    * and can be found in CP Programming Services.                   * IPLOCAL  - Indicates the connect can only be satisfied on the  *            local system                                        * IPPRTY   - Indicates a priority message                        * IPQUSCE  - Indicates you do not want to receive messages on a  *            path until an iucv_resume is issued                 * IPRMDATA - Indicates that the message is in the parameter list */#define IPLOCAL   	0x01#define IPPRTY         	0x20#define IPQUSCE        	0x40#define IPRMDATA       	0x80/* flags1_out: * All flags are defined in the output field of IPFLAGS1 for each function * and can be found in CP Programming Services. * IPNORPY - Specifies this is a one-way message and no reply is expected. * IPPRTY   - Indicates a priority message is permitted. Defined in flags1. */#define IPNORPY         0x10#define Nonpriority_MessagePendingInterruptsFlag         0x80#define Priority_MessagePendingInterruptsFlag            0x40#define Nonpriority_MessageCompletionInterruptsFlag      0x20#define Priority_MessageCompletionInterruptsFlag         0x10/* * Mapping of external interrupt buffers should be used with the corresponding * interrupt types.                   * Names: iucv_ConnectionPending    ->  connection pending  *        iucv_ConnectionComplete   ->  connection complete *        iucv_ConnectionSevered    ->  connection severed  *        iucv_ConnectionQuiesced   ->  connection quiesced  *        iucv_ConnectionResumed    ->  connection resumed  *        iucv_MessagePending       ->  message pending     *        iucv_MessageComplete      ->  message complete    */typedef struct {	u16 ippathid;	uchar ipflags1;	uchar iptype;	u16 ipmsglim;	u16 res1;	uchar ipvmid[8];	uchar ipuser[16];	u32 res3;	uchar ippollfg;	uchar res4[3];} iucv_ConnectionPending;typedef struct {	u16 ippathid;	uchar ipflags1;	uchar iptype;	u16 ipmsglim;	u16 res1;	uchar res2[8];	uchar ipuser[16];	u32 res3;	uchar ippollfg;	uchar res4[3];} iucv_ConnectionComplete;typedef struct {	u16 ippathid;	uchar res1;	uchar iptype;	u32 res2;	uchar res3[8];	uchar ipuser[16];	u32 res4;	uchar ippollfg;	uchar res5[3];} iucv_ConnectionSevered;typedef struct {	u16 ippathid;	uchar res1;	uchar iptype;	u32 res2;	uchar res3[8];	uchar ipuser[16];	u32 res4;	uchar ippollfg;	uchar res5[3];} iucv_ConnectionQuiesced;typedef struct {	u16 ippathid;	uchar res1;	uchar iptype;	u32 res2;	uchar res3[8];	uchar ipuser[16];	u32 res4;	uchar ippollfg;	uchar res5[3];} iucv_ConnectionResumed;typedef struct {	u16 ippathid;	uchar ipflags1;	uchar iptype;	u32 ipmsgid;	u32 iptrgcls;	uchar iprmmsg1[4];	union u1 {		u32 ipbfln1f;		uchar iprmmsg2[4];	} ln1msg2;	u32 res1[3];	u32 ipbfln2f;	uchar ippollfg;	uchar res2[3];} iucv_MessagePending;typedef struct {	u16 ippathid;	uchar ipflags1;	uchar iptype;	u32 ipmsgid;	u32 ipaudit;	uchar iprmmsg[8];	u32 ipsrccls;	u32 ipmsgtag;	u32 res;	u32 ipbfln2f;	uchar ippollfg;	uchar res2[3];} iucv_MessageComplete;/*  * iucv_interrupt_ops_t: Is a vector of functions that handle  * IUCV interrupts.                                           * Parameter list:                                            *         eib - is a pointer to a 40-byte area described     *               with one of the structures above.            *         pgm_data - this data is strictly for the           *                    interrupt handler that is passed by     *                    the application. This may be an address  *                    or token.                              */typedef struct {	void (*ConnectionPending) (iucv_ConnectionPending * eib,				   void *pgm_data);	void (*ConnectionComplete) (iucv_ConnectionComplete * eib,				    void *pgm_data);	void (*ConnectionSevered) (iucv_ConnectionSevered * eib,				   void *pgm_data);	void (*ConnectionQuiesced) (iucv_ConnectionQuiesced * eib,				    void *pgm_data);	void (*ConnectionResumed) (iucv_ConnectionResumed * eib,				   void *pgm_data);	void (*MessagePending) (iucv_MessagePending * eib, void *pgm_data);	void (*MessageComplete) (iucv_MessageComplete * eib, void *pgm_data);} iucv_interrupt_ops_t;/* *iucv_array_t : Defines buffer array.                       * Inside the array may be 31- bit addresses and 31-bit lengths. */typedef struct {	u32 address;	u32 length;} iucv_array_t __attribute__ ((aligned (8)));/*   -prototypes-    *//*                                                                 * Name: iucv_register_program                                     * Purpose: Registers an application with IUCV                     * Input: prmname - user identification                            *        userid  - machine identification *        pgmmask - indicates which bits in the prmname and userid combined will be *  		    used to determine who is given control *        ops     - address of vector of interrupt handlers        *        pgm_data- application data passed to interrupt handlers  * Output: NA                                                      * Return: address of handler                                      *         (0) - Error occured, registration not completed. * NOTE: Exact cause of failure will be recorded in syslog.                        */iucv_handle_t iucv_register_program (uchar pgmname[16],				     uchar userid[8],				     uchar pgmmask[24],				     iucv_interrupt_ops_t * ops,				     void *pgm_data);/*                                                 * Name: iucv_unregister_program                   * Purpose: Unregister application with IUCV       * Input: address of handler                       * Output: NA                                      * Return: (0) - Normal return                     *         (-EINVAL) - Internal error, wild pointer     */int iucv_unregister_program (iucv_handle_t handle);/* * Name: iucv_accept * Purpose: This function is issued after the user receives a Connection Pending external *          interrupt and now wishes to complete the IUCV communication path. * Input:  pathid - u16 , Path identification number    *         msglim_reqstd - u16, The number of outstanding messages requested. *         user_data - uchar[16], Data specified by the iucv_connect function. *	   flags1 - int, Contains options for this path. *           -IPPRTY   - 0x20- Specifies if you want to send priority message. *           -IPRMDATA - 0x80, Specifies whether your program can handle a message *            	in  the parameter list. *           -IPQUSCE  - 0x40, Specifies whether you want to quiesce the path being *		established. *         handle - iucv_handle_t, Address of handler. *         pgm_data - void *, Application data passed to interrupt handlers. *         flags1_out - int * Contains information about the path

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -