summaryrefslogtreecommitdiffstats
path: root/INSTALL.DJGPP
blob: 1047ec90a57f034dd3dd2effd257fbe8c6e0daa0 (plain)
1
2
3
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
 
 INSTALLATION ON THE DOS PLATFORM WITH DJGPP
 -------------------------------------------

 OpenSSL has been ported to DJGPP, a Unix look-alike 32-bit run-time
 environment for 16-bit DOS, but only with long filename support.
 If you wish to compile on native DOS with 8+3 filenames, you will
 have to tweak the installation yourself, including renaming files
 with illegal or duplicate names.

 You should have a full DJGPP environment installed, including the
 latest versions of DJGPP, GCC, BINUTILS, BASH, etc. This package
 requires that PERL and BC also be installed.

 All of these can be obtained from the usual DJGPP mirror sites or
 directly at "http://www.delorie.com/pub/djgpp". For help on which
 files to download, see the DJGPP "ZIP PICKER" page at
 "http://www.delorie.com/djgpp/zip-picker.html". You also need to have
 the WATT-32 networking package installed before you try to compile
 OpenSSL. This can be obtained from "http://www.bgnett.no/~giva/".
 The Makefile assumes that the WATT-32 code is in the directory
 specified by the environment variable WATT_ROOT. If you have watt-32
 in directory "watt32" under your main DJGPP directory, specify
 WATT_ROOT="/dev/env/DJDIR/watt32".

 To compile OpenSSL, start your BASH shell, then configure for DJGPP by
 running "./Configure" with appropriate arguments:

	./Configure no-threads --prefix=/dev/env/DJDIR DJGPP
 
 And finally fire up "make". You may run out of DPMI selectors when
 running in a DOS box under Windows. If so, just close the BASH
 shell, go back to Windows, and restart BASH. Then run "make" again.

 RUN-TIME CAVEAT LECTOR
 --------------

 Quoting FAQ:

  "Cryptographic software needs a source of unpredictable data to work
   correctly.  Many open source operating systems provide a "randomness
   device" (/dev/urandom or /dev/random) that serves this purpose."

 As of version 0.9.7f DJGPP port checks upon /dev/urandom$ for a 3rd
 party "randomness" DOS driver. One such driver, NOISE.SYS, can be
 obtained from "http://www.rahul.net/dkaufman/index.html".
class="w"> /* The next inacitve list rotation starts from here */ struct list_head *next_inactive_rotation; raw_spinlock_t lock ____cacheline_aligned_in_smp; }; struct bpf_lru_locallist { struct list_head lists[NR_BPF_LRU_LOCAL_LIST_T]; u16 next_steal; raw_spinlock_t lock; }; struct bpf_common_lru { struct bpf_lru_list lru_list; struct bpf_lru_locallist __percpu *local_list; }; typedef bool (*del_from_htab_func)(void *arg, struct bpf_lru_node *node); struct bpf_lru { union { struct bpf_common_lru common_lru; struct bpf_lru_list __percpu *percpu_lru; }; del_from_htab_func del_from_htab; void *del_arg; unsigned int hash_offset; unsigned int nr_scans; bool percpu; }; static inline void bpf_lru_node_set_ref(struct bpf_lru_node *node) { /* ref is an approximation on access frequency. It does not * have to be very accurate. Hence, no protection is used. */ if (!node->ref) node->ref = 1; } int bpf_lru_init(struct bpf_lru *lru, bool percpu, u32 hash_offset, del_from_htab_func del_from_htab, void *delete_arg); void bpf_lru_populate(struct bpf_lru *lru, void *buf, u32 node_offset, u32 elem_size, u32 nr_elems); void bpf_lru_destroy(struct bpf_lru *lru); struct bpf_lru_node *bpf_lru_pop_free(struct bpf_lru *lru, u32 hash); void bpf_lru_push_free(struct bpf_lru *lru, struct bpf_lru_node *node); void bpf_lru_promote(struct bpf_lru *lru, struct bpf_lru_node *node); #endif