Skip site navigation (1)Skip section navigation (2)
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>