From owner-freebsd-emulation@FreeBSD.ORG Wed Apr 18 17:19:11 2007 Return-Path: X-Original-To: freebsd-emulation@freebsd.org Delivered-To: freebsd-emulation@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 882B516A404 for ; Wed, 18 Apr 2007 17:19:11 +0000 (UTC) (envelope-from swhetzel@gmail.com) Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.246]) by mx1.freebsd.org (Postfix) with ESMTP id 430D813C46C for ; Wed, 18 Apr 2007 17:19:10 +0000 (UTC) (envelope-from swhetzel@gmail.com) Received: by an-out-0708.google.com with SMTP id c24so287082ana for ; Wed, 18 Apr 2007 10:19:10 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=NtL6Ho5j42sQ7XZ/Dgm8jfJadbwW2AvFiIV72/5L0/Arm7dwHObK7Bn3Dd3M6ACj1rYdVdD/K23LLhCUS/ECUZxo/RMJmN7ypuIt+M0evyhi4tcAwFbIvByUzyAU2YPsWTiXox4Dlexvt5J3bWDaQUUs0YRpo4yYJhKRWiKg4j4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=Gj3tuuqZu2FxNRokCqNh6Fw4vQgGTBEV4BiYPFCBrZKek1ULhu7LDInEevkMqRV9qJLGEPMVp31JAE4rkWzOskXX7pxqKnr/Ebr2Eeri7bCcsWbDV9ZncKHbCAOo6J/x4niCH1+S+HF2RtXogrWUlXDHUgUnPiSQqeLLDYNF2S0= Received: by 10.100.167.7 with SMTP id p7mr541782ane.1176916750501; Wed, 18 Apr 2007 10:19:10 -0700 (PDT) Received: by 10.100.141.14 with HTTP; Wed, 18 Apr 2007 10:19:10 -0700 (PDT) Message-ID: <790a9fff0704181019m37456143o36c82bd24f7dfe9c@mail.gmail.com> Date: Wed, 18 Apr 2007 12:19:10 -0500 From: "Scot Hetzel" To: "Divacky Roman" , "Alexander Leidinger" In-Reply-To: <20061219180156.GA87609@stud.fit.vutbr.cz> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_110272_15125915.1176916750458" References: <790a9fff0612190922t1f4a3fa1m44092944485297f7@mail.gmail.com> <20061219180156.GA87609@stud.fit.vutbr.cz> Cc: freebsd-emulation@freebsd.org Subject: Re: linuxolator: implement settimeofday call on FreeBSD/amd64 X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Apr 2007 17:19:11 -0000 ------=_Part_110272_15125915.1176916750458 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline On 12/19/06, Divacky Roman wrote: > On Tue, Dec 19, 2006 at 11:22:56AM -0600, Scot Hetzel wrote: > > I noticed that the settimeofday call in the linuxolator is implemented > > on FreeBSD/i386, but it is missing from FreeBSD/amd64. The attached > > patch implements the function on FreeBSD/amd64. > > makes me wonder... what is MD on this code? I dont see anything > I finally figured out what is MD for the settimeofday call. On FreeBSD/i386: struct l_timeval = struct timeval for FreeBSD/amd64 struct l_timeval < struct timeval The reason for this difference is tv_sec is 32 bits on i386 and 64 bits on amd64. amd64/include/_types.h: typedef __int64_t __time_t; /* time()... */ i386/include/_types.h: typedef __int32_t __time_t; /* time()... */ sys/_types.h: typedef long __suseconds_t; /* microseconds (signed) */ sys/_timeval.h: typedef __time_t time_t; typedef __suseconds_t suseconds_t; /* microseconds (signed) */ struct timeval { time_t tv_sec; /* seconds */ suseconds_t tv_usec; /* and microseconds */ }; The reason we can't use freebsd's settimeofday call directly (as done in the i386 linuxolator) in the linuxolator for amd64 is that the freebsd settimeofday function uses copyin, and since the l_timeval stuct is < timeval struct, it ends up copying the tv_usec value into tv_sec. Attached is the current patch to add the settimeofday call to the linuxolator for amd64. Scot -- DISCLAIMER: No electrons were mamed while sending this message. Only slightly bruised. ------=_Part_110272_15125915.1176916750458 Content-Type: text/x-diff; name=p4-amd64-settimeofday.diff; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_f0o17zmw Content-Disposition: attachment; filename="p4-amd64-settimeofday.diff" ZGlmZiAtcnUgYW1kNjQvbGludXgzMi9saW51eDMyX2R1bW15LmMub3JpZyBhbWQ2NC9saW51eDMy L2xpbnV4MzJfZHVtbXkuYwotLS0gYW1kNjQvbGludXgzMi9saW51eDMyX2R1bW15LmMub3JpZwlG cmkgTWFyIDMwIDEwOjI1OjIzIDIwMDcKKysrIGFtZDY0L2xpbnV4MzIvbGludXgzMl9kdW1teS5j CVNhdCBBcHIgMTQgMDI6MDY6MjIgMjAwNwpAQCAtNjMsNyArNjMsNiBAQAogRFVNTVkobWluY29y ZSk7CiBEVU1NWShmYWR2aXNlNjQpOwogRFVNTVkocHRyYWNlKTsKLURVTU1ZKHNldHRpbWVvZmRh eSk7CiBEVU1NWShsb29rdXBfZGNvb2tpZSk7CiBEVU1NWShlcG9sbF9jcmVhdGUpOwogRFVNTVko ZXBvbGxfY3RsKTsKZGlmZiAtcnUgYW1kNjQvbGludXgzMi9saW51eDMyX21hY2hkZXAuYy5vcmln IGFtZDY0L2xpbnV4MzIvbGludXgzMl9tYWNoZGVwLmMKLS0tIGFtZDY0L2xpbnV4MzIvbGludXgz Ml9tYWNoZGVwLmMub3JpZwlXZWQgQXByICA0IDEyOjMzOjI2IDIwMDcKKysrIGFtZDY0L2xpbnV4 MzIvbGludXgzMl9tYWNoZGVwLmMJRnJpIE1hciAzMCAyMTo1NTozNCAyMDA3CkBAIC01MjYsNyAr NTI2LDkgQEAKIAogCXRkMiA9IEZJUlNUX1RIUkVBRF9JTl9QUk9DKHAyKTsKIAotCS8qIG1ha2Ug aXQgcnVuICovCisJLyoKKwkgKiBNYWtlIHRoaXMgcnVubmFibGUgYWZ0ZXIgd2UgYXJlIGZpbmlz aGVkIHdpdGggaXQuCisJICovCiAJbXR4X2xvY2tfc3Bpbigmc2NoZWRfbG9jayk7CiAJVERfU0VU X0NBTl9SVU4odGQyKTsKIAlzY2hlZF9hZGQodGQyLCBTUlFfQk9SSU5HKTsKQEAgLTU3Miw4ICs1 NzQsOCBAQAogCS8qCiAJICogWFhYOiBJbiBMaW51eCwgc2hhcmluZyBvZiBmcyBpbmZvIChjaHJv b3QvY3dkL3VtYXNrKQogCSAqIGFuZCBvcGVuIGZpbGVzIGlzIGluZGVwZW5kYW50LiAgSW4gRnJl ZUJTRCwgaXRzIGluIG9uZQotCSAqIHN0cnVjdHVyZSBidXQgaW4gcmVhbGl0eSBpdCBkb2VzIG5v dCBtYWtlIGFueSBwcm9ibGVtcwotCSAqIGJlY2F1c2UgYm90aCBvZiB0aGVzZSBmbGFncyBhcmUg c2V0IGF0IG9uY2UgdXN1YWxseS4KKwkgKiBzdHJ1Y3R1cmUgYnV0IGluIHJlYWxpdHkgaXQgZG9l cyBub3QgY2F1c2UgYW55IHByb2JsZW1zCisJICogYmVjYXVzZSBib3RoIG9mIHRoZXNlIGZsYWdz IGFyZSB1c3VhbGx5IHNldCB0b2dldGhlci4KIAkgKi8KIAlpZiAoIShhcmdzLT5mbGFncyAmIChM SU5VWF9DTE9ORV9GSUxFUyB8IExJTlVYX0NMT05FX0ZTKSkpCiAJCWZmIHw9IFJGRkRHOwpAQCAt NjYwLDE1ICs2NjIsMTUgQEAKIAlpZiAoYXJncy0+ZmxhZ3MgJiBMSU5VWF9DTE9ORV9TRVRUTFMp IHsKIAkJc3RydWN0IHVzZXJfc2VnbWVudF9kZXNjcmlwdG9yIHNkOwogCQlzdHJ1Y3QgbF91c2Vy X2Rlc2MgaW5mbzsKLQkgICAJaW50IGFbMl07CisJCWludCBhWzJdOwogCi0JICAgCWVycm9yID0g Y29weWluKCh2b2lkICopdGQtPnRkX2ZyYW1lLT50Zl9yc2ksICZpbmZvLAorCQllcnJvciA9IGNv cHlpbigodm9pZCAqKXRkLT50ZF9mcmFtZS0+dGZfcnNpLCAmaW5mbywKIAkJICAgIHNpemVvZihz dHJ1Y3QgbF91c2VyX2Rlc2MpKTsKIAkJaWYgKGVycm9yKSB7CiAJCQlwcmludGYoTE1TRygiY29w eWluIGZhaWxlZCEiKSk7CiAJCX0gZWxzZSB7CiAJCQkvKiBXZSBtaWdodCBjb3B5IG91dCB0aGUg ZW50cnlfbnVtYmVyIGFzIEdVR1MzMl9TRUwuICovCi0JCSAgIAlpbmZvLmVudHJ5X251bWJlciA9 IEdVR1MzMl9TRUw7CisJCQlpbmZvLmVudHJ5X251bWJlciA9IEdVR1MzMl9TRUw7CiAJCQllcnJv ciA9IGNvcHlvdXQoJmluZm8sICh2b2lkICopdGQtPnRkX2ZyYW1lLT50Zl9yc2ksCiAJCQkgICAg c2l6ZW9mKHN0cnVjdCBsX3VzZXJfZGVzYykpOwogCQkJaWYgKGVycm9yKQpAQCAtODcxLDcgKzg3 Myw3IEBACiAJCSAqCiAJCSAqIE91ciBtbWFwIHdpdGggTUFQX1NUQUNLIHRha2VzIGFkZHIgYXMg dGhlIG1heGltdW0KIAkJICogZG93bnNpemUgbGltaXQgb24gQk9TLCBhbmQgYXMgbGVuIHRoZSBt YXggc2l6ZSBvZgotCQkgKiB0aGUgcmVnaW9uLiAgSXQgdGhlbSBtYXBzIHRoZSB0b3AgU0dST1dT SVogYnl0ZXMsCisJCSAqIHRoZSByZWdpb24uICBJdCB0aGVuIG1hcHMgdGhlIHRvcCBTR1JPV1NJ WiBieXRlcywKIAkJICogYW5kIGF1dG8gZ3Jvd3MgdGhlIHJlZ2lvbiBkb3duLCB1cCB0byB0aGUg bGltaXQKIAkJICogaW4gYWRkci4KIAkJICoKQEAgLTExNzgsNiArMTE4MCwzMyBAQAogfQogCiBp bnQKK2xpbnV4X3NldHRpbWVvZmRheShzdHJ1Y3QgdGhyZWFkICp0ZCwgc3RydWN0IGxpbnV4X3Nl dHRpbWVvZmRheV9hcmdzICp1YXApCit7CisJbF90aW1ldmFsIHR2MzI7CisJc3RydWN0IHRpbWV2 YWwgdHYsICp0dnA7CisJc3RydWN0IHRpbWV6b25lIHR6LCAqdHpwOworCWludCBlcnJvcjsKKwor CWlmICh1YXAtPnRwKSB7CisJCWVycm9yID0gY29weWluKHVhcC0+dHAsICZ0djMyLCBzaXplb2Yo dHYzMikpOworCQlpZiAoZXJyb3IpCisJCQlyZXR1cm4gKGVycm9yKTsKKwkJdHYudHZfc2VjID0g dHYzMi50dl9zZWM7CisJCXR2LnR2X3VzZWMgPSB0djMyLnR2X3VzZWM7CisJCXR2cCA9ICZ0djsK Kwl9IGVsc2UKKwkJdHZwID0gTlVMTDsKKwlpZiAodWFwLT50enApIHsKKwkJZXJyb3IgPSBjb3B5 aW4odWFwLT50enAsICZ0eiwgc2l6ZW9mKHR6KSk7CisJCWlmIChlcnJvcikKKwkJCXJldHVybiAo ZXJyb3IpOworCQl0enAgPSAmdHo7CisJfSBlbHNlCisJCXR6cCA9IE5VTEw7CisJcmV0dXJuIChr ZXJuX3NldHRpbWVvZmRheSh0ZCwgdHZwLCB0enApKTsKK30KKworaW50CiBsaW51eF9nZXRydXNh Z2Uoc3RydWN0IHRocmVhZCAqdGQsIHN0cnVjdCBsaW51eF9nZXRydXNhZ2VfYXJncyAqdWFwKQog ewogCXN0cnVjdCBsX3J1c2FnZSBzMzI7CkBAIC0xMjQyLDcgKzEyNzEsNyBAQAogCiAjaWZkZWYg REVCVUcKIAlpZiAobGRlYnVnKHNldF90aHJlYWRfYXJlYSkpCi0JICAgCXByaW50ZihBUkdTKHNl dF90aHJlYWRfYXJlYSwgIiVpLCAleCwgJXgsICVpLCAlaSwgJWksICIKKwkJcHJpbnRmKEFSR1Mo c2V0X3RocmVhZF9hcmVhLCAiJWksICV4LCAleCwgJWksICVpLCAlaSwgIgogCQkgICAgIiVpLCAl aSwgJWkiKSwgaW5mby5lbnRyeV9udW1iZXIsIGluZm8uYmFzZV9hZGRyLAogCQkgICAgaW5mby5s aW1pdCwgaW5mby5zZWdfMzJiaXQsIGluZm8uY29udGVudHMsCiAJCSAgICBpbmZvLnJlYWRfZXhl Y19vbmx5LCBpbmZvLmxpbWl0X2luX3BhZ2VzLApAQCAtMTI2MSw5ICsxMjkwLDEwIEBACiAJICog VGhlIHRsc19hcnJheVtdIGlzIHVzZWQgb25seSBpbiBbZ3NdZXRfdGhyZWFkX2FyZWEoKSBzeXNj YWxscyBhbmQKIAkgKiBmb3IgbG9hZGluZyB0aGUgR0RUIGRlc2NyaXB0b3JzLiBXZSB1c2UganVz dCBvbmUgR0RUIGRlc2NyaXB0b3IKIAkgKiBmb3IgVExTLCBzbyB3ZSB3aWxsIGxvYWQganVzdCBv bmUuCi0JICogWFhYOiBUaGlzIGRvZXNudCB3b3JrIHdoZW4gdXNlci1zcGFjZSBwcm9jZXNzIHRy aWVzIHRvIHVzZSBtb3JlCisJICoKKwkgKiBYWFg6IFRoaXMgZG9lc24ndCB3b3JrIHdoZW4gYSB1 c2VyIHNwYWNlIHByb2Nlc3MgdHJpZXMgdG8gdXNlIG1vcmUKIAkgKiB0aGFuIG9uZSBUTFMgc2Vn bWVudC4gQ29tbWVudCBpbiB0aGUgTGludXggc291cmNlIHNheXMgd2luZSBtaWdodAotCSAqIGRv IHRoYXQuCisJICogZG8gdGhpcy4KIAkgKi8KIAogCS8qCkBAIC0xMjg0LDggKzEzMTQsOSBAQAog CiAJLyoKIAkgKiBXZSBoYXZlIHRvIGNvcHkgb3V0IHRoZSBHRFQgZW50cnkgd2UgdXNlLgotCSAq IFhYWDogV2hhdCBpZiB1c2Vyc3BhY2UgcHJvZ3JhbSBkb2VzIG5vdCBjaGVjayByZXR1cm4gdmFs dWUgYW5kCi0JICogdHJpZXMgdG8gdXNlIDYsIDcgb3IgOD8KKwkgKgorCSAqIFhYWDogV2hhdCBp ZiBhIHVzZXIgc3BhY2UgcHJvZ3JhbSBkb2VzIG5vdCBjaGVjayB0aGUgcmV0dXJuIHZhbHVlCisJ ICogYW5kIHRyaWVzIHRvIHVzZSA2LCA3IG9yIDg/CiAJICovCiAJZXJyb3IgPSBjb3B5b3V0KCZp bmZvLCBhcmdzLT5kZXNjLCBzaXplb2Yoc3RydWN0IGxfdXNlcl9kZXNjKSk7CiAJaWYgKGVycm9y KQ== ------=_Part_110272_15125915.1176916750458--