1*40a360c2SBrad Bishop #ifndef __OPENBMC_H__
2*40a360c2SBrad Bishop #define __OPENBMC_H__
3*40a360c2SBrad Bishop 
4*40a360c2SBrad Bishop #include <stdint.h>
5*40a360c2SBrad Bishop #include <stdio.h>
6*40a360c2SBrad Bishop 
7*40a360c2SBrad Bishop //select which dbus
8*40a360c2SBrad Bishop #define DBUS_TYPE  G_BUS_TYPE_SYSTEM
9*40a360c2SBrad Bishop 
10*40a360c2SBrad Bishop // Macros
11*40a360c2SBrad Bishop #define GET_VARIANT(v)         g_variant_get_variant(v)
12*40a360c2SBrad Bishop #define GET_VARIANT_D(v)       g_variant_get_double(g_variant_get_variant(v))
13*40a360c2SBrad Bishop #define GET_VARIANT_U(v)       g_variant_get_uint32(g_variant_get_variant(v))
14*40a360c2SBrad Bishop #define GET_VARIANT_B(v)       g_variant_get_byte(g_variant_get_variant(v))
15*40a360c2SBrad Bishop #define NEW_VARIANT_D(v)       g_variant_new_variant(g_variant_new_double(v))
16*40a360c2SBrad Bishop #define NEW_VARIANT_U(v)       g_variant_new_variant(g_variant_new_uint32(v))
17*40a360c2SBrad Bishop #define NEW_VARIANT_B(v)       g_variant_new_variant(g_variant_new_byte(v))
18*40a360c2SBrad Bishop #define VARIANT_COMPARE(x,y)   g_variant_compare(GET_VARIANT(x),GET_VARIANT(y))
19*40a360c2SBrad Bishop 
20*40a360c2SBrad Bishop #ifdef __arm__
21*40a360c2SBrad Bishop static inline void devmem(void* addr, uint32_t val)
22*40a360c2SBrad Bishop {
23*40a360c2SBrad Bishop 	printf("devmem %p = 0x%08x\n",addr,val);
24*40a360c2SBrad Bishop         asm volatile("" : : : "memory");
25*40a360c2SBrad Bishop         *(volatile uint32_t *)addr = val;
26*40a360c2SBrad Bishop }
27*40a360c2SBrad Bishop static inline uint32_t devmem_read(void* addr)
28*40a360c2SBrad Bishop {
29*40a360c2SBrad Bishop         asm volatile("" : : : "memory");
30*40a360c2SBrad Bishop 	return *(volatile uint32_t *)addr;
31*40a360c2SBrad Bishop }
32*40a360c2SBrad Bishop //static inline devmem(uint32_t reg, uint32_t val)
33*40a360c2SBrad Bishop //{
34*40a360c2SBrad Bishop //	printf("devmem 0x%08x = 0x%08x\n",reg,val);
35*40a360c2SBrad Bishop //	//void* r = (void*)reg;
36*40a360c2SBrad Bishop  //       write_reg(reg,val);
37*40a360c2SBrad Bishop //}
38*40a360c2SBrad Bishop #else
39*40a360c2SBrad Bishop static inline devmem(uint32_t val, uint32_t reg)
40*40a360c2SBrad Bishop {
41*40a360c2SBrad Bishop }
42*40a360c2SBrad Bishop static inline uint32_t devmem_read(void* addr)
43*40a360c2SBrad Bishop {
44*40a360c2SBrad Bishop 	return 0;
45*40a360c2SBrad Bishop }
46*40a360c2SBrad Bishop 
47*40a360c2SBrad Bishop #endif
48*40a360c2SBrad Bishop 
49*40a360c2SBrad Bishop typedef struct {
50*40a360c2SBrad Bishop 	gint argc;
51*40a360c2SBrad Bishop 	gchar **argv;
52*40a360c2SBrad Bishop 	GMainLoop *loop;
53*40a360c2SBrad Bishop 	gpointer user_data;
54*40a360c2SBrad Bishop 
55*40a360c2SBrad Bishop } cmdline;
56*40a360c2SBrad Bishop 
57*40a360c2SBrad Bishop 
58*40a360c2SBrad Bishop 
59*40a360c2SBrad Bishop #endif
60