~noskcaj/ubuntu/saucy/sflphone/merge-1.2.3-2

« back to all changes in this revision

Viewing changes to daemon/libs/pjproject/third_party/gsm/tls/bitter.c

  • Committer: Jackson Doak
  • Date: 2013-07-10 21:04:46 UTC
  • mfrom: (20.1.3 sid)
  • Revision ID: noskcaj@ubuntu.com-20130710210446-y8f587vza807icr9
Properly merged from upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
3
 
 * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
4
 
 * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
5
 
 */
6
 
 
7
 
/*$Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/bitter.c,v 1.1 1992/10/28 00:28:39 jutta Exp $*/
8
 
 
9
 
/* Generate code to pack a bit array from a name:#bits description */
10
 
 
11
 
#include        <stdio.h>
12
 
#include        "taste.h"
13
 
#include        "proto.h"
14
 
 
15
 
void write_code P2((s_spex, n_spex), struct spex * s_spex, int n_spex)
16
 
{
17
 
        struct spex     * sp = s_spex;
18
 
        int             bits = 8;
19
 
        int             vars;
20
 
 
21
 
        if (!n_spex) return;
22
 
 
23
 
        vars = sp->varsize;
24
 
 
25
 
        while (n_spex) {
26
 
 
27
 
                if (bits == 8) printf("\t*c++ =   ");
28
 
                else printf("\t       | ");
29
 
 
30
 
                if (vars == bits) {
31
 
        
32
 
                        printf( (bits==8? "%s & 0x%lX;\n" : "(%s & 0x%lX);\n"),
33
 
                                sp->var, 
34
 
                                ~(0xfffffffe << (bits - 1)));
35
 
                        if (!-- n_spex) break;
36
 
                        sp++;
37
 
 
38
 
                        vars = sp->varsize;
39
 
                        bits = 8;
40
 
 
41
 
                } else if (vars < bits) {
42
 
 
43
 
                        printf( "((%s & 0x%lX) << %d)",
44
 
                                sp->var,
45
 
                                ~(0xfffffffe << (vars - 1)),
46
 
                                bits - vars);
47
 
                        bits -= vars;
48
 
                        if (!--n_spex) {
49
 
                                puts(";");
50
 
                                break;
51
 
                        }
52
 
                        else putchar('\n');
53
 
                        sp++;
54
 
                        vars = sp->varsize;
55
 
 
56
 
                } else {
57
 
                        printf("((%s >> %d) & 0x%X);\n",
58
 
                                sp->var, 
59
 
                                vars - bits,
60
 
                                ~(0xfffffffe << (bits - 1)));
61
 
                        
62
 
                        vars -= bits;
63
 
                        bits = 8;
64
 
                }
65
 
        }
66
 
}