Date: Mon, 26 Jan 2009 11:09:42 +0100 From: Hans Petter Selasky <hselasky@c2i.net> To: freebsd-hackers@freebsd.org Cc: Lukasz Jaroszewski <lvj@nietykalni.org> Subject: Re: write(2) to /dev/ad4 = EINVAL Message-ID: <200901261109.43376.hselasky@c2i.net> In-Reply-To: <3930e0780901260135j1428e77fmfe7392770fcd31fc@mail.gmail.com> References: <3930e0780901260135j1428e77fmfe7392770fcd31fc@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 26 January 2009, Lukasz Jaroszewski wrote: > Hi, > after opening /dev/ad4 with success for O_RDWR, I am getting [EINVAL] > from write(2), which according to man 2 write, means > `` [EINVAL] The pointer associated with d was > negative.'', as you can see below it is not true, I have tried > different block sizes, with same result. > > How can I write one byte to /dev/adN ? Hi, You cannot write one byte to /dev/adN, I think. Harddisks are block based. Please see: diskinfo -v ad4 And especially the "sector size". When you seek and transfer data the offset and length must be a factor of the "sector size" or "block size". See also LBA, logical block address. --HPS > > > 1361 ow CALL open(0x80485e3,O_RDWR,<unused>0xbfbfecc8) > 1361 ow NAMI "/dev/ad4" > ;/dev/ad4 is DOS FAT formatted CF Card. > 1361 ow RET open 3 > > 1361 ow CALL write(0x3,0xbfbfecb8,0x8) > 1361 ow RET write -1 errno 22 Invalid argument > > root@~(0) uname -r > 7.0-STABLE > ----------- > Best Regards > Lukasz. > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200901261109.43376.hselasky>