Hi! This marks old power managment as deprecated, and adds typechecking. [Patrick, I'd like you to ack this. It is pretty much innocent comment change, still I think it is step in right direction.] Please apply, Pavel --- clean/include/linux/pm.h 2004-10-01 00:30:30.000000000 +0200 +++ linux/include/linux/pm.h 2004-10-21 22:31:24.000000000 +0200 @@ -28,44 +28,28 @@ #include <asm/atomic.h> /* - * Power management requests + * Power management requests... these are passed to pm_send_all() and friends. + * + * these functions are old and deprecated, see below. */ -enum -{ - PM_SUSPEND, /* enter D1-D3 */ - PM_RESUME, /* enter D0 */ +typedef int __bitwise pm_request_t; - PM_SAVE_STATE, /* save device's state */ +#define PM_SUSPEND ((__force pm_request_t) 1) /* enter D1-D3 */ +#define PM_RESUME ((__force pm_request_t) 2) /* enter D0 */ - /* enable wake-on */ - PM_SET_WAKEUP, - - /* bus resource management */ - PM_GET_RESOURCES, - PM_SET_RESOURCES, - - /* base station management */ - PM_EJECT, - PM_LOCK, -}; - -typedef int pm_request_t; /* - * Device types + * Device types... these are passed to pm_register */ -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 */ -}; +typedef int __bitwise pm_dev_t; -typedef int pm_dev_t; +#define PM_UNKNOWN_DEV ((__force pm_request_t) 0) /* generic */ +#define PM_SYS_DEV ((__force pm_request_t) 1) /* system device (fan, KB controller, ...) */ +#define PM_PCI_DEV ((__force pm_request_t) 2) /* PCI device */ +#define PM_USB_DEV ((__force pm_request_t) 3) /* USB device */ +#define PM_SCSI_DEV ((__force pm_request_t) 4) /* SCSI device */ +#define PM_ISA_DEV ((__force pm_request_t) 5) /* ISA device */ +#define PM_MTD_DEV ((__force pm_request_t) 6) /* Memory Technology Device */ /* * System device hardware ID (PnP) values @@ -119,37 +103,30 @@ /* * Register a device with power management */ -struct pm_dev *pm_register(pm_dev_t type, - unsigned long id, - pm_callback callback); +struct pm_dev __deprecated *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); +void __deprecated pm_unregister(struct pm_dev *dev); /* * Unregister all devices with matching callback */ -void pm_unregister_all(pm_callback callback); +void __deprecated 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); +int __deprecated 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); +int __deprecated 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); - -static inline void pm_access(struct pm_dev *dev) {} -static inline void pm_dev_idle(struct pm_dev *dev) {} +static inline void __deprecated pm_access(struct pm_dev *dev) {} +static inline void __deprecated pm_dev_idle(struct pm_dev *dev) {} #else /* CONFIG_PM */ @@ -186,6 +163,8 @@ #endif /* CONFIG_PM */ +/* Functions above this comment are list-based old-style power + * managment. Please avoid using them. */ /* * Callbacks for platform drivers to implement. -- People were complaining that M$ turns users into beta-testers... ...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!