Files
Arquivotheca.AIX-4.1.3/bos/kernel/sys/strconf.h
seta75D d6fe8fe829 Init
2021-10-11 22:19:34 -03:00

104 lines
3.1 KiB
C

/* @(#)37 1.6 src/bos/kernel/sys/strconf.h, sysxpse, bos412, 9446B 11/9/94 16:46:06 */
/*
* COMPONENT_NAME: SYSXPSE strconf.h
*
* ORIGINS: 27 83
*
*
* (C) COPYRIGHT International Business Machines Corp. 1991
* All Rights Reserved
* Licensed Materials - Property of IBM
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
*/
/*
* LEVEL 1, 5 Years Bull Confidential Information
*/
#ifndef _STRCONF_H_
#define _STRCONF_H_
/*
* kernel configuration parameters
*/
typedef struct {
char *sc_name; /* null-terminated module/device name */
struct streamtab *sc_str; /* pointer to streamtab */
int sc_flags; /* which style open to use */
int sc_major; /* major number for device */
int sc_sqlevel; /* Synchronization level mode */
caddr_t sc_sqinfo; /* pointer for SQLVL_ELSEWHERE case */
} kstrconf_t;
#define strconf_t kstrconf_t
#define sc_open_style sc_flags
#define STR_NEW_OPEN 0 /* SVR4 style opens ("default") */
#define STR_OLD_OPEN 1 /* SVR3 style opens */
#define STR_MPSAFE 2 /* must be treated as MP safe or efficient */
#define STR_Q_SAFETY 4 /* Module needs safe callbacks */
#define STR_Q_NOTTOSPEC 8 /* Module may sleep or fault in service routine. Needs schedule. */
#define STR_LOAD_DEV 1
#define STR_LOAD_MOD 2
#define STR_UNLOAD_DEV 3
#define STR_UNLOAD_MOD 4
/*
* Synchronization level codes.
* These are supplied to fmodsw_install and dmodsw_install and stored
* in the appropriate tables. sth_osr_open and sth_ipush use these to
* set up synch queue subordination for new devices and modules.
*/
#define SQLVL_DEFAULT 0
#define SQLVL_GLOBAL 1
#define SQLVL_ELSEWHERE 2
#define SQLVL_MODULE 3
#define SQLVL_QUEUEPAIR 4
#define SQLVL_QUEUE 5
extern int str_install(int , strconf_t *);
#ifndef _KERNEL
/*
* user configuration parameters
*/
typedef struct node {
dev_t dev; /* device major,minor pair */
char *name; /* node name in filesystem */
} node_t;
typedef struct ustrconf {
int version; /* data structure version */
char *extname; /* kernel extension to operate upon */
int flags; /* generic flags */
int maj; /* device major */
void *dds; /* DDS/MDI to give to extension */
int ddslen; /* length of DDS/MDI */
char *odmkey; /* key to gen a unique device major */
node_t *nodes; /* nodes for this device */
} ustrconf_t;
/* ustrconf.version */
#define STRCONF_V1 1 /* version of data structure */
/* ustrconf.flags */
#define SF_MODULE 0x0000 /* describes a module */
#define SF_DEVICE 0x0001 /* describes a device */
#define SF_DUP 0x0002 /* can be loaded several times */
#define SF_KEEPNODES 0x0004 /* create/remove nodes on first/last load */
/* cmds */
#define STR_LOAD 1 /* load extension */
#define STR_UNLOAD 2 /* unload extension */
#define STR_QUERY 3 /* query extension's existance */
#define STR_INIT 4 /* init extension */
#define STR_TERM 5 /* terminate extension */
#endif /* _KERNEL */
#endif /* _STRCONF_H_ */