Install the pcuif_proto.h header file

So far, we used to keep a copy of the header file around in
both osmo-pcu and osmo-bts projects.  Before we start introducing
a third copy in openbsc, let's have the osmo-pcu install the header
file and make the other programs use that.

Change-Id: I60976c9be5488256d1ff55fdc5aa548e3705400d
diff --git a/src/Makefile.am b/src/Makefile.am
index 9b047e7..7cc239b 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -19,7 +19,7 @@
 #
 
 AUTOMAKE_OPTIONS = subdir-objects
-AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGB_CFLAGS) $(LIBOSMOGSM_CFLAGS)
+AM_CPPFLAGS = -I$(top_srcdir)/include $(STD_DEFINES_AND_INCLUDES) $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGB_CFLAGS) $(LIBOSMOGSM_CFLAGS)
 
 if ENABLE_SYSMODSP
 AM_CPPFLAGS += -DENABLE_DIRECT_PHY
@@ -78,7 +78,6 @@
 	gprs_rlcmac.h \
 	gprs_ms.h \
 	gprs_ms_storage.h \
-	pcuif_proto.h \
 	pcu_l1_if.h \
 	gsm_timer.h \
 	bitvector.h \
@@ -98,6 +97,9 @@
 	gprs_coding_scheme.h \
 	egprs_rlc_compression.h
 
+nobase_include_HEADERS =
+	osmocom/pcu/pcuif_proto.h
+
 osmo_pcu_SOURCES = pcu_main.cpp
 
 if ENABLE_SYSMODSP
diff --git a/src/osmobts_sock.cpp b/src/osmobts_sock.cpp
index 21a404f..f589dc2 100644
--- a/src/osmobts_sock.cpp
+++ b/src/osmobts_sock.cpp
@@ -35,7 +35,7 @@
 #include <pcu_l1_if.h>
 #include <gprs_debug.h>
 #include <gprs_bssgp_pcu.h>
-#include <pcuif_proto.h>
+#include <osmocom/pcu/pcuif_proto.h>
 #include <bts.h>
 #include <tbf.h>
 
diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp
index fb17653..b892597 100644
--- a/src/pcu_l1_if.cpp
+++ b/src/pcu_l1_if.cpp
@@ -38,7 +38,7 @@
 #include <pcu_l1_if.h>
 #include <gprs_debug.h>
 #include <gprs_bssgp_pcu.h>
-#include <pcuif_proto.h>
+#include <osmocom/pcu/pcuif_proto.h>
 #include <bts.h>
 #include <tbf.h>
 
diff --git a/src/pcuif_proto.h b/src/pcuif_proto.h
deleted file mode 100644
index 944f364..0000000
--- a/src/pcuif_proto.h
+++ /dev/null
@@ -1,160 +0,0 @@
-#ifndef _PCUIF_PROTO_H
-#define _PCUIF_PROTO_H
-
-#include <osmocom/gsm/l1sap.h>
-
-#define PCU_IF_VERSION		0x07
-
-/* msg_type */
-#define PCU_IF_MSG_DATA_REQ	0x00	/* send data to given channel */
-#define PCU_IF_MSG_DATA_CNF	0x01	/* confirm (e.g. transmission on PCH) */
-#define PCU_IF_MSG_DATA_IND	0x02	/* receive data from given channel */	
-#define PCU_IF_MSG_RTS_REQ	0x10	/* ready to send request */
-#define PCU_IF_MSG_RACH_IND	0x22	/* receive RACH */
-#define PCU_IF_MSG_INFO_IND	0x32	/* retrieve BTS info */
-#define PCU_IF_MSG_ACT_REQ	0x40	/* activate/deactivate PDCH */
-#define PCU_IF_MSG_TIME_IND	0x52	/* GSM time indication */
-#define PCU_IF_MSG_PAG_REQ	0x60	/* paging request */
-
-/* sapi */
-#define PCU_IF_SAPI_RACH	0x01	/* channel request on CCCH */
-#define PCU_IF_SAPI_AGCH	0x02	/* assignment on AGCH */
-#define PCU_IF_SAPI_PCH		0x03	/* paging/assignment on PCH */
-#define PCU_IF_SAPI_BCCH	0x04	/* SI on BCCH */
-#define PCU_IF_SAPI_PDTCH	0x05	/* packet data/control/ccch block */
-#define PCU_IF_SAPI_PRACH	0x06	/* packet random access channel */
-#define PCU_IF_SAPI_PTCCH	0x07	/* packet TA control channel */
-
-/* flags */
-#define PCU_IF_FLAG_ACTIVE	(1 << 0)/* BTS is active */
-#define PCU_IF_FLAG_SYSMO	(1 << 1)/* access PDCH of sysmoBTS directly */
-#define PCU_IF_FLAG_CS1		(1 << 16)
-#define PCU_IF_FLAG_CS2		(1 << 17)
-#define PCU_IF_FLAG_CS3		(1 << 18)
-#define PCU_IF_FLAG_CS4		(1 << 19)
-#define PCU_IF_FLAG_MCS1	(1 << 20)
-#define PCU_IF_FLAG_MCS2	(1 << 21)
-#define PCU_IF_FLAG_MCS3	(1 << 22)
-#define PCU_IF_FLAG_MCS4	(1 << 23)
-#define PCU_IF_FLAG_MCS5	(1 << 24)
-#define PCU_IF_FLAG_MCS6	(1 << 25)
-#define PCU_IF_FLAG_MCS7	(1 << 26)
-#define PCU_IF_FLAG_MCS8	(1 << 27)
-#define PCU_IF_FLAG_MCS9	(1 << 28)
-
-struct gsm_pcu_if_data {
-	uint8_t		sapi;
-	uint8_t		len;
-	uint8_t		data[162];
-	uint32_t	fn;
-	uint16_t	arfcn;
-	uint8_t		trx_nr;
-	uint8_t		ts_nr;
-	uint8_t		block_nr;
-	int8_t		rssi;
-	uint16_t ber10k;	/*!< \brief BER in units of 0.01% */
-	int16_t ta_offs_qbits;	/* !< \brief Burst TA Offset in quarter bits */
-	int16_t lqual_cb;	/* !< \brief Link quality in centiBel */
-} __attribute__ ((packed));
-
-struct gsm_pcu_if_rts_req {
-	uint8_t		sapi;
-	uint8_t		spare[3];
-	uint32_t	fn;
-	uint16_t	arfcn;
-	uint8_t		trx_nr;
-	uint8_t		ts_nr;
-	uint8_t		block_nr;
-} __attribute__ ((packed));
-
-struct gsm_pcu_if_rach_ind {
-	uint8_t		sapi;
-	uint16_t	ra;
-	int16_t		qta;
-	uint32_t	fn;
-	uint16_t	arfcn;
-	uint8_t		is_11bit;
-	uint8_t		burst_type;
-} __attribute__ ((packed));
-
-struct gsm_pcu_if_info_trx {
-	uint16_t	arfcn;
-	uint8_t		pdch_mask;		/* PDCH channels per TS */
-	uint8_t		spare;
-	uint8_t		tsc[8];			/* TSC per channel */
-	uint32_t	hlayer1;
-} __attribute__ ((packed));
-
-struct gsm_pcu_if_info_ind {
-	uint32_t	version;
-	uint32_t	flags;
-	struct gsm_pcu_if_info_trx trx[8];	/* TRX infos per BTS */
-	uint8_t		bsic;
-	/* RAI */
-	uint16_t	mcc, mnc, lac, rac;
-	/* NSE */
-	uint16_t	nsei;
-	uint8_t		nse_timer[7];
-	uint8_t		cell_timer[11];
-	/* cell  */
-	uint16_t	cell_id;
-	uint16_t	repeat_time;
-	uint8_t		repeat_count;
-	uint16_t	bvci;
-	uint8_t		t3142;
-	uint8_t		t3169;
-	uint8_t		t3191;
-	uint8_t		t3193_10ms;
-	uint8_t		t3195;
-	uint8_t		n3101;
-	uint8_t		n3103;
-	uint8_t		n3105;
-	uint8_t		cv_countdown;
-	uint16_t	dl_tbf_ext;
-	uint16_t	ul_tbf_ext;
-	uint8_t		initial_cs;
-	uint8_t		initial_mcs;
-	/* NSVC */
-	uint16_t	nsvci[2];
-	uint16_t	local_port[2];
-	uint16_t	remote_port[2];
-	uint32_t	remote_ip[2];
-} __attribute__ ((packed));
-
-struct gsm_pcu_if_act_req {
-	uint8_t		activate;
-	uint8_t		trx_nr;
-	uint8_t		ts_nr;
-	uint8_t		spare;
-} __attribute__ ((packed));
-
-struct gsm_pcu_if_time_ind {
-	uint32_t	fn;
-} __attribute__ ((packed));
-
-struct gsm_pcu_if_pag_req {
-	uint8_t		sapi;
-	uint8_t		chan_needed;
-	uint8_t		identity_lv[9];
-} __attribute__ ((packed));
-
-struct gsm_pcu_if {
-	/* context based information */
-	uint8_t		msg_type;	/* message type */
-	uint8_t		bts_nr;		/* bts number */
-	uint8_t		spare[2];
-
-	union {
-		struct gsm_pcu_if_data		data_req;
-		struct gsm_pcu_if_data		data_cnf;
-		struct gsm_pcu_if_data		data_ind;
-		struct gsm_pcu_if_rts_req	rts_req;
-		struct gsm_pcu_if_rach_ind	rach_ind;
-		struct gsm_pcu_if_info_ind	info_ind;
-		struct gsm_pcu_if_act_req	act_req;
-		struct gsm_pcu_if_time_ind	time_ind;
-		struct gsm_pcu_if_pag_req	pag_req;
-	} u;
-} __attribute__ ((packed));
-
-#endif /* _PCUIF_PROTO_H */