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

📄 pm.h

📁 嵌入式系统设计与实例开发源码
💻 H
字号:
/* *  pm.h - Power management interface * *  Copyright (C) 2000 Andrew Henroid * *  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 of the License, or *  (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */#ifndef _LINUX_PM_H#define _LINUX_PM_H#ifdef __KERNEL__#include <linux/config.h>#include <linux/list.h>/* * Power management requests */enum{	PM_SUSPEND, /* enter D1-D3 */	PM_RESUME,  /* enter D0 */	PM_SAVE_STATE,  /* save device's state */	/* enable wake-on */	PM_SET_WAKEUP,	/* bus resource management */	PM_GET_RESOURCES,	PM_SET_RESOURCES,	/* base station management */	PM_EJECT,	PM_LOCK,#ifdef CONFIG_MIZI	/* initialization */	PM_MZ_INIT,	PM_MZ_EXIT,#endif};typedef int pm_request_t;/* * Device types */enum{	PM_UNKNOWN_DEV = 0, /* generic */	PM_SYS_DEV,	    /* system device (fan, KB controller, ...) */	PM_PCI_DEV,	    /* PCI device */	PM_USB_DEV,	    /* USB device */	PM_SCSI_DEV,	    /* SCSI device */	PM_ISA_DEV,	    /* ISA device */	PM_MTD_DEV,	    /* Memory Technology Device */	PM_ILLUMINATION_DEV, /* Display back or front light */#ifdef CONFIG_MIZI	PM_USER_DEV,	    /* when wakeup, user must be handle this */	PM_DEBUG_DEV,	    /* for DEBUGGING purpose */	PM_GP_DEV,	    /* for OS switching */#endif};typedef int pm_dev_t;/* * System device hardware ID (PnP) values */enum{	PM_SYS_UNKNOWN = 0x00000000, /* generic */	PM_SYS_KBC =	 0x41d00303, /* keyboard controller */	PM_SYS_COM =	 0x41d00500, /* serial port */	PM_SYS_IRDA =	 0x41d00510, /* IRDA controller */	PM_SYS_FDC =	 0x41d00700, /* floppy controller */	PM_SYS_VGA =	 0x41d00900, /* VGA controller */	PM_SYS_PCMCIA =	 0x41d00e00, /* PCMCIA controller */#ifdef CONFIG_MIZI	/* new ID */	PM_USER_LCD =    0x12340100, /* LCD */	PM_USER_LIGHT =  0x12340101, /* Front/Back Light */	PM_USER_INPUT =  0x12340200, /* INPUT device */	PM_DEBUG_0 =     0x12380100,	PM_DEBUG_1 =     0x12380101,	PM_DEBUG_2 =     0x12380102,	PM_SYS_MISC =    0x41d00b00,	#endif};/* * Device identifier */#define PM_PCI_ID(dev) ((dev)->bus->number << 16 | (dev)->devfn)/* * Request handler callback */struct pm_dev;typedef int (*pm_callback)(struct pm_dev *dev, pm_request_t rqst, void *data);/* * Dynamic device information */struct pm_dev{	pm_dev_t	 type;	unsigned long	 id;	pm_callback	 callback;	void		*data;	unsigned long	 flags;	int		 state;	int		 prev_state;	struct list_head entry;};#ifdef CONFIG_PMextern int pm_active;#define PM_IS_ACTIVE() (pm_active != 0)/* * Register a device with power management */struct pm_dev *pm_register(pm_dev_t type,			   unsigned long id,			   pm_callback callback);/* * Unregister a device with power management */void pm_unregister(struct pm_dev *dev);/* * Unregister all devices with matching callback */void pm_unregister_all(pm_callback callback);/* * Send a request to a single device */int pm_send(struct pm_dev *dev, pm_request_t rqst, void *data);/* * Send a request to all devices */int pm_send_all(pm_request_t rqst, void *data);/* * Find a device */struct pm_dev *pm_find(pm_dev_t type, struct pm_dev *from);#ifdef CONFIG_MIZI#include <linux/sched.h>extern unsigned long pm_last_jiffies;static inline void pm_access(struct pm_dev *dev) { 	pm_last_jiffies = jiffies;}#elsestatic inline void pm_access(struct pm_dev *dev) {}#endifstatic inline void pm_dev_idle(struct pm_dev *dev) {}#else /* CONFIG_PM */#define PM_IS_ACTIVE() 0static inline struct pm_dev *pm_register(pm_dev_t type,					 unsigned long id,					 pm_callback callback){	return 0;}static inline void pm_unregister(struct pm_dev *dev) {}static inline void pm_unregister_all(pm_callback callback) {}static inline int pm_send(struct pm_dev *dev, pm_request_t rqst, void *data){	return 0;}static inline int pm_send_all(pm_request_t rqst, void *data){	return 0;}static inline struct pm_dev *pm_find(pm_dev_t type, struct pm_dev *from){	return 0;}static inline void pm_access(struct pm_dev *dev) {}static inline void pm_dev_idle(struct pm_dev *dev) {}#endif /* CONFIG_PM */extern void (*pm_idle)(void);extern void (*pm_power_off)(void);#endif /* __KERNEL__ */#endif /* _LINUX_PM_H */

⌨️ 快捷键说明

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