140a360c2SBrad Bishop #ifndef __OPENBMC_H__
240a360c2SBrad Bishop #define __OPENBMC_H__
340a360c2SBrad Bishop 
440a360c2SBrad Bishop #include <stdint.h>
540a360c2SBrad Bishop #include <stdio.h>
640a360c2SBrad Bishop 
740a360c2SBrad Bishop //select which dbus
840a360c2SBrad Bishop #define DBUS_TYPE  G_BUS_TYPE_SYSTEM
940a360c2SBrad Bishop 
1040a360c2SBrad Bishop // Macros
1140a360c2SBrad Bishop #define GET_VARIANT(v)         g_variant_get_variant(v)
1240a360c2SBrad Bishop #define GET_VARIANT_D(v)       g_variant_get_double(g_variant_get_variant(v))
1340a360c2SBrad Bishop #define GET_VARIANT_U(v)       g_variant_get_uint32(g_variant_get_variant(v))
1440a360c2SBrad Bishop #define GET_VARIANT_B(v)       g_variant_get_byte(g_variant_get_variant(v))
1540a360c2SBrad Bishop #define NEW_VARIANT_D(v)       g_variant_new_variant(g_variant_new_double(v))
1640a360c2SBrad Bishop #define NEW_VARIANT_U(v)       g_variant_new_variant(g_variant_new_uint32(v))
1740a360c2SBrad Bishop #define NEW_VARIANT_B(v)       g_variant_new_variant(g_variant_new_byte(v))
1840a360c2SBrad Bishop #define VARIANT_COMPARE(x,y)   g_variant_compare(GET_VARIANT(x),GET_VARIANT(y))
1940a360c2SBrad Bishop 
2040a360c2SBrad Bishop #ifdef __arm__
devmem(void * addr,uint32_t val)2140a360c2SBrad Bishop static inline void devmem(void* addr, uint32_t val)
2240a360c2SBrad Bishop {
2340a360c2SBrad Bishop 	printf("devmem %p = 0x%08x\n",addr,val);
2440a360c2SBrad Bishop         asm volatile("" : : : "memory");
2540a360c2SBrad Bishop         *(volatile uint32_t *)addr = val;
2640a360c2SBrad Bishop }
devmem_read(void * addr)2740a360c2SBrad Bishop static inline uint32_t devmem_read(void* addr)
2840a360c2SBrad Bishop {
2940a360c2SBrad Bishop         asm volatile("" : : : "memory");
3040a360c2SBrad Bishop 	return *(volatile uint32_t *)addr;
3140a360c2SBrad Bishop }
3240a360c2SBrad Bishop //static inline devmem(uint32_t reg, uint32_t val)
3340a360c2SBrad Bishop //{
3440a360c2SBrad Bishop //	printf("devmem 0x%08x = 0x%08x\n",reg,val);
3540a360c2SBrad Bishop //	//void* r = (void*)reg;
3640a360c2SBrad Bishop  //       write_reg(reg,val);
3740a360c2SBrad Bishop //}
3840a360c2SBrad Bishop #else
devmem(uint32_t val,uint32_t reg)39*0d259e38SPatrick Williams static inline void devmem(uint32_t val, uint32_t reg)
4040a360c2SBrad Bishop {
41*0d259e38SPatrick Williams 	(void) val;
42*0d259e38SPatrick Williams 	(void) reg;
4340a360c2SBrad Bishop }
devmem_read(void * addr)4440a360c2SBrad Bishop static inline uint32_t devmem_read(void* addr)
4540a360c2SBrad Bishop {
46*0d259e38SPatrick Williams 	(void) addr;
4740a360c2SBrad Bishop 	return 0;
4840a360c2SBrad Bishop }
4940a360c2SBrad Bishop 
5040a360c2SBrad Bishop #endif
5140a360c2SBrad Bishop 
5240a360c2SBrad Bishop typedef struct {
5340a360c2SBrad Bishop 	gint argc;
5440a360c2SBrad Bishop 	gchar **argv;
5540a360c2SBrad Bishop 	GMainLoop *loop;
5640a360c2SBrad Bishop 	gpointer user_data;
5740a360c2SBrad Bishop 
5840a360c2SBrad Bishop } cmdline;
5940a360c2SBrad Bishop 
6040a360c2SBrad Bishop 
6140a360c2SBrad Bishop 
6240a360c2SBrad Bishop #endif
63