Index: c/src/lib/include/clockdrv.h
===================================================================
--- c/src/lib/include/clockdrv.h	(revision 4e58d80b9eff1e81b4982b6617763a4344e1eabe)
+++ c/src/lib/include/clockdrv.h	(revision b06e68ef1f6df69cc86d72356c3a002054a35fad)
@@ -24,29 +24,22 @@
 
 extern volatile rtems_unsigned32 Clock_driver_ticks;
+extern rtems_device_major_number rtems_clock_major;
+extern rtems_device_minor_number rtems_clock_minor;
 
-/* functions */
-
-rtems_task Exit_task();
-void exit_task_init();
-
-void Install_clock( rtems_isr_entry );
-void ReInstall_clock( rtems_isr_entry );
-void Clock_exit();
-
-rtems_isr Clock_isr(
-  rtems_vector_number
-);
-
-/* driver entries */
+/* default clock driver entry */
 
 #define CLOCK_DRIVER_TABLE_ENTRY \
-  { Clock_initialize, NULL, NULL, NULL, NULL, NULL }
-
+  { Clock_initialize, NULL, NULL, NULL, NULL, Clock_control }
+ 
 rtems_device_driver Clock_initialize(
   rtems_device_major_number,
   rtems_device_minor_number,
-  void *,
-  rtems_id,
-  rtems_unsigned32 *
+  void *
+);
+
+rtems_device_driver Clock_control(
+  rtems_device_major_number major,
+  rtems_device_minor_number minor,
+  void *pargp
 );
 
Index: c/src/lib/include/rtems/assoc.h
===================================================================
--- c/src/lib/include/rtems/assoc.h	(revision b06e68ef1f6df69cc86d72356c3a002054a35fad)
+++ c/src/lib/include/rtems/assoc.h	(revision b06e68ef1f6df69cc86d72356c3a002054a35fad)
@@ -0,0 +1,44 @@
+/*
+ *	@(#)assoc.h	1.2 - 95/06/28
+ *	
+ *
+ *  Rtems associativity routines.  Mainly used to convert a value from
+ *  one space to another (eg: our errno's to host errno's and v.v)
+ *
+ *
+ *  $Id$
+ */
+
+#ifndef _INCLUDE_ASSOC_H
+#define _INCLUDE_ASSOC_H
+
+typedef struct {
+    char *name;
+    unsigned32   local_value;
+    unsigned32   remote_value;
+} rtems_assoc_t;
+
+/*
+ * Flag/marker for optional default value in each table
+ */
+
+#define RTEMS_ASSOC_DEFAULT_NAME "(default)"
+
+rtems_assoc_t *rtems_assoc_ptr_by_name(rtems_assoc_t *, char *);
+rtems_assoc_t *rtems_assoc_ptr_by_value(rtems_assoc_t *, unsigned32);
+rtems_assoc_t *rtems_assoc_ptr_by_remote(rtems_assoc_t *, unsigned32);
+
+unsigned32   rtems_assoc_remote_by_local(rtems_assoc_t *, unsigned32);
+unsigned32   rtems_assoc_local_by_remote(rtems_assoc_t *, unsigned32);
+unsigned32   rtems_assoc_remote_by_name(rtems_assoc_t *, char *);
+unsigned32   rtems_assoc_local_by_name(rtems_assoc_t *, char *);
+char        *rtems_assoc_name_by_local(rtems_assoc_t *, unsigned32);
+char        *rtems_assoc_name_by_remote(rtems_assoc_t *, unsigned32);
+
+unsigned32   rtems_assoc_remote_by_local_bitfield(rtems_assoc_t *, unsigned32);
+char        *rtems_assoc_name_by_local_bitfield(rtems_assoc_t *, unsigned32, char *);
+char        *rtems_assoc_name_by_remote_bitfield(rtems_assoc_t *, unsigned32, char *);
+unsigned32   rtems_assoc_local_by_remote_bitfield(rtems_assoc_t *ap, unsigned32);
+
+
+#endif /* ! _INCLUDE_ASSOC_H */
Index: c/src/lib/include/rtems/error.h
===================================================================
--- c/src/lib/include/rtems/error.h	(revision b06e68ef1f6df69cc86d72356c3a002054a35fad)
+++ c/src/lib/include/rtems/error.h	(revision b06e68ef1f6df69cc86d72356c3a002054a35fad)
@@ -0,0 +1,26 @@
+/*
+ *	@(#)error.h	1.1 - 95/08/02
+ *	
+ *
+ *  Defines and externs for rtems error reporting
+ *
+ *  $Id$
+ */
+
+/*
+ * rtems_error() and rtems_panic() support
+ */
+
+#define RTEMS_ERROR_ERRNO  (1<<((sizeof(int) * 8) - 2)) /* hi bit; use 'errno' */
+#define RTEMS_ERROR_PANIC  (RTEMS_ERROR_ERRNO / 2)       /* err fatal; no return */
+#define RTEMS_ERROR_ABORT  (RTEMS_ERROR_ERRNO / 4)       /* err is fatal; panic */
+
+#define RTEMS_ERROR_MASK  (RTEMS_ERROR_ERRNO | RTEMS_ERROR_ABORT | \
+                             RTEMS_ERROR_PANIC) /* all */
+
+char *rtems_status_text(rtems_status_code);
+int   rtems_error(int error_code, char *printf_format, ...);
+void  rtems_panic(char *printf_format, ...);
+
+extern int rtems_panic_in_progress;
+
Index: c/src/lib/include/rtems/libio.h
===================================================================
--- c/src/lib/include/rtems/libio.h	(revision b06e68ef1f6df69cc86d72356c3a002054a35fad)
+++ c/src/lib/include/rtems/libio.h	(revision b06e68ef1f6df69cc86d72356c3a002054a35fad)
@@ -0,0 +1,101 @@
+/*
+ *	@(#)libio.h	1.1 - 95/06/02
+ *	
+ *
+ * General purpose communication channel for RTEMS to allow UNIX/POSIX
+ *    system call behavior on top of RTEMS IO devices.
+ *
+ * TODO
+ *      stat(2)
+ *      unlink(2)
+ *      rename(2)
+ *
+ *  $Id$
+ */
+
+#ifndef _RTEMS_LIBIO_H
+#define _RTEMS_LIBIO_H
+
+typedef unsigned32 rtems_libio_offset_t;
+
+/*
+ * An open file data structure, indexed by 'fd'
+ * TODO:
+ *    should really have a separate per/file data structure that this
+ *    points to (eg: size, offset, driver, pathname should be in that)
+ */
+
+typedef struct {
+    rtems_driver_name_t *driver;
+    rtems_libio_offset_t size;          /* size of file */
+    rtems_libio_offset_t offset;        /* current offset into the file */
+    unsigned32           flags;
+    char                *pathname;      /* opened pathname */
+    Objects_Id           sem;
+    unsigned32           data0;         /* private to "driver" */
+    unsigned32           data1;         /* ... */
+} rtems_libio_t;
+
+
+/*
+ * param block for read/write
+ * Note: it must include 'offset' instead of using iop's offset since
+ *       we can have multiple outstanding i/o's on a device.
+ */
+
+typedef struct {
+    rtems_libio_t          *iop;
+    rtems_libio_offset_t    offset;
+    unsigned8              *buffer;
+    unsigned32              count;
+    unsigned32              flags;
+    unsigned32              bytes_moved;
+} rtems_libio_rw_args_t;
+
+/*
+ * param block for open/close
+ */
+
+typedef struct {
+    rtems_libio_t          *iop;
+    unsigned32              flags;
+    unsigned32              mode;
+} rtems_libio_open_close_args_t;
+
+/*
+ * param block for ioctl
+ */
+
+typedef struct {
+    rtems_libio_t          *iop;
+    unsigned32              command;
+    void                   *buffer;
+    unsigned32              ioctl_return;
+} rtems_libio_ioctl_args_t;
+
+
+/*
+ * Values for 'flag'
+ */
+
+#define LIBIO_FLAGS_NO_DELAY      0x0001  /* return immediately if no data */
+#define LIBIO_FLAGS_READ          0x0002  /* reading */
+#define LIBIO_FLAGS_WRITE         0x0004  /* writing */
+#define LIBIO_FLAGS_LINE_BUFFERED 0x0008  /* line buffered io (^h, ^u, etc) */
+#define LIBIO_FLAGS_OPEN          0x0100  /* device is open */
+#define LIBIO_FLAGS_APPEND        0x0200  /* all writes append */
+#define LIBIO_FLAGS_CREATE        0x0400  /* create file */
+
+#define LIBIO_FLAGS_READ_WRITE    (LIBIO_FLAGS_READ | LIBIO_FLAGS_WRITE)
+
+void rtems_libio_config(rtems_configuration_table *config, unsigned32 max_fds);
+void rtems_libio_init(void);
+
+int __open(const char  *pathname, unsigned32 flag, unsigned32 mode);
+int __close(int  fd);
+int __read(int fd, void *buffer, unsigned32 count);
+int __write(int fd, const void *buffer, unsigned32 count);
+int __ioctl(int fd, unsigned32  command, void *buffer);
+int __lseek(int fd, rtems_libio_offset_t offset, int whence);
+
+#endif /* _RTEMS_LIBIO_H */
