am ab9a0025: am e3650267: fix [2170898] abort() doesn\'t print a stack tarce
Merge commit 'ab9a0025d58dde406b25d30388ecb5c9fa268e1f'
* commit 'ab9a0025d58dde406b25d30388ecb5c9fa268e1f':
diff --git a/libc/include/unistd.h b/libc/include/unistd.h
index 1ada37e..67cb5fe 100644
--- a/libc/include/unistd.h
+++ b/libc/include/unistd.h
@@ -185,6 +185,14 @@
extern pid_t tcgetpgrp(int fd);
extern int tcsetpgrp(int fd, pid_t _pid);
+/* Used to retry syscalls that can return EINTR. */
+#define TEMP_FAILURE_RETRY(exp) ({ \
+ typeof (exp) _rc; \
+ do { \
+ _rc = (exp); \
+ } while (_rc == -1 && errno == EINTR); \
+ _rc; })
+
__END_DECLS
#endif /* _UNISTD_H_ */
diff --git a/libc/kernel/common/linux/msm_kgsl.h b/libc/kernel/common/linux/msm_kgsl.h
index 8386327..d717e57 100644
--- a/libc/kernel/common/linux/msm_kgsl.h
+++ b/libc/kernel/common/linux/msm_kgsl.h
@@ -62,6 +62,10 @@
enum kgsl_property_type {
KGSL_PROP_DEVICE_INFO = 0x00000001,
KGSL_PROP_DEVICE_SHADOW = 0x00000002,
+ KGSL_PROP_DEVICE_POWER = 0x00000003,
+ KGSL_PROP_SHMEM = 0x00000004,
+ KGSL_PROP_SHMEM_APERTURES = 0x00000005,
+ KGSL_PROP_MMU_ENABLE = 0x00000006
};
struct kgsl_shadowprop {
@@ -104,20 +108,20 @@
#define IOCTL_KGSL_RINGBUFFER_ISSUEIBCMDS _IOWR(KGSL_IOC_TYPE, 0x10, struct kgsl_ringbuffer_issueibcmds)
-struct kgsl_ringbuffer_readtimestamp {
+struct kgsl_cmdstream_readtimestamp {
unsigned int type;
unsigned int timestamp;
};
-#define IOCTL_KGSL_RINGBUFFER_READTIMESTAMP _IOR(KGSL_IOC_TYPE, 0x11, struct kgsl_ringbuffer_readtimestamp)
+#define IOCTL_KGSL_CMDSTREAM_READTIMESTAMP _IOR(KGSL_IOC_TYPE, 0x11, struct kgsl_cmdstream_readtimestamp)
-struct kgsl_ringbuffer_freememontimestamp {
+struct kgsl_cmdstream_freememontimestamp {
unsigned int gpuaddr;
unsigned int type;
unsigned int timestamp;
};
-#define IOCTL_KGSL_RINGBUFFER_FREEMEMONTIMESTAMP _IOR(KGSL_IOC_TYPE, 0x12, struct kgsl_ringbuffer_freememontimestamp)
+#define IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP _IOR(KGSL_IOC_TYPE, 0x12, struct kgsl_cmdstream_freememontimestamp)
struct kgsl_drawctxt_create {
unsigned int flags;
@@ -145,5 +149,44 @@
#define IOCTL_KGSL_SHAREDMEM_FREE _IOW(KGSL_IOC_TYPE, 0x21, struct kgsl_sharedmem_free)
+struct kgsl_gmem_desc {
+ unsigned int x;
+ unsigned int y;
+ unsigned int width;
+ unsigned int height;
+ unsigned int pitch;
+};
+
+struct kgsl_buffer_desc {
+ void *hostptr;
+ unsigned int gpuaddr;
+ int size;
+ unsigned int format;
+ unsigned int pitch;
+ unsigned int enabled;
+};
+
+struct kgsl_bind_gmem_shadow {
+ unsigned int drawctxt_id;
+ struct kgsl_gmem_desc gmem_desc;
+ unsigned int shadow_x;
+ unsigned int shadow_y;
+ struct kgsl_buffer_desc shadow_buffer;
+ unsigned int buffer_id;
+};
+
+#define IOCTL_KGSL_DRAWCTXT_BIND_GMEM_SHADOW _IOW(KGSL_IOC_TYPE, 0x22, struct kgsl_bind_gmem_shadow)
+
+struct kgsl_sharedmem_from_vmalloc {
+ unsigned int gpuaddr;
+ unsigned int hostptr;
+
+ int force_no_low_watermark;
+};
+
+#define IOCTL_KGSL_SHAREDMEM_FROM_VMALLOC _IOWR(KGSL_IOC_TYPE, 0x23, struct kgsl_sharedmem_from_vmalloc)
+
+#define IOCTL_KGSL_SHAREDMEM_FLUSH_CACHE _IOW(KGSL_IOC_TYPE, 0x24, struct kgsl_sharedmem_free)
+
#endif
diff --git a/libc/kernel/common/linux/msm_q6venc.h b/libc/kernel/common/linux/msm_q6venc.h
new file mode 100755
index 0000000..5b63680
--- /dev/null
+++ b/libc/kernel/common/linux/msm_q6venc.h
@@ -0,0 +1,109 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ *** This header was automatically generated from a Linux kernel header
+ *** of the same name, to make information necessary for userspace to
+ *** call into the kernel available to libc. It contains only constants,
+ *** structures, and macros generated from the original header, and thus,
+ *** contains no copyrightable information.
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _MSM_VENC_H_
+#define _MSM_VENC_H_
+
+#include <linux/types.h>
+
+struct venc_buf {
+ unsigned int src_id;
+ int fd;
+ unsigned long offset;
+ unsigned long size;
+};
+
+struct q6_init_config {
+ unsigned short venc_standard;
+ unsigned short partial_run_length_flag;
+ unsigned short h263_annex_ispt;
+ unsigned short h263_annex_jspt;
+ unsigned short h263_annex_tspt;
+ unsigned short rc_flag;
+ unsigned short one_mv_flag;
+ unsigned short acdc_pred_enable;
+ unsigned short rounding_bit_ctrl;
+ unsigned short rotation_flag;
+ unsigned short max_mvx;
+ unsigned short max_mvy;
+ unsigned short enc_frame_height_inmb;
+ unsigned short enc_frame_width_inmb;
+ unsigned short dvs_frame_height;
+ unsigned short dvs_frame_width;
+
+ unsigned int ref_frame_buf1_phy;
+ unsigned int ref_frame_buf2_phy;
+ unsigned int rlc_buf1_phy;
+ unsigned int rlc_buf2_phy;
+ unsigned int rlc_buf_length;
+};
+
+struct init_config {
+ struct venc_buf ref_frame_buf1;
+ struct venc_buf ref_frame_buf2;
+ struct venc_buf rlc_buf1;
+ struct venc_buf rlc_buf2;
+ struct q6_init_config q6_init_config;
+};
+
+struct q6_encode_param {
+ unsigned int luma_addr;
+ unsigned int chroma_addr;
+ unsigned int x_offset;
+ unsigned int y_offset;
+ unsigned int frame_rho_budget;
+ unsigned int frame_type;
+ unsigned int qp;
+};
+
+struct encode_param {
+ struct venc_buf y_addr;
+ unsigned long uv_offset;
+ struct q6_encode_param q6_encode_param;
+};
+
+struct intra_refresh {
+ unsigned int intra_refresh_enable;
+ unsigned int intra_mb_num;
+};
+
+struct rc_config {
+ unsigned short max_frame_qp_up_delta;
+ unsigned short max_frame_qp_down_delta;
+ unsigned short min_frame_qp;
+ unsigned short max_frame_qp;
+};
+
+struct q6_frame_type {
+ unsigned int frame_type;
+ unsigned int frame_len;
+ unsigned int frame_addr;
+ unsigned int map_table;
+};
+
+struct frame_type {
+ struct venc_buf frame_addr;
+ struct q6_frame_type q6_frame_type;
+};
+
+#define VENC_IOCTL_MAGIC 'V'
+
+#define VENC_IOCTL_INITIALIZE _IOW(VENC_IOCTL_MAGIC, 1, struct init_config)
+#define VENC_IOCTL_ENCODE _IOW(VENC_IOCTL_MAGIC, 2, struct encode_param)
+#define VENC_IOCTL_INTRA_REFRESH _IOW(VENC_IOCTL_MAGIC, 3, struct intra_refresh)
+#define VENC_IOCTL_RC_CONFIG _IOW(VENC_IOCTL_MAGIC, 4, struct rc_config)
+#define VENC_IOCTL_ENCODE_CONFIG _IOW(VENC_IOCTL_MAGIC, 5, struct init_config)
+#define VENC_IOCTL_STOP _IO(VENC_IOCTL_MAGIC, 6)
+#define VENC_IOCTL_WAIT_FOR_ENCODE _IOR(VENC_IOCTL_MAGIC, 7, struct frame_type)
+#define VENC_IOCTL_STOP_ENCODE _IO(VENC_IOCTL_MAGIC, 8)
+
+#endif
+
diff --git a/libc/kernel/common/media/msm_camera.h b/libc/kernel/common/media/msm_camera.h
index 9519861..a0b4a24 100644
--- a/libc/kernel/common/media/msm_camera.h
+++ b/libc/kernel/common/media/msm_camera.h
@@ -54,9 +54,9 @@
#define MSM_CAM_IOCTL_SET_CROP _IOW(MSM_CAM_IOCTL_MAGIC, 18, struct crop_info *)
-#define MSM_CAM_IOCTL_PICT_PP _IOW(MSM_CAM_IOCTL_MAGIC, 19, uint8_t *)
+#define MSM_CAM_IOCTL_PP _IOW(MSM_CAM_IOCTL_MAGIC, 19, uint8_t *)
-#define MSM_CAM_IOCTL_PICT_PP_DONE _IOW(MSM_CAM_IOCTL_MAGIC, 20, struct msm_snapshot_pp_status *)
+#define MSM_CAM_IOCTL_PP_DONE _IOW(MSM_CAM_IOCTL_MAGIC, 20, struct msm_snapshot_pp_status *)
#define MSM_CAM_IOCTL_SENSOR_IO_CFG _IOW(MSM_CAM_IOCTL_MAGIC, 21, struct sensor_cfg_data *)