systhr.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /** BEGIN COPYRIGHT BLOCK
  2. * Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
  3. * Copyright (C) 2005 Red Hat, Inc.
  4. * All rights reserved.
  5. * END COPYRIGHT BLOCK **/
  6. #ifndef BASE_SYSTHR_H
  7. #define BASE_SYSTHR_H
  8. #ifndef NOINTNSAPI
  9. #define INTNSAPI
  10. #endif /* !NOINTNSAPI */
  11. /*
  12. * systhr.h: Abstracted threading mechanisms
  13. *
  14. * Rob McCool
  15. */
  16. #ifndef NETSITE_H
  17. #include "netsite.h"
  18. #endif /* !NETSITE_H */
  19. #ifdef THREAD_ANY
  20. #ifndef PUBLIC_BASE_SYSTHR_H
  21. #include "public/base/systhr.h"
  22. #endif /* !PUBLIC_BASE_SYSTHR_H */
  23. /* --- Begin function prototypes --- */
  24. #ifdef INTNSAPI
  25. NSPR_BEGIN_EXTERN_C
  26. #ifdef UnixWare
  27. typedef void(*ArgFn_systhread_start)(void *);
  28. NSAPI_PUBLIC
  29. SYS_THREAD INTsysthread_start( int prio, int stksz, \
  30. ArgFn_systhread_start, void *arg);
  31. #else
  32. NSAPI_PUBLIC
  33. SYS_THREAD INTsysthread_start(int prio, int stksz, void (*fn)(void *), void *arg);
  34. #endif
  35. NSAPI_PUBLIC SYS_THREAD INTsysthread_current(void);
  36. NSAPI_PUBLIC void INTsysthread_yield(void);
  37. NSAPI_PUBLIC SYS_THREAD INTsysthread_attach(void);
  38. NSAPI_PUBLIC void INTsysthread_detach(SYS_THREAD thr);
  39. NSAPI_PUBLIC void INTsysthread_terminate(SYS_THREAD thr);
  40. NSAPI_PUBLIC void INTsysthread_sleep(int milliseconds);
  41. NSAPI_PUBLIC void INTsysthread_init(char *name);
  42. NSAPI_PUBLIC void INTsysthread_timerset(int usec);
  43. NSAPI_PUBLIC int INTsysthread_newkey(void);
  44. NSAPI_PUBLIC void *INTsysthread_getdata(int key);
  45. NSAPI_PUBLIC void INTsysthread_setdata(int key, void *data);
  46. NSAPI_PUBLIC
  47. void INTsysthread_set_default_stacksize(unsigned long size);
  48. NSPR_END_EXTERN_C
  49. /* --- End function prototypes --- */
  50. #define systhread_start INTsysthread_start
  51. #define systhread_current INTsysthread_current
  52. #define systhread_yield INTsysthread_yield
  53. #define systhread_attach INTsysthread_attach
  54. #define systhread_detach INTsysthread_detach
  55. #define systhread_terminate INTsysthread_terminate
  56. #define systhread_sleep INTsysthread_sleep
  57. #define systhread_init INTsysthread_init
  58. #define systhread_timerset INTsysthread_timerset
  59. #define systhread_newkey INTsysthread_newkey
  60. #define systhread_getdata INTsysthread_getdata
  61. #define systhread_setdata INTsysthread_setdata
  62. #define systhread_set_default_stacksize INTsysthread_set_default_stacksize
  63. #endif /* INTNSAPI */
  64. #endif /* THREAD_ANY */
  65. #endif /* !BASE_SYSTHR_H */