]> git.karo-electronics.de Git - karo-tx-redboot.git/blob - packages/net/tcpip/v2_0/src/lib/setsockopt.c
Initial revision
[karo-tx-redboot.git] / packages / net / tcpip / v2_0 / src / lib / setsockopt.c
1 //==========================================================================
2 //
3 //      lib/setsockopt.c
4 //
5 //      setsockopt() system call
6 //
7 //==========================================================================
8 //####BSDCOPYRIGHTBEGIN####
9 //
10 // -------------------------------------------
11 //
12 // Portions of this software may have been derived from OpenBSD or other sources,
13 // and are covered by the appropriate copyright disclaimers included herein.
14 //
15 // -------------------------------------------
16 //
17 //####BSDCOPYRIGHTEND####
18 //==========================================================================
19 //#####DESCRIPTIONBEGIN####
20 //
21 // Author(s):    gthomas
22 // Contributors: gthomas
23 // Date:         2000-01-10
24 // Purpose:      
25 // Description:  
26 //              
27 //
28 //####DESCRIPTIONEND####
29 //
30 //==========================================================================
31
32
33 #include <sys/param.h>
34 #include <cyg/io/file.h>
35 #include <sys/socket.h>
36 #include <sys/socketvar.h>
37
38 #include <sys/syscallargs.h>
39
40 int 
41 setsockopt(int s, int level, int name, const void *val, socklen_t valsize)
42 {
43     struct sys_setsockopt_args args;
44     int res, error;
45     SYSCALLARG(args,s) = s;
46     SYSCALLARG(args,level) = level;
47     SYSCALLARG(args,name) = name;
48     SYSCALLARG(args,val) = val;
49     SYSCALLARG(args,valsize) = valsize;
50     error = sys_setsockopt(&args, &res);
51     if (error) {
52         errno = error;
53         return -1;
54     } else {
55         return 0;
56     }
57 }