aboutsummaryrefslogtreecommitdiff
path: root/openssl/trunk/doc/crypto/OPENSSL_ia32cap.pod
diff options
context:
space:
mode:
Diffstat (limited to 'openssl/trunk/doc/crypto/OPENSSL_ia32cap.pod')
-rw-r--r--openssl/trunk/doc/crypto/OPENSSL_ia32cap.pod35
1 files changed, 35 insertions, 0 deletions
diff --git a/openssl/trunk/doc/crypto/OPENSSL_ia32cap.pod b/openssl/trunk/doc/crypto/OPENSSL_ia32cap.pod
new file mode 100644
index 00000000..121a8dde
--- /dev/null
+++ b/openssl/trunk/doc/crypto/OPENSSL_ia32cap.pod
@@ -0,0 +1,35 @@
+=pod
+
+=head1 NAME
+
+OPENSSL_ia32cap - finding the IA-32 processor capabilities
+
+=head1 SYNOPSIS
+
+ unsigned long *OPENSSL_ia32cap_loc(void);
+ #define OPENSSL_ia32cap (*(OPENSSL_ia32cap_loc()))
+
+=head1 DESCRIPTION
+
+Value returned by OPENSSL_ia32cap_loc() is address of a variable
+containing IA-32 processor capabilities bit vector as it appears in EDX
+register after executing CPUID instruction with EAX=1 input value (see
+Intel Application Note #241618). Naturally it's meaningful on IA-32[E]
+platforms only. The variable is normally set up automatically upon
+toolkit initialization, but can be manipulated afterwards to modify
+crypto library behaviour. For the moment of this writing three bits are
+significant, namely bit #28 denoting Hyperthreading, which is used to
+distinguish Intel P4 core, bit #26 denoting SSE2 support, and bit #4
+denoting presence of Time-Stamp Counter. Clearing bit #26 at run-time
+for example disables high-performance SSE2 code present in the crypto
+library. You might have to do this if target OpenSSL application is
+executed on SSE2 capable CPU, but under control of OS which does not
+support SSE2 extentions. Even though you can manipulate the value
+programmatically, you most likely will find it more appropriate to set
+up an environment variable with the same name prior starting target
+application, e.g. 'env OPENSSL_ia32cap=0x10 apps/openssl', to achieve
+same effect without modifying the application source code.
+Alternatively you can reconfigure the toolkit with no-sse2 option and
+recompile.
+
+=cut
>4 5 6 7 8 9 10 11 12 13 14 15 16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
       
 













                                                                              




                                                                      


                                






                                          

  


                         





                                                                                                   




                         






                                                                                                   
  

                   
                        
       
-- $Id$

-- Copyright (C) 2007-2008  American Registry for Internet Numbers ("ARIN")
--
-- Permission to use, copy, modify, and distribute this software for any
-- purpose with or without fee is hereby granted, provided that the above
-- copyright notice and this permission notice appear in all copies.
--
-- THE SOFTWARE IS PROVIDED "AS IS" AND ARIN DISCLAIMS ALL WARRANTIES WITH
-- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-- AND FITNESS.  IN NO EVENT SHALL ARIN BE LIABLE FOR ANY SPECIAL, DIRECT,
-- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-- PERFORMANCE OF THIS SOFTWARE.

-- SQL objects needed by irdbd.py.  You only need this if you're using
-- irdbd.py as your IRDB; if you have a "real" backend you can do
-- anything you like so long as you implement the relevant portion of
-- the left-right protocol.

DROP TABLE IF EXISTS registrant;

CREATE TABLE registrant (
        registrant_id   SERIAL NOT NULL,
        IRBE_mapped_id  TEXT,
        subject_name    TEXT,
        rpki_self_id    BIGINT unsigned,
        rpki_child_id   BIGINT unsigned,
        valid_until     DATETIME NOT NULL,
        PRIMARY KEY     (registrant_id)
);

DROP TABLE IF EXISTS asn;

CREATE TABLE asn (
        asn_id          SERIAL NOT NULL,
        start_as        BIGINT unsigned NOT NULL,
        end_as          BIGINT unsigned NOT NULL,
        registrant_id   BIGINT unsigned NOT NULL,
        PRIMARY KEY     (asn_id),
        FOREIGN KEY     (registrant_id) REFERENCES registrant ON DELETE SET NULL ON UPDATE SET NULL
);

DROP TABLE IF EXISTS net;

CREATE TABLE net (
        net_id          SERIAL NOT NULL,
        start_ip        VARCHAR(40) NOT NULL,
        end_ip          VARCHAR(40) NOT NULL,
        version         TINYINT unsigned NOT NULL,
        registrant_id   BIGINT unsigned NOT NULL,
        PRIMARY KEY     (net_id),
        FOREIGN KEY     (registrant_id) REFERENCES registrant ON DELETE SET NULL ON UPDATE SET NULL
);

-- Local Variables:
-- indent-tabs-mode: nil
-- End: