* How to printk unsigned long long variable? @ 2007-06-15 14:59 jidong xiao 2007-06-15 15:04 ` Vegard Nossum 0 siblings, 1 reply; 9+ messages in thread From: jidong xiao @ 2007-06-15 14:59 UTC (permalink / raw) To: linux-kernel For example, typedef unsigned long long u64; u64 *dma_mask; Then how to use printk() to print out a dma_mask variable? Regards Jason Xiao ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: How to printk unsigned long long variable? 2007-06-15 14:59 How to printk unsigned long long variable? jidong xiao @ 2007-06-15 15:04 ` Vegard Nossum 2007-06-15 15:33 ` Randy Dunlap 0 siblings, 1 reply; 9+ messages in thread From: Vegard Nossum @ 2007-06-15 15:04 UTC (permalink / raw) To: jidong xiao; +Cc: linux-kernel On 6/15/07, jidong xiao <jidong.xiao@gmail.com> wrote: > typedef unsigned long long u64; > u64 *dma_mask; > Then how to use printk() to print out a dma_mask variable? In regular printf(), this would be specified by the format "%llu". Try that? Vegard ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: How to printk unsigned long long variable? 2007-06-15 15:04 ` Vegard Nossum @ 2007-06-15 15:33 ` Randy Dunlap 2007-06-15 15:39 ` jidong xiao 0 siblings, 1 reply; 9+ messages in thread From: Randy Dunlap @ 2007-06-15 15:33 UTC (permalink / raw) To: Vegard Nossum; +Cc: jidong xiao, linux-kernel On Fri, 15 Jun 2007 17:04:00 +0200 Vegard Nossum wrote: > On 6/15/07, jidong xiao <jidong.xiao@gmail.com> wrote: > > typedef unsigned long long u64; > > u64 *dma_mask; > > Then how to use printk() to print out a dma_mask variable? > > In regular printf(), this would be specified by the format "%llu". Try that? and cast dma_mask to (unsigned long long), at least in kernel printk() calls. --- ~Randy *** Remember to use Documentation/SubmitChecklist when testing your code *** ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: How to printk unsigned long long variable? 2007-06-15 15:33 ` Randy Dunlap @ 2007-06-15 15:39 ` jidong xiao 2007-06-15 16:14 ` Roland Dreier 0 siblings, 1 reply; 9+ messages in thread From: jidong xiao @ 2007-06-15 15:39 UTC (permalink / raw) To: Randy Dunlap; +Cc: Vegard Nossum, linux-kernel Thanks all. Is this right? dev->dev.dma_mask = bus->controller->dma_mask; printk(KERN_ERR "hey,jason,see,dma_mask is %llu\n",*(dev->dev.dma_mask)); On 6/15/07, Randy Dunlap <randy.dunlap@oracle.com> wrote: > On Fri, 15 Jun 2007 17:04:00 +0200 Vegard Nossum wrote: > > > On 6/15/07, jidong xiao <jidong.xiao@gmail.com> wrote: > > > typedef unsigned long long u64; > > > u64 *dma_mask; > > > Then how to use printk() to print out a dma_mask variable? > > > > In regular printf(), this would be specified by the format "%llu". Try that? > > and cast dma_mask to (unsigned long long), at least in kernel printk() > calls. > > --- > ~Randy > *** Remember to use Documentation/SubmitChecklist when testing your code *** > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: How to printk unsigned long long variable? 2007-06-15 15:39 ` jidong xiao @ 2007-06-15 16:14 ` Roland Dreier 2007-06-15 16:18 ` jidong xiao 0 siblings, 1 reply; 9+ messages in thread From: Roland Dreier @ 2007-06-15 16:14 UTC (permalink / raw) To: jidong xiao; +Cc: Randy Dunlap, Vegard Nossum, linux-kernel > Is this right? > dev->dev.dma_mask = bus->controller->dma_mask; > printk(KERN_ERR "hey,jason,see,dma_mask is > %llu\n",*(dev->dev.dma_mask)); No, why do you have the '*' -- dma_mask isn't a pointer, is it? You probably want: printk(KERN_ERR "hey,jason,see,dma_mask is %llx\n", (unsigned long long) dev->dev.dma_mask); (I would use a "%llx" format because masks are much clearer in hex). The cast to unsigned long long is there because u64 is just unsigned long on some 64-bit platforms, so you get a warning about the format not matching on some architectures without the cast. - R. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: How to printk unsigned long long variable? 2007-06-15 16:14 ` Roland Dreier @ 2007-06-15 16:18 ` jidong xiao 2007-06-15 16:29 ` Jan Engelhardt 2007-06-15 18:41 ` Roland Dreier 0 siblings, 2 replies; 9+ messages in thread From: jidong xiao @ 2007-06-15 16:18 UTC (permalink / raw) To: Roland Dreier; +Cc: Randy Dunlap, Vegard Nossum, linux-kernel dma_mask should be a pointer, I mean, the element in struct device, see below, struct device { struct list_head node; /* node in sibling list */ struct list_head bus_list; /* node in bus's list */ struct list_head driver_list; struct list_head children; struct device * parent; struct kobject kobj; char bus_id[BUS_ID_SIZE]; /* position on parent bus */ struct bus_type * bus; /* type of bus device is on */ struct device_driver *driver; /* which driver has allocated this device */ void *driver_data; /* data private to the driver */ void *platform_data; /* Platform specific data (e.g. ACPI, BIOS data relevant to device) */ struct dev_pm_info power; u32 detach_state; /* State to enter when device is detached from its driver. */ u64 *dma_mask; /* dma mask (if dma'able device) */ u64 coherent_dma_mask;/* Like dma_mask, but for alloc_coherent mappings as not all hardware supports 64 bit addresses for consistent allocations such descriptors. */ struct list_head dma_pools; /* dma pools (if dma'ble) */ struct dma_coherent_mem *dma_mem; /* internal for coherent mem override */ void (*release)(struct device * dev); }; Regards Jason Xiao On 6/16/07, Roland Dreier <rdreier@cisco.com> wrote: > > Is this right? > > > dev->dev.dma_mask = bus->controller->dma_mask; > > printk(KERN_ERR "hey,jason,see,dma_mask is > > %llu\n",*(dev->dev.dma_mask)); > > No, why do you have the '*' -- dma_mask isn't a pointer, is it? > > You probably want: > > printk(KERN_ERR "hey,jason,see,dma_mask is %llx\n", > (unsigned long long) dev->dev.dma_mask); > > (I would use a "%llx" format because masks are much clearer in hex). > The cast to unsigned long long is there because u64 is just unsigned > long on some 64-bit platforms, so you get a warning about the format > not matching on some architectures without the cast. > > - R. > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: How to printk unsigned long long variable? 2007-06-15 16:18 ` jidong xiao @ 2007-06-15 16:29 ` Jan Engelhardt 2007-06-15 18:41 ` Roland Dreier 1 sibling, 0 replies; 9+ messages in thread From: Jan Engelhardt @ 2007-06-15 16:29 UTC (permalink / raw) To: jidong xiao; +Cc: Roland Dreier, Randy Dunlap, Vegard Nossum, linux-kernel On Jun 16 2007 00:18, jidong xiao wrote: > dma_mask should be a pointer, I mean, the element in struct device, see > below, > > struct device { > > u64 *dma_mask; /* dma mask (if dma'able device) */ Then it's printk("%llx\n", (unsigned long long)*dev->dma_mask); Jan -- ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: How to printk unsigned long long variable? 2007-06-15 16:18 ` jidong xiao 2007-06-15 16:29 ` Jan Engelhardt @ 2007-06-15 18:41 ` Roland Dreier 2007-06-17 6:55 ` Stephen Rothwell 1 sibling, 1 reply; 9+ messages in thread From: Roland Dreier @ 2007-06-15 18:41 UTC (permalink / raw) To: jidong xiao; +Cc: Randy Dunlap, Vegard Nossum, linux-kernel > dma_mask should be a pointer, I mean, the element in struct device, see below, Sorry, you're right. So print it as (unsigned long long) *dev->dma_mask. - R. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: How to printk unsigned long long variable? 2007-06-15 18:41 ` Roland Dreier @ 2007-06-17 6:55 ` Stephen Rothwell 0 siblings, 0 replies; 9+ messages in thread From: Stephen Rothwell @ 2007-06-17 6:55 UTC (permalink / raw) To: Roland Dreier; +Cc: jidong xiao, Randy Dunlap, Vegard Nossum, linux-kernel [-- Attachment #1: Type: text/plain, Size: 492 bytes --] On Fri, 15 Jun 2007 11:41:58 -0700 Roland Dreier <rdreier@cisco.com> wrote: > > > dma_mask should be a pointer, I mean, the element in struct device, see below, > > Sorry, you're right. > > So print it as (unsigned long long) *dev->dma_mask. And the reason you need to cast it is because u64 is "unsigned long" on some architectures and "unsigned long long" on others. -- Cheers, Stephen Rothwell sfr@canb.auug.org.au http://www.canb.auug.org.au/~sfr/ [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2007-06-17 6:55 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2007-06-15 14:59 How to printk unsigned long long variable? jidong xiao 2007-06-15 15:04 ` Vegard Nossum 2007-06-15 15:33 ` Randy Dunlap 2007-06-15 15:39 ` jidong xiao 2007-06-15 16:14 ` Roland Dreier 2007-06-15 16:18 ` jidong xiao 2007-06-15 16:29 ` Jan Engelhardt 2007-06-15 18:41 ` Roland Dreier 2007-06-17 6:55 ` Stephen Rothwell
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).