Merge branch 'master' into isa/arm64
authorLunaixsky <lunaixsky@qq.com>
Thu, 28 Nov 2024 01:12:37 +0000 (01:12 +0000)
committerLunaixsky <lunaixsky@qq.com>
Thu, 28 Nov 2024 01:12:37 +0000 (01:12 +0000)
1  2 
lunaix-os/arch/generic/includes/asm-generic/isrm.h
lunaix-os/hal/devtree/devtree.h
lunaix-os/includes/lunaix/compiler.h

index b766afbb866b98f25a47f2140f2f311ddde99413,0d4a15a5ed11e824807f0faec1be4996e8482557..ed38c1eecff60cbe569cc0097348b327baab096d
@@@ -27,8 -27,6 +27,8 @@@ typedef struct 
  #define msi_addr(msiv)   ((msiv).msi_addr)
  #define msi_data(msiv)   ((msiv).msi_data)
  #define msi_vect(msiv)   ((msiv).mapped_iv)
 +#define check_msiv_invalid(msiv)  (msi_vect(msiv) == -1)
 +#define invalid_msi_vector  ((msi_vector_t) { (ptr_t)-1, (reg_t)-1, -1 });
  
  typedef void* msienv_t;
  
@@@ -96,7 -94,7 +96,7 @@@ isrm_msi_alloc_simple(struct device* de
   * @param node
   */
  int
- isrm_bind_dtn(struct dt_intr_node* node);
+ isrm_bind_dtn(struct dtn_intr* node);
  
  /**
   * @brief Get the handler associated with the given iv
index e1174725356f947fa3cff3536c877aba8e9fe636,1bfe891b5b2540a3adcb9443bfde5a9560278f52..eb7815d82dcb039602da106e819d096cf2589f08
@@@ -2,45 -2,29 +2,28 @@@
  #define __LUNAIX_DEVTREE_INTERNAL_H
  
  #include <hal/devtree.h>
 -
  #include <klibc/string.h>
  
  static inline bool
- propeq(struct fdt_iter* it, const char* key)
+ propeq(struct fdt_blob* fdt, fdt_loc_t loc, const char* key)
  {
-     return streq(fdtit_prop_key(it), key);
+     return streq(fdt_prop_key(fdt, loc), key);
  }
  
  static inline void
- __mkprop_val32(struct fdt_iter* it, struct dt_prop_val* val)
+ __mkprop_ptr(fdt_loc_t loc, struct dtp_val* val)
  {
-     val->u32_val = le(*(u32_t*)&it->prop[1]);
-     val->size = le(it->prop->len);
- }
- static inline void
- __mkprop_val64(struct fdt_iter* it, struct dt_prop_val* val)
- {
-     val->u64_val = le64(*(u64_t*)&it->prop[1]);
-     val->size = le(it->prop->len);
- }
- static inline void
- __mkprop_ptr(struct fdt_iter* it, struct dt_prop_val* val)
- {
-     val->ptr_val = __ptr(&it->prop[1]);
-     val->size = le(it->prop->len);
+     val->ptr_val = __ptr(loc.prop->val);
+     val->size = loc.prop->len;
  }
  
  static inline u32_t
- __prop_getu32(struct fdt_iter* it)
+ __prop_getu32(fdt_loc_t loc)
  {
-     return le(*(u32_t*)&it->prop[1]);
+     return loc.prop->val[0];
  }
  
  bool
- parse_stdintr_prop(struct fdt_iter* it, struct dt_intr_node* node);
- bool
- parse_stdintr_prop(struct fdt_iter* it, struct dt_intr_node* node);
+ parse_stdintr_prop(struct fdt_blob*, fdt_loc_t, struct dtn_intr*);
  
  #endif /* __LUNAIX_DEVTREE_H */
index 32129af7d3c3924d98aa14b7dae242c55d9c739d,a41c741b6dd111d5685e41b4fca3922169cee2e6..b03b8e86d497ad192a7e89a0631724a3a32503b0
  #define must_emit               __attribute__((used))
  #define unreachable             __builtin_unreachable()
  #define no_inline               __attribute__((noinline))
 +#define asmlinkage              
  
+ #define _be                     __attribute__((scalar_storage_order ("big-endian")))
+ #define _le                     __attribute__((scalar_storage_order ("little-endian")))
  #define _default                _weak
  
  #define msbiti                  (sizeof(int) * 8 - 1)
  #define clz(bits)               __builtin_clz(bits)
 +#define ctz(bits)               __builtin_ctz(bits)
  
  #ifdef CONFIG_ARCH_BITS_64
  #define msbitl                  (sizeof(long) * 8 - 1)
  #define clzl(bits)              __builtin_clzl(bits)
 +#define ctzl(bits)              __builtin_ctzl(bits)
  #else
  #define msbitl                  msbiti
  #define clzl(bits)              clz(bits)
 +#define ctzl(bits)              ctz(bits)
  #endif
  
  #define sadd_of(a, b, of)       __builtin_sadd_overflow(a, b, of)
@@@ -36,8 -35,6 +39,8 @@@
  #define umul_of(a, b, of)       __builtin_umul_overflow(a, b, of)
  #define umull_of(a, b, of)      __builtin_umull_overflow(a, b, of)
  #define offsetof(f, m)          __builtin_offsetof(f, m)
 +#define select(cond, y, n)      __builtin_choose_expr(cond, y, n)
 +#define is_const(v)             __builtin_constant_p(v)
  
  #define prefetch_rd(ptr, ll)    __builtin_prefetch((ptr), 0, ll)
  #define prefetch_wr(ptr, ll)    __builtin_prefetch((ptr), 1, ll)
@@@ -64,9 -61,4 +67,9 @@@ spin(
      unreachable;
  }
  
 +#ifdef CONFIG_ARCH_X86_32
 +#undef  asmlinkage
 +#define asmlinkage      __attribute__((regparm(0)))
 +#endif
 +
  #endif /* __LUNAIX_COMPILER_H */