Globals go like this:
hwconf.c
int global_x = 123;
hwconf.h
extern int global_x;
Now you've got one copy of global_x, notionally stored in hwconf.c, but accessible to everyone who includes hwconf.h.
You must not use the identifier global_x for a different global in the same program, or you will get a collision. For this reason most people would call it something like hwconf_x.