{"push_id":2981057338,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"babda82d29e6cab6d0c7de82d29bfc115343397c","before":"0dd92926d8fe3e5641299efa035da5a722a1f3cc","commits":[{"sha":"babda82d29e6cab6d0c7de82d29bfc115343397c","author":{"name":"tijl","email":"779318d13958feb2f7a191ba5d6dfdf97febe2e7@FreeBSD.org"},"message":"Define linuxkpi readq for 64-bit architectures.  It is used by drm-kmod.\nCurrently the compiler picks up the definition in machine/cpufunc.h.\n\nAdd compiler memory barriers to read* and write*.  The Linux x86\nimplementation of these functions uses inline asm with \"memory\" clobber.\nThe Linux x86 implementation of read_relaxed* and write_relaxed* uses the\nsame inline asm without \"memory\" clobber.\n\nImplement ioread* and iowrite* in terms of read* and write* so they also\nhave memory barriers.\n\nQualify the addr parameter in write* as volatile.\n\nLike Linux, define macros with the same name as the inline functions.\n\nOnly define 64-bit versions on 64-bit architectures because generally\n32-bit architectures can't do atomic 64-bit loads and stores.\n\nRegroup the functions a bit and add brief comments explaining what they do:\n- __raw_read*, __raw_write*: atomic, no barriers, no byte swapping\n- read_relaxed*, write_relaxed*: atomic, no barriers, little-endian\n- read*, write*: atomic, with barriers, little-endian\n\nAdd a comment that says our implementation of ioread* and iowrite*\nonly handles MMIO and does not support port IO.\n\nReviewed by:\thselasky\nMFC after:\t3 days","distinct":true,"url":"https://api.github.com/repos/bsd-hacker/freebsd/commits/babda82d29e6cab6d0c7de82d29bfc115343397c"}]}
{"actor":{"display_login":"bsd-hacker"}}