~ubuntu-branches/ubuntu/utopic/linux-ti-omap/utopic

« back to all changes in this revision

Viewing changes to arch/s390/include/asm/appldata.h

  • Committer: Bazaar Package Importer
  • Author(s): Amit Kucheria, Amit Kucheria
  • Date: 2010-03-10 02:28:15 UTC
  • Revision ID: james.westby@ubuntu.com-20100310022815-7sd3gwvn5kenaq33
Tags: 2.6.33-500.1
[ Amit Kucheria ]

* Initial release of a 2.6.33-based OMAP kernel
* UBUNTU: [Upstream] Fix omap 1-wire driver compilation
* UBUNTU: ubuntu: AppArmor -- update to mainline 2010-03-04

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * include/asm-s390/appldata.h
 
3
 *
 
4
 * Copyright (C) IBM Corp. 2006
 
5
 *
 
6
 * Author(s): Melissa Howland <melissah@us.ibm.com>
 
7
 */
 
8
 
 
9
#ifndef _ASM_S390_APPLDATA_H
 
10
#define _ASM_S390_APPLDATA_H
 
11
 
 
12
#include <asm/io.h>
 
13
 
 
14
#ifndef CONFIG_64BIT
 
15
 
 
16
#define APPLDATA_START_INTERVAL_REC     0x00    /* Function codes for */
 
17
#define APPLDATA_STOP_REC               0x01    /* DIAG 0xDC          */
 
18
#define APPLDATA_GEN_EVENT_REC          0x02
 
19
#define APPLDATA_START_CONFIG_REC       0x03
 
20
 
 
21
/*
 
22
 * Parameter list for DIAGNOSE X'DC'
 
23
 */
 
24
struct appldata_parameter_list {
 
25
        u16 diag;               /* The DIAGNOSE code X'00DC'          */
 
26
        u8  function;           /* The function code for the DIAGNOSE */
 
27
        u8  parlist_length;     /* Length of the parameter list       */
 
28
        u32 product_id_addr;    /* Address of the 16-byte product ID  */
 
29
        u16 reserved;
 
30
        u16 buffer_length;      /* Length of the application data buffer  */
 
31
        u32 buffer_addr;        /* Address of the application data buffer */
 
32
} __attribute__ ((packed));
 
33
 
 
34
#else /* CONFIG_64BIT */
 
35
 
 
36
#define APPLDATA_START_INTERVAL_REC     0x80
 
37
#define APPLDATA_STOP_REC               0x81
 
38
#define APPLDATA_GEN_EVENT_REC          0x82
 
39
#define APPLDATA_START_CONFIG_REC       0x83
 
40
 
 
41
/*
 
42
 * Parameter list for DIAGNOSE X'DC'
 
43
 */
 
44
struct appldata_parameter_list {
 
45
        u16 diag;
 
46
        u8  function;
 
47
        u8  parlist_length;
 
48
        u32 unused01;
 
49
        u16 reserved;
 
50
        u16 buffer_length;
 
51
        u32 unused02;
 
52
        u64 product_id_addr;
 
53
        u64 buffer_addr;
 
54
} __attribute__ ((packed));
 
55
 
 
56
#endif /* CONFIG_64BIT */
 
57
 
 
58
struct appldata_product_id {
 
59
        char prod_nr[7];        /* product number */
 
60
        u16  prod_fn;           /* product function */
 
61
        u8   record_nr;         /* record number */
 
62
        u16  version_nr;        /* version */
 
63
        u16  release_nr;        /* release */
 
64
        u16  mod_lvl;           /* modification level */
 
65
} __attribute__ ((packed));
 
66
 
 
67
static inline int appldata_asm(struct appldata_product_id *id,
 
68
                               unsigned short fn, void *buffer,
 
69
                               unsigned short length)
 
70
{
 
71
        struct appldata_parameter_list parm_list;
 
72
        int ry;
 
73
 
 
74
        if (!MACHINE_IS_VM)
 
75
                return -ENOSYS;
 
76
        parm_list.diag = 0xdc;
 
77
        parm_list.function = fn;
 
78
        parm_list.parlist_length = sizeof(parm_list);
 
79
        parm_list.buffer_length = length;
 
80
        parm_list.product_id_addr = (unsigned long) id;
 
81
        parm_list.buffer_addr = virt_to_phys(buffer);
 
82
        asm volatile(
 
83
                "       diag    %1,%0,0xdc"
 
84
                : "=d" (ry)
 
85
                : "d" (&parm_list), "m" (parm_list), "m" (*id)
 
86
                : "cc");
 
87
        return ry;
 
88
}
 
89
 
 
90
#endif /* _ASM_S390_APPLDATA_H */