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

📄 openprom.h

📁 操作系统SunOS 4.1.3版本的源码
💻 H
字号:
/*	@(#)openprom.h 1.1 92/07/30 Copyright Sun Micro	*//* * Copyright (c) 1989 by Sun Microsystems, Inc. */#ifndef _sun_openprom_h#define _sun_openprom_h/* * This file contains definitions related to the kernel structures * for dealing with the autoconfig structures built under the OPENPROM * interface. * */#include <sys/types.h>#include <sys/buf.h>#include <machine/param.h>/* * * devinfo structures - these are constructed out of information * built in the new OPENPROM proms. * *//* * This structure represents a physical device on the machine. It is designed * to allow for an arbitrary width and depth tree to be constructed describing * the configuration of the machine. */struct dev_info {	struct dev_info *devi_parent;	/* parent of this device */	struct dev_info *devi_next;	/* next sibling device */	struct dev_info *devi_slaves;	/* list of child devices */	char *devi_name;		/* name of this device */	int devi_nreg;			/* number of regs */	struct dev_reg *devi_reg;	/* array of regs */	int devi_nintr;			/* number of interrupts */	struct dev_intr *devi_intr;	/* array of possible interrupts */	struct dev_ops *devi_driver;	/* link to device driver */	caddr_t devi_data;		/* driver private data */	int devi_nodeid;		/* id of this device - from proms */	int devi_unit;			/* logical unit (driver specific) */};/* * This structure represents one piece of bus space occupied by a given * device. It is used in an array for devices with multiple address windows. */struct dev_reg {	int reg_bustype;		/* cookie for bus type it's on */	addr_t reg_addr;		/* address of reg relative to bus */	u_int reg_size;			/* size of this register set */};/* * This structure represents one interrupt possible from the given * device. It is used in an array for devices with multiple interrupts. */struct dev_intr {	int int_pri;			/* interrupt priority */	int int_vec;			/* vector # (0 if none) */};/* * This structure identifies the driver entry points. All drivers must * declare one of these. */struct dev_ops {	int devo_rev;	int (*devo_identify)();		/* confirm device id */	int (*devo_attach)();		/* attach routine of driver */	int (*devo_open)();	int (*devo_close)();	int (*devo_read)();	int (*devo_write)();	int (*devo_strategy)();	int (*devo_dump)();	int (*devo_psize)();	int (*devo_ioctl)();	int (*devo_reset)();	int (*devo_mmap)();};/* * This structure is a wrapper for the dev_ops struct to make a list * of all the system's drivers. These are built by config. */struct dev_opslist {	struct dev_opslist *devl_next;	/* next element of list */	struct dev_ops *devl_ops;	/* ptr to driver's dev_ops struct */};/* * replacement for instrumentation index found in old mb_device structure. * Each device that wishes to log instrumentation information will call * the routine 'newdk' in macine/autoconf.c with the arguments of * "name" and unit#. If there is space (i.e., DK_NDRIVE not exceeded) * an index is returned appropriate for indexing into dk_wds, etc.. * and the corresponding location in dk_ivec is initialized from the * passed arguments, else -1 is returned. */struct dk_ivec {	char *dk_name;	/* name of device */	short dk_unit;	/* unix unit #	*/};#if	defined(KERNEL) && defined(OPENPROMS)/* * Kernel declarations and data references *//* * Global pointer to the top of the dev_info tree. */extern struct dev_info *top_devinfo;/* * These routines are the driver interface to the property lists. They are * used as follows: * * getprop(devi, name, default) - returns the value of 'name' in the *	property list for 'devi'; returns 'default' if no value is found or *	the value is not 4 bytes in length. * * getlongprop(devi, name) - returns a pointer to a private copy of the *	value of 'name' in the property list for 'devi'; returns NULL *	if no value is found. */extern int getprop();extern addr_t getlongprop();/* * New Instrumentation declarations */extern int newdk();extern struct dk_ivec dk_ivec[];#endif	defined(KERNEL) && defined(OPENPROMS)#endif	_sun_openprom_h

⌨️ 快捷键说明

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