| /kernel/linux/linux-4.19/drivers/misc/mic/scif/ |
| D | scif_rma.c | 84 * @nr_pages: number of pages in window 144 * @temp: true if a temporary window is being created 146 * Allocate and prepare a self registration window. 151 struct scif_window *window; in scif_create_window() local 154 window = scif_zalloc(sizeof(*window)); in scif_create_window() 155 if (!window) in scif_create_window() 158 window->dma_addr = scif_zalloc(nr_pages * sizeof(*window->dma_addr)); in scif_create_window() 159 if (!window->dma_addr) in scif_create_window() 162 window->num_pages = scif_zalloc(nr_pages * sizeof(*window->num_pages)); in scif_create_window() 163 if (!window->num_pages) in scif_create_window() [all …]
|
| D | scif_rma_list.c | 25 * Insert a temp window to the temp registration list sorted by va_for_temp. 28 void scif_insert_tcw(struct scif_window *window, struct list_head *head) in scif_insert_tcw() argument 34 INIT_LIST_HEAD(&window->list); in scif_insert_tcw() 38 if (curr->va_for_temp < window->va_for_temp) { in scif_insert_tcw() 39 list_add_tail(&window->list, head); in scif_insert_tcw() 45 if (curr->va_for_temp > window->va_for_temp) in scif_insert_tcw() 49 list_add(&window->list, &prev->list); in scif_insert_tcw() 55 * Insert a window to the self registration list sorted by offset. 58 void scif_insert_window(struct scif_window *window, struct list_head *head) in scif_insert_window() argument 63 INIT_LIST_HEAD(&window->list); in scif_insert_window() [all …]
|
| D | scif_debugfs.c | 65 static void scif_display_window(struct scif_window *window, struct seq_file *s) in scif_display_window() argument 69 scif_pinned_pages_t pin = window->pinned_pages; in scif_display_window() 71 seq_printf(s, "window %p type %d temp %d offset 0x%llx ", in scif_display_window() 72 window, window->type, window->temp, window->offset); in scif_display_window() 74 window->nr_pages, window->nr_contig_chunks, window->prot); in scif_display_window() 76 window->ref_count, window->magic, window->peer_window); in scif_display_window() 78 window->unreg_state, window->va_for_temp); in scif_display_window() 80 for (j = 0; j < window->nr_contig_chunks; j++) in scif_display_window() 82 window->dma_addr[j], window->num_pages[j]); in scif_display_window() 84 if (window->type == SCIF_WINDOW_SELF && pin) in scif_display_window() [all …]
|
| D | scif_mmap.c | 34 struct scif_window *window = NULL; in scif_recv_munmap() local 40 req.out_window = &window; in scif_recv_munmap() 49 /* Does a valid window exist? */ in scif_recv_munmap() 57 scif_put_window(window, window->nr_pages); in scif_recv_munmap() 59 if (!window->ref_count) { in scif_recv_munmap() 62 list_del_init(&window->list); in scif_recv_munmap() 63 scif_free_window_offset(ep, window, window->offset); in scif_recv_munmap() 67 if (window && !window->ref_count) in scif_recv_munmap() 68 scif_queue_for_cleanup(window, &scif_info.rma); in scif_recv_munmap() 128 * the window has not yet been unregistered we can drop the ref count [all …]
|
| D | scif_rma.h | 82 * window from being destroyed while RMAs are in progress. 143 * window or multiple contiguous windows. Mmaps can span across partial windows. 145 * single window. A window can also be of type self or peer. 209 * struct scif_window - Registration Window for Self and Remote 218 * @va_for_temp: va address that this window represents 219 * @dma_mark: Used to determine if all DMAs against the window are done 223 * @type: self or peer window 224 * @peer_window: Pointer to peer window. Useful for sending messages to peer 231 * @pinned_pages: The set of pinned_pages backing this window 238 * @mapped_offset: Offset used to map the window by the peer [all …]
|
| /kernel/linux/linux-5.10/arch/powerpc/platforms/powernv/ |
| D | vas-debug.c | 31 struct vas_window *window = s->private; in info_show() local 35 /* ensure window is not unmapped */ in info_show() 36 if (!window->hvwc_map) in info_show() 39 seq_printf(s, "Type: %s, %s\n", cop_to_str(window->cop), in info_show() 40 window->tx_win ? "Send" : "Receive"); in info_show() 41 seq_printf(s, "Pid : %d\n", vas_window_pid(window)); in info_show() 58 struct vas_window *window = s->private; in hvwc_show() local 62 /* ensure window is not unmapped */ in hvwc_show() 63 if (!window->hvwc_map) in hvwc_show() 66 print_reg(s, window, VREG(LPID)); in hvwc_show() [all …]
|
| D | vas-window.c | 26 * Compute the paste address region for the window @window using the 29 void vas_win_paste_addr(struct vas_window *window, u64 *addr, int *len) in vas_win_paste_addr() argument 34 base = window->vinst->paste_base_addr; in vas_win_paste_addr() 35 shift = window->vinst->paste_win_id_shift; in vas_win_paste_addr() 36 winid = window->winid; in vas_win_paste_addr() 45 static inline void get_hvwc_mmio_bar(struct vas_window *window, in get_hvwc_mmio_bar() argument 50 pbaddr = window->vinst->hvwc_bar_start; in get_hvwc_mmio_bar() 51 *start = pbaddr + window->winid * VAS_HVWC_SIZE; in get_hvwc_mmio_bar() 55 static inline void get_uwc_mmio_bar(struct vas_window *window, in get_uwc_mmio_bar() argument 60 pbaddr = window->vinst->uwc_bar_start; in get_uwc_mmio_bar() [all …]
|
| D | vas.h | 31 * Senders and receivers must each connect to a separate window before they 34 * Each window is described by two types of window contexts: 36 * Hypervisor Window Context (HVWC) of size VAS_HVWC_SIZE bytes 38 * OS/User Window Context (UWC) of size VAS_UWC_SIZE bytes. 40 * A window context can be viewed as a set of 64-bit registers. The settings 42 * hardware when messages are sent/received through the window. The registers 45 * the window. 61 * space (hvwc_map and uwc_map). The kernel can then access the window 62 * contexts of a specific window using: 67 * where winid is the window index (0..64K). [all …]
|
| D | vas-fault.c | 21 * The maximum FIFO size for fault window can be 8MB 23 * instance will be having fault window. 62 static void update_csb(struct vas_window *window, in update_csb() argument 76 if (WARN_ON_ONCE(!window->mm || !window->user_win)) in update_csb() 95 pid = window->pid; in update_csb() 98 * Process closes send window after all pending NX requests are in update_csb() 100 * open a window and can exit without closing it. May be some in update_csb() 101 * requests are pending or this window can be used by other in update_csb() 105 * invalid, send SEGV signal to pid saved in window. If the in update_csb() 107 * Parent thread (tgid) will close this window upon its exit. in update_csb() [all …]
|
| /kernel/linux/linux-4.19/arch/powerpc/platforms/powernv/ |
| D | vas-debug.c | 35 struct vas_window *window = s->private; in info_dbg_show() local 39 /* ensure window is not unmapped */ in info_dbg_show() 40 if (!window->hvwc_map) in info_dbg_show() 43 seq_printf(s, "Type: %s, %s\n", cop_to_str(window->cop), in info_dbg_show() 44 window->tx_win ? "Send" : "Receive"); in info_dbg_show() 45 seq_printf(s, "Pid : %d\n", window->pid); in info_dbg_show() 72 struct vas_window *window = s->private; in hvwc_dbg_show() local 76 /* ensure window is not unmapped */ in hvwc_dbg_show() 77 if (!window->hvwc_map) in hvwc_dbg_show() 80 print_reg(s, window, VREG(LPID)); in hvwc_dbg_show() [all …]
|
| D | vas-window.c | 28 * Compute the paste address region for the window @window using the 31 static void compute_paste_address(struct vas_window *window, u64 *addr, int *len) in compute_paste_address() argument 36 base = window->vinst->paste_base_addr; in compute_paste_address() 37 shift = window->vinst->paste_win_id_shift; in compute_paste_address() 38 winid = window->winid; in compute_paste_address() 57 static inline void get_hvwc_mmio_bar(struct vas_window *window, in get_hvwc_mmio_bar() argument 62 pbaddr = window->vinst->hvwc_bar_start; in get_hvwc_mmio_bar() 63 *start = pbaddr + window->winid * VAS_HVWC_SIZE; in get_hvwc_mmio_bar() 67 static inline void get_uwc_mmio_bar(struct vas_window *window, in get_uwc_mmio_bar() argument 72 pbaddr = window->vinst->uwc_bar_start; in get_uwc_mmio_bar() [all …]
|
| /kernel/linux/linux-5.10/drivers/mtd/maps/ |
| D | ichxrom.c | 57 static void ichxrom_cleanup(struct ichxrom_window *window) in ichxrom_cleanup() argument 63 /* Disable writes through the rom window */ in ichxrom_cleanup() 64 ret = pci_read_config_word(window->pdev, BIOS_CNTL, &word); in ichxrom_cleanup() 66 pci_write_config_word(window->pdev, BIOS_CNTL, word & ~1); in ichxrom_cleanup() 67 pci_dev_put(window->pdev); in ichxrom_cleanup() 70 list_for_each_entry_safe(map, scratch, &window->maps, list) { in ichxrom_cleanup() 78 if (window->rsrc.parent) in ichxrom_cleanup() 79 release_resource(&window->rsrc); in ichxrom_cleanup() 80 if (window->virt) { in ichxrom_cleanup() 81 iounmap(window->virt); in ichxrom_cleanup() [all …]
|
| D | amd76xrom.c | 48 /* The 2 bits controlling the window size are often set to allow reading 56 * The bits are 6 and 7. If both bits are set, it is a 5MiB window. 57 * If only the 7 Bit is set, it is a 4MiB window. Otherwise, a 58 * 64KiB window. 63 MODULE_PARM_DESC(win_size_bits, "ROM window size bits override for 0x43 byte, normally set by BIOS.… 69 static void amd76xrom_cleanup(struct amd76xrom_window *window) in amd76xrom_cleanup() argument 74 if (window->pdev) { in amd76xrom_cleanup() 75 /* Disable writes through the rom window */ in amd76xrom_cleanup() 76 pci_read_config_byte(window->pdev, 0x40, &byte); in amd76xrom_cleanup() 77 pci_write_config_byte(window->pdev, 0x40, byte & ~1); in amd76xrom_cleanup() [all …]
|
| D | ck804xrom.c | 54 * The 2 bits controlling the window size are often set to allow reading 62 * The bits are 6 and 7. If both bits are set, it is a 5MiB window. 63 * If only the 7 Bit is set, it is a 4MiB window. Otherwise, a 64 * 64KiB window. 67 * The 15 bits controlling the window size are distributed as follows: 71 * If all bits are enabled, we have a 16? MiB window 76 MODULE_PARM_DESC(win_size_bits, "ROM window size bits override, normally set by BIOS."); 82 static void ck804xrom_cleanup(struct ck804xrom_window *window) in ck804xrom_cleanup() argument 87 if (window->pdev) { in ck804xrom_cleanup() 88 /* Disable writes through the rom window */ in ck804xrom_cleanup() [all …]
|
| D | esb2rom.c | 118 static void esb2rom_cleanup(struct esb2rom_window *window) in esb2rom_cleanup() argument 123 /* Disable writes through the rom window */ in esb2rom_cleanup() 124 pci_read_config_byte(window->pdev, BIOS_CNTL, &byte); in esb2rom_cleanup() 125 pci_write_config_byte(window->pdev, BIOS_CNTL, in esb2rom_cleanup() 129 list_for_each_entry_safe(map, scratch, &window->maps, list) { in esb2rom_cleanup() 137 if (window->rsrc.parent) in esb2rom_cleanup() 138 release_resource(&window->rsrc); in esb2rom_cleanup() 139 if (window->virt) { in esb2rom_cleanup() 140 iounmap(window->virt); in esb2rom_cleanup() 141 window->virt = NULL; in esb2rom_cleanup() [all …]
|
| /kernel/linux/linux-4.19/drivers/mtd/maps/ |
| D | ichxrom.c | 56 static void ichxrom_cleanup(struct ichxrom_window *window) in ichxrom_cleanup() argument 62 /* Disable writes through the rom window */ in ichxrom_cleanup() 63 ret = pci_read_config_word(window->pdev, BIOS_CNTL, &word); in ichxrom_cleanup() 65 pci_write_config_word(window->pdev, BIOS_CNTL, word & ~1); in ichxrom_cleanup() 66 pci_dev_put(window->pdev); in ichxrom_cleanup() 69 list_for_each_entry_safe(map, scratch, &window->maps, list) { in ichxrom_cleanup() 77 if (window->rsrc.parent) in ichxrom_cleanup() 78 release_resource(&window->rsrc); in ichxrom_cleanup() 79 if (window->virt) { in ichxrom_cleanup() 80 iounmap(window->virt); in ichxrom_cleanup() [all …]
|
| D | amd76xrom.c | 47 /* The 2 bits controlling the window size are often set to allow reading 55 * The bits are 6 and 7. If both bits are set, it is a 5MiB window. 56 * If only the 7 Bit is set, it is a 4MiB window. Otherwise, a 57 * 64KiB window. 62 MODULE_PARM_DESC(win_size_bits, "ROM window size bits override for 0x43 byte, normally set by BIOS.… 68 static void amd76xrom_cleanup(struct amd76xrom_window *window) in amd76xrom_cleanup() argument 73 if (window->pdev) { in amd76xrom_cleanup() 74 /* Disable writes through the rom window */ in amd76xrom_cleanup() 75 pci_read_config_byte(window->pdev, 0x40, &byte); in amd76xrom_cleanup() 76 pci_write_config_byte(window->pdev, 0x40, byte & ~1); in amd76xrom_cleanup() [all …]
|
| D | ck804xrom.c | 53 * The 2 bits controlling the window size are often set to allow reading 61 * The bits are 6 and 7. If both bits are set, it is a 5MiB window. 62 * If only the 7 Bit is set, it is a 4MiB window. Otherwise, a 63 * 64KiB window. 66 * The 15 bits controlling the window size are distributed as follows: 70 * If all bits are enabled, we have a 16? MiB window 75 MODULE_PARM_DESC(win_size_bits, "ROM window size bits override, normally set by BIOS."); 81 static void ck804xrom_cleanup(struct ck804xrom_window *window) in ck804xrom_cleanup() argument 86 if (window->pdev) { in ck804xrom_cleanup() 87 /* Disable writes through the rom window */ in ck804xrom_cleanup() [all …]
|
| D | esb2rom.c | 117 static void esb2rom_cleanup(struct esb2rom_window *window) in esb2rom_cleanup() argument 122 /* Disable writes through the rom window */ in esb2rom_cleanup() 123 pci_read_config_byte(window->pdev, BIOS_CNTL, &byte); in esb2rom_cleanup() 124 pci_write_config_byte(window->pdev, BIOS_CNTL, in esb2rom_cleanup() 128 list_for_each_entry_safe(map, scratch, &window->maps, list) { in esb2rom_cleanup() 136 if (window->rsrc.parent) in esb2rom_cleanup() 137 release_resource(&window->rsrc); in esb2rom_cleanup() 138 if (window->virt) { in esb2rom_cleanup() 139 iounmap(window->virt); in esb2rom_cleanup() 140 window->virt = NULL; in esb2rom_cleanup() [all …]
|
| /kernel/linux/linux-4.19/arch/sparc/kernel/ |
| D | wuf.S | 3 * wuf.S: Window underflow trap handler for the Sparc. 53 * 1 2 3 4 <-- Window number 57 * O == the window that execution was in when 61 * window 63 * W == this window is the one which is now invalid 67 * I == this window will be the invalid one when we 73 /* On 7-window Sparc the boot code patches fnwin_patch1 83 /* LOCATION: Window 'T' */ 86 * the proper window off of the stack. 93 wr %twin_tmp1, 0x0, %wim /* Make window 'I' invalid */ [all …]
|
| D | wof.S | 3 * wof.S: Sparc window overflow handler. 29 * accessed when in the 'trap' window, 'G' means 30 * accessible in any window. Do not change these registers 43 #define twin_tmp l4 /* Temp reg, only usable in trap window T */ 49 /* On a 7-window Sparc the boot code patches spnwin_* 74 /* LOCATION: Trap Window */ 80 * window properly in this trap handler. 105 /* Save into the window which must be saved and do it. 110 save %g0, %g0, %g0 ! save into the window to stash away 114 /* LOCATION: Window to be saved */ [all …]
|
| /kernel/linux/linux-5.10/arch/sparc/kernel/ |
| D | wuf.S | 3 * wuf.S: Window underflow trap handler for the Sparc. 53 * 1 2 3 4 <-- Window number 57 * O == the window that execution was in when 61 * window 63 * W == this window is the one which is now invalid 67 * I == this window will be the invalid one when we 73 /* On 7-window Sparc the boot code patches fnwin_patch1 83 /* LOCATION: Window 'T' */ 86 * the proper window off of the stack. 93 wr %twin_tmp1, 0x0, %wim /* Make window 'I' invalid */ [all …]
|
| D | wof.S | 3 * wof.S: Sparc window overflow handler. 29 * accessed when in the 'trap' window, 'G' means 30 * accessible in any window. Do not change these registers 43 #define twin_tmp l4 /* Temp reg, only usable in trap window T */ 49 /* On a 7-window Sparc the boot code patches spnwin_* 74 /* LOCATION: Trap Window */ 80 * window properly in this trap handler. 105 /* Save into the window which must be saved and do it. 110 save %g0, %g0, %g0 ! save into the window to stash away 114 /* LOCATION: Window to be saved */ [all …]
|
| /kernel/linux/linux-5.10/arch/powerpc/include/asm/ |
| D | vas.h | 52 * Receive window attributes specified by the (in-kernel) owner of window. 82 * Window attributes specified by the in-kernel owner of a send window. 113 * Helper to initialize receive window attributes to defaults for an 114 * NX window. 119 * Open a VAS receive window for the instance of VAS identified by @vasid 120 * Use @attr to initialize the attributes of the window. 122 * Return a handle to the window or ERR_PTR() on error. 128 * Helper to initialize send window attributes to defaults for an NX window. 134 * Open a VAS send window for the instance of VAS identified by @vasid 136 * of the window. [all …]
|
| /kernel/linux/linux-4.19/arch/powerpc/include/asm/ |
| D | vas.h | 56 * Receive window attributes specified by the (in-kernel) owner of window. 86 * Window attributes specified by the in-kernel owner of a send window. 118 * Helper to initialize receive window attributes to defaults for an 119 * NX window. 124 * Open a VAS receive window for the instance of VAS identified by @vasid 125 * Use @attr to initialize the attributes of the window. 127 * Return a handle to the window or ERR_PTR() on error. 133 * Helper to initialize send window attributes to defaults for an NX window. 139 * Open a VAS send window for the instance of VAS identified by @vasid 141 * of the window. [all …]
|