head 1.3; access; symbols pkgsrc-2026Q1:1.3.0.104 pkgsrc-2026Q1-base:1.3 pkgsrc-2025Q4:1.3.0.102 pkgsrc-2025Q4-base:1.3 pkgsrc-2025Q3:1.3.0.100 pkgsrc-2025Q3-base:1.3 pkgsrc-2025Q2:1.3.0.98 pkgsrc-2025Q2-base:1.3 pkgsrc-2025Q1:1.3.0.96 pkgsrc-2025Q1-base:1.3 pkgsrc-2024Q4:1.3.0.94 pkgsrc-2024Q4-base:1.3 pkgsrc-2024Q3:1.3.0.92 pkgsrc-2024Q3-base:1.3 pkgsrc-2024Q2:1.3.0.90 pkgsrc-2024Q2-base:1.3 pkgsrc-2024Q1:1.3.0.88 pkgsrc-2024Q1-base:1.3 pkgsrc-2023Q4:1.3.0.86 pkgsrc-2023Q4-base:1.3 pkgsrc-2023Q3:1.3.0.84 pkgsrc-2023Q3-base:1.3 pkgsrc-2023Q2:1.3.0.82 pkgsrc-2023Q2-base:1.3 pkgsrc-2023Q1:1.3.0.80 pkgsrc-2023Q1-base:1.3 pkgsrc-2022Q4:1.3.0.78 pkgsrc-2022Q4-base:1.3 pkgsrc-2022Q3:1.3.0.76 pkgsrc-2022Q3-base:1.3 pkgsrc-2022Q2:1.3.0.74 pkgsrc-2022Q2-base:1.3 pkgsrc-2022Q1:1.3.0.72 pkgsrc-2022Q1-base:1.3 pkgsrc-2021Q4:1.3.0.70 pkgsrc-2021Q4-base:1.3 pkgsrc-2021Q3:1.3.0.68 pkgsrc-2021Q3-base:1.3 pkgsrc-2021Q2:1.3.0.66 pkgsrc-2021Q2-base:1.3 pkgsrc-2021Q1:1.3.0.64 pkgsrc-2021Q1-base:1.3 pkgsrc-2020Q4:1.3.0.62 pkgsrc-2020Q4-base:1.3 pkgsrc-2020Q3:1.3.0.60 pkgsrc-2020Q3-base:1.3 pkgsrc-2020Q2:1.3.0.56 pkgsrc-2020Q2-base:1.3 pkgsrc-2020Q1:1.3.0.36 pkgsrc-2020Q1-base:1.3 pkgsrc-2019Q4:1.3.0.58 pkgsrc-2019Q4-base:1.3 pkgsrc-2019Q3:1.3.0.54 pkgsrc-2019Q3-base:1.3 pkgsrc-2019Q2:1.3.0.52 pkgsrc-2019Q2-base:1.3 pkgsrc-2019Q1:1.3.0.50 pkgsrc-2019Q1-base:1.3 pkgsrc-2018Q4:1.3.0.48 pkgsrc-2018Q4-base:1.3 pkgsrc-2018Q3:1.3.0.46 pkgsrc-2018Q3-base:1.3 pkgsrc-2018Q2:1.3.0.44 pkgsrc-2018Q2-base:1.3 pkgsrc-2018Q1:1.3.0.42 pkgsrc-2018Q1-base:1.3 pkgsrc-2017Q4:1.3.0.40 pkgsrc-2017Q4-base:1.3 pkgsrc-2017Q3:1.3.0.38 pkgsrc-2017Q3-base:1.3 pkgsrc-2017Q2:1.3.0.34 pkgsrc-2017Q2-base:1.3 pkgsrc-2017Q1:1.3.0.32 pkgsrc-2017Q1-base:1.3 pkgsrc-2016Q4:1.3.0.30 pkgsrc-2016Q4-base:1.3 pkgsrc-2016Q3:1.3.0.28 pkgsrc-2016Q3-base:1.3 pkgsrc-2016Q2:1.3.0.26 pkgsrc-2016Q2-base:1.3 pkgsrc-2016Q1:1.3.0.24 pkgsrc-2016Q1-base:1.3 pkgsrc-2015Q4:1.3.0.22 pkgsrc-2015Q4-base:1.3 pkgsrc-2015Q3:1.3.0.20 pkgsrc-2015Q3-base:1.3 pkgsrc-2015Q2:1.3.0.18 pkgsrc-2015Q2-base:1.3 pkgsrc-2015Q1:1.3.0.16 pkgsrc-2015Q1-base:1.3 pkgsrc-2014Q4:1.3.0.14 pkgsrc-2014Q4-base:1.3 pkgsrc-2014Q3:1.3.0.12 pkgsrc-2014Q3-base:1.3 pkgsrc-2014Q2:1.3.0.10 pkgsrc-2014Q2-base:1.3 pkgsrc-2014Q1:1.3.0.8 pkgsrc-2014Q1-base:1.3 pkgsrc-2013Q4:1.3.0.6 pkgsrc-2013Q4-base:1.3 pkgsrc-2013Q3:1.3.0.4 pkgsrc-2013Q3-base:1.3 pkgsrc-2013Q2:1.3.0.2 pkgsrc-2013Q2-base:1.3 pkgsrc-2013Q1:1.1.0.64 pkgsrc-2013Q1-base:1.1 pkgsrc-2012Q4:1.1.0.62 pkgsrc-2012Q4-base:1.1 pkgsrc-2012Q3:1.1.0.60 pkgsrc-2012Q3-base:1.1 pkgsrc-2012Q2:1.1.0.58 pkgsrc-2012Q2-base:1.1 pkgsrc-2012Q1:1.1.0.56 pkgsrc-2012Q1-base:1.1 pkgsrc-2011Q4:1.1.0.54 pkgsrc-2011Q4-base:1.1 pkgsrc-2011Q3:1.1.0.52 pkgsrc-2011Q3-base:1.1 pkgsrc-2011Q2:1.1.0.50 pkgsrc-2011Q2-base:1.1 pkgsrc-2011Q1:1.1.0.48 pkgsrc-2011Q1-base:1.1 pkgsrc-2010Q4:1.1.0.46 pkgsrc-2010Q4-base:1.1 pkgsrc-2010Q3:1.1.0.44 pkgsrc-2010Q3-base:1.1 pkgsrc-2010Q2:1.1.0.42 pkgsrc-2010Q2-base:1.1 pkgsrc-2010Q1:1.1.0.40 pkgsrc-2010Q1-base:1.1 pkgsrc-2009Q4:1.1.0.38 pkgsrc-2009Q4-base:1.1 pkgsrc-2009Q3:1.1.0.36 pkgsrc-2009Q3-base:1.1 pkgsrc-2009Q2:1.1.0.34 pkgsrc-2009Q2-base:1.1 pkgsrc-2009Q1:1.1.0.32 pkgsrc-2009Q1-base:1.1 pkgsrc-2008Q4:1.1.0.30 pkgsrc-2008Q4-base:1.1 pkgsrc-2008Q3:1.1.0.28 pkgsrc-2008Q3-base:1.1 cube-native-xorg:1.1.0.26 cube-native-xorg-base:1.1 pkgsrc-2008Q2:1.1.0.24 pkgsrc-2008Q2-base:1.1 cwrapper:1.1.0.22 pkgsrc-2008Q1:1.1.0.20 pkgsrc-2008Q1-base:1.1 pkgsrc-2007Q4:1.1.0.18 pkgsrc-2007Q4-base:1.1 pkgsrc-2007Q3:1.1.0.16 pkgsrc-2007Q3-base:1.1 pkgsrc-2007Q2:1.1.0.14 pkgsrc-2007Q2-base:1.1 pkgsrc-2007Q1:1.1.0.12 pkgsrc-2007Q1-base:1.1 pkgsrc-2006Q4:1.1.0.10 pkgsrc-2006Q4-base:1.1 pkgsrc-2006Q3:1.1.0.8 pkgsrc-2006Q3-base:1.1 pkgsrc-2006Q2:1.1.0.6 pkgsrc-2006Q2-base:1.1 pkgsrc-2006Q1:1.1.0.4 pkgsrc-2006Q1-base:1.1 pkgsrc-2005Q4:1.1.0.2 pkgsrc-2005Q4-base:1.1; locks; strict; comment @# @; 1.3 date 2013.06.17.06.09.06; author dholland; state Exp; branches; next 1.2; commitid 1w0eSSC6EYXQOVTw; 1.2 date 2013.06.17.05.37.22; author dholland; state Exp; branches; next 1.1; commitid xvAP9fhaMF6oEVTw; 1.1 date 2005.11.10.16.31.25; author joerg; state Exp; branches; next ; desc @@ 1.3 log @Use DIOCGINFO and/or DIOCGWEDGEINFO if DIOCGPART isn't defined. Fixes build on netbsd-6 and up. Caution: while it builds, I haven't actually tested it. @ text @$NetBSD: patch-ah,v 1.2 2013/06/17 05:37:22 dholland Exp $ - Don't declare own errno. - DragonFly BSD's partinfo is not the standard BSD partinfo. - NetBSD no longer supports the partinfo ioctl. Use the available alternatives, which is kind of messy. --- blkdev.c.orig 2003-08-03 23:07:29.000000000 +0000 +++ blkdev.c @@@@ -44,10 +44,20 @@@@ # endif #endif +#if defined(__DragonFly__) +# include +# define BSD_BLKDEV +#elif defined(__NetBSD__) +# include +# include +# include /* for DEV_BSIZE, XXX */ +# define BSD_BLKDEV +#else #ifdef HAVE_SYS_DISKLABEL_H # include # define BSD_BLKDEV #endif +#endif #ifndef LINUX_BLKDEV # ifndef BSD_BLKDEV @@@@ -63,7 +73,6 @@@@ #include "wipe.h" #include "blkdev.h" -extern int errno; extern int exit_code; extern char *argvzero; extern struct opt_s options; @@@@ -128,7 +137,13 @@@@ public int destroy_blkdev(struct file_s int code; #ifdef BSD_BLKDEV +#ifdef DIOCGPART struct partinfo pinfo; +#else + struct disklabel lab; + struct dkwedge_info dkw; + int use_dkw; +#endif #endif #ifdef NO_BLKDEV @@@@ -160,12 +175,26 @@@@ public int destroy_blkdev(struct file_s } #ifdef BSD_BLKDEV +# ifdef DIOCGPART if (ioctl(f->fd, DIOCGPART, &pinfo)) { fprintf(stderr, "\r%s: ioctl failed, can't get disklabel for `%s': %s\n", argvzero, f->name, strerror(errno)); exit_code = errno; return FAILED; } +# else + if (ioctl(f->fd, DIOCGDINFO, &lab) == 0) { + use_dkw = 0; + } + else if (ioctl(f->fd, DIOCGWEDGEINFO, &dkw) == 0) { + use_dkw = 1; + } + else { + fprintf(stderr, "\r%s: ioctl failed, can't get disklabel for `%s': %s\n", + argvzero, f->name, strerror(errno)); + exit_code = errno; return FAILED; + } +# endif #endif if (options.sectors == 0) @@@@ -182,15 +211,35 @@@@ public int destroy_blkdev(struct file_s options.sectors = tmp; #endif -#ifdef BSD_BLKDEV +#if defined(BSD_BLKDEV) +# if defined(__DragonFly__) + options.sectors = pinfo.media_blocks; +# else +# if defined(DIOCGPART) options.sectors = pinfo.part->p_size; +# else + options.sectors = use_dkw ? + dkw.dkw_size : lab.d_partitions[DISKPART(f->st.st_rdev)].p_size; +# endif +# endif #endif } if (options.sector_size == 0) { -#ifdef BSD_BLKDEV +#if defined(__DragonFly__) + options.sector_size = pinfo.media_blocks; +#elif defined(BSD_BLKDEV) +# if defined(DIOCGPART) options.sector_size = pinfo.disklab->d_secsize; +# else + /* + * XXX: we ought to use DIOCGDISKINFO to get the sector size, + * but that requires proplib and probably 500+ lines of code. + * So punt and use DEV_BSIZE... + */ + options.sector_size = use_dkw ? DEV_BSIZE : lab.d_secsize; +# endif #else options.sector_size = SECTOR_SIZE; #endif @ 1.2 log @Merge two patches that patch the same file. @ text @d1 1 a1 1 $NetBSD: patch-ai,v 1.1 2011/01/10 06:12:16 obache Exp $ d3 1 d5 2 a6 1 - Don't declare own errno. d10 1 a10 1 @@@@ -44,10 +44,15 @@@@ d14 1 a14 2 -#ifdef HAVE_SYS_DISKLABEL_H +#ifdef __DragonFly__ d17 5 d23 1 a23 1 +#ifdef HAVE_SYS_DISKLABEL_H) d31 1 a31 1 @@@@ -63,7 +68,6 @@@@ d39 42 a80 1 @@@@ -182,14 +186,20 @@@@ public int destroy_blkdev(struct file_s d89 1 d91 4 d105 1 d107 8 d117 1 @ 1.1 log @Depend on errno.h for errno. @ text @d1 1 a1 1 $NetBSD$ d3 4 a6 1 --- blkdev.c.orig 2005-11-10 16:15:38.000000000 +0000 d8 18 a25 1 @@@@ -63,7 +63,6 @@@@ d33 23 @