sd: remove 'ssd' driver support
[unleashed/tickless.git] / usr / src / lib / libast / common / stdio / _stdfun.c
blob4a625827a54a9a5de5f576435c8be99542017a26
1 /***********************************************************************
2 * *
3 * This software is part of the ast package *
4 * Copyright (c) 1985-2010 AT&T Intellectual Property *
5 * and is licensed under the *
6 * Common Public License, Version 1.0 *
7 * by AT&T Intellectual Property *
8 * *
9 * A copy of the License is available at *
10 * http://www.opensource.org/licenses/cpl1.0.txt *
11 * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
12 * *
13 * Information and Software Systems Research *
14 * AT&T Research *
15 * Florham Park NJ *
16 * *
17 * Glenn Fowler <gsf@research.att.com> *
18 * David Korn <dgk@research.att.com> *
19 * Phong Vo <kpv@research.att.com> *
20 * *
21 ***********************************************************************/
22 #pragma prototyped
24 #include <ast.h>
26 #if !_UWIN
28 void _STUB_stdfun(){}
30 #else
32 #include <ast_windows.h>
33 #include <uwin.h>
34 #include <dlfcn.h>
35 #include "FEATURE/uwin"
37 #if _lib___iob_func
38 #define IOB ((char*)__iob_func())
39 #elif _lib___p__iob
40 #define IOB ((char*)__p__iob())
41 #elif _dat__iob
42 #define IOB ((char*)_iob)
43 #else
44 #define IOB ((char*)_p__iob())
45 #endif
47 #define IOBMAX (512*32)
49 #include "stdhdr.h"
51 int
52 _stdfun(Sfio_t* f, Funvec_t* vp)
54 static char* iob;
55 static int init;
56 static void* bp;
57 static void* np;
59 if (!iob && !(iob = IOB))
60 return 0;
61 if (f && ((char*)f < iob || (char*)f > iob+IOBMAX))
62 return 0;
63 if (!vp->vec[1])
65 if (!init)
67 init = 1;
68 bp = dlopen("/usr/bin/stdio.dll", 0);
70 if (bp && (vp->vec[1] = (Fun_f)dlsym(bp, vp->name)))
71 return 1;
72 if (!np && !(np = dlopen("/sys/msvcrt.dll", 0)))
73 return -1;
74 if (!(vp->vec[1] = (Fun_f)dlsym(np, vp->name)))
75 return -1;
77 return 1;
80 #endif