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