martes, 9 de marzo de 2010

sys_socketcall

Prototipo:
int socketcall(int call, unsigned long *args);

Donde:
call: entero que identifica la operación específica a realizar.

[include/linux/net.h]:
#define SYS_SOCKET 1 /* sys_socket(2) */
#define SYS_BIND 2 /* sys_bind(2) */
#define SYS_CONNECT 3 /* sys_connect(2) */
#define SYS_LISTEN 4 /* sys_listen(2) */
#define SYS_ACCEPT 5 /* sys_accept(2) */
#define SYS_GETSOCKNAME 6 /* sys_getsockname(2) */
#define SYS_GETPEERNAME 7 /* sys_getpeername(2) */
#define SYS_SOCKETPAIR 8 /* sys_socketpair(2) */
#define SYS_SEND 9 /* sys_send(2) */
#define SYS_RECV 10 /* sys_recv(2) */
#define SYS_SENDTO 11 /* sys_sendto(2) */
#define SYS_RECVFROM 12 /* sys_recvfrom(2) */
#define SYS_SHUTDOWN 13 /* sys_shutdown(2) */
#define SYS_SETSOCKOPT 14 /* sys_setsockopt(2) */
#define SYS_GETSOCKOPT 15 /* sys_getsockopt(2) */
#define SYS_SENDMSG 16 /* sys_sendmsg(2) */
#define SYS_RECVMSG 17 /* sys_recvmsg(2) */


args: apunta a un bloque que contiene los argumentos reales, que se pasan tal cual a la función apropiada.


Descripción:
Todas las funciones de la librería estándar que operan sobre sockets (socket(), bind(), listen(), accept()) comparten la llamada al sistema sys_socketcall.

socket(int socket_family, int socket_type, int protocolo)
|
sys_socketcall( )
|
sys_socket()

Referencias:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.37.3052&rep=rep1&type=pdf
http://datatag.web.cern.ch/datatag/papers/tr-datatag-2004-1.doc

No hay comentarios:

Publicar un comentario