All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeremy Fitzhardinge <jeremy@goop.org>
To: linux-ia64@vger.kernel.org
Subject: Re: [PATCH 01/23] ia64/xen: introduce synch bitops which is necessary
Date: Wed, 09 Apr 2008 05:09:51 +0000	[thread overview]
Message-ID: <47FC4F9F.4060301@goop.org> (raw)
In-Reply-To: <12077166303062-git-send-email-yamahata@valinux.co.jp>

Isaku Yamahata wrote:
> define sync bitops which is necessary for ia64/xen.
>
> Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
> ---
>  include/asm-ia64/sync_bitops.h |   59 ++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 59 insertions(+), 0 deletions(-)
>  create mode 100644 include/asm-ia64/sync_bitops.h
>
> diff --git a/include/asm-ia64/sync_bitops.h b/include/asm-ia64/sync_bitops.h
> new file mode 100644
> index 0000000..f56cd90
> --- /dev/null
> +++ b/include/asm-ia64/sync_bitops.h
> @@ -0,0 +1,59 @@
> +#ifndef _ASM_IA64_SYNC_BITOPS_H
> +#define _ASM_IA64_SYNC_BITOPS_H
> +
> +/*
> + * Copyright 1992, Linus Torvalds.
> + * Heavily modified to provide guaranteed strong synchronisation
> + * when communicating with Xen or other guest OSes running on other CPUs.
> + */
> +
> +static inline void sync_set_bit(int nr, volatile void *addr)
> +{
> +	set_bit(nr, addr);
> +}
> +
> +static inline void sync_clear_bit(int nr, volatile void *addr)
> +{
> +	clear_bit(nr, addr);
> +}
> +
> +static inline void sync_change_bit(int nr, volatile void *addr)
> +{
> +	change_bit(nr, addr);
> +}
> +
> +static inline int sync_test_and_set_bit(int nr, volatile void *addr)
> +{
> +	return test_and_set_bit(nr, addr);
> +}
> +
> +static inline int sync_test_and_clear_bit(int nr, volatile void *addr)
> +{
> +	return test_and_clear_bit(nr, addr);
> +}
> +
> +static inline int sync_test_and_change_bit(int nr, volatile void *addr)
> +{
> +	return test_and_change_bit(nr, addr);
> +}
> +
> +static inline int sync_const_test_bit(int nr, const volatile void *addr)
> +{
> +	return test_bit(nr, addr);
> +}
> +
> +static inline int sync_var_test_bit(int nr, volatile void *addr)
> +{
> +	return test_bit(nr, addr);
> +}
> +
> +#define sync_cmpxchg	ia64_cmpxchg4_acq
>   

Please always use arguments with function-like macros, to prevent 
accidental namespace clashes.

> +
> +#define sync_test_bit(nr,addr)			\
> +	(__builtin_constant_p(nr) ?		\
> +	 sync_const_test_bit((nr), (addr)) :	\
> +	 sync_var_test_bit((nr), (addr)))
> +
> +#define sync_cmpxchg_subword sync_cmpxchg
>   

Ditto.

    J

  parent reply	other threads:[~2008-04-09  5:09 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-09  4:50 [PATCH 00/23] ia64/xen domU take 4 Isaku Yamahata
2008-04-09  4:50 ` [PATCH 01/23] ia64/xen: introduce synch bitops which is necessary for ia64/xen support Isaku Yamahata
2008-04-09  4:50 ` Isaku Yamahata
2008-04-09  5:09   ` Jeremy Fitzhardinge
2008-04-09  5:09   ` Jeremy Fitzhardinge [this message]
2008-04-09  9:01     ` Isaku Yamahata
2008-04-09  9:01   ` Isaku Yamahata
2008-04-30 12:30   ` Isaku Yamahata
2008-05-19 23:07   ` Isaku Yamahata
2008-04-09  4:50 ` [PATCH 02/23] ia64/xen: increase IA64_MAX_RSVD_REGIONS Isaku Yamahata
2008-04-09  4:50 ` [PATCH 03/23] ia64/xen: introduce definitions necessary for ia64/xen hypercalls Isaku Yamahata
2008-04-09  4:50 ` [PATCH 04/23] ia64/xen: define several constants for ia64/xen Isaku Yamahata
2008-04-09  4:50 ` [PATCH 05/23] ia64/xen: define helper functions for xen related address conversion Isaku Yamahata
2008-04-09  4:50 ` [PATCH 06/23] ia64/xen: define helper functions for xen hypercalls Isaku Yamahata
2008-04-09  4:50 ` [PATCH 07/23] ia64/xen: implement the arch specific part of xencomm Isaku Yamahata
2008-04-09  4:50 ` [PATCH 08/23] ia64/xen: xencomm conversion functions for hypercalls Isaku Yamahata
2008-04-09  4:50 ` [PATCH 09/23] ia64/xen: implement arch specific part of xen grant table Isaku Yamahata
2008-04-09  4:50 ` [PATCH 10/23] ia64/xen: add definitions necessary for xen event channel Isaku Yamahata
2008-04-09  4:50 ` [PATCH 11/23] ia64/xen: detect xen environment and do minimal initialization Isaku Yamahata
2008-04-09  4:50 ` [PATCH 12/23] ia64/pv_ops/xen: define xen pv_init_ops for various xen initialization Isaku Yamahata
2008-04-09  4:50 ` [PATCH 13/23] ia64/pv_ops/xen: define xen pv_cpu_ops Isaku Yamahata
2008-04-09  4:50 ` [PATCH 14/23] ia64/pv_ops/xen: define xen paravirtualized instructions for hand written assembly code Isaku Yamahata
2008-04-09  4:50 ` [PATCH 15/23] ia64/pv_ops/xen: paravirtualize DO_SAVE_MIN for xen Isaku Yamahata
2008-04-09  4:50 ` [PATCH 16/23] ia64/pv_ops/xen: paravirtualize ivt.S " Isaku Yamahata
2008-04-09  4:50 ` [PATCH 17/23] ia64/pv_ops/xen: paravirtualize entry.S for ia64/xen Isaku Yamahata
2008-04-09  4:50 ` [PATCH 18/23] ia64/pv_ops/xen: implement xen pv_iosapic_ops Isaku Yamahata
2008-04-09  4:50 ` [PATCH 19/23] ia64/pv_ops/xen: define the nubmer of irqs which xen needs Isaku Yamahata
2008-04-09  4:50 ` [PATCH 20/23] ia64/pv_ops/xen: implement xen pv_irq_ops Isaku Yamahata
2008-04-09  4:50 ` [PATCH 21/23] ia64/pv_ops/xen: implement xen pv_time_ops Isaku Yamahata
2008-04-09  4:50 ` [PATCH 22/23] ia64/xen: define xen machine vector for domU Isaku Yamahata
2008-04-09  4:50 ` [PATCH 23/23] ia64/pv_ops: update Kconfig for paravirtualized guest and xen Isaku Yamahata

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=47FC4F9F.4060301@goop.org \
    --to=jeremy@goop.org \
    --cc=linux-ia64@vger.kernel.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.