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