summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-02-08 16:58:52 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-02-11 14:44:46 +0100
commit5455f23a0ece2409ef7234db8137a68af77e441d (patch)
treedee97ce34223f5a3f216d18b549950bb5eb3e85c /c
parentlibchip/serial: Add const qualifier (diff)
downloadrtems-5455f23a0ece2409ef7234db8137a68af77e441d.tar.bz2
libchip/serial: Make NS16550 handler public
This allows derived drivers to use these functions.
Diffstat (limited to 'c')
-rw-r--r--c/src/libchip/Makefile.am3
-rw-r--r--c/src/libchip/preinstall.am4
-rw-r--r--c/src/libchip/serial/ns16550.c18
-rw-r--r--c/src/libchip/serial/ns16550.h2
-rw-r--r--c/src/libchip/serial/ns16550_p.h20
5 files changed, 29 insertions, 18 deletions
diff --git a/c/src/libchip/Makefile.am b/c/src/libchip/Makefile.am
index 5e4ffabca9..eb0d015dce 100644
--- a/c/src/libchip/Makefile.am
+++ b/c/src/libchip/Makefile.am
@@ -92,6 +92,7 @@ libi2cio_a_SOURCES = i2c/i2c-ds1621.h \
# serial
include_libchip_HEADERS += serial/mc68681.h serial/ns16550.h serial/z85c30.h \
serial/serial.h serial/sersupp.h
+include_libchip_HEADERS += serial/ns16550_p.h
noinst_LIBRARIES += libserialio.a
libserialio_a_CPPFLAGS = $(AM_CPPFLAGS)
@@ -99,7 +100,7 @@ libserialio_a_SOURCES = serial/mc68681.c serial/mc68681_baud.c \
serial/mc68681_reg.c serial/mc68681_reg2.c serial/mc68681_reg4.c \
serial/mc68681_reg8.c serial/ns16550.c serial/z85c30.c \
serial/z85c30_reg.c serial/serprobe.c serial/mc68681_p.h \
- serial/ns16550_p.h serial/z85c30_p.h
+ serial/z85c30_p.h
EXTRA_DIST += serial/README.mc68681 serial/README.ns16550 \
serial/README.xr88681 serial/README.z85c30 serial/STATUS
diff --git a/c/src/libchip/preinstall.am b/c/src/libchip/preinstall.am
index 7e80d6d598..8b9a0bbf52 100644
--- a/c/src/libchip/preinstall.am
+++ b/c/src/libchip/preinstall.am
@@ -166,6 +166,10 @@ $(PROJECT_INCLUDE)/libchip/sersupp.h: serial/sersupp.h $(PROJECT_INCLUDE)/libchi
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/libchip/sersupp.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/libchip/sersupp.h
+$(PROJECT_INCLUDE)/libchip/ns16550_p.h: serial/ns16550_p.h $(PROJECT_INCLUDE)/libchip/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/libchip/ns16550_p.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/libchip/ns16550_p.h
+
if HAS_MP
$(PROJECT_INCLUDE)/shm_driver.h: shmdr/shm_driver.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/shm_driver.h
diff --git a/c/src/libchip/serial/ns16550.c b/c/src/libchip/serial/ns16550.c
index b75d7503bd..d70ad9fc95 100644
--- a/c/src/libchip/serial/ns16550.c
+++ b/c/src/libchip/serial/ns16550.c
@@ -134,7 +134,7 @@ static uint32_t NS16550_GetBaudDivisor(const console_tbl *c, uint32_t baud)
* ns16550_init
*/
-NS16550_STATIC void ns16550_init(int minor)
+void ns16550_init(int minor)
{
uintptr_t pNS16550;
uint8_t ucDataByte;
@@ -205,7 +205,7 @@ NS16550_STATIC void ns16550_init(int minor)
* ns16550_open
*/
-NS16550_STATIC int ns16550_open(
+int ns16550_open(
int major,
int minor,
void *arg
@@ -238,7 +238,7 @@ NS16550_STATIC int ns16550_open(
* ns16550_close
*/
-NS16550_STATIC int ns16550_close(
+int ns16550_close(
int major,
int minor,
void * arg
@@ -306,7 +306,7 @@ void ns16550_outch_polled(console_tbl *c, char out)
set( port, NS16550_INTERRUPT_ENABLE, interrupt_mask);
}
-NS16550_STATIC void ns16550_write_polled(int minor, char out)
+void ns16550_write_polled(int minor, char out)
{
console_tbl *c = Console_Port_Tbl [minor];
@@ -433,7 +433,7 @@ NS16550_STATIC int ns16550_negate_DTR(int minor)
* port settings.
*/
-NS16550_STATIC int ns16550_set_attributes(
+int ns16550_set_attributes(
int minor,
const struct termios *t
)
@@ -578,7 +578,7 @@ NS16550_STATIC void ns16550_process( int minor)
*
* Returns always zero.
*/
-NS16550_STATIC ssize_t ns16550_write_support_int(
+ssize_t ns16550_write_support_int(
int minor,
const char *buf,
size_t len
@@ -625,7 +625,7 @@ NS16550_STATIC void ns16550_enable_interrupts(
}
#if defined(BSP_FEATURE_IRQ_EXTENSION) || defined(BSP_FEATURE_IRQ_LEGACY)
- NS16550_STATIC rtems_isr ns16550_isr(void *arg)
+ void ns16550_isr(void *arg)
{
int minor = (int) arg;
@@ -736,7 +736,7 @@ NS16550_STATIC void ns16550_cleanup_interrupts(int minor)
*
*/
-NS16550_STATIC ssize_t ns16550_write_support_polled(
+ssize_t ns16550_write_support_polled(
int minor,
const char *buf,
size_t len
@@ -789,7 +789,7 @@ int ns16550_inch_polled(
*
* Console Termios polling input entry point.
*/
-NS16550_STATIC int ns16550_inbyte_nonblocking_polled(int minor)
+int ns16550_inbyte_nonblocking_polled(int minor)
{
console_tbl *c = Console_Port_Tbl [minor];
diff --git a/c/src/libchip/serial/ns16550.h b/c/src/libchip/serial/ns16550.h
index 475eb7e824..67c4c550c9 100644
--- a/c/src/libchip/serial/ns16550.h
+++ b/c/src/libchip/serial/ns16550.h
@@ -27,6 +27,8 @@
#ifndef _NS16550_H_
#define _NS16550_H_
+#include <libchip/serial.h>
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/c/src/libchip/serial/ns16550_p.h b/c/src/libchip/serial/ns16550_p.h
index 1e261612f2..50cfcdc2eb 100644
--- a/c/src/libchip/serial/ns16550_p.h
+++ b/c/src/libchip/serial/ns16550_p.h
@@ -28,6 +28,8 @@
#ifndef _NS16550_P_H_
#define _NS16550_P_H_
+#include <libchip/serial.h>
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -138,21 +140,21 @@ typedef struct {
* Driver functions
*/
-NS16550_STATIC void ns16550_init(int minor);
+void ns16550_init(int minor);
-NS16550_STATIC int ns16550_open(
+int ns16550_open(
int major,
int minor,
void * arg
);
-NS16550_STATIC int ns16550_close(
+int ns16550_close(
int major,
int minor,
void * arg
);
-NS16550_STATIC void ns16550_write_polled(
+void ns16550_write_polled(
int minor,
char cChar
);
@@ -177,19 +179,19 @@ NS16550_STATIC void ns16550_initialize_interrupts(int minor);
NS16550_STATIC void ns16550_cleanup_interrupts(int minor);
-NS16550_STATIC ssize_t ns16550_write_support_int(
+ssize_t ns16550_write_support_int(
int minor,
const char *buf,
size_t len
);
-NS16550_STATIC ssize_t ns16550_write_support_polled(
+ssize_t ns16550_write_support_polled(
int minor,
const char *buf,
size_t len
);
-NS16550_STATIC int ns16550_inbyte_nonblocking_polled(
+int ns16550_inbyte_nonblocking_polled(
int minor
);
@@ -198,11 +200,13 @@ NS16550_STATIC void ns16550_enable_interrupts(
int mask
);
-NS16550_STATIC int ns16550_set_attributes(
+int ns16550_set_attributes(
int minor,
const struct termios *t
);
+void ns16550_isr(void *arg);
+
#ifdef __cplusplus
}
#endif