af_unix.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. #ifndef __LINUX_NET_AFUNIX_H
  2. #define __LINUX_NET_AFUNIX_H
  3. extern void unix_proto_init(struct net_proto *pro);
  4. extern void unix_inflight(struct file *fp);
  5. extern void unix_notinflight(struct file *fp);
  6. typedef struct sock unix_socket;
  7. extern void unix_gc(void);
  8. #define UNIX_HASH_SIZE 256
  9. extern unix_socket *unix_socket_table[UNIX_HASH_SIZE+1];
  10. extern rwlock_t unix_table_lock;
  11. extern atomic_t unix_tot_inflight;
  12. #define forall_unix_sockets(i, s) for (i=0; i<=UNIX_HASH_SIZE; i++) 
  13.                                     for (s=unix_socket_table[i]; s; s=s->next)
  14. struct unix_address
  15. {
  16. atomic_t refcnt;
  17. int len;
  18. unsigned hash;
  19. struct sockaddr_un name[0];
  20. };
  21. struct unix_skb_parms
  22. {
  23. struct ucred creds; /* Skb credentials */
  24. struct scm_fp_list *fp; /* Passed files */
  25. };
  26. #define UNIXCB(skb)  (*(struct unix_skb_parms*)&((skb)->cb))
  27. #define UNIXCREDS(skb) (&UNIXCB((skb)).creds)
  28. #define unix_state_rlock(s) read_lock(&(s)->protinfo.af_unix.lock)
  29. #define unix_state_runlock(s) read_unlock(&(s)->protinfo.af_unix.lock)
  30. #define unix_state_wlock(s) write_lock(&(s)->protinfo.af_unix.lock)
  31. #define unix_state_wunlock(s) write_unlock(&(s)->protinfo.af_unix.lock)
  32. #endif