Regenerate xgb with latest XML descriptions.
This commit is contained in:
		
							
								
								
									
										164
									
								
								nexgb/shm/shm.go
									
									
									
									
									
								
							
							
						
						
									
										164
									
								
								nexgb/shm/shm.go
									
									
									
									
									
								
							@@ -276,6 +276,70 @@ func attachRequest(c *xgb.Conn, Shmseg Seg, Shmid uint32, ReadOnly bool) []byte
 | 
			
		||||
	return buf
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// AttachFdCookie is a cookie used only for AttachFd requests.
 | 
			
		||||
type AttachFdCookie struct {
 | 
			
		||||
	*xgb.Cookie
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// AttachFd sends an unchecked request.
 | 
			
		||||
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
 | 
			
		||||
func AttachFd(c *xgb.Conn, Shmseg Seg, ReadOnly bool) AttachFdCookie {
 | 
			
		||||
	if _, ok := c.Extensions["MIT-SHM"]; !ok {
 | 
			
		||||
		panic("Cannot issue request 'AttachFd' using the uninitialized extension 'MIT-SHM'. shm.Init(connObj) must be called first.")
 | 
			
		||||
	}
 | 
			
		||||
	cookie := c.NewCookie(false, false)
 | 
			
		||||
	c.NewRequest(attachFdRequest(c, Shmseg, ReadOnly), cookie)
 | 
			
		||||
	return AttachFdCookie{cookie}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// AttachFdChecked sends a checked request.
 | 
			
		||||
// If an error occurs, it can be retrieved using AttachFdCookie.Check()
 | 
			
		||||
func AttachFdChecked(c *xgb.Conn, Shmseg Seg, ReadOnly bool) AttachFdCookie {
 | 
			
		||||
	if _, ok := c.Extensions["MIT-SHM"]; !ok {
 | 
			
		||||
		panic("Cannot issue request 'AttachFd' using the uninitialized extension 'MIT-SHM'. shm.Init(connObj) must be called first.")
 | 
			
		||||
	}
 | 
			
		||||
	cookie := c.NewCookie(true, false)
 | 
			
		||||
	c.NewRequest(attachFdRequest(c, Shmseg, ReadOnly), cookie)
 | 
			
		||||
	return AttachFdCookie{cookie}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Check returns an error if one occurred for checked requests that are not expecting a reply.
 | 
			
		||||
// This cannot be called for requests expecting a reply, nor for unchecked requests.
 | 
			
		||||
func (cook AttachFdCookie) Check() error {
 | 
			
		||||
	return cook.Cookie.Check()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Write request to wire for AttachFd
 | 
			
		||||
// attachFdRequest writes a AttachFd request to a byte slice.
 | 
			
		||||
func attachFdRequest(c *xgb.Conn, Shmseg Seg, ReadOnly bool) []byte {
 | 
			
		||||
	size := 12
 | 
			
		||||
	b := 0
 | 
			
		||||
	buf := make([]byte, size)
 | 
			
		||||
 | 
			
		||||
	buf[b] = c.Extensions["MIT-SHM"]
 | 
			
		||||
	b += 1
 | 
			
		||||
 | 
			
		||||
	buf[b] = 6 // request opcode
 | 
			
		||||
	b += 1
 | 
			
		||||
 | 
			
		||||
	xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
 | 
			
		||||
	b += 2
 | 
			
		||||
 | 
			
		||||
	xgb.Put32(buf[b:], uint32(Shmseg))
 | 
			
		||||
	b += 4
 | 
			
		||||
 | 
			
		||||
	if ReadOnly {
 | 
			
		||||
		buf[b] = 1
 | 
			
		||||
	} else {
 | 
			
		||||
		buf[b] = 0
 | 
			
		||||
	}
 | 
			
		||||
	b += 1
 | 
			
		||||
 | 
			
		||||
	b += 3 // padding
 | 
			
		||||
 | 
			
		||||
	return buf
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CreatePixmapCookie is a cookie used only for CreatePixmap requests.
 | 
			
		||||
type CreatePixmapCookie struct {
 | 
			
		||||
	*xgb.Cookie
 | 
			
		||||
@@ -351,6 +415,106 @@ func createPixmapRequest(c *xgb.Conn, Pid xproto.Pixmap, Drawable xproto.Drawabl
 | 
			
		||||
	return buf
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CreateSegmentCookie is a cookie used only for CreateSegment requests.
 | 
			
		||||
type CreateSegmentCookie struct {
 | 
			
		||||
	*xgb.Cookie
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CreateSegment sends a checked request.
 | 
			
		||||
// If an error occurs, it will be returned with the reply by calling CreateSegmentCookie.Reply()
 | 
			
		||||
func CreateSegment(c *xgb.Conn, Shmseg Seg, Size uint32, ReadOnly bool) CreateSegmentCookie {
 | 
			
		||||
	if _, ok := c.Extensions["MIT-SHM"]; !ok {
 | 
			
		||||
		panic("Cannot issue request 'CreateSegment' using the uninitialized extension 'MIT-SHM'. shm.Init(connObj) must be called first.")
 | 
			
		||||
	}
 | 
			
		||||
	cookie := c.NewCookie(true, true)
 | 
			
		||||
	c.NewRequest(createSegmentRequest(c, Shmseg, Size, ReadOnly), cookie)
 | 
			
		||||
	return CreateSegmentCookie{cookie}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CreateSegmentUnchecked sends an unchecked request.
 | 
			
		||||
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
 | 
			
		||||
func CreateSegmentUnchecked(c *xgb.Conn, Shmseg Seg, Size uint32, ReadOnly bool) CreateSegmentCookie {
 | 
			
		||||
	if _, ok := c.Extensions["MIT-SHM"]; !ok {
 | 
			
		||||
		panic("Cannot issue request 'CreateSegment' using the uninitialized extension 'MIT-SHM'. shm.Init(connObj) must be called first.")
 | 
			
		||||
	}
 | 
			
		||||
	cookie := c.NewCookie(false, true)
 | 
			
		||||
	c.NewRequest(createSegmentRequest(c, Shmseg, Size, ReadOnly), cookie)
 | 
			
		||||
	return CreateSegmentCookie{cookie}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CreateSegmentReply represents the data returned from a CreateSegment request.
 | 
			
		||||
type CreateSegmentReply struct {
 | 
			
		||||
	Sequence uint16 // sequence number of the request for this reply
 | 
			
		||||
	Length   uint32 // number of bytes in this reply
 | 
			
		||||
	Nfd      byte
 | 
			
		||||
	// padding: 24 bytes
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Reply blocks and returns the reply data for a CreateSegment request.
 | 
			
		||||
func (cook CreateSegmentCookie) Reply() (*CreateSegmentReply, error) {
 | 
			
		||||
	buf, err := cook.Cookie.Reply()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if buf == nil {
 | 
			
		||||
		return nil, nil
 | 
			
		||||
	}
 | 
			
		||||
	return createSegmentReply(buf), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// createSegmentReply reads a byte slice into a CreateSegmentReply value.
 | 
			
		||||
func createSegmentReply(buf []byte) *CreateSegmentReply {
 | 
			
		||||
	v := new(CreateSegmentReply)
 | 
			
		||||
	b := 1 // skip reply determinant
 | 
			
		||||
 | 
			
		||||
	v.Nfd = buf[b]
 | 
			
		||||
	b += 1
 | 
			
		||||
 | 
			
		||||
	v.Sequence = xgb.Get16(buf[b:])
 | 
			
		||||
	b += 2
 | 
			
		||||
 | 
			
		||||
	v.Length = xgb.Get32(buf[b:]) // 4-byte units
 | 
			
		||||
	b += 4
 | 
			
		||||
 | 
			
		||||
	b += 24 // padding
 | 
			
		||||
 | 
			
		||||
	return v
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Write request to wire for CreateSegment
 | 
			
		||||
// createSegmentRequest writes a CreateSegment request to a byte slice.
 | 
			
		||||
func createSegmentRequest(c *xgb.Conn, Shmseg Seg, Size uint32, ReadOnly bool) []byte {
 | 
			
		||||
	size := 16
 | 
			
		||||
	b := 0
 | 
			
		||||
	buf := make([]byte, size)
 | 
			
		||||
 | 
			
		||||
	buf[b] = c.Extensions["MIT-SHM"]
 | 
			
		||||
	b += 1
 | 
			
		||||
 | 
			
		||||
	buf[b] = 7 // request opcode
 | 
			
		||||
	b += 1
 | 
			
		||||
 | 
			
		||||
	xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
 | 
			
		||||
	b += 2
 | 
			
		||||
 | 
			
		||||
	xgb.Put32(buf[b:], uint32(Shmseg))
 | 
			
		||||
	b += 4
 | 
			
		||||
 | 
			
		||||
	xgb.Put32(buf[b:], Size)
 | 
			
		||||
	b += 4
 | 
			
		||||
 | 
			
		||||
	if ReadOnly {
 | 
			
		||||
		buf[b] = 1
 | 
			
		||||
	} else {
 | 
			
		||||
		buf[b] = 0
 | 
			
		||||
	}
 | 
			
		||||
	b += 1
 | 
			
		||||
 | 
			
		||||
	b += 3 // padding
 | 
			
		||||
 | 
			
		||||
	return buf
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DetachCookie is a cookie used only for Detach requests.
 | 
			
		||||
type DetachCookie struct {
 | 
			
		||||
	*xgb.Cookie
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user