From 398d5857516b707c1697721ec92bb0ec15619252 Mon Sep 17 00:00:00 2001 From: Sebastian Hammer Date: Tue, 7 Mar 1995 09:23:12 +0000 Subject: [PATCH] Installing top-level API and documentation. --- odr/Makefile | 4 ++-- odr/odr.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ odr/odr_priv.c | 14 +++++++++++- 3 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 odr/odr.c diff --git a/odr/Makefile b/odr/Makefile index 1ba77f5..b17aa3d 100644 --- a/odr/Makefile +++ b/odr/Makefile @@ -1,7 +1,7 @@ # Copyright (C) 1994, Index Data I/S # All rights reserved. # Sebastian Hammer, Adam Dickmeiss -# $Id: Makefile,v 1.3 1995-02-09 16:02:42 quinn Exp $ +# $Id: Makefile,v 1.4 1995-03-07 09:23:12 quinn Exp $ SHELL=/bin/sh INCLUDE=-I../include -I. @@ -11,7 +11,7 @@ LIB=odr.a PO = odr_bool.o ber_bool.o ber_len.o ber_tag.o odr_util.o odr_null.o \ ber_null.o odr_int.o ber_int.o odr_tag.o odr_cons.o odr_seq.o\ odr_oct.o ber_oct.o odr_bit.o ber_bit.o odr_oid.o ber_oid.o odr_use.o \ - odr_choice.o odr_any.o ber_any.o + odr_choice.o odr_any.o ber_any.o odr.o CPP=cc -E all: $(LIB) test diff --git a/odr/odr.c b/odr/odr.c new file mode 100644 index 0000000..2347ef3 --- /dev/null +++ b/odr/odr.c @@ -0,0 +1,67 @@ +/* + * Copyright (C) 1994, Index Data I/S + * All rights reserved. + * Sebastian Hammer, Adam Dickmeiss + * + * $Log: odr.c,v $ + * Revision 1.1 1995-03-07 09:23:15 quinn + * Installing top-level API and documentation. + * + * + */ + +#include +#include + +#include + +char *odr_errlist[] = +{ + "No (unknown) error", + "Memoy allocation failed", + "System error", + "No space in buffer", + "Required data element missing", + "Unexpected tag", + "Other error" +}; + +void odr_perror(ODR o, char *message) +{ + fprintf(stderr, "%s: %s\n", message, odr_errlist[o->error]); +} + +void odr_setprint(ODR o, FILE *file) +{ + o->print = file; +} + +ODR odr_createmem(int direction) +{ + struct odr *r; + + if (!(r = malloc(sizeof(*r)))) + return 0; + r->direction = direction; + r->print = stdout; + r->buf = 0; + r->buflen = 0; + odr_reset(r); + return r; +} + +void odr_reset(ODR o) +{ + o->error = ONONE; + o->bp = 0; + o->left = o->buflen; + o->t_class = -1; + o->t_tag = -1; + o->indent = 0; + o->stackp = 0; +} + +void odr_destroy(ODR o) +{ + free(o); +} diff --git a/odr/odr_priv.c b/odr/odr_priv.c index fe3db36..a5a3827 100644 --- a/odr/odr_priv.c +++ b/odr/odr_priv.c @@ -1 +1,13 @@ -#define ber_enclen_short(b, len) ((*(b) = (len) & 0X7F), 1) +/* + * Copyright (C) 1994, Index Data I/S + * All rights reserved. + * Sebastian Hammer, Adam Dickmeiss + * + * $Log: odr_priv.c,v $ + * Revision 1.2 1995-03-07 09:23:20 quinn + * Installing top-level API and documentation. + * + * + */ + + -- 1.7.10.4