todd@ivucsb.UUCP (Todd Day) (03/17/89)
While bopping thru the kernel (Ver3.50), I found the following: # grep sock /etc/lddrv/unix.sym sock_write = 0x1d6f4; sock_read = 0x1d6f8; sock_ioctl = 0x1d6fc; sock_close = 0x1d700; sock_sema = 0x1d704; I looked thru the dot.h files and found this: # grep sock /usr/include/* /usr/include/sys/* sys/errno.h:/* Errors from 4.2 BSD picked up to support sockets */ sys/errno.h:#define ENOTSOCK 229 /* Socket operation on non-socket */ sys/errno.h:#define EPROTOTYPE 232 /* Protocol wrong type for socket */ sys/errno.h:#define EOPNOTSUPP 235 /* Operation not supported on socket */ sys/errno.h:#define ESHUTDOWN 248 /* Can't send after socket shutdown */ sys/space.h:(*sock_write)() = nodev; sys/space.h:(*sock_read)() = nodev; sys/space.h:(*sock_ioctl)() = nodev; sys/space.h:(*sock_close)() = nodev; sys/space.h:(*sock_sema)() = nullsys; Further examination of the sys/space.h file reveals: * The following definitions support the functions called * from the system calls for networking, and network * semaphores. */ extern int nodev(), nullsys(); (*sock_write)() = nodev; (*sock_read)() = nodev; (*sock_ioctl)() = nodev; (*sock_close)() = nodev; (*sock_sema)() = nullsys; short softnetint = 0; short netbusy = 0; /* * The following network constants can be set from tunevars */ int net_mbsize = 64*1024; /* amount of space to reserve for mbufs */ int net_tcpdebug = 0; /* Number of tcp trace buffers */ int vt_defcnt = 0; /* Number of configured pseudo-terminals */ ^^^^^^^^^^^^^^^^ I have these, now. Got a driver from some ftp site. This looks to me like some beginning efforts to emmulate Berkeley sockets. Has anyone looked into this? Is it possible for some loadable device driver to be written to emulate sockets? -- -Todd Day- Internet: todd%ivucsb.UUCP@anise.acc.com UUCP: {pyramid, ucbvax}!ucsbcsl!nessus!ivucsb!todd Other: todd@ivucsb.UUCP may not work yet.
jbm@uncle.UUCP (John B. Milton) (03/20/89)
In article <612@ivucsb.UUCP> todd@ivucsb.UUCP (Todd Day) writes: [ found a lot of socket references ] ... >int net_tcpdebug = 0; /* Number of tcp trace buffers */ >int vt_defcnt = 0; /* Number of configured pseudo-terminals */ > ^^^^^^^^^^^^^^^^ > I have these, now. > Got a driver from > some ftp site. Not the same thing as the pty driver. This is for a network terminal interface called "vt. >This looks to me like some beginning efforts to emmulate Berkeley sockets. > >Has anyone looked into this? Is it possible for some loadable device driver >to be written to emulate sockets? Yes, there is. It is the Wollongong (sp?) software for the Ethernet board you can get for this machine. What you have found are the parts that had to be compiled into the kernel to provide the hooks Wollongong needed. Now, of course, those hooks could be used by anyone else... John -- John Bly Milton IV, jbm@uncle.UUCP, n8emr!uncle!jbm@osu-cis.cis.ohio-state.edu (614) h:294-4823, w:764-2933; AMPR: 44.70.0.52; Don't FLAME, inform!
michael@stb.UUCP (Michael) (03/23/89)
As for a socket device driver, I'm currently writting a stream socket emulation library--but it needs to be in a known process context (hence a library, not a device). How do file descriptors work inside the kernel, andways? Michael p.s. Don't ask for the code right now. Is there a word for "pre-alpha" software? : --- : Michael Gersten uunet.uu.net!stb!michael : michael@stb.uu.net <mx mailers> crash!gryphon!denwa!stb!michael : "Robitussin" for computers? This has gone too far. Where's "Penicillian"? : (rob. is Coff-medicine to let COFF people run bsd-dependent GNU stuff).
alex@umbc3.UMBC.EDU (Alex S. Crain) (03/26/89)
In article <10667@stb.UUCP> michael@stb.UUCP (Michael) writes: >As for a socket device driver, I'm currently writting a stream socket >emulation library--but it needs to be in a known process context >(hence a library, not a device). I was going to avoid saying anything, but more then that I want to avoid duplication of effort, so here I am. For the last 6 weeks, I've been busy porting the BSD4.3 layered socket code to the unix pc. Berkeley released the code awhile back, so it's all free, and theres alot of it. So far, I've got about 3000 lines of code that is nearly complete for socket() bind () listen () accept () connect () within the AF_UNIX domain. socketpair () and pipe () have been working for over a week without problems, and I expect the other 5 to be debugged real soon (figure 30 working hours from now, I had a setback). Note the absence of select(). Also missing is out-of-band data and an interface to fcntl(), although the hooks are there. What does this mean? It means that in June I expect to release code to completely support AF_UNIX sockets, including select(), SOCK_STREAM, SOCK_DGRAM, out-of-band, and all the options that make sence. I am also preserving the layered interface, so that I can add AF_INET sockets via a SLIP connection, and possibly AF_AT (appletalk). The code is huge, and is taking along time, but is moving along on schedule, but it's still vaporware. I'm only making this announcement to avoid duplication of effort, and I'll inform the net with a call for beta sites when its complete and reasonably sound. > How do file descriptors work inside >the kernel, andways? I suggest a book called _The Design of the Unix Operating System_ by Maurice Bach as a guide to the internals of unix (mostly system 5). Also look for _UNIX PC Version 3.0 Device Driver Development Guide_, a free 40 page document from AT&T that comes with a kernal debugger on disk. I have no idea who to talk to at AT&T, I started (a long time ago) with AT&T information (1-800-???-????) and asked about unix-pc's and drivers until I found someone who would send me something. > Michael >p.s. Don't ask for the code right now. Is there a word for "pre-alpha" software? The word is Vaporware. Don't give up on your code, it likely that a non-kernal socket library will come in real handy for people with smaller machines (who don't need an extra 75K of kernal size). And, of course, I could always get hit by a bus. -- :alex Alex Crain Systems Programmer alex@umbc3.umbc.edu Univ Md Baltimore County nerwin!alex@umbc3.umbc.edu (NEW DOMAIN)
vern@zebra.UUCP (Vernon C. Hoxie) (03/27/89)
In article <1834@umbc3.UMBC.EDU>, alex@umbc3.UMBC.EDU (Alex S. Crain) writes: > In article <10667@stb.UUCP> michael@stb.UUCP (Michael) writes: > >As for a socket device driver, I'm currently writting a stream socket > >emulation library--but it needs to be in a known process context > >(hence a library, not a device). deletion..vch > For the last 6 weeks, I've been busy porting the BSD4.3 layered > socket code to the unix pc. Berkeley released the code awhile back, so it's > all free, and theres alot of it. So far, I've got about 3000 lines of code > that is nearly complete for What are some references (besides the short intro in Bach) on how to use these devices and what manuals pages are available? deletion..vch > I suggest a book called _The Design of the Unix Operating System_ by > Maurice Bach as a guide to the internals of unix (mostly system 5). Also > look for _UNIX PC Version 3.0 Device Driver Development Guide_, a free 40 > page document from AT&T that comes with a kernal debugger on disk. I have > no idea who to talk to at AT&T, I started (a long time ago) with AT&T > information (1-800-???-????) and asked about unix-pc's and drivers until I > found someone who would send me something. I have Bach from Prentice-Hall and I got the Device Driver Guide from AT&T by writing to the address in the _UNIX-PC Interface Specification_ book which came with the Development Set (pg 2-52). AT&T Information Systems Product Manager - UNIX-PC Enhancements Attn: Device Driver Information (Rm 6A45) 1776 On the Green Morristown, NJ 07960 However, I didn't get the kernal debugger disk. Anybody with a suggestion how to get a copy of that? We're looking forward to hear more from Michael and Alex. Thank you guys! BTW Is the Prentice-Hall book on UNIX Device Drivers worth while? -- Vernon C. Hoxie {ncar,nbires,boulder,isis}!scicom!zebra!vern 3975 W. 29th Ave. voice: 303-477-1780 Denver, Colo., 80212 uucp: 303-455-2670