Changeset a6f3cff in rtems
- Timestamp:
- 06/11/99 14:11:44 (24 years ago)
- Branches:
- 4.10, 4.11, 4.8, 4.9, 5, master
- Children:
- 923b45c
- Parents:
- 0643693
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
c/src/exec/libnetworking/kern/uipc_socket.c
r0643693 ra6f3cff 980 980 break; 981 981 982 case SO_SNDWAKEUP: 983 case SO_RCVWAKEUP: 984 { 985 /* RTEMS addition. */ 986 struct sockwakeup *sw; 987 struct sockbuf *sb; 988 989 if (m == NULL 990 || m->m_len != sizeof (struct sockwakeup)) { 991 error = EINVAL; 992 goto bad; 993 } 994 sw = mtod(m, struct sockwakeup *); 995 sb = (optname == SO_SNDWAKEUP 996 ? &so->so_snd 997 : &so->so_rcv); 998 sb->sb_wakeup = sw->sw_pfn; 999 sb->sb_wakeuparg = sw->sw_arg; 1000 if (sw->sw_pfn) 1001 sb->sb_flags |= SB_ASYNC; 1002 else 1003 sb->sb_flags &=~ SB_ASYNC; 1004 break; 1005 } 1006 982 1007 default: 983 1008 error = ENOPROTOOPT; … … 1077 1102 } 1078 1103 1104 case SO_SNDWAKEUP: 1105 case SO_RCVWAKEUP: 1106 { 1107 struct sockbuf *sb; 1108 struct sockwakeup *sw; 1109 1110 /* RTEMS additions. */ 1111 sb = (optname == SO_SNDWAKEUP 1112 ? &so->so_snd 1113 : &so->so_rcv); 1114 m->m_len = sizeof (struct sockwakeup); 1115 sw = mtod(m, struct sockwakeup *); 1116 sw->sw_pfn = sb->sb_wakeup; 1117 sw->sw_arg = sb->sb_wakeuparg; 1118 break; 1119 } 1120 1079 1121 default: 1080 1122 (void)m_free(m); -
c/src/exec/libnetworking/rtems/rtems_glue.c
r0643693 ra6f3cff 345 345 sb->sb_flags &= ~SB_WAIT; 346 346 rtems_event_send (sb->sb_sel.si_pid, SBWAIT_EVENT); 347 } 348 if (sb->sb_wakeup) { 349 (*sb->sb_wakeup) (so, sb->sb_wakeuparg); 347 350 } 348 351 } -
c/src/exec/libnetworking/sys/socket.h
r0643693 ra6f3cff 38 38 #define _SYS_SOCKET_H_ 39 39 40 #include <sys/cdefs.h> 41 40 42 /* 41 43 * Definitions related to sockets: types, address families, options. … … 80 82 81 83 /* 84 * RTEMS addition: get and set wakeup functions. 85 */ 86 #define SO_SNDWAKEUP 0x1020 /* wakeup when ready to send */ 87 #define SO_RCVWAKEUP 0x1021 /* wakeup when ready to receive */ 88 89 /* 82 90 * Structure used for manipulating linger option. 83 91 */ … … 85 93 int l_onoff; /* option on/off */ 86 94 int l_linger; /* linger time */ 95 }; 96 97 /* 98 * RTEMS addition: structure used to get and set wakeup function. 99 */ 100 struct socket; 101 struct sockwakeup { 102 void (*sw_pfn) __P((struct socket *, caddr_t)); 103 caddr_t sw_arg; 87 104 }; 88 105 … … 328 345 #ifndef KERNEL 329 346 330 #include <sys/cdefs.h>331 332 347 __BEGIN_DECLS 333 348 int accept __P((int, struct sockaddr *, int *)); -
c/src/exec/libnetworking/sys/socketvar.h
r0643693 ra6f3cff 90 90 short sb_flags; /* flags, see below */ 91 91 u_long sb_timeo; /* timeout for read/write */ 92 void (*sb_wakeup) __P((struct socket *, caddr_t)); 93 caddr_t sb_wakeuparg; /* arg for above */ 92 94 } so_rcv, so_snd; 93 95 #define SB_MAX (256*1024) /* default for max chars in sockbuf */ -
c/src/lib/libnetworking/kern/uipc_socket.c
r0643693 ra6f3cff 980 980 break; 981 981 982 case SO_SNDWAKEUP: 983 case SO_RCVWAKEUP: 984 { 985 /* RTEMS addition. */ 986 struct sockwakeup *sw; 987 struct sockbuf *sb; 988 989 if (m == NULL 990 || m->m_len != sizeof (struct sockwakeup)) { 991 error = EINVAL; 992 goto bad; 993 } 994 sw = mtod(m, struct sockwakeup *); 995 sb = (optname == SO_SNDWAKEUP 996 ? &so->so_snd 997 : &so->so_rcv); 998 sb->sb_wakeup = sw->sw_pfn; 999 sb->sb_wakeuparg = sw->sw_arg; 1000 if (sw->sw_pfn) 1001 sb->sb_flags |= SB_ASYNC; 1002 else 1003 sb->sb_flags &=~ SB_ASYNC; 1004 break; 1005 } 1006 982 1007 default: 983 1008 error = ENOPROTOOPT; … … 1077 1102 } 1078 1103 1104 case SO_SNDWAKEUP: 1105 case SO_RCVWAKEUP: 1106 { 1107 struct sockbuf *sb; 1108 struct sockwakeup *sw; 1109 1110 /* RTEMS additions. */ 1111 sb = (optname == SO_SNDWAKEUP 1112 ? &so->so_snd 1113 : &so->so_rcv); 1114 m->m_len = sizeof (struct sockwakeup); 1115 sw = mtod(m, struct sockwakeup *); 1116 sw->sw_pfn = sb->sb_wakeup; 1117 sw->sw_arg = sb->sb_wakeuparg; 1118 break; 1119 } 1120 1079 1121 default: 1080 1122 (void)m_free(m); -
c/src/lib/libnetworking/rtems/rtems_glue.c
r0643693 ra6f3cff 345 345 sb->sb_flags &= ~SB_WAIT; 346 346 rtems_event_send (sb->sb_sel.si_pid, SBWAIT_EVENT); 347 } 348 if (sb->sb_wakeup) { 349 (*sb->sb_wakeup) (so, sb->sb_wakeuparg); 347 350 } 348 351 } -
c/src/lib/libnetworking/sys/socket.h
r0643693 ra6f3cff 38 38 #define _SYS_SOCKET_H_ 39 39 40 #include <sys/cdefs.h> 41 40 42 /* 41 43 * Definitions related to sockets: types, address families, options. … … 80 82 81 83 /* 84 * RTEMS addition: get and set wakeup functions. 85 */ 86 #define SO_SNDWAKEUP 0x1020 /* wakeup when ready to send */ 87 #define SO_RCVWAKEUP 0x1021 /* wakeup when ready to receive */ 88 89 /* 82 90 * Structure used for manipulating linger option. 83 91 */ … … 85 93 int l_onoff; /* option on/off */ 86 94 int l_linger; /* linger time */ 95 }; 96 97 /* 98 * RTEMS addition: structure used to get and set wakeup function. 99 */ 100 struct socket; 101 struct sockwakeup { 102 void (*sw_pfn) __P((struct socket *, caddr_t)); 103 caddr_t sw_arg; 87 104 }; 88 105 … … 328 345 #ifndef KERNEL 329 346 330 #include <sys/cdefs.h>331 332 347 __BEGIN_DECLS 333 348 int accept __P((int, struct sockaddr *, int *)); -
c/src/lib/libnetworking/sys/socketvar.h
r0643693 ra6f3cff 90 90 short sb_flags; /* flags, see below */ 91 91 u_long sb_timeo; /* timeout for read/write */ 92 void (*sb_wakeup) __P((struct socket *, caddr_t)); 93 caddr_t sb_wakeuparg; /* arg for above */ 92 94 } so_rcv, so_snd; 93 95 #define SB_MAX (256*1024) /* default for max chars in sockbuf */ -
c/src/libnetworking/kern/uipc_socket.c
r0643693 ra6f3cff 980 980 break; 981 981 982 case SO_SNDWAKEUP: 983 case SO_RCVWAKEUP: 984 { 985 /* RTEMS addition. */ 986 struct sockwakeup *sw; 987 struct sockbuf *sb; 988 989 if (m == NULL 990 || m->m_len != sizeof (struct sockwakeup)) { 991 error = EINVAL; 992 goto bad; 993 } 994 sw = mtod(m, struct sockwakeup *); 995 sb = (optname == SO_SNDWAKEUP 996 ? &so->so_snd 997 : &so->so_rcv); 998 sb->sb_wakeup = sw->sw_pfn; 999 sb->sb_wakeuparg = sw->sw_arg; 1000 if (sw->sw_pfn) 1001 sb->sb_flags |= SB_ASYNC; 1002 else 1003 sb->sb_flags &=~ SB_ASYNC; 1004 break; 1005 } 1006 982 1007 default: 983 1008 error = ENOPROTOOPT; … … 1077 1102 } 1078 1103 1104 case SO_SNDWAKEUP: 1105 case SO_RCVWAKEUP: 1106 { 1107 struct sockbuf *sb; 1108 struct sockwakeup *sw; 1109 1110 /* RTEMS additions. */ 1111 sb = (optname == SO_SNDWAKEUP 1112 ? &so->so_snd 1113 : &so->so_rcv); 1114 m->m_len = sizeof (struct sockwakeup); 1115 sw = mtod(m, struct sockwakeup *); 1116 sw->sw_pfn = sb->sb_wakeup; 1117 sw->sw_arg = sb->sb_wakeuparg; 1118 break; 1119 } 1120 1079 1121 default: 1080 1122 (void)m_free(m); -
c/src/libnetworking/rtems/rtems_glue.c
r0643693 ra6f3cff 345 345 sb->sb_flags &= ~SB_WAIT; 346 346 rtems_event_send (sb->sb_sel.si_pid, SBWAIT_EVENT); 347 } 348 if (sb->sb_wakeup) { 349 (*sb->sb_wakeup) (so, sb->sb_wakeuparg); 347 350 } 348 351 } -
c/src/libnetworking/sys/socket.h
r0643693 ra6f3cff 38 38 #define _SYS_SOCKET_H_ 39 39 40 #include <sys/cdefs.h> 41 40 42 /* 41 43 * Definitions related to sockets: types, address families, options. … … 80 82 81 83 /* 84 * RTEMS addition: get and set wakeup functions. 85 */ 86 #define SO_SNDWAKEUP 0x1020 /* wakeup when ready to send */ 87 #define SO_RCVWAKEUP 0x1021 /* wakeup when ready to receive */ 88 89 /* 82 90 * Structure used for manipulating linger option. 83 91 */ … … 85 93 int l_onoff; /* option on/off */ 86 94 int l_linger; /* linger time */ 95 }; 96 97 /* 98 * RTEMS addition: structure used to get and set wakeup function. 99 */ 100 struct socket; 101 struct sockwakeup { 102 void (*sw_pfn) __P((struct socket *, caddr_t)); 103 caddr_t sw_arg; 87 104 }; 88 105 … … 328 345 #ifndef KERNEL 329 346 330 #include <sys/cdefs.h>331 332 347 __BEGIN_DECLS 333 348 int accept __P((int, struct sockaddr *, int *)); -
c/src/libnetworking/sys/socketvar.h
r0643693 ra6f3cff 90 90 short sb_flags; /* flags, see below */ 91 91 u_long sb_timeo; /* timeout for read/write */ 92 void (*sb_wakeup) __P((struct socket *, caddr_t)); 93 caddr_t sb_wakeuparg; /* arg for above */ 92 94 } so_rcv, so_snd; 93 95 #define SB_MAX (256*1024) /* default for max chars in sockbuf */ -
cpukit/libnetworking/kern/uipc_socket.c
r0643693 ra6f3cff 980 980 break; 981 981 982 case SO_SNDWAKEUP: 983 case SO_RCVWAKEUP: 984 { 985 /* RTEMS addition. */ 986 struct sockwakeup *sw; 987 struct sockbuf *sb; 988 989 if (m == NULL 990 || m->m_len != sizeof (struct sockwakeup)) { 991 error = EINVAL; 992 goto bad; 993 } 994 sw = mtod(m, struct sockwakeup *); 995 sb = (optname == SO_SNDWAKEUP 996 ? &so->so_snd 997 : &so->so_rcv); 998 sb->sb_wakeup = sw->sw_pfn; 999 sb->sb_wakeuparg = sw->sw_arg; 1000 if (sw->sw_pfn) 1001 sb->sb_flags |= SB_ASYNC; 1002 else 1003 sb->sb_flags &=~ SB_ASYNC; 1004 break; 1005 } 1006 982 1007 default: 983 1008 error = ENOPROTOOPT; … … 1077 1102 } 1078 1103 1104 case SO_SNDWAKEUP: 1105 case SO_RCVWAKEUP: 1106 { 1107 struct sockbuf *sb; 1108 struct sockwakeup *sw; 1109 1110 /* RTEMS additions. */ 1111 sb = (optname == SO_SNDWAKEUP 1112 ? &so->so_snd 1113 : &so->so_rcv); 1114 m->m_len = sizeof (struct sockwakeup); 1115 sw = mtod(m, struct sockwakeup *); 1116 sw->sw_pfn = sb->sb_wakeup; 1117 sw->sw_arg = sb->sb_wakeuparg; 1118 break; 1119 } 1120 1079 1121 default: 1080 1122 (void)m_free(m); -
cpukit/libnetworking/rtems/rtems_glue.c
r0643693 ra6f3cff 345 345 sb->sb_flags &= ~SB_WAIT; 346 346 rtems_event_send (sb->sb_sel.si_pid, SBWAIT_EVENT); 347 } 348 if (sb->sb_wakeup) { 349 (*sb->sb_wakeup) (so, sb->sb_wakeuparg); 347 350 } 348 351 } -
cpukit/libnetworking/sys/socket.h
r0643693 ra6f3cff 38 38 #define _SYS_SOCKET_H_ 39 39 40 #include <sys/cdefs.h> 41 40 42 /* 41 43 * Definitions related to sockets: types, address families, options. … … 80 82 81 83 /* 84 * RTEMS addition: get and set wakeup functions. 85 */ 86 #define SO_SNDWAKEUP 0x1020 /* wakeup when ready to send */ 87 #define SO_RCVWAKEUP 0x1021 /* wakeup when ready to receive */ 88 89 /* 82 90 * Structure used for manipulating linger option. 83 91 */ … … 85 93 int l_onoff; /* option on/off */ 86 94 int l_linger; /* linger time */ 95 }; 96 97 /* 98 * RTEMS addition: structure used to get and set wakeup function. 99 */ 100 struct socket; 101 struct sockwakeup { 102 void (*sw_pfn) __P((struct socket *, caddr_t)); 103 caddr_t sw_arg; 87 104 }; 88 105 … … 328 345 #ifndef KERNEL 329 346 330 #include <sys/cdefs.h>331 332 347 __BEGIN_DECLS 333 348 int accept __P((int, struct sockaddr *, int *)); -
cpukit/libnetworking/sys/socketvar.h
r0643693 ra6f3cff 90 90 short sb_flags; /* flags, see below */ 91 91 u_long sb_timeo; /* timeout for read/write */ 92 void (*sb_wakeup) __P((struct socket *, caddr_t)); 93 caddr_t sb_wakeuparg; /* arg for above */ 92 94 } so_rcv, so_snd; 93 95 #define SB_MAX (256*1024) /* default for max chars in sockbuf */
Note: See TracChangeset
for help on using the changeset viewer.