From: Jan Kiszka <jan.kiszka@domain.hid>
To: rpm@xenomai.org
Cc: xenomai-core <xenomai@xenomai.org>
Subject: Re: [Xenomai-core] rtdm over x86_64
Date: Sat, 03 Feb 2007 18:51:46 +0100 [thread overview]
Message-ID: <45C4CBB2.9040409@domain.hid> (raw)
In-Reply-To: <1170517558.8282.4.camel@domain.hid>
[-- Attachment #1.1: Type: text/plain, Size: 1207 bytes --]
Philippe Gerum wrote:
> On Sat, 2007-02-03 at 16:08 +0100, Jan Kiszka wrote:
>
>> But first I need some build environment. A quick shot ended here when
>> trying to configure a patch and prepared 2.6.19 kernel:
>>
>> # make ARCH=x86_64 CC="gcc -m64" oldconfig
>> ...
>> init/Kconfig:572: can't open file "arch/x86_64/xenomai/Kconfig"
>>
>> Anyone any idea? Is something missing, or is the prepare script broken?
>
> It's a bit early for building the x86_64 stack; you may want to fix the
> compilation issues over ppc64 or ia64. I'm working on the missing x86_64
> bits (task switching and a few other details) before even starting to
> fix the build issues.
>
OK, I'm just lacking cross-compilers for other 64-bit archs.
Anyway, here is a first patch for the signedness/width issue of RTDM
IOCTLs. It unfortunately slightly breaks the driver API, but it looks
like it's required for 64-bit support (no IOCTL based on _IOR or _IOWR
should be accepted ATM).
Whoever has a full 64-bit environment is welcome to build and run this
(e.g. using xeno_timerbench). Feedback welcome. Will then commit this
chunk. Meanwhile I'm going to meditate about what to do /wrt 2.3...
Jan
[-- Attachment #1.2: rtdm-ioctl64-fix.patch --]
[-- Type: text/plain, Size: 5364 bytes --]
Index: include/rtdm/rtdm_driver.h
===================================================================
--- include/rtdm/rtdm_driver.h (Revision 2106)
+++ include/rtdm/rtdm_driver.h (Arbeitskopie)
@@ -198,7 +198,7 @@ typedef
typedef
int (*rtdm_ioctl_handler_t) (struct rtdm_dev_context *context,
rtdm_user_info_t *user_info,
- int request,
+ unsigned int request,
void *arg);
/**
Index: ksrc/skins/rtdm/core.c
===================================================================
--- ksrc/skins/rtdm/core.c (Revision 2106)
+++ ksrc/skins/rtdm/core.c (Arbeitskopie)
@@ -403,9 +403,9 @@ int _rtdm_ioctl(rtdm_user_info_t *user_i
arg = va_arg(args, void *);
va_end(args);
- MAJOR_FUNCTION_WRAPPER_TH(ioctl, request, arg);
+ MAJOR_FUNCTION_WRAPPER_TH(ioctl, (unsigned int)request, arg);
- if (unlikely(ret < 0) && request == RTIOC_DEVICE_INFO) {
+ if (unlikely(ret < 0) && (unsigned int)request == RTIOC_DEVICE_INFO) {
struct rtdm_device *dev = context->device;
struct rtdm_device_info dev_info;
Index: ksrc/drivers/serial/16550A.c
===================================================================
--- ksrc/drivers/serial/16550A.c (Revision 2106)
+++ ksrc/drivers/serial/16550A.c (Arbeitskopie)
@@ -550,7 +550,8 @@ int rt_16550_close(struct rtdm_dev_conte
int rt_16550_ioctl(struct rtdm_dev_context *context,
- rtdm_user_info_t *user_info, int request, void *arg)
+ rtdm_user_info_t *user_info,
+ unsigned int request, void *arg)
{
struct rt_16550_context *ctx;
int err = 0;
Index: ksrc/drivers/can/rtcan_raw.c
===================================================================
--- ksrc/drivers/can/rtcan_raw.c (Revision 2106)
+++ ksrc/drivers/can/rtcan_raw.c (Arbeitskopie)
@@ -412,7 +412,8 @@ static int rtcan_raw_setsockopt(struct r
int rtcan_raw_ioctl(struct rtdm_dev_context *context,
- rtdm_user_info_t *user_info, int request, void *arg)
+ rtdm_user_info_t *user_info,
+ unsigned int request, void *arg)
{
int ret = 0;
Index: ksrc/drivers/testing/timerbench.c
===================================================================
--- ksrc/drivers/testing/timerbench.c (Revision 2106)
+++ ksrc/drivers/testing/timerbench.c (Arbeitskopie)
@@ -234,7 +234,8 @@ int rt_tmbench_close(struct rtdm_dev_con
int rt_tmbench_ioctl_nrt(struct rtdm_dev_context *context,
- rtdm_user_info_t *user_info, int request, void *arg)
+ rtdm_user_info_t *user_info,
+ unsigned int request, void *arg)
{
struct rt_tmbench_context *ctx;
int err = 0;
@@ -413,7 +414,8 @@ int rt_tmbench_ioctl_nrt(struct rtdm_dev
int rt_tmbench_ioctl_rt(struct rtdm_dev_context *context,
- rtdm_user_info_t *user_info, int request, void *arg)
+ rtdm_user_info_t *user_info,
+ unsigned int request, void *arg)
{
struct rt_tmbench_context *ctx;
int err = 0;
Index: ksrc/drivers/testing/switchtest.c
===================================================================
--- ksrc/drivers/testing/switchtest.c (Revision 2106)
+++ ksrc/drivers/testing/switchtest.c (Arbeitskopie)
@@ -389,7 +389,7 @@ static int rtswitch_close(struct rtdm_de
static int rtswitch_ioctl_nrt(struct rtdm_dev_context *context,
rtdm_user_info_t *user_info,
- int request,
+ unsigned int request,
void *arg)
{
rtswitch_context_t *ctx = (rtswitch_context_t *) context->dev_private;
@@ -492,7 +492,7 @@ static int rtswitch_ioctl_nrt(struct rtd
static int rtswitch_ioctl_rt(struct rtdm_dev_context *context,
rtdm_user_info_t *user_info,
- int request,
+ unsigned int request,
void *arg)
{
rtswitch_context_t *ctx = (rtswitch_context_t *) context->dev_private;
Index: ksrc/drivers/testing/irqbench.c
===================================================================
--- ksrc/drivers/testing/irqbench.c (Revision 2106)
+++ ksrc/drivers/testing/irqbench.c (Arbeitskopie)
@@ -237,8 +237,8 @@ static int rt_irqbench_close(struct rtdm
}
static int rt_irqbench_ioctl_nrt(struct rtdm_dev_context *context,
- rtdm_user_info_t *user_info, int request,
- void *arg)
+ rtdm_user_info_t *user_info,
+ unsigned int request, void *arg)
{
struct rt_irqbench_context *ctx;
struct rttst_irqbench_config config_buf;
@@ -435,8 +435,8 @@ static int rt_irqbench_ioctl_nrt(struct
}
static int rt_irqbench_ioctl_rt(struct rtdm_dev_context *context,
- rtdm_user_info_t *user_info, int request,
- void *arg)
+ rtdm_user_info_t *user_info,
+ unsigned int request, void *arg)
{
struct rt_irqbench_context *ctx;
int err = 0;
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]
next prev parent reply other threads:[~2007-02-03 17:51 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-03 13:13 [Xenomai-core] rtdm over x86_64 Paul
2007-02-03 15:08 ` Jan Kiszka
2007-02-03 15:18 ` Jan Kiszka
2007-02-03 15:45 ` Philippe Gerum
2007-02-03 17:51 ` Jan Kiszka [this message]
2007-02-03 23:32 ` Paul
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45C4CBB2.9040409@domain.hid \
--to=jan.kiszka@domain.hid \
--cc=rpm@xenomai.org \
--cc=xenomai@xenomai.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.