See the patches enclosed to emulators/rtc and emulators/vmware2 ports. Tested only for -current with:
#define __FreeBSD_version 500104 -- << Marcin Cieślak // [EMAIL PROTECTED] >>
Index: Makefile =================================================================== RCS file: /home/ncvs/ports/emulators/rtc/Makefile,v retrieving revision 1.12 diff -u -u -r1.12 Makefile --- Makefile 16 Sep 2001 07:01:44 -0000 1.12 +++ Makefile 5 Mar 2003 17:36:37 -0000 @@ -6,7 +6,7 @@ # PORTNAME= rtc -PORTVERSION= 2001.09.16.1 +PORTVERSION= 2002.03.05.1 CATEGORIES= emulators linux MASTER_SITES= # none DISTFILES= # none Index: files/rtc.c =================================================================== RCS file: /home/ncvs/ports/emulators/rtc/files/rtc.c,v retrieving revision 1.6 diff -u -u -r1.6 rtc.c --- files/rtc.c 16 Sep 2001 07:05:18 -0000 1.6 +++ files/rtc.c 5 Mar 2003 17:36:25 -0000 @@ -85,6 +85,14 @@ static int rtc_modeevent(module_t mod, int cmd, void *arg); static struct cdevsw rtc_cdevsw = { +#if __FreeBSD_version >= 500104 + .d_open = rtc_open, + .d_close = rtc_close, + .d_ioctl = rtc_ioctl, + .d_poll = rtc_poll, + .d_name = DEVICE_NAME, + .d_maj = CDEV_MAJOR, +#else /* open */ rtc_open, /* close */ rtc_close, /* read */ noread, @@ -101,6 +109,7 @@ #if __FreeBSD_version <= 500018 /* bmaj */ -1, #endif +#endif #if __FreeBSD_version >= 500018 || __FreeBSD_version >= 430000 /* kqfilter */ nokqfilter, #endif @@ -264,11 +273,13 @@ static int init_module(void) { -int error; + int error = 0; +#if __FreeBSD_version < 500104 error = cdevsw_add(&rtc_cdevsw); if (error) return error; +#endif return error; } @@ -286,7 +297,9 @@ DLog(Lfail, "%p busy", sc); return error; } +#if __FreeBSD_version < 500104 error = cdevsw_remove(&rtc_cdevsw); +#endif DLog(Linfo, "return %d", error); return error; }
Index: Makefile =================================================================== RCS file: /home/ncvs/ports/emulators/vmware2/Makefile,v retrieving revision 1.48 diff -u -u -r1.48 Makefile --- Makefile 21 Feb 2003 11:59:00 -0000 1.48 +++ Makefile 5 Mar 2003 18:27:21 -0000 @@ -93,6 +93,9 @@ .if ${OSVERSION} >= 500027 cat ${FILESDIR}/pmap.patch | (cd ${WRKSRC} && patch) > /dev/null 2>&1 .endif +.if ${OSVERSION} >= 500104 + cat ${FILESDIR}/cdevsw.patch | (cd ${WRKSRC} && patch) > /dev/null 2>&1 +.endif ${CP} ${FILESDIR}/Makefile ${WRKSRC} ${CP} ${FILESDIR}/Makefile.vmmon ${WRKSRC}/vmmon-only/Makefile ${RM} -rf ${WRKSRC}/vmmon-only/linux/ Index: files/cdevsw.patch =================================================================== RCS file: files/cdevsw.patch diff -N files/cdevsw.patch --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/cdevsw.patch 5 Mar 2003 18:25:13 -0000 @@ -0,0 +1,130 @@ +--- vmmon-only/freebsd/driver.c_original Wed Mar 5 19:22:35 2003 ++++ vmmon-only/freebsd/driver.c Wed Mar 5 19:22:44 2003 +@@ -155,6 +155,14 @@ + + /* static struct cdevsw vmmon_cdevsw = { */ + static struct cdevsw vmmon_cdevsw = { ++#if __FreeBSD_version >= 500104 ++ .d_open = FreeBSD_Driver_Open, ++ .d_close = FreeBSD_Driver_Close, ++ .d_ioctl = FreeBSD_Driver_Ioctl, ++ .d_poll = FreeBSD_Driver_Poll, ++ .d_name = DEVICE_NAME, ++ .d_maj = CDEV_MAJOR ++#else + /* open */ FreeBSD_Driver_Open, + /* close */ FreeBSD_Driver_Close, + /* read */ noread, +@@ -169,8 +177,7 @@ + /* psize */ nopsize, + /* flags */ 0, + /* bmaj */ -1 +- +- ++#endif + }; + + +@@ -242,7 +249,11 @@ + sprintf(freebsdState.deviceBuf,DEVICE_NAME); + freebsdState.major = CDEV_MAJOR; + freebsdState.minor = CDEV_MINOR; ++#if __FreeBSD_version < 500104 + retval = cdevsw_add(&vmmon_cdevsw); ++#else ++ retval = 0; ++#endif + + #endif + if (retval) { +@@ -273,12 +284,14 @@ + int retval=0; + + destroy_dev(vmmon_dev); ++#if __FreeBSD_version < 500104 + retval = cdevsw_remove(&vmmon_cdevsw); + if (retval) { + Warning("Module %s: error unregistering\n", freebsdState.deviceBuf); + } else { + Log("Module %s: unloaded\n", freebsdState.deviceBuf); + } ++#endif + + return 0; + } +--- vmnet-only/freebsd/vmnet.c_original Wed Mar 5 19:21:51 2003 ++++ vmnet-only/freebsd/vmnet.c Wed Mar 5 19:22:00 2003 +@@ -103,6 +103,16 @@ + static int vmnet_modeevent(module_t mod, int cmd, void *arg); + + static struct cdevsw vmnet_cdevsw = { ++#if __FreeBSD_version >= 500104 ++ .d_open = vmnet_open, ++ .d_close = vmnet_close, ++ .d_read = vmnet_read, ++ .d_write = vmnet_write, ++ .d_ioctl = vmnet_ioctl, ++ .d_poll = vmnet_poll, ++ .d_name = DEVICE_NAME, ++ .d_maj = CDEV_MAJOR ++#else + /* open */ vmnet_open, + /* close */ vmnet_close, + /* read */ vmnet_read, +@@ -115,10 +125,11 @@ + /* maj */ CDEV_MAJOR, + /* dump */ nodump, + /* psize */ nopsize, +- /* flags */ 0, +- /* bmaj */ -1 ++ /* flags */ 0, -/* bmaj */ -1 ++#endif + }; + ++ + /* + * Now declare the module to the system. + * IMPORTANT: Must be before netgraph node declaration. +@@ -164,7 +175,7 @@ + + s = splimp(); + if_attach(ifp); +- ether_ifattach(ifp, ETHER_BPF_SUPPORTED); ++ ether_ifattach(ifp); + bpfattach(ifp, DLT_EN10MB, sizeof(struct ether_header)); + splx(s); + +@@ -604,11 +615,13 @@ + static int + init_module(void) + { +-int error; ++ int error = 0; + ++#if __FreeBSD_version < 500104 + error = cdevsw_add(&vmnet_cdevsw); + if (error) + return error; ++#endif + + return error; + } +@@ -618,7 +631,7 @@ + static int + cleanup_module(void) + { +- int error; ++ int error = 0; + struct vmnet_softc *sc; + + DLog(Lenter, ""); +@@ -629,7 +642,9 @@ + return error; + } + } ++#if __FreeBSD_version < 500104 + error = cdevsw_remove(&vmnet_cdevsw); ++#endif + DLog(Linfo, "return %d", error); + return error; + }