On Tuesday, July 12, 2005 8:17 PM, Matt Domsch wrote: > In general, this construct: > > > > -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,6)) > > > -static int inline scsi_device_online(struct scsi_device *sdev) > > > -{ > > > - return sdev->online; > > > -} > > > -#endif > > is better tested as: > > #ifndef scsi_device_inline > static int inline scsi_device_online(struct scsi_device *sdev) > { > return sdev->online; > } > #endif > > when you can. It cleanly eliminates the version test, and tests for > exactly what you're looking for - is this function defined. > What you illustrated above is not going to work. If your doing #ifndef around a function, such as scsi_device_online, it's not going to compile when scsi_device_online is already implemented in the kernel tree. The routine scsi_device_online is a function, not a define. For a define this would work. I'm trying your example around msleep, msleep_interruptible, and msecs_to_jiffies, and my code simply won't compile in SLES9 SP2(-191). In SLES9 SP1(-139), these three routines were not implemented and your suggestion works. I won't be able to to a linux version check as this change occurred between service packs of the 2.6.5 kernel suse tree. Anybody on the linux forums have any ideas? Example: #ifdef msleep static void inline msleep(unsigned long msecs) { set_current_state(TASK_UNINTERRUPTIBLE); schedule_timeout(msecs_to_jiffies(msecs) + 1); } #endif - : send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html