From owner-freebsd-hackers@FreeBSD.ORG Mon Jan 26 10:07:20 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C6B8C10656BD for ; Mon, 26 Jan 2009 10:07:20 +0000 (UTC) (envelope-from hselasky@c2i.net) Received: from swip.net (mailfe05.swip.net [212.247.154.129]) by mx1.freebsd.org (Postfix) with ESMTP id 5AD6C8FC1F for ; Mon, 26 Jan 2009 10:07:20 +0000 (UTC) (envelope-from hselasky@c2i.net) X-Cloudmark-Score: 0.000000 [] X-Cloudmark-Analysis: v=1.0 c=1 a=6I5d2MoRAAAA:8 a=5E7JUROi1AhxMIt08LoA:9 a=vImgDvcXfFv7YKRyhLYA:7 a=2vpgLvEIT43tJLxv7x6mEImAZa8A:4 a=SV7veod9ZcQA:10 a=LY0hPdMaydYA:10 Received: from [85.19.218.115] (account mc467741@c2i.net HELO [10.37.1.92]) by mailfe05.swip.net (CommuniGate Pro SMTP 5.2.6) with ESMTPA id 1083449352; Mon, 26 Jan 2009 11:07:18 +0100 From: Hans Petter Selasky To: freebsd-hackers@freebsd.org Date: Mon, 26 Jan 2009 11:09:42 +0100 User-Agent: KMail/1.9.7 References: <3930e0780901260135j1428e77fmfe7392770fcd31fc@mail.gmail.com> In-Reply-To: <3930e0780901260135j1428e77fmfe7392770fcd31fc@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200901261109.43376.hselasky@c2i.net> Cc: Lukasz Jaroszewski Subject: Re: write(2) to /dev/ad4 = EINVAL X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Jan 2009 10:07:22 -0000 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,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"