kernel_compat.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /*
  2. * kernel_compat.h
  3. *
  4. * Compatibility stuff for building in kernel context where standard
  5. * C headers and library are not available.
  6. *
  7. * Marcus Sundberg
  8. * Ingate Systems AB
  9. */
  10. /*
  11. *
  12. * Copyright(c) 2005 Ingate Systems AB
  13. * All rights reserved.
  14. *
  15. * Redistribution and use in source and binary forms, with or without
  16. * modification, are permitted provided that the following conditions
  17. * are met:
  18. *
  19. * Redistributions of source code must retain the above copyright
  20. * notice, this list of conditions and the following disclaimer.
  21. *
  22. * Redistributions in binary form must reproduce the above
  23. * copyright notice, this list of conditions and the following
  24. * disclaimer in the documentation and/or other materials provided
  25. * with the distribution.
  26. *
  27. * Neither the name of the author(s) nor the names of its
  28. * contributors may be used to endorse or promote products derived
  29. * from this software without specific prior written permission.
  30. *
  31. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  32. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  33. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  34. * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
  35. * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
  36. * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  37. * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  38. * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  39. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  40. * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  41. * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
  42. * OF THE POSSIBILITY OF SUCH DAMAGE.
  43. *
  44. */
  45. #ifndef KERNEL_COMPAT_H
  46. #define KERNEL_COMPAT_H
  47. #ifdef SRTP_KERNEL_LINUX
  48. #include <linux/kernel.h>
  49. #include <linux/slab.h>
  50. #include <linux/sched.h>
  51. #include <linux/random.h>
  52. #include <linux/byteorder/generic.h>
  53. #define err_report(priority, ...) \
  54. do {\
  55. if (priority <= err_level) {\
  56. printk(__VA_ARGS__);\
  57. }\
  58. }while(0)
  59. #define clock() (jiffies)
  60. #define time(x) (jiffies)
  61. /* rand() implementation. */
  62. #define RAND_MAX 32767
  63. static inline int rand(void)
  64. {
  65. uint32_t temp;
  66. get_random_bytes(&temp, sizeof(temp));
  67. return temp % (RAND_MAX+1);
  68. }
  69. /* stdio/stdlib implementation. */
  70. #define printf(...) printk(__VA_ARGS__)
  71. #define exit(n) panic("%s:%d: exit(%d)\n", __FILE__, __LINE__, (n))
  72. #endif /* SRTP_KERNEL_LINUX */
  73. #endif /* KERNEL_COMPAT_H */